aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kbuild/kbuild.txt29
-rw-r--r--Documentation/kernel-parameters.txt7
-rw-r--r--Documentation/networking/netconsole.txt3
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--MAINTAINERS3
-rw-r--r--Makefile63
-rw-r--r--arch/arm/common/clkdev.c25
-rw-r--r--arch/arm/configs/afeb9260_defconfig6
-rw-r--r--arch/arm/configs/ams_delta_defconfig2
-rw-r--r--arch/arm/configs/at91cap9adk_defconfig4
-rw-r--r--arch/arm/configs/at91rm9200dk_defconfig2
-rw-r--r--arch/arm/configs/at91rm9200ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9260ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9261ek_defconfig4
-rw-r--r--arch/arm/configs/at91sam9263ek_defconfig4
-rw-r--r--arch/arm/configs/at91sam9g20ek_defconfig2
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig4
-rw-r--r--arch/arm/configs/ateb9200_defconfig2
-rw-r--r--arch/arm/configs/badge4_defconfig2
-rw-r--r--arch/arm/configs/cam60_defconfig4
-rw-r--r--arch/arm/configs/cm_x300_defconfig4
-rw-r--r--arch/arm/configs/colibri_defconfig2
-rw-r--r--arch/arm/configs/corgi_defconfig6
-rw-r--r--arch/arm/configs/csb337_defconfig2
-rw-r--r--arch/arm/configs/csb637_defconfig2
-rw-r--r--arch/arm/configs/ecbat91_defconfig4
-rw-r--r--arch/arm/configs/ep93xx_defconfig2
-rw-r--r--arch/arm/configs/ezx_defconfig4
-rw-r--r--arch/arm/configs/footbridge_defconfig2
-rw-r--r--arch/arm/configs/iop13xx_defconfig2
-rw-r--r--arch/arm/configs/iop32x_defconfig2
-rw-r--r--arch/arm/configs/iop33x_defconfig2
-rw-r--r--arch/arm/configs/ixp2000_defconfig2
-rw-r--r--arch/arm/configs/ixp23xx_defconfig2
-rw-r--r--arch/arm/configs/ixp4xx_defconfig2
-rw-r--r--arch/arm/configs/kafa_defconfig2
-rw-r--r--arch/arm/configs/kirkwood_defconfig6
-rw-r--r--arch/arm/configs/loki_defconfig4
-rw-r--r--arch/arm/configs/magician_defconfig2
-rw-r--r--arch/arm/configs/msm_defconfig2
-rw-r--r--arch/arm/configs/mv78xx0_defconfig2
-rw-r--r--arch/arm/configs/n770_defconfig4
-rw-r--r--arch/arm/configs/neocore926_defconfig6
-rw-r--r--arch/arm/configs/neponset_defconfig2
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig4
-rw-r--r--arch/arm/configs/omap3_pandora_defconfig6
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig4
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig2
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig4
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig2
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig2
-rw-r--r--arch/arm/configs/omap_ldp_defconfig6
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig2
-rw-r--r--arch/arm/configs/onearm_defconfig2
-rw-r--r--arch/arm/configs/orion5x_defconfig4
-rw-r--r--arch/arm/configs/overo_defconfig6
-rw-r--r--arch/arm/configs/palmz71_defconfig2
-rw-r--r--arch/arm/configs/palmz72_defconfig6
-rw-r--r--arch/arm/configs/pcm027_defconfig2
-rw-r--r--arch/arm/configs/pcm038_defconfig4
-rw-r--r--arch/arm/configs/picotux200_defconfig2
-rw-r--r--arch/arm/configs/pnx4008_defconfig2
-rw-r--r--arch/arm/configs/qil-a9260_defconfig4
-rw-r--r--arch/arm/configs/rpc_defconfig2
-rw-r--r--arch/arm/configs/s3c2410_defconfig4
-rw-r--r--arch/arm/configs/s3c6400_defconfig4
-rw-r--r--arch/arm/configs/spitz_defconfig6
-rw-r--r--arch/arm/configs/sx1_defconfig2
-rw-r--r--arch/arm/configs/trizeps4_defconfig2
-rw-r--r--arch/arm/configs/usb-a9260_defconfig2
-rw-r--r--arch/arm/configs/usb-a9263_defconfig2
-rw-r--r--arch/arm/configs/versatile_defconfig2
-rw-r--r--arch/arm/configs/viper_defconfig4
-rw-r--r--arch/arm/configs/xm_x2xx_defconfig4
-rw-r--r--arch/arm/configs/yl9200_defconfig2
-rw-r--r--arch/arm/mach-davinci/usb.c1
-rw-r--r--arch/arm/mach-omap1/board-h2.c45
-rw-r--r--arch/arm/mach-omap1/board-h3.c50
-rw-r--r--arch/arm/mach-omap1/board-innovator.c39
-rw-r--r--arch/arm/mach-omap1/board-nokia770.c8
-rw-r--r--arch/arm/mach-omap1/board-osk.c43
-rw-r--r--arch/arm/mach-omap1/board-palmte.c29
-rw-r--r--arch/arm/mach-omap1/board-palmtt.c41
-rw-r--r--arch/arm/mach-omap1/board-palmz71.c37
-rw-r--r--arch/arm/mach-omap1/board-sx1.c39
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c1
-rw-r--r--arch/arm/mach-omap1/mcbsp.c1
-rw-r--r--arch/arm/mach-omap2/board-apollon.c64
-rw-r--r--arch/arm/mach-omap2/board-ldp.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c9
-rw-r--r--arch/arm/mach-omap2/mcbsp.c1
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/ioremap.c11
-rw-r--r--arch/arm/plat-mxc/include/mach/ipu.h181
-rw-r--r--arch/arm/plat-mxc/include/mach/irqs.h10
-rw-r--r--arch/arm/plat-mxc/include/mach/mx3fb.h38
-rw-r--r--arch/arm/plat-omap/dma.c13
-rw-r--r--arch/arm/plat-omap/gpio.c3
-rw-r--r--arch/arm/plat-omap/include/mach/aic23.h116
-rw-r--r--arch/arm/plat-omap/include/mach/board-h3.h4
-rw-r--r--arch/arm/plat-omap/include/mach/gpio.h10
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h11
-rw-r--r--arch/arm/plat-omap/mcbsp.c4
-rw-r--r--arch/arm/plat-omap/usb.c14
-rw-r--r--arch/avr32/configs/atngw100_defconfig6
-rw-r--r--arch/avr32/configs/atngw100_evklcd100_defconfig4
-rw-r--r--arch/avr32/configs/atngw100_evklcd101_defconfig4
-rw-r--r--arch/avr32/configs/atstk1002_defconfig6
-rw-r--r--arch/avr32/configs/atstk1003_defconfig6
-rw-r--r--arch/avr32/configs/atstk1004_defconfig2
-rw-r--r--arch/avr32/configs/atstk1006_defconfig6
-rw-r--r--arch/avr32/configs/favr-32_defconfig6
-rw-r--r--arch/avr32/configs/hammerhead_defconfig6
-rw-r--r--arch/avr32/configs/mimc200_defconfig6
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig4
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig6
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig6
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig2
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig6
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig6
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig6
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig6
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig2
-rw-r--r--arch/blackfin/configs/BlackStamp_defconfig4
-rw-r--r--arch/blackfin/configs/CM-BF527_defconfig4
-rw-r--r--arch/blackfin/configs/CM-BF548_defconfig4
-rw-r--r--arch/blackfin/configs/H8606_defconfig2
-rw-r--r--arch/blackfin/configs/IP0X_defconfig2
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig6
-rw-r--r--arch/blackfin/configs/SRV1_defconfig4
-rw-r--r--arch/blackfin/configs/TCM-BF537_defconfig2
-rw-r--r--arch/ia64/configs/bigsur_defconfig2
-rw-r--r--arch/ia64/configs/zx1_defconfig2
-rw-r--r--arch/m32r/configs/m32104ut_defconfig2
-rw-r--r--arch/m68k/include/asm/Kbuild (renamed from include/asm-m68k/Kbuild)0
-rw-r--r--arch/m68k/include/asm/MC68328.h (renamed from arch/m68knommu/include/asm/MC68328.h)0
-rw-r--r--arch/m68k/include/asm/MC68332.h (renamed from arch/m68knommu/include/asm/MC68332.h)0
-rw-r--r--arch/m68k/include/asm/MC68EZ328.h (renamed from arch/m68knommu/include/asm/MC68EZ328.h)0
-rw-r--r--arch/m68k/include/asm/MC68VZ328.h (renamed from arch/m68knommu/include/asm/MC68VZ328.h)0
-rw-r--r--arch/m68k/include/asm/a.out-core.h (renamed from include/asm-m68k/a.out-core.h)0
-rw-r--r--arch/m68k/include/asm/a.out.h (renamed from include/asm-m68k/a.out.h)0
-rw-r--r--arch/m68k/include/asm/adb_iop.h (renamed from include/asm-m68k/adb_iop.h)0
-rw-r--r--arch/m68k/include/asm/amigahw.h (renamed from include/asm-m68k/amigahw.h)0
-rw-r--r--arch/m68k/include/asm/amigaints.h (renamed from include/asm-m68k/amigaints.h)0
-rw-r--r--arch/m68k/include/asm/amigayle.h (renamed from include/asm-m68k/amigayle.h)0
-rw-r--r--arch/m68k/include/asm/amipcmcia.h (renamed from include/asm-m68k/amipcmcia.h)0
-rw-r--r--arch/m68k/include/asm/anchor.h (renamed from arch/m68knommu/include/asm/anchor.h)0
-rw-r--r--arch/m68k/include/asm/apollodma.h (renamed from include/asm-m68k/apollodma.h)0
-rw-r--r--arch/m68k/include/asm/apollohw.h (renamed from include/asm-m68k/apollohw.h)0
-rw-r--r--arch/m68k/include/asm/atafd.h (renamed from include/asm-m68k/atafd.h)0
-rw-r--r--arch/m68k/include/asm/atafdreg.h (renamed from include/asm-m68k/atafdreg.h)0
-rw-r--r--arch/m68k/include/asm/atari_joystick.h (renamed from include/asm-m68k/atari_joystick.h)0
-rw-r--r--arch/m68k/include/asm/atari_stdma.h (renamed from include/asm-m68k/atari_stdma.h)0
-rw-r--r--arch/m68k/include/asm/atari_stram.h (renamed from include/asm-m68k/atari_stram.h)0
-rw-r--r--arch/m68k/include/asm/atarihw.h (renamed from include/asm-m68k/atarihw.h)0
-rw-r--r--arch/m68k/include/asm/atariints.h (renamed from include/asm-m68k/atariints.h)0
-rw-r--r--arch/m68k/include/asm/atarikb.h (renamed from include/asm-m68k/atarikb.h)0
-rw-r--r--arch/m68k/include/asm/atomic.h5
-rw-r--r--arch/m68k/include/asm/atomic_mm.h (renamed from include/asm-m68k/atomic.h)0
-rw-r--r--arch/m68k/include/asm/atomic_no.h (renamed from arch/m68knommu/include/asm/atomic.h)0
-rw-r--r--arch/m68k/include/asm/auxvec.h (renamed from arch/m68knommu/include/asm/auxvec.h)0
-rw-r--r--arch/m68k/include/asm/bitops.h5
-rw-r--r--arch/m68k/include/asm/bitops_mm.h (renamed from include/asm-m68k/bitops.h)0
-rw-r--r--arch/m68k/include/asm/bitops_no.h (renamed from arch/m68knommu/include/asm/bitops.h)0
-rw-r--r--arch/m68k/include/asm/blinken.h (renamed from include/asm-m68k/blinken.h)0
-rw-r--r--arch/m68k/include/asm/bootinfo.h5
-rw-r--r--arch/m68k/include/asm/bootinfo_mm.h (renamed from include/asm-m68k/bootinfo.h)0
-rw-r--r--arch/m68k/include/asm/bootinfo_no.h (renamed from arch/m68knommu/include/asm/bootinfo.h)0
-rw-r--r--arch/m68k/include/asm/bootstd.h (renamed from arch/m68knommu/include/asm/bootstd.h)0
-rw-r--r--arch/m68k/include/asm/bug.h5
-rw-r--r--arch/m68k/include/asm/bug_mm.h (renamed from include/asm-m68k/bug.h)0
-rw-r--r--arch/m68k/include/asm/bug_no.h (renamed from arch/m68knommu/include/asm/bug.h)0
-rw-r--r--arch/m68k/include/asm/bugs.h5
-rw-r--r--arch/m68k/include/asm/bugs_mm.h (renamed from include/asm-m68k/bugs.h)0
-rw-r--r--arch/m68k/include/asm/bugs_no.h (renamed from arch/m68knommu/include/asm/bugs.h)0
-rw-r--r--arch/m68k/include/asm/bvme6000hw.h (renamed from include/asm-m68k/bvme6000hw.h)0
-rw-r--r--arch/m68k/include/asm/byteorder.h (renamed from include/asm-m68k/byteorder.h)0
-rw-r--r--arch/m68k/include/asm/cache.h5
-rw-r--r--arch/m68k/include/asm/cache_mm.h (renamed from include/asm-m68k/cache.h)0
-rw-r--r--arch/m68k/include/asm/cache_no.h (renamed from arch/m68knommu/include/asm/cache.h)0
-rw-r--r--arch/m68k/include/asm/cachectl.h (renamed from include/asm-m68k/cachectl.h)0
-rw-r--r--arch/m68k/include/asm/cacheflush.h5
-rw-r--r--arch/m68k/include/asm/cacheflush_mm.h (renamed from include/asm-m68k/cacheflush.h)0
-rw-r--r--arch/m68k/include/asm/cacheflush_no.h (renamed from arch/m68knommu/include/asm/cacheflush.h)0
-rw-r--r--arch/m68k/include/asm/checksum.h5
-rw-r--r--arch/m68k/include/asm/checksum_mm.h (renamed from include/asm-m68k/checksum.h)0
-rw-r--r--arch/m68k/include/asm/checksum_no.h (renamed from arch/m68knommu/include/asm/checksum.h)0
-rw-r--r--arch/m68k/include/asm/coldfire.h (renamed from arch/m68knommu/include/asm/coldfire.h)0
-rw-r--r--arch/m68k/include/asm/commproc.h (renamed from arch/m68knommu/include/asm/commproc.h)0
-rw-r--r--arch/m68k/include/asm/contregs.h (renamed from include/asm-m68k/contregs.h)0
-rw-r--r--arch/m68k/include/asm/cputime.h (renamed from include/asm-m68k/cputime.h)0
-rw-r--r--arch/m68k/include/asm/current.h5
-rw-r--r--arch/m68k/include/asm/current_mm.h (renamed from include/asm-m68k/current.h)0
-rw-r--r--arch/m68k/include/asm/current_no.h (renamed from arch/m68knommu/include/asm/current.h)0
-rw-r--r--arch/m68k/include/asm/dbg.h (renamed from arch/m68knommu/include/asm/dbg.h)0
-rw-r--r--arch/m68k/include/asm/delay.h5
-rw-r--r--arch/m68k/include/asm/delay_mm.h (renamed from include/asm-m68k/delay.h)0
-rw-r--r--arch/m68k/include/asm/delay_no.h (renamed from arch/m68knommu/include/asm/delay.h)0
-rw-r--r--arch/m68k/include/asm/device.h (renamed from arch/m68knommu/include/asm/device.h)0
-rw-r--r--arch/m68k/include/asm/div64.h5
-rw-r--r--arch/m68k/include/asm/div64_mm.h (renamed from include/asm-m68k/div64.h)0
-rw-r--r--arch/m68k/include/asm/div64_no.h (renamed from arch/m68knommu/include/asm/div64.h)0
-rw-r--r--arch/m68k/include/asm/dma-mapping.h5
-rw-r--r--arch/m68k/include/asm/dma-mapping_mm.h (renamed from include/asm-m68k/dma-mapping.h)0
-rw-r--r--arch/m68k/include/asm/dma-mapping_no.h (renamed from arch/m68knommu/include/asm/dma-mapping.h)0
-rw-r--r--arch/m68k/include/asm/dma.h5
-rw-r--r--arch/m68k/include/asm/dma_mm.h (renamed from include/asm-m68k/dma.h)0
-rw-r--r--arch/m68k/include/asm/dma_no.h (renamed from arch/m68knommu/include/asm/dma.h)0
-rw-r--r--arch/m68k/include/asm/dsp56k.h (renamed from include/asm-m68k/dsp56k.h)0
-rw-r--r--arch/m68k/include/asm/dvma.h (renamed from include/asm-m68k/dvma.h)0
-rw-r--r--arch/m68k/include/asm/elf.h5
-rw-r--r--arch/m68k/include/asm/elf_mm.h (renamed from include/asm-m68k/elf.h)0
-rw-r--r--arch/m68k/include/asm/elf_no.h (renamed from arch/m68knommu/include/asm/elf.h)0
-rw-r--r--arch/m68k/include/asm/elia.h (renamed from arch/m68knommu/include/asm/elia.h)0
-rw-r--r--arch/m68k/include/asm/emergency-restart.h (renamed from arch/m68knommu/include/asm/emergency-restart.h)0
-rw-r--r--arch/m68k/include/asm/entry.h5
-rw-r--r--arch/m68k/include/asm/entry_mm.h (renamed from include/asm-m68k/entry.h)0
-rw-r--r--arch/m68k/include/asm/entry_no.h (renamed from arch/m68knommu/include/asm/entry.h)0
-rw-r--r--arch/m68k/include/asm/errno.h (renamed from include/asm-m68k/errno.h)0
-rw-r--r--arch/m68k/include/asm/fb.h5
-rw-r--r--arch/m68k/include/asm/fb_mm.h (renamed from include/asm-m68k/fb.h)0
-rw-r--r--arch/m68k/include/asm/fb_no.h (renamed from arch/m68knommu/include/asm/fb.h)0
-rw-r--r--arch/m68k/include/asm/fbio.h (renamed from include/asm-m68k/fbio.h)0
-rw-r--r--arch/m68k/include/asm/fcntl.h (renamed from include/asm-m68k/fcntl.h)0
-rw-r--r--arch/m68k/include/asm/flat.h (renamed from arch/m68knommu/include/asm/flat.h)0
-rw-r--r--arch/m68k/include/asm/floppy.h (renamed from include/asm-m68k/floppy.h)0
-rw-r--r--arch/m68k/include/asm/fpu.h5
-rw-r--r--arch/m68k/include/asm/fpu_mm.h (renamed from include/asm-m68k/fpu.h)0
-rw-r--r--arch/m68k/include/asm/fpu_no.h (renamed from arch/m68knommu/include/asm/fpu.h)0
-rw-r--r--arch/m68k/include/asm/futex.h (renamed from arch/m68knommu/include/asm/futex.h)0
-rw-r--r--arch/m68k/include/asm/hardirq.h5
-rw-r--r--arch/m68k/include/asm/hardirq_mm.h (renamed from include/asm-m68k/hardirq.h)0
-rw-r--r--arch/m68k/include/asm/hardirq_no.h (renamed from arch/m68knommu/include/asm/hardirq.h)0
-rw-r--r--arch/m68k/include/asm/hp300hw.h (renamed from include/asm-m68k/hp300hw.h)0
-rw-r--r--arch/m68k/include/asm/hw_irq.h5
-rw-r--r--arch/m68k/include/asm/hw_irq_mm.h (renamed from include/asm-m68k/hw_irq.h)0
-rw-r--r--arch/m68k/include/asm/hw_irq_no.h (renamed from arch/m68knommu/include/asm/hw_irq.h)0
-rw-r--r--arch/m68k/include/asm/hwtest.h (renamed from include/asm-m68k/hwtest.h)0
-rw-r--r--arch/m68k/include/asm/ide.h (renamed from include/asm-m68k/ide.h)0
-rw-r--r--arch/m68k/include/asm/idprom.h (renamed from include/asm-m68k/idprom.h)0
-rw-r--r--arch/m68k/include/asm/intersil.h (renamed from include/asm-m68k/intersil.h)0
-rw-r--r--arch/m68k/include/asm/io.h5
-rw-r--r--arch/m68k/include/asm/io_mm.h (renamed from include/asm-m68k/io.h)0
-rw-r--r--arch/m68k/include/asm/io_no.h (renamed from arch/m68knommu/include/asm/io.h)0
-rw-r--r--arch/m68k/include/asm/ioctl.h (renamed from arch/m68knommu/include/asm/ioctl.h)0
-rw-r--r--arch/m68k/include/asm/ioctls.h (renamed from include/asm-m68k/ioctls.h)0
-rw-r--r--arch/m68k/include/asm/ipcbuf.h (renamed from include/asm-m68k/ipcbuf.h)0
-rw-r--r--arch/m68k/include/asm/irq.h5
-rw-r--r--arch/m68k/include/asm/irq_mm.h (renamed from include/asm-m68k/irq.h)0
-rw-r--r--arch/m68k/include/asm/irq_no.h (renamed from arch/m68knommu/include/asm/irq.h)0
-rw-r--r--arch/m68k/include/asm/irq_regs.h (renamed from arch/m68knommu/include/asm/irq_regs.h)0
-rw-r--r--arch/m68k/include/asm/kdebug.h (renamed from arch/m68knommu/include/asm/kdebug.h)0
-rw-r--r--arch/m68k/include/asm/kmap_types.h5
-rw-r--r--arch/m68k/include/asm/kmap_types_mm.h (renamed from include/asm-m68k/kmap_types.h)0
-rw-r--r--arch/m68k/include/asm/kmap_types_no.h (renamed from arch/m68knommu/include/asm/kmap_types.h)0
-rw-r--r--arch/m68k/include/asm/linkage.h (renamed from include/asm-m68k/linkage.h)0
-rw-r--r--arch/m68k/include/asm/local.h (renamed from include/asm-m68k/local.h)0
-rw-r--r--arch/m68k/include/asm/m5206sim.h (renamed from arch/m68knommu/include/asm/m5206sim.h)0
-rw-r--r--arch/m68k/include/asm/m520xsim.h (renamed from arch/m68knommu/include/asm/m520xsim.h)0
-rw-r--r--arch/m68k/include/asm/m523xsim.h (renamed from arch/m68knommu/include/asm/m523xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5249sim.h (renamed from arch/m68knommu/include/asm/m5249sim.h)0
-rw-r--r--arch/m68k/include/asm/m5272sim.h (renamed from arch/m68knommu/include/asm/m5272sim.h)0
-rw-r--r--arch/m68k/include/asm/m527xsim.h (renamed from arch/m68knommu/include/asm/m527xsim.h)0
-rw-r--r--arch/m68k/include/asm/m528xsim.h (renamed from arch/m68knommu/include/asm/m528xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5307sim.h (renamed from arch/m68knommu/include/asm/m5307sim.h)0
-rw-r--r--arch/m68k/include/asm/m532xsim.h (renamed from arch/m68knommu/include/asm/m532xsim.h)0
-rw-r--r--arch/m68k/include/asm/m5407sim.h (renamed from arch/m68knommu/include/asm/m5407sim.h)0
-rw-r--r--arch/m68k/include/asm/m68360.h (renamed from arch/m68knommu/include/asm/m68360.h)0
-rw-r--r--arch/m68k/include/asm/m68360_enet.h (renamed from arch/m68knommu/include/asm/m68360_enet.h)0
-rw-r--r--arch/m68k/include/asm/m68360_pram.h (renamed from arch/m68knommu/include/asm/m68360_pram.h)0
-rw-r--r--arch/m68k/include/asm/m68360_quicc.h (renamed from arch/m68knommu/include/asm/m68360_quicc.h)0
-rw-r--r--arch/m68k/include/asm/m68360_regs.h (renamed from arch/m68knommu/include/asm/m68360_regs.h)0
-rw-r--r--arch/m68k/include/asm/mac_asc.h (renamed from include/asm-m68k/mac_asc.h)0
-rw-r--r--arch/m68k/include/asm/mac_baboon.h (renamed from include/asm-m68k/mac_baboon.h)0
-rw-r--r--arch/m68k/include/asm/mac_iop.h (renamed from include/asm-m68k/mac_iop.h)0
-rw-r--r--arch/m68k/include/asm/mac_mouse.h (renamed from include/asm-m68k/mac_mouse.h)0
-rw-r--r--arch/m68k/include/asm/mac_oss.h (renamed from include/asm-m68k/mac_oss.h)0
-rw-r--r--arch/m68k/include/asm/mac_psc.h (renamed from include/asm-m68k/mac_psc.h)0
-rw-r--r--arch/m68k/include/asm/mac_via.h (renamed from include/asm-m68k/mac_via.h)0
-rw-r--r--arch/m68k/include/asm/machdep.h5
-rw-r--r--arch/m68k/include/asm/machdep_mm.h (renamed from include/asm-m68k/machdep.h)0
-rw-r--r--arch/m68k/include/asm/machdep_no.h (renamed from arch/m68knommu/include/asm/machdep.h)0
-rw-r--r--arch/m68k/include/asm/machines.h (renamed from include/asm-m68k/machines.h)0
-rw-r--r--arch/m68k/include/asm/machw.h (renamed from include/asm-m68k/machw.h)0
-rw-r--r--arch/m68k/include/asm/macintosh.h (renamed from include/asm-m68k/macintosh.h)0
-rw-r--r--arch/m68k/include/asm/macints.h (renamed from include/asm-m68k/macints.h)0
-rw-r--r--arch/m68k/include/asm/math-emu.h (renamed from include/asm-m68k/math-emu.h)0
-rw-r--r--arch/m68k/include/asm/mc146818rtc.h5
-rw-r--r--arch/m68k/include/asm/mc146818rtc_mm.h (renamed from include/asm-m68k/mc146818rtc.h)0
-rw-r--r--arch/m68k/include/asm/mc146818rtc_no.h (renamed from arch/m68knommu/include/asm/mc146818rtc.h)0
-rw-r--r--arch/m68k/include/asm/mcfcache.h (renamed from arch/m68knommu/include/asm/mcfcache.h)0
-rw-r--r--arch/m68k/include/asm/mcfdma.h (renamed from arch/m68knommu/include/asm/mcfdma.h)0
-rw-r--r--arch/m68k/include/asm/mcfmbus.h (renamed from arch/m68knommu/include/asm/mcfmbus.h)0
-rw-r--r--arch/m68k/include/asm/mcfne.h (renamed from arch/m68knommu/include/asm/mcfne.h)0
-rw-r--r--arch/m68k/include/asm/mcfpci.h (renamed from arch/m68knommu/include/asm/mcfpci.h)0
-rw-r--r--arch/m68k/include/asm/mcfpit.h (renamed from arch/m68knommu/include/asm/mcfpit.h)0
-rw-r--r--arch/m68k/include/asm/mcfsim.h (renamed from arch/m68knommu/include/asm/mcfsim.h)0
-rw-r--r--arch/m68k/include/asm/mcfsmc.h (renamed from arch/m68knommu/include/asm/mcfsmc.h)0
-rw-r--r--arch/m68k/include/asm/mcftimer.h (renamed from arch/m68knommu/include/asm/mcftimer.h)0
-rw-r--r--arch/m68k/include/asm/mcfuart.h (renamed from arch/m68knommu/include/asm/mcfuart.h)0
-rw-r--r--arch/m68k/include/asm/mcfwdebug.h (renamed from arch/m68knommu/include/asm/mcfwdebug.h)0
-rw-r--r--arch/m68k/include/asm/md.h (renamed from include/asm-m68k/md.h)0
-rw-r--r--arch/m68k/include/asm/mman.h (renamed from include/asm-m68k/mman.h)0
-rw-r--r--arch/m68k/include/asm/mmu.h5
-rw-r--r--arch/m68k/include/asm/mmu_context.h5
-rw-r--r--arch/m68k/include/asm/mmu_context_mm.h (renamed from include/asm-m68k/mmu_context.h)0
-rw-r--r--arch/m68k/include/asm/mmu_context_no.h (renamed from arch/m68knommu/include/asm/mmu_context.h)0
-rw-r--r--arch/m68k/include/asm/mmu_mm.h (renamed from include/asm-m68k/mmu.h)0
-rw-r--r--arch/m68k/include/asm/mmu_no.h (renamed from arch/m68knommu/include/asm/mmu.h)0
-rw-r--r--arch/m68k/include/asm/mmzone.h (renamed from include/asm-m68k/mmzone.h)0
-rw-r--r--arch/m68k/include/asm/module.h5
-rw-r--r--arch/m68k/include/asm/module_mm.h (renamed from include/asm-m68k/module.h)0
-rw-r--r--arch/m68k/include/asm/module_no.h (renamed from arch/m68knommu/include/asm/module.h)0
-rw-r--r--arch/m68k/include/asm/motorola_pgalloc.h (renamed from include/asm-m68k/motorola_pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/motorola_pgtable.h (renamed from include/asm-m68k/motorola_pgtable.h)0
-rw-r--r--arch/m68k/include/asm/movs.h (renamed from include/asm-m68k/movs.h)0
-rw-r--r--arch/m68k/include/asm/msgbuf.h (renamed from include/asm-m68k/msgbuf.h)0
-rw-r--r--arch/m68k/include/asm/mutex.h (renamed from arch/m68knommu/include/asm/mutex.h)0
-rw-r--r--arch/m68k/include/asm/mvme147hw.h (renamed from include/asm-m68k/mvme147hw.h)0
-rw-r--r--arch/m68k/include/asm/mvme16xhw.h (renamed from include/asm-m68k/mvme16xhw.h)0
-rw-r--r--arch/m68k/include/asm/nettel.h (renamed from arch/m68knommu/include/asm/nettel.h)0
-rw-r--r--arch/m68k/include/asm/nubus.h (renamed from include/asm-m68k/nubus.h)0
-rw-r--r--arch/m68k/include/asm/openprom.h (renamed from include/asm-m68k/openprom.h)0
-rw-r--r--arch/m68k/include/asm/oplib.h (renamed from include/asm-m68k/oplib.h)0
-rw-r--r--arch/m68k/include/asm/page.h5
-rw-r--r--arch/m68k/include/asm/page_mm.h (renamed from include/asm-m68k/page.h)0
-rw-r--r--arch/m68k/include/asm/page_no.h (renamed from arch/m68knommu/include/asm/page.h)0
-rw-r--r--arch/m68k/include/asm/page_offset.h5
-rw-r--r--arch/m68k/include/asm/page_offset_mm.h (renamed from include/asm-m68k/page_offset.h)0
-rw-r--r--arch/m68k/include/asm/page_offset_no.h (renamed from arch/m68knommu/include/asm/page_offset.h)0
-rw-r--r--arch/m68k/include/asm/param.h5
-rw-r--r--arch/m68k/include/asm/param_mm.h (renamed from include/asm-m68k/param.h)0
-rw-r--r--arch/m68k/include/asm/param_no.h (renamed from arch/m68knommu/include/asm/param.h)0
-rw-r--r--arch/m68k/include/asm/parport.h (renamed from include/asm-m68k/parport.h)0
-rw-r--r--arch/m68k/include/asm/pci.h5
-rw-r--r--arch/m68k/include/asm/pci_mm.h (renamed from include/asm-m68k/pci.h)0
-rw-r--r--arch/m68k/include/asm/pci_no.h (renamed from arch/m68knommu/include/asm/pci.h)2
-rw-r--r--arch/m68k/include/asm/percpu.h (renamed from include/asm-m68k/percpu.h)0
-rw-r--r--arch/m68k/include/asm/pgalloc.h5
-rw-r--r--arch/m68k/include/asm/pgalloc_mm.h (renamed from include/asm-m68k/pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/pgalloc_no.h (renamed from arch/m68knommu/include/asm/pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/pgtable.h5
-rw-r--r--arch/m68k/include/asm/pgtable_mm.h (renamed from include/asm-m68k/pgtable.h)0
-rw-r--r--arch/m68k/include/asm/pgtable_no.h (renamed from arch/m68knommu/include/asm/pgtable.h)0
-rw-r--r--arch/m68k/include/asm/poll.h (renamed from include/asm-m68k/poll.h)0
-rw-r--r--arch/m68k/include/asm/posix_types.h (renamed from include/asm-m68k/posix_types.h)0
-rw-r--r--arch/m68k/include/asm/processor.h5
-rw-r--r--arch/m68k/include/asm/processor_mm.h (renamed from include/asm-m68k/processor.h)0
-rw-r--r--arch/m68k/include/asm/processor_no.h (renamed from arch/m68knommu/include/asm/processor.h)0
-rw-r--r--arch/m68k/include/asm/ptrace.h5
-rw-r--r--arch/m68k/include/asm/ptrace_mm.h (renamed from include/asm-m68k/ptrace.h)0
-rw-r--r--arch/m68k/include/asm/ptrace_no.h (renamed from arch/m68knommu/include/asm/ptrace.h)0
-rw-r--r--arch/m68k/include/asm/q40_master.h (renamed from include/asm-m68k/q40_master.h)0
-rw-r--r--arch/m68k/include/asm/q40ints.h (renamed from include/asm-m68k/q40ints.h)0
-rw-r--r--arch/m68k/include/asm/quicc_simple.h (renamed from arch/m68knommu/include/asm/quicc_simple.h)0
-rw-r--r--arch/m68k/include/asm/raw_io.h (renamed from include/asm-m68k/raw_io.h)0
-rw-r--r--arch/m68k/include/asm/resource.h (renamed from include/asm-m68k/resource.h)0
-rw-r--r--arch/m68k/include/asm/rtc.h (renamed from include/asm-m68k/rtc.h)0
-rw-r--r--arch/m68k/include/asm/sbus.h (renamed from include/asm-m68k/sbus.h)0
-rw-r--r--arch/m68k/include/asm/scatterlist.h5
-rw-r--r--arch/m68k/include/asm/scatterlist_mm.h (renamed from include/asm-m68k/scatterlist.h)0
-rw-r--r--arch/m68k/include/asm/scatterlist_no.h (renamed from arch/m68knommu/include/asm/scatterlist.h)0
-rw-r--r--arch/m68k/include/asm/sections.h (renamed from include/asm-m68k/sections.h)0
-rw-r--r--arch/m68k/include/asm/segment.h5
-rw-r--r--arch/m68k/include/asm/segment_mm.h (renamed from include/asm-m68k/segment.h)0
-rw-r--r--arch/m68k/include/asm/segment_no.h (renamed from arch/m68knommu/include/asm/segment.h)0
-rw-r--r--arch/m68k/include/asm/sembuf.h (renamed from include/asm-m68k/sembuf.h)0
-rw-r--r--arch/m68k/include/asm/serial.h (renamed from include/asm-m68k/serial.h)0
-rw-r--r--arch/m68k/include/asm/setup.h5
-rw-r--r--arch/m68k/include/asm/setup_mm.h (renamed from include/asm-m68k/setup.h)0
-rw-r--r--arch/m68k/include/asm/setup_no.h (renamed from arch/m68knommu/include/asm/setup.h)2
-rw-r--r--arch/m68k/include/asm/shm.h (renamed from include/asm-m68k/shm.h)0
-rw-r--r--arch/m68k/include/asm/shmbuf.h (renamed from include/asm-m68k/shmbuf.h)0
-rw-r--r--arch/m68k/include/asm/shmparam.h (renamed from include/asm-m68k/shmparam.h)0
-rw-r--r--arch/m68k/include/asm/sigcontext.h5
-rw-r--r--arch/m68k/include/asm/sigcontext_mm.h (renamed from include/asm-m68k/sigcontext.h)0
-rw-r--r--arch/m68k/include/asm/sigcontext_no.h (renamed from arch/m68knommu/include/asm/sigcontext.h)0
-rw-r--r--arch/m68k/include/asm/siginfo.h5
-rw-r--r--arch/m68k/include/asm/siginfo_mm.h (renamed from include/asm-m68k/siginfo.h)0
-rw-r--r--arch/m68k/include/asm/siginfo_no.h (renamed from arch/m68knommu/include/asm/siginfo.h)0
-rw-r--r--arch/m68k/include/asm/signal.h5
-rw-r--r--arch/m68k/include/asm/signal_mm.h (renamed from include/asm-m68k/signal.h)0
-rw-r--r--arch/m68k/include/asm/signal_no.h (renamed from arch/m68knommu/include/asm/signal.h)0
-rw-r--r--arch/m68k/include/asm/smp.h (renamed from arch/m68knommu/include/asm/smp.h)0
-rw-r--r--arch/m68k/include/asm/socket.h (renamed from include/asm-m68k/socket.h)0
-rw-r--r--arch/m68k/include/asm/sockios.h (renamed from include/asm-m68k/sockios.h)0
-rw-r--r--arch/m68k/include/asm/spinlock.h (renamed from include/asm-m68k/spinlock.h)0
-rw-r--r--arch/m68k/include/asm/stat.h (renamed from include/asm-m68k/stat.h)0
-rw-r--r--arch/m68k/include/asm/statfs.h (renamed from include/asm-m68k/statfs.h)0
-rw-r--r--arch/m68k/include/asm/string.h5
-rw-r--r--arch/m68k/include/asm/string_mm.h (renamed from include/asm-m68k/string.h)0
-rw-r--r--arch/m68k/include/asm/string_no.h (renamed from arch/m68knommu/include/asm/string.h)0
-rw-r--r--arch/m68k/include/asm/sun3-head.h (renamed from include/asm-m68k/sun3-head.h)0
-rw-r--r--arch/m68k/include/asm/sun3_pgalloc.h (renamed from include/asm-m68k/sun3_pgalloc.h)0
-rw-r--r--arch/m68k/include/asm/sun3_pgtable.h (renamed from include/asm-m68k/sun3_pgtable.h)0
-rw-r--r--arch/m68k/include/asm/sun3ints.h (renamed from include/asm-m68k/sun3ints.h)0
-rw-r--r--arch/m68k/include/asm/sun3mmu.h (renamed from include/asm-m68k/sun3mmu.h)0
-rw-r--r--arch/m68k/include/asm/sun3x.h (renamed from include/asm-m68k/sun3x.h)0
-rw-r--r--arch/m68k/include/asm/sun3xflop.h (renamed from include/asm-m68k/sun3xflop.h)0
-rw-r--r--arch/m68k/include/asm/sun3xprom.h (renamed from include/asm-m68k/sun3xprom.h)0
-rw-r--r--arch/m68k/include/asm/suspend.h (renamed from include/asm-m68k/suspend.h)0
-rw-r--r--arch/m68k/include/asm/swab.h5
-rw-r--r--arch/m68k/include/asm/swab_mm.h (renamed from include/asm-m68k/swab.h)0
-rw-r--r--arch/m68k/include/asm/swab_no.h (renamed from arch/m68knommu/include/asm/swab.h)0
-rw-r--r--arch/m68k/include/asm/system.h5
-rw-r--r--arch/m68k/include/asm/system_mm.h (renamed from include/asm-m68k/system.h)0
-rw-r--r--arch/m68k/include/asm/system_no.h (renamed from arch/m68knommu/include/asm/system.h)0
-rw-r--r--arch/m68k/include/asm/termbits.h (renamed from include/asm-m68k/termbits.h)0
-rw-r--r--arch/m68k/include/asm/termios.h (renamed from include/asm-m68k/termios.h)0
-rw-r--r--arch/m68k/include/asm/thread_info.h5
-rw-r--r--arch/m68k/include/asm/thread_info_mm.h (renamed from include/asm-m68k/thread_info.h)0
-rw-r--r--arch/m68k/include/asm/thread_info_no.h (renamed from arch/m68knommu/include/asm/thread_info.h)0
-rw-r--r--arch/m68k/include/asm/timex.h5
-rw-r--r--arch/m68k/include/asm/timex_mm.h (renamed from include/asm-m68k/timex.h)0
-rw-r--r--arch/m68k/include/asm/timex_no.h (renamed from arch/m68knommu/include/asm/timex.h)0
-rw-r--r--arch/m68k/include/asm/tlb.h (renamed from include/asm-m68k/tlb.h)0
-rw-r--r--arch/m68k/include/asm/tlbflush.h5
-rw-r--r--arch/m68k/include/asm/tlbflush_mm.h (renamed from include/asm-m68k/tlbflush.h)0
-rw-r--r--arch/m68k/include/asm/tlbflush_no.h (renamed from arch/m68knommu/include/asm/tlbflush.h)0
-rw-r--r--arch/m68k/include/asm/topology.h (renamed from arch/m68knommu/include/asm/topology.h)0
-rw-r--r--arch/m68k/include/asm/traps.h5
-rw-r--r--arch/m68k/include/asm/traps_mm.h (renamed from include/asm-m68k/traps.h)0
-rw-r--r--arch/m68k/include/asm/traps_no.h (renamed from arch/m68knommu/include/asm/traps.h)0
-rw-r--r--arch/m68k/include/asm/types.h (renamed from include/asm-m68k/types.h)0
-rw-r--r--arch/m68k/include/asm/uaccess.h5
-rw-r--r--arch/m68k/include/asm/uaccess_mm.h (renamed from include/asm-m68k/uaccess.h)0
-rw-r--r--arch/m68k/include/asm/uaccess_no.h (renamed from arch/m68knommu/include/asm/uaccess.h)0
-rw-r--r--arch/m68k/include/asm/ucontext.h5
-rw-r--r--arch/m68k/include/asm/ucontext_mm.h (renamed from include/asm-m68k/ucontext.h)0
-rw-r--r--arch/m68k/include/asm/ucontext_no.h (renamed from arch/m68knommu/include/asm/ucontext.h)0
-rw-r--r--arch/m68k/include/asm/unaligned.h5
-rw-r--r--arch/m68k/include/asm/unaligned_mm.h (renamed from include/asm-m68k/unaligned.h)0
-rw-r--r--arch/m68k/include/asm/unaligned_no.h (renamed from arch/m68knommu/include/asm/unaligned.h)0
-rw-r--r--arch/m68k/include/asm/unistd.h5
-rw-r--r--arch/m68k/include/asm/unistd_mm.h (renamed from include/asm-m68k/unistd.h)0
-rw-r--r--arch/m68k/include/asm/unistd_no.h (renamed from arch/m68knommu/include/asm/unistd.h)0
-rw-r--r--arch/m68k/include/asm/user.h (renamed from include/asm-m68k/user.h)0
-rw-r--r--arch/m68k/include/asm/virtconvert.h (renamed from include/asm-m68k/virtconvert.h)0
-rw-r--r--arch/m68k/include/asm/xor.h (renamed from include/asm-m68k/xor.h)0
-rw-r--r--arch/m68k/include/asm/zorro.h (renamed from include/asm-m68k/zorro.h)0
-rw-r--r--arch/m68knommu/include/asm/Kbuild1
-rw-r--r--arch/m68knommu/include/asm/byteorder.h6
-rw-r--r--arch/m68knommu/include/asm/cachectl.h1
-rw-r--r--arch/m68knommu/include/asm/cputime.h6
-rw-r--r--arch/m68knommu/include/asm/errno.h1
-rw-r--r--arch/m68knommu/include/asm/fcntl.h1
-rw-r--r--arch/m68knommu/include/asm/hwtest.h1
-rw-r--r--arch/m68knommu/include/asm/ioctls.h1
-rw-r--r--arch/m68knommu/include/asm/ipcbuf.h1
-rw-r--r--arch/m68knommu/include/asm/linkage.h1
-rw-r--r--arch/m68knommu/include/asm/local.h6
-rw-r--r--arch/m68knommu/include/asm/math-emu.h1
-rw-r--r--arch/m68knommu/include/asm/md.h1
-rw-r--r--arch/m68knommu/include/asm/mman.h1
-rw-r--r--arch/m68knommu/include/asm/movs.h1
-rw-r--r--arch/m68knommu/include/asm/msgbuf.h1
-rw-r--r--arch/m68knommu/include/asm/openprom.h1
-rw-r--r--arch/m68knommu/include/asm/oplib.h1
-rw-r--r--arch/m68knommu/include/asm/percpu.h6
-rw-r--r--arch/m68knommu/include/asm/poll.h1
-rw-r--r--arch/m68knommu/include/asm/posix_types.h1
-rw-r--r--arch/m68knommu/include/asm/resource.h1
-rw-r--r--arch/m68knommu/include/asm/rtc.h1
-rw-r--r--arch/m68knommu/include/asm/sections.h7
-rw-r--r--arch/m68knommu/include/asm/sembuf.h1
-rw-r--r--arch/m68knommu/include/asm/shm.h1
-rw-r--r--arch/m68knommu/include/asm/shmbuf.h1
-rw-r--r--arch/m68knommu/include/asm/shmparam.h1
-rw-r--r--arch/m68knommu/include/asm/socket.h1
-rw-r--r--arch/m68knommu/include/asm/sockios.h1
-rw-r--r--arch/m68knommu/include/asm/spinlock.h1
-rw-r--r--arch/m68knommu/include/asm/stat.h1
-rw-r--r--arch/m68knommu/include/asm/statfs.h1
-rw-r--r--arch/m68knommu/include/asm/termbits.h1
-rw-r--r--arch/m68knommu/include/asm/termios.h1
-rw-r--r--arch/m68knommu/include/asm/tlb.h1
-rw-r--r--arch/m68knommu/include/asm/types.h1
-rw-r--r--arch/m68knommu/include/asm/user.h1
-rw-r--r--arch/mips/configs/bigsur_defconfig2
-rw-r--r--arch/mips/configs/emma2rh_defconfig2
-rw-r--r--arch/mips/configs/fulong_defconfig4
-rw-r--r--arch/mips/configs/msp71xx_defconfig2
-rw-r--r--arch/mips/configs/mtx1_defconfig4
-rw-r--r--arch/mips/configs/pnx8335-stb225_defconfig4
-rw-r--r--arch/mips/configs/rbtx49xx_defconfig2
-rw-r--r--arch/powerpc/configs/44x/sam440ep_defconfig4
-rw-r--r--arch/powerpc/configs/44x/warp_defconfig4
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig4
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig4
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig4
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig4
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig6
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig4
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig4
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig4
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig4
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig4
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig4
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig4
-rw-r--r--arch/powerpc/configs/c2k_defconfig4
-rw-r--r--arch/powerpc/configs/cell_defconfig2
-rw-r--r--arch/powerpc/configs/celleb_defconfig2
-rw-r--r--arch/powerpc/configs/chrp32_defconfig4
-rw-r--r--arch/powerpc/configs/g5_defconfig4
-rw-r--r--arch/powerpc/configs/linkstation_defconfig4
-rw-r--r--arch/powerpc/configs/maple_defconfig4
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig4
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig4
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig4
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig4
-rw-r--r--arch/powerpc/configs/pasemi_defconfig2
-rw-r--r--arch/powerpc/configs/pmac32_defconfig4
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig4
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig4
-rw-r--r--arch/powerpc/configs/ppc64_defconfig4
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig4
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig4
-rw-r--r--arch/powerpc/configs/pseries_defconfig4
-rw-r--r--arch/powerpc/configs/storcenter_defconfig4
-rw-r--r--arch/s390/include/asm/elf.h16
-rw-r--r--arch/s390/kernel/compat_wrapper.S38
-rw-r--r--arch/s390/kernel/syscalls.S12
-rw-r--r--arch/s390/kernel/time.c6
-rw-r--r--arch/s390/kernel/vtime.c4
-rw-r--r--arch/sh/Kconfig63
-rw-r--r--arch/sh/boards/board-ap325rxa.c53
-rw-r--r--arch/sh/boards/board-magicpanelr2.c23
-rw-r--r--arch/sh/boards/board-sh7785lcr.c1
-rw-r--r--arch/sh/boards/mach-highlander/setup.c1
-rw-r--r--arch/sh/boards/mach-hp6xx/setup.c2
-rw-r--r--arch/sh/boards/mach-migor/setup.c171
-rw-r--r--arch/sh/boards/mach-rsk/devices-rsk7203.c24
-rw-r--r--arch/sh/boards/mach-x3proto/setup.c1
-rw-r--r--arch/sh/configs/ap325rxa_defconfig355
-rw-r--r--arch/sh/configs/cayman_defconfig4
-rw-r--r--arch/sh/configs/dreamcast_defconfig60
-rw-r--r--arch/sh/configs/edosk7705_defconfig18
-rw-r--r--arch/sh/configs/edosk7760_defconfig87
-rw-r--r--arch/sh/configs/hp6xx_defconfig88
-rw-r--r--arch/sh/configs/landisk_defconfig76
-rw-r--r--arch/sh/configs/lboxre2_defconfig63
-rw-r--r--arch/sh/configs/magicpanelr2_defconfig119
-rw-r--r--arch/sh/configs/microdev_defconfig63
-rw-r--r--arch/sh/configs/migor_defconfig99
-rw-r--r--arch/sh/configs/r7780mp_defconfig89
-rw-r--r--arch/sh/configs/r7785rp_defconfig134
-rw-r--r--arch/sh/configs/rsk7201_defconfig26
-rw-r--r--arch/sh/configs/rsk7203_defconfig88
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig89
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig89
-rw-r--r--arch/sh/configs/sdk7780_defconfig101
-rw-r--r--arch/sh/configs/se7206_defconfig75
-rw-r--r--arch/sh/configs/se7343_defconfig65
-rw-r--r--arch/sh/configs/se7619_defconfig47
-rw-r--r--arch/sh/configs/se7705_defconfig60
-rw-r--r--arch/sh/configs/se7712_defconfig79
-rw-r--r--arch/sh/configs/se7721_defconfig85
-rw-r--r--arch/sh/configs/se7722_defconfig61
-rw-r--r--arch/sh/configs/se7750_defconfig61
-rw-r--r--arch/sh/configs/se7751_defconfig56
-rw-r--r--arch/sh/configs/se7780_defconfig87
-rw-r--r--arch/sh/configs/sh03_defconfig82
-rw-r--r--arch/sh/configs/sh7710voipgw_defconfig55
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig71
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig96
-rw-r--r--arch/sh/configs/shmin_defconfig54
-rw-r--r--arch/sh/configs/shx3_defconfig83
-rw-r--r--arch/sh/configs/snapgear_defconfig53
-rw-r--r--arch/sh/configs/systemh_defconfig50
-rw-r--r--arch/sh/configs/titan_defconfig90
-rw-r--r--arch/sh/configs/ul2_defconfig69
-rw-r--r--arch/sh/include/asm/posix_types_32.h8
-rw-r--r--arch/sh/include/asm/posix_types_64.h8
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7343.c31
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c2
-rw-r--r--arch/sh/kernel/process_64.c2
-rw-r--r--arch/sh/kernel/traps_32.c9
-rw-r--r--arch/sh/mm/ioremap_64.c2
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/sparc/configs/sparc64_defconfig4
-rw-r--r--arch/sparc/kernel/central.c2
-rw-r--r--arch/sparc/kernel/cpu.c18
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c48
-rw-r--r--arch/sparc/kernel/syscalls.S2
-rw-r--r--arch/sparc/kernel/systbls.h3
-rw-r--r--arch/sparc/kernel/systbls_64.S16
-rw-r--r--arch/sparc/kernel/traps_64.c17
-rw-r--r--arch/sparc/lib/Makefile3
-rw-r--r--arch/x86/configs/i386_defconfig4
-rw-r--r--arch/x86/configs/x86_64_defconfig4
-rw-r--r--arch/x86/include/asm/io.h1
-rw-r--r--arch/x86/include/asm/msr-index.h29
-rw-r--r--arch/x86/include/asm/pgalloc.h1
-rw-r--r--arch/x86/include/asm/syscalls.h2
-rw-r--r--arch/x86/include/asm/timex.h13
-rw-r--r--arch/x86/kernel/cpu/intel.c13
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c12
-rw-r--r--arch/x86/kernel/hpet.c3
-rw-r--r--arch/x86/kernel/setup_percpu.c2
-rw-r--r--arch/x86/kernel/signal.c11
-rw-r--r--arch/x86/kernel/tlb_uv.c1
-rw-r--r--arch/x86/kernel/vmi_32.c2
-rw-r--r--arch/x86/lib/usercopy_32.c4
-rw-r--r--arch/x86/lib/usercopy_64.c4
-rw-r--r--arch/x86/mm/init_32.c48
-rw-r--r--arch/x86/mm/init_64.c2
-rw-r--r--arch/x86/mm/iomap_32.c10
-rw-r--r--arch/x86/mm/ioremap.c25
-rw-r--r--arch/x86/mm/pageattr.c49
-rw-r--r--arch/x86/mm/pat.c6
-rw-r--r--arch/x86/scripts/strip-symbols1
-rw-r--r--drivers/base/core.c6
-rw-r--r--drivers/char/hw_random/omap-rng.c2
-rw-r--r--drivers/dma/Kconfig19
-rw-r--r--drivers/dma/Makefile1
-rw-r--r--drivers/dma/dmaengine.c8
-rw-r--r--drivers/dma/dmatest.c35
-rw-r--r--drivers/dma/fsldma.c8
-rw-r--r--drivers/dma/ipu/Makefile1
-rw-r--r--drivers/dma/ipu/ipu_idmac.c1740
-rw-r--r--drivers/dma/ipu/ipu_intern.h176
-rw-r--r--drivers/dma/ipu/ipu_irq.c413
-rw-r--r--drivers/firmware/dell_rbu.c4
-rw-r--r--drivers/gpu/drm/drm_agpsupport.c3
-rw-r--r--drivers/gpu/drm/drm_crtc.c14
-rw-r--r--drivers/gpu/drm/drm_drv.c4
-rw-r--r--drivers/gpu/drm/drm_edid.c2
-rw-r--r--drivers/gpu/drm/drm_stub.c8
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c7
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c4
-rw-r--r--drivers/gpu/drm/i915/intel_i2c.c4
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c13
-rw-r--r--drivers/i2c/busses/i2c-acorn.c1
-rw-r--r--drivers/i2c/busses/i2c-ali1535.c1
-rw-r--r--drivers/i2c/busses/i2c-ali1563.c1
-rw-r--r--drivers/i2c/busses/i2c-ali15x3.c1
-rw-r--r--drivers/i2c/busses/i2c-amd756.c1
-rw-r--r--drivers/i2c/busses/i2c-amd8111.c1
-rw-r--r--drivers/i2c/busses/i2c-au1550.c1
-rw-r--r--drivers/i2c/busses/i2c-bfin-twi.c1
-rw-r--r--drivers/i2c/busses/i2c-elektor.c1
-rw-r--r--drivers/i2c/busses/i2c-hydra.c1
-rw-r--r--drivers/i2c/busses/i2c-i801.c1
-rw-r--r--drivers/i2c/busses/i2c-ibm_iic.c1
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c1
-rw-r--r--drivers/i2c/busses/i2c-ixp2000.c1
-rw-r--r--drivers/i2c/busses/i2c-mpc.c1
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c1
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c1
-rw-r--r--drivers/i2c/busses/i2c-parport-light.c1
-rw-r--r--drivers/i2c/busses/i2c-parport.c1
-rw-r--r--drivers/i2c/busses/i2c-pca-isa.c1
-rw-r--r--drivers/i2c/busses/i2c-piix4.c1
-rw-r--r--drivers/i2c/busses/i2c-sibyte.c2
-rw-r--r--drivers/i2c/busses/i2c-sis5595.c1
-rw-r--r--drivers/i2c/busses/i2c-sis630.c1
-rw-r--r--drivers/i2c/busses/i2c-sis96x.c1
-rw-r--r--drivers/i2c/busses/i2c-via.c1
-rw-r--r--drivers/i2c/busses/i2c-viapro.c1
-rw-r--r--drivers/i2c/busses/i2c-voodoo3.c2
-rw-r--r--drivers/i2c/busses/scx200_acb.c1
-rw-r--r--drivers/i2c/busses/scx200_i2c.c1
-rw-r--r--drivers/i2c/chips/Kconfig37
-rw-r--r--drivers/i2c/chips/Makefile2
-rw-r--r--drivers/ide/falconide.c2
-rw-r--r--drivers/ide/ide-probe.c3
-rw-r--r--drivers/ide/palm_bk3710.c11
-rw-r--r--drivers/ieee1394/pcilynx.c1
-rw-r--r--drivers/infiniband/hw/ehca/ehca_cq.c16
-rw-r--r--drivers/infiniband/hw/ehca/ehca_hca.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.c18
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c6
-rw-r--r--drivers/infiniband/hw/ehca/ehca_mcast.c4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_mrmw.c144
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qp.c32
-rw-r--r--drivers/infiniband/hw/ehca/ehca_reqs.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_sqp.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_tools.h2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_uverbs.c2
-rw-r--r--drivers/infiniband/hw/ehca/hcp_if.c56
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c28
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c27
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c2
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_vlan.c11
-rw-r--r--drivers/isdn/i4l/isdn_ppp.c2
-rw-r--r--drivers/misc/Kconfig9
-rw-r--r--drivers/misc/Makefile2
-rw-r--r--drivers/misc/eeprom/Kconfig59
-rw-r--r--drivers/misc/eeprom/Makefile4
-rw-r--r--drivers/misc/eeprom/at24.c (renamed from drivers/i2c/chips/at24.c)0
-rw-r--r--drivers/misc/eeprom/at25.c (renamed from drivers/spi/at25.c)0
-rw-r--r--drivers/misc/eeprom/eeprom.c (renamed from drivers/i2c/chips/eeprom.c)0
-rw-r--r--drivers/misc/eeprom/eeprom_93cx6.c (renamed from drivers/misc/eeprom_93cx6.c)0
-rw-r--r--drivers/mmc/host/Kconfig10
-rw-r--r--drivers/mmc/host/Makefile1
-rw-r--r--drivers/mmc/host/omap_hsmmc.c1242
-rw-r--r--drivers/mmc/host/s3cmci.c2
-rw-r--r--drivers/mtd/onenand/omap2.c6
-rw-r--r--drivers/net/arm/am79c961a.c20
-rw-r--r--drivers/net/bnx2x.h11
-rw-r--r--drivers/net/bnx2x_link.c64
-rw-r--r--drivers/net/bnx2x_main.c302
-rw-r--r--drivers/net/bnx2x_reg.h2
-rw-r--r--drivers/net/cxgb3/sge.c1
-rw-r--r--drivers/net/e1000e/82571.c6
-rw-r--r--drivers/net/e1000e/hw.h1
-rw-r--r--drivers/net/gianfar.c6
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c62
-rw-r--r--drivers/net/ixgbe/ixgbe_type.h3
-rw-r--r--drivers/net/korina.c15
-rw-r--r--drivers/net/macb.c8
-rw-r--r--drivers/net/mlx4/profile.c6
-rw-r--r--drivers/net/mv643xx_eth.c17
-rw-r--r--drivers/net/myri10ge/myri10ge.c15
-rw-r--r--drivers/net/netxen/netxen_nic.h12
-rw-r--r--drivers/net/netxen/netxen_nic_ethtool.c5
-rw-r--r--drivers/net/netxen/netxen_nic_main.c31
-rw-r--r--drivers/net/phy/mdio_bus.c8
-rw-r--r--drivers/net/phy/smsc.c12
-rw-r--r--drivers/net/tg3.c81
-rw-r--r--drivers/net/tg3.h1
-rw-r--r--drivers/net/usb/mcs7830.c20
-rw-r--r--drivers/net/via-velocity.c2
-rw-r--r--drivers/net/virtio_net.c3
-rw-r--r--drivers/net/wimax/i2400m/control.c2
-rw-r--r--drivers/net/wimax/i2400m/usb-rx.c9
-rw-r--r--drivers/net/wireless/ath9k/rc.c2
-rw-r--r--drivers/net/wireless/ath9k/regd_common.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-rs.c14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-hcmd.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c4
-rw-r--r--drivers/net/wireless/libertas/hostcmd.h91
-rw-r--r--drivers/net/wireless/orinoco/orinoco.c32
-rw-r--r--drivers/net/wireless/p54/p54common.c30
-rw-r--r--drivers/net/wireless/p54/p54usb.c41
-rw-r--r--drivers/net/wireless/rndis_wlan.c2
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c3
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00rfkill.c2
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_dev.c1
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c1
-rw-r--r--drivers/oprofile/cpu_buffer.c5
-rw-r--r--drivers/oprofile/cpu_buffer.h7
-rw-r--r--drivers/pci/hotplug/pciehp_core.c4
-rw-r--r--drivers/pci/msi.c16
-rw-r--r--drivers/pci/pci-driver.c91
-rw-r--r--drivers/pci/pci.c63
-rw-r--r--drivers/pci/pci.h6
-rw-r--r--drivers/power/pda_power.c2
-rw-r--r--drivers/regulator/wm8400-regulator.c2
-rw-r--r--drivers/s390/net/lcs.c8
-rw-r--r--drivers/serial/sh-sci.h5
-rw-r--r--drivers/spi/Kconfig11
-rw-r--r--drivers/spi/Makefile1
-rw-r--r--drivers/usb/host/ohci-omap.c6
-rw-r--r--drivers/video/Kconfig12
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/aty/radeon_i2c.c1
-rw-r--r--drivers/video/i810/i810-i2c.c1
-rw-r--r--drivers/video/intelfb/intelfb_i2c.c1
-rw-r--r--drivers/video/mx3fb.c1555
-rw-r--r--drivers/video/nvidia/nv_i2c.c1
-rw-r--r--drivers/video/omap/lcdc.c4
-rw-r--r--drivers/video/savage/savagefb-i2c.c1
-rw-r--r--drivers/watchdog/Kconfig6
-rw-r--r--drivers/watchdog/at91rm9200_wdt.c1
-rw-r--r--drivers/xen/balloon.c8
-rw-r--r--drivers/xen/xenfs/xenbus.c11
-rw-r--r--fs/9p/Kconfig10
-rw-r--r--fs/Kconfig1401
-rw-r--r--fs/adfs/Kconfig27
-rw-r--r--fs/affs/Kconfig21
-rw-r--r--fs/afs/Kconfig21
-rw-r--r--fs/autofs/Kconfig21
-rw-r--r--fs/autofs4/Kconfig20
-rw-r--r--fs/befs/Kconfig26
-rw-r--r--fs/bfs/Kconfig19
-rw-r--r--fs/btrfs/Kconfig18
-rw-r--r--fs/coda/Kconfig21
-rw-r--r--fs/configfs/Kconfig11
-rw-r--r--fs/cramfs/Kconfig19
-rw-r--r--fs/dlm/plock.c6
-rw-r--r--fs/dquot.c218
-rw-r--r--fs/ecryptfs/Kconfig11
-rw-r--r--fs/efs/Kconfig14
-rw-r--r--fs/fat/Kconfig97
-rw-r--r--fs/freevxfs/Kconfig16
-rw-r--r--fs/fuse/Kconfig15
-rw-r--r--fs/fuse/dev.c16
-rw-r--r--fs/fuse/file.c2
-rw-r--r--fs/fuse/inode.c30
-rw-r--r--fs/hfs/Kconfig12
-rw-r--r--fs/hfsplus/Kconfig13
-rw-r--r--fs/hpfs/Kconfig14
-rw-r--r--fs/isofs/Kconfig39
-rw-r--r--fs/jfs/Kconfig49
-rw-r--r--fs/minix/Kconfig17
-rw-r--r--fs/ncpfs/Kconfig21
-rw-r--r--fs/nfs/Kconfig86
-rw-r--r--fs/nfsd/Kconfig80
-rw-r--r--fs/notify/inotify/inotify_user.c135
-rw-r--r--fs/ntfs/Kconfig78
-rw-r--r--fs/ocfs2/Kconfig85
-rw-r--r--fs/ocfs2/quota_global.c169
-rw-r--r--fs/omfs/Kconfig13
-rw-r--r--fs/qnx4/Kconfig25
-rw-r--r--fs/reiserfs/Kconfig85
-rw-r--r--fs/romfs/Kconfig16
-rw-r--r--fs/smbfs/Kconfig55
-rw-r--r--fs/squashfs/Kconfig51
-rw-r--r--fs/sysfs/Kconfig23
-rw-r--r--fs/sysfs/bin.c6
-rw-r--r--fs/sysv/Kconfig36
-rw-r--r--fs/udf/Kconfig18
-rw-r--r--fs/ufs/Kconfig43
-rw-r--r--fs/xfs/Kconfig1
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl.c305
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl.h15
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl32.c184
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c17
-rw-r--r--fs/xfs/quota/xfs_dquot.c38
-rw-r--r--fs/xfs/quota/xfs_dquot.h10
-rw-r--r--fs/xfs/quota/xfs_qm.c9
-rw-r--r--fs/xfs/xfs_ag.h6
-rw-r--r--fs/xfs/xfs_alloc_btree.c2
-rw-r--r--fs/xfs/xfs_attr.c26
-rw-r--r--fs/xfs/xfs_bmap.c166
-rw-r--r--fs/xfs/xfs_bmap.h2
-rw-r--r--fs/xfs/xfs_bmap_btree.c10
-rw-r--r--fs/xfs/xfs_bmap_btree.h4
-rw-r--r--fs/xfs/xfs_btree.c16
-rw-r--r--fs/xfs/xfs_da_btree.c8
-rw-r--r--fs/xfs/xfs_ialloc.c6
-rw-r--r--fs/xfs/xfs_ialloc.h2
-rw-r--r--fs/xfs/xfs_ialloc_btree.h1
-rw-r--r--fs/xfs/xfs_inode.c19
-rw-r--r--fs/xfs/xfs_inode_item.h4
-rw-r--r--fs/xfs/xfs_iomap.c10
-rw-r--r--fs/xfs/xfs_itable.c6
-rw-r--r--fs/xfs/xfs_mount.c26
-rw-r--r--fs/xfs/xfs_mount.h9
-rw-r--r--fs/xfs/xfs_rename.c2
-rw-r--r--fs/xfs/xfs_rtalloc.c2
-rw-r--r--fs/xfs/xfs_rw.h1
-rw-r--r--fs/xfs/xfs_sb.h2
-rw-r--r--fs/xfs/xfs_vnodeops.c20
-rw-r--r--include/asm-m68k/auxvec.h4
-rw-r--r--include/asm-m68k/device.h7
-rw-r--r--include/asm-m68k/emergency-restart.h6
-rw-r--r--include/asm-m68k/futex.h6
-rw-r--r--include/asm-m68k/ioctl.h1
-rw-r--r--include/asm-m68k/irq_regs.h1
-rw-r--r--include/asm-m68k/kdebug.h1
-rw-r--r--include/asm-m68k/mutex.h9
-rw-r--r--include/asm-m68k/topology.h6
-rw-r--r--include/drm/drm_crtc.h3
-rw-r--r--include/linux/debugfs.h7
-rw-r--r--include/linux/dmaengine.h11
-rw-r--r--include/linux/i2c-id.h61
-rw-r--r--include/linux/i2c.h8
-rw-r--r--include/linux/if_frad.h10
-rw-r--r--include/linux/init_task.h6
-rw-r--r--include/linux/klist.h2
-rw-r--r--include/linux/pci.h5
-rw-r--r--include/linux/quotaops.h2
-rw-r--r--include/linux/sched.h32
-rw-r--r--include/linux/usb/usbnet.h4
-rw-r--r--include/linux/workqueue.h12
-rw-r--r--include/net/mac80211.h1
-rw-r--r--include/net/sctp/checksum.h2
-rw-r--r--include/sound/soc-dapm.h2
-rw-r--r--init/Kconfig194
-rw-r--r--kernel/dma-coherent.c47
-rw-r--r--kernel/fork.c16
-rw-r--r--kernel/hrtimer.c4
-rw-r--r--kernel/kallsyms.c16
-rw-r--r--kernel/posix-cpu-timers.c70
-rw-r--r--kernel/rcuclassic.c2
-rw-r--r--kernel/rcutree.c2
-rw-r--r--kernel/relay.c4
-rw-r--r--kernel/sched_stats.h33
-rw-r--r--kernel/softlockup.c9
-rw-r--r--kernel/sysctl.c2
-rw-r--r--kernel/time/tick-sched.c2
-rw-r--r--lib/Kconfig.debug22
-rw-r--r--mm/nommu.c20
-rw-r--r--net/8021q/vlan_core.c4
-rw-r--r--net/9p/client.c2
-rw-r--r--net/Kconfig8
-rw-r--r--net/core/dev.c15
-rw-r--r--net/core/net_namespace.c2
-rw-r--r--net/core/skbuff.c70
-rw-r--r--net/ipv6/af_inet6.c7
-rw-r--r--net/key/af_key.c1
-rw-r--r--net/mac80211/mlme.c4
-rw-r--r--net/mac80211/sta_info.h1
-rw-r--r--net/mac80211/tx.c6
-rw-r--r--net/netfilter/nf_conntrack_netlink.c3
-rw-r--r--net/sctp/input.c13
-rw-r--r--net/sctp/output.c7
-rw-r--r--net/sctp/outqueue.c3
-rw-r--r--net/sunrpc/Kconfig79
-rw-r--r--net/wireless/reg.c128
-rw-r--r--net/xfrm/xfrm_user.c11
-rw-r--r--scripts/Makefile.build55
-rw-r--r--scripts/Makefile.modinst3
-rwxr-xr-xscripts/config4
-rw-r--r--scripts/genksyms/genksyms.c21
-rw-r--r--scripts/genksyms/keywords.c_shipped189
-rw-r--r--scripts/genksyms/keywords.gperf2
-rw-r--r--scripts/kallsyms.c21
-rw-r--r--scripts/mksysmap7
-rw-r--r--scripts/mod/file2alias.c17
-rw-r--r--scripts/strip-symbols22
-rw-r--r--security/keys/keyctl.c1
-rw-r--r--sound/pci/Kconfig4
-rw-r--r--sound/pci/hda/patch_realtek.c2
-rw-r--r--sound/pci/hda/patch_sigmatel.c54
-rw-r--r--sound/pci/oxygen/virtuoso.c3
-rw-r--r--sound/soc/atmel/atmel-pcm.c2
-rw-r--r--sound/soc/fsl/mpc8610_hpcd.c18
944 files changed, 12533 insertions, 5854 deletions
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt
index 923f9ddee8f6..f3355b6812df 100644
--- a/Documentation/kbuild/kbuild.txt
+++ b/Documentation/kbuild/kbuild.txt
@@ -3,7 +3,7 @@ Environment variables
3KCPPFLAGS 3KCPPFLAGS
4-------------------------------------------------- 4--------------------------------------------------
5Additional options to pass when preprocessing. The preprocessing options 5Additional options to pass when preprocessing. The preprocessing options
6will be used in all cases where kbuild do preprocessing including 6will be used in all cases where kbuild does preprocessing including
7building C files and assembler files. 7building C files and assembler files.
8 8
9KAFLAGS 9KAFLAGS
@@ -16,7 +16,7 @@ Additional options to the C compiler.
16 16
17KBUILD_VERBOSE 17KBUILD_VERBOSE
18-------------------------------------------------- 18--------------------------------------------------
19Set the kbuild verbosity. Can be assinged same values as "V=...". 19Set the kbuild verbosity. Can be assigned same values as "V=...".
20See make help for the full list. 20See make help for the full list.
21Setting "V=..." takes precedence over KBUILD_VERBOSE. 21Setting "V=..." takes precedence over KBUILD_VERBOSE.
22 22
@@ -35,14 +35,14 @@ KBUILD_OUTPUT
35-------------------------------------------------- 35--------------------------------------------------
36Specify the output directory when building the kernel. 36Specify the output directory when building the kernel.
37The output directory can also be specificed using "O=...". 37The output directory can also be specificed using "O=...".
38Setting "O=..." takes precedence over KBUILD_OUTPUT 38Setting "O=..." takes precedence over KBUILD_OUTPUT.
39 39
40ARCH 40ARCH
41-------------------------------------------------- 41--------------------------------------------------
42Set ARCH to the architecture to be built. 42Set ARCH to the architecture to be built.
43In most cases the name of the architecture is the same as the 43In most cases the name of the architecture is the same as the
44directory name found in the arch/ directory. 44directory name found in the arch/ directory.
45But some architectures suach as x86 and sparc has aliases. 45But some architectures such as x86 and sparc have aliases.
46x86: i386 for 32 bit, x86_64 for 64 bit 46x86: i386 for 32 bit, x86_64 for 64 bit
47sparc: sparc for 32 bit, sparc64 for 64 bit 47sparc: sparc for 32 bit, sparc64 for 64 bit
48 48
@@ -63,7 +63,7 @@ CF is often used on the command-line like this:
63INSTALL_PATH 63INSTALL_PATH
64-------------------------------------------------- 64--------------------------------------------------
65INSTALL_PATH specifies where to place the updated kernel and system map 65INSTALL_PATH specifies where to place the updated kernel and system map
66images. Default is /boot, but you can set it to other values 66images. Default is /boot, but you can set it to other values.
67 67
68 68
69MODLIB 69MODLIB
@@ -90,7 +90,7 @@ INSTALL_MOD_STRIP will used as the options to the strip command.
90 90
91INSTALL_FW_PATH 91INSTALL_FW_PATH
92-------------------------------------------------- 92--------------------------------------------------
93INSTALL_FW_PATH specify where to install the firmware blobs. 93INSTALL_FW_PATH specifies where to install the firmware blobs.
94The default value is: 94The default value is:
95 95
96 $(INSTALL_MOD_PATH)/lib/firmware 96 $(INSTALL_MOD_PATH)/lib/firmware
@@ -99,7 +99,7 @@ The value can be overridden in which case the default value is ignored.
99 99
100INSTALL_HDR_PATH 100INSTALL_HDR_PATH
101-------------------------------------------------- 101--------------------------------------------------
102INSTALL_HDR_PATH specify where to install user space headers when 102INSTALL_HDR_PATH specifies where to install user space headers when
103executing "make headers_*". 103executing "make headers_*".
104The default value is: 104The default value is:
105 105
@@ -112,22 +112,23 @@ The value can be overridden in which case the default value is ignored.
112 112
113KBUILD_MODPOST_WARN 113KBUILD_MODPOST_WARN
114-------------------------------------------------- 114--------------------------------------------------
115KBUILD_MODPOST_WARN can be set to avoid error out in case of undefined 115KBUILD_MODPOST_WARN can be set to avoid errors in case of undefined
116symbols in the final module linking stage. 116symbols in the final module linking stage. It changes such errors
117into warnings.
117 118
118KBUILD_MODPOST_FINAL 119KBUILD_MODPOST_NOFINAL
119-------------------------------------------------- 120--------------------------------------------------
120KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules. 121KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules.
121This is solely usefull to speed up test compiles. 122This is solely useful to speed up test compiles.
122 123
123KBUILD_EXTRA_SYMBOLS 124KBUILD_EXTRA_SYMBOLS
124-------------------------------------------------- 125--------------------------------------------------
125For modules use symbols from another modules. 126For modules that use symbols from other modules.
126See more details in modules.txt. 127See more details in modules.txt.
127 128
128ALLSOURCE_ARCHS 129ALLSOURCE_ARCHS
129-------------------------------------------------- 130--------------------------------------------------
130For tags/TAGS/cscope targets, you can specify more than one archs 131For tags/TAGS/cscope targets, you can specify more than one arch
131to be included in the databases, separated by blankspace. e.g. 132to be included in the databases, separated by blank space. E.g.:
132 133
133 $ make ALLSOURCE_ARCHS="x86 mips arm" tags 134 $ make ALLSOURCE_ARCHS="x86 mips arm" tags
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 8511d3532c27..d8362cf9909e 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -577,9 +577,6 @@ and is between 256 and 4096 characters. It is defined in the file
577 a memory unit (amount[KMG]). See also 577 a memory unit (amount[KMG]). See also
578 Documentation/kdump/kdump.txt for a example. 578 Documentation/kdump/kdump.txt for a example.
579 579
580 cs4232= [HW,OSS]
581 Format: <io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>
582
583 cs89x0_dma= [HW,NET] 580 cs89x0_dma= [HW,NET]
584 Format: <dma> 581 Format: <dma>
585 582
@@ -732,10 +729,6 @@ and is between 256 and 4096 characters. It is defined in the file
732 Default value is 0. 729 Default value is 0.
733 Value can be changed at runtime via /selinux/enforce. 730 Value can be changed at runtime via /selinux/enforce.
734 731
735 es1371= [HW,OSS]
736 Format: <spdif>,[<nomix>,[<amplifier>]]
737 See also header of sound/oss/es1371.c.
738
739 ether= [HW,NET] Ethernet cards parameters 732 ether= [HW,NET] Ethernet cards parameters
740 This option is obsoleted by the "netdev=" option, which 733 This option is obsoleted by the "netdev=" option, which
741 has equivalent usage. See its documentation for details. 734 has equivalent usage. See its documentation for details.
diff --git a/Documentation/networking/netconsole.txt b/Documentation/networking/netconsole.txt
index 3c2f2b328638..8d022073e3ef 100644
--- a/Documentation/networking/netconsole.txt
+++ b/Documentation/networking/netconsole.txt
@@ -51,7 +51,8 @@ Built-in netconsole starts immediately after the TCP stack is
51initialized and attempts to bring up the supplied dev at the supplied 51initialized and attempts to bring up the supplied dev at the supplied
52address. 52address.
53 53
54The remote host can run either 'netcat -u -l -p <port>' or syslogd. 54The remote host can run either 'netcat -u -l -p <port>',
55'nc -l -u <port>' or syslogd.
55 56
56Dynamic reconfiguration: 57Dynamic reconfiguration:
57======================== 58========================
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index 64eb1100eec1..0f5d26bea80f 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -349,6 +349,7 @@ STAC92HD73*
349STAC92HD83* 349STAC92HD83*
350=========== 350===========
351 ref Reference board 351 ref Reference board
352 mic-ref Reference board with power managment for ports
352 353
353STAC9872 354STAC9872
354======== 355========
diff --git a/MAINTAINERS b/MAINTAINERS
index 3fe4dc2c2564..d992d407197b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2102,7 +2102,8 @@ M: khali@linux-fr.org
2102P: Ben Dooks (embedded platforms) 2102P: Ben Dooks (embedded platforms)
2103M: ben-linux@fluff.org 2103M: ben-linux@fluff.org
2104L: linux-i2c@vger.kernel.org 2104L: linux-i2c@vger.kernel.org
2105T: quilt http://khali.linux-fr.org/devel/linux-2.6/jdelvare-i2c/ 2105W: http://i2c.wiki.kernel.org/
2106T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
2106S: Maintained 2107S: Maintained
2107 2108
2108I2C-TINY-USB DRIVER 2109I2C-TINY-USB DRIVER
diff --git a/Makefile b/Makefile
index 207303da3971..cf9e20dac86e 100644
--- a/Makefile
+++ b/Makefile
@@ -213,6 +213,10 @@ endif
213# Where to locate arch specific headers 213# Where to locate arch specific headers
214hdr-arch := $(SRCARCH) 214hdr-arch := $(SRCARCH)
215 215
216ifeq ($(ARCH),m68knommu)
217 hdr-arch := m68k
218endif
219
216KCONFIG_CONFIG ?= .config 220KCONFIG_CONFIG ?= .config
217 221
218# SHELL used by kbuild 222# SHELL used by kbuild
@@ -606,25 +610,20 @@ export INSTALL_PATH ?= /boot
606MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) 610MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
607export MODLIB 611export MODLIB
608 612
609strip-symbols := $(srctree)/scripts/strip-symbols \
610 $(wildcard $(srctree)/arch/$(ARCH)/scripts/strip-symbols)
611
612# 613#
613# INSTALL_MOD_STRIP, if defined, will cause modules to be stripped while 614# INSTALL_MOD_STRIP, if defined, will cause modules to be
614# they get installed. If INSTALL_MOD_STRIP is '1', then the default 615# stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
615# options (see below) will be used. Otherwise, INSTALL_MOD_STRIP will 616# the default option --strip-debug will be used. Otherwise,
616# be used as the option(s) to the objcopy command. 617# INSTALL_MOD_STRIP will used as the options to the strip command.
618
617ifdef INSTALL_MOD_STRIP 619ifdef INSTALL_MOD_STRIP
618ifeq ($(INSTALL_MOD_STRIP),1) 620ifeq ($(INSTALL_MOD_STRIP),1)
619mod_strip_cmd = $(OBJCOPY) --strip-debug 621mod_strip_cmd = $(STRIP) --strip-debug
620ifeq ($(CONFIG_KALLSYMS_ALL),$(CONFIG_KALLSYMS_STRIP_GENERATED))
621mod_strip_cmd += --wildcard $(addprefix --strip-symbols ,$(strip-symbols))
622endif
623else 622else
624mod_strip_cmd = $(OBJCOPY) $(INSTALL_MOD_STRIP) 623mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP)
625endif # INSTALL_MOD_STRIP=1 624endif # INSTALL_MOD_STRIP=1
626else 625else
627mod_strip_cmd = false 626mod_strip_cmd = true
628endif # INSTALL_MOD_STRIP 627endif # INSTALL_MOD_STRIP
629export mod_strip_cmd 628export mod_strip_cmd
630 629
@@ -754,7 +753,6 @@ last_kallsyms := 2
754endif 753endif
755 754
756kallsyms.o := .tmp_kallsyms$(last_kallsyms).o 755kallsyms.o := .tmp_kallsyms$(last_kallsyms).o
757kallsyms.h := $(wildcard include/config/kallsyms/*.h) $(wildcard include/config/kallsyms/*/*.h)
758 756
759define verify_kallsyms 757define verify_kallsyms
760 $(Q)$(if $($(quiet)cmd_sysmap), \ 758 $(Q)$(if $($(quiet)cmd_sysmap), \
@@ -779,41 +777,24 @@ endef
779 777
780# Generate .S file with all kernel symbols 778# Generate .S file with all kernel symbols
781quiet_cmd_kallsyms = KSYM $@ 779quiet_cmd_kallsyms = KSYM $@
782 cmd_kallsyms = { test $* -eq 0 || $(NM) -n $<; } \ 780 cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \
783 | $(KALLSYMS) $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) >$@ 781 $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@
784 782
785quiet_cmd_kstrip = STRIP $@ 783.tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE
786 cmd_kstrip = $(OBJCOPY) --wildcard $(addprefix --strip$(if $(CONFIG_RELOCATABLE),-unneeded)-symbols ,$(filter %/scripts/strip-symbols,$^)) $< $@
787
788$(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): KBUILD_AFLAGS += -Wa,--strip-local-absolute
789$(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): %.o: %.S scripts FORCE
790 $(call if_changed_dep,as_o_S) 784 $(call if_changed_dep,as_o_S)
791 785
792ifeq ($(CONFIG_KALLSYMS_STRIP_GENERATED),y) 786.tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS)
793strip-ext := .stripped
794endif
795
796.tmp_kallsyms%.S: .tmp_vmlinux%$(strip-ext) $(KALLSYMS) $(kallsyms.h)
797 $(call cmd,kallsyms) 787 $(call cmd,kallsyms)
798 788
799# make -jN seems to have problems with intermediate files, see bug #3330.
800.SECONDARY: $(foreach n,1 2 3,.tmp_vmlinux$(n).stripped)
801.tmp_vmlinux%.stripped: .tmp_vmlinux% $(strip-symbols) $(kallsyms.h)
802 $(call cmd,kstrip)
803
804ifneq ($(CONFIG_DEBUG_INFO),y)
805.tmp_vmlinux%: LDFLAGS_vmlinux += -S
806endif
807# .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version 789# .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version
808.tmp_vmlinux%: $(vmlinux-lds) $(vmlinux-all) FORCE 790.tmp_vmlinux1: $(vmlinux-lds) $(vmlinux-all) FORCE
809 $(if $(filter 1,$*),$(call if_changed_rule,ksym_ld),$(call if_changed,vmlinux__)) 791 $(call if_changed_rule,ksym_ld)
810 792
811.tmp_vmlinux0$(strip-ext): 793.tmp_vmlinux2: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms1.o FORCE
812 $(Q)echo "placeholder" >$@ 794 $(call if_changed,vmlinux__)
813 795
814.tmp_vmlinux1: .tmp_kallsyms0.o 796.tmp_vmlinux3: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms2.o FORCE
815.tmp_vmlinux2: .tmp_kallsyms1.o 797 $(call if_changed,vmlinux__)
816.tmp_vmlinux3: .tmp_kallsyms2.o
817 798
818# Needs to visit scripts/ before $(KALLSYMS) can be used. 799# Needs to visit scripts/ before $(KALLSYMS) can be used.
819$(KALLSYMS): scripts ; 800$(KALLSYMS): scripts ;
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c
index 17a17b49a45b..1037bba18329 100644
--- a/arch/arm/common/clkdev.c
+++ b/arch/arm/common/clkdev.c
@@ -24,6 +24,15 @@
24static LIST_HEAD(clocks); 24static LIST_HEAD(clocks);
25static DEFINE_MUTEX(clocks_mutex); 25static DEFINE_MUTEX(clocks_mutex);
26 26
27/*
28 * Find the correct struct clk for the device and connection ID.
29 * We do slightly fuzzy matching here:
30 * An entry with a NULL ID is assumed to be a wildcard.
31 * If an entry has a device ID, it must match
32 * If an entry has a connection ID, it must match
33 * Then we take the most specific entry - with the following
34 * order of precidence: dev+con > dev only > con only.
35 */
27static struct clk *clk_find(const char *dev_id, const char *con_id) 36static struct clk *clk_find(const char *dev_id, const char *con_id)
28{ 37{
29 struct clk_lookup *p; 38 struct clk_lookup *p;
@@ -31,13 +40,17 @@ static struct clk *clk_find(const char *dev_id, const char *con_id)
31 int match, best = 0; 40 int match, best = 0;
32 41
33 list_for_each_entry(p, &clocks, node) { 42 list_for_each_entry(p, &clocks, node) {
34 if ((p->dev_id && !dev_id) || (p->con_id && !con_id))
35 continue;
36 match = 0; 43 match = 0;
37 if (p->dev_id) 44 if (p->dev_id) {
38 match += 2 * (strcmp(p->dev_id, dev_id) == 0); 45 if (!dev_id || strcmp(p->dev_id, dev_id))
39 if (p->con_id) 46 continue;
40 match += 1 * (strcmp(p->con_id, con_id) == 0); 47 match += 2;
48 }
49 if (p->con_id) {
50 if (!con_id || strcmp(p->con_id, con_id))
51 continue;
52 match += 1;
53 }
41 if (match == 0) 54 if (match == 0)
42 continue; 55 continue;
43 56
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
index ce909586a34f..f7a272cb3da0 100644
--- a/arch/arm/configs/afeb9260_defconfig
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -719,8 +719,8 @@ CONFIG_I2C_GPIO=y
719# Miscellaneous I2C Chip support 719# Miscellaneous I2C Chip support
720# 720#
721# CONFIG_DS1682 is not set 721# CONFIG_DS1682 is not set
722CONFIG_AT24=y 722CONFIG_EEPROM_AT24=y
723# CONFIG_SENSORS_EEPROM is not set 723# CONFIG_EEPROM_LEGACY is not set
724# CONFIG_SENSORS_PCF8574 is not set 724# CONFIG_SENSORS_PCF8574 is not set
725# CONFIG_PCF8575 is not set 725# CONFIG_PCF8575 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
@@ -744,7 +744,7 @@ CONFIG_SPI_ATMEL=y
744# 744#
745# SPI Protocol Masters 745# SPI Protocol Masters
746# 746#
747# CONFIG_SPI_AT25 is not set 747# CONFIG_EEPROM_AT25 is not set
748CONFIG_SPI_SPIDEV=y 748CONFIG_SPI_SPIDEV=y
749# CONFIG_SPI_TLE62X0 is not set 749# CONFIG_SPI_TLE62X0 is not set
750# CONFIG_W1 is not set 750# CONFIG_W1 is not set
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
index 2c4aa11f0b0d..764732529ea3 100644
--- a/arch/arm/configs/ams_delta_defconfig
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# 767#
768# CONFIG_SENSORS_DS1337 is not set 768# CONFIG_SENSORS_DS1337 is not set
769# CONFIG_SENSORS_DS1374 is not set 769# CONFIG_SENSORS_DS1374 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91cap9adk_defconfig b/arch/arm/configs/at91cap9adk_defconfig
index bf97801a1068..bc6bd9f6174d 100644
--- a/arch/arm/configs/at91cap9adk_defconfig
+++ b/arch/arm/configs/at91cap9adk_defconfig
@@ -676,7 +676,7 @@ CONFIG_I2C_CHARDEV=y
676# CONFIG_SENSORS_DS1337 is not set 676# CONFIG_SENSORS_DS1337 is not set
677# CONFIG_SENSORS_DS1374 is not set 677# CONFIG_SENSORS_DS1374 is not set
678# CONFIG_DS1682 is not set 678# CONFIG_DS1682 is not set
679# CONFIG_SENSORS_EEPROM is not set 679# CONFIG_EEPROM_LEGACY is not set
680# CONFIG_SENSORS_PCF8574 is not set 680# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_SENSORS_PCA9539 is not set 681# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_PCF8591 is not set 682# CONFIG_SENSORS_PCF8591 is not set
@@ -703,7 +703,7 @@ CONFIG_SPI_ATMEL=y
703# 703#
704# SPI Protocol Masters 704# SPI Protocol Masters
705# 705#
706# CONFIG_SPI_AT25 is not set 706# CONFIG_EEPROM_AT25 is not set
707# CONFIG_SPI_SPIDEV is not set 707# CONFIG_SPI_SPIDEV is not set
708# CONFIG_SPI_TLE62X0 is not set 708# CONFIG_SPI_TLE62X0 is not set
709# CONFIG_W1 is not set 709# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index 868fb7b9530b..238b218394e3 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -636,7 +636,7 @@ CONFIG_I2C_GPIO=y
636# 636#
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_SENSORS_EEPROM is not set 639# CONFIG_EEPROM_LEGACY is not set
640# CONFIG_SENSORS_PCF8574 is not set 640# CONFIG_SENSORS_PCF8574 is not set
641# CONFIG_SENSORS_PCA9539 is not set 641# CONFIG_SENSORS_PCA9539 is not set
642# CONFIG_SENSORS_PCF8591 is not set 642# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index de43fc675616..9f7a99ace514 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_GPIO=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91sam9260ek_defconfig b/arch/arm/configs/at91sam9260ek_defconfig
index 38e6a0abeb4e..e0ee7060f9aa 100644
--- a/arch/arm/configs/at91sam9260ek_defconfig
+++ b/arch/arm/configs/at91sam9260ek_defconfig
@@ -582,7 +582,7 @@ CONFIG_I2C_GPIO=y
582# CONFIG_SENSORS_DS1337 is not set 582# CONFIG_SENSORS_DS1337 is not set
583# CONFIG_SENSORS_DS1374 is not set 583# CONFIG_SENSORS_DS1374 is not set
584# CONFIG_DS1682 is not set 584# CONFIG_DS1682 is not set
585# CONFIG_SENSORS_EEPROM is not set 585# CONFIG_EEPROM_LEGACY is not set
586# CONFIG_SENSORS_PCF8574 is not set 586# CONFIG_SENSORS_PCF8574 is not set
587# CONFIG_SENSORS_PCA9539 is not set 587# CONFIG_SENSORS_PCA9539 is not set
588# CONFIG_SENSORS_PCF8591 is not set 588# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/at91sam9261ek_defconfig b/arch/arm/configs/at91sam9261ek_defconfig
index 93b779f94b41..01d1ef97d8be 100644
--- a/arch/arm/configs/at91sam9261ek_defconfig
+++ b/arch/arm/configs/at91sam9261ek_defconfig
@@ -660,7 +660,7 @@ CONFIG_I2C_GPIO=y
660# CONFIG_SENSORS_DS1337 is not set 660# CONFIG_SENSORS_DS1337 is not set
661# CONFIG_SENSORS_DS1374 is not set 661# CONFIG_SENSORS_DS1374 is not set
662# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
663# CONFIG_SENSORS_EEPROM is not set 663# CONFIG_EEPROM_LEGACY is not set
664# CONFIG_SENSORS_PCF8574 is not set 664# CONFIG_SENSORS_PCF8574 is not set
665# CONFIG_SENSORS_PCA9539 is not set 665# CONFIG_SENSORS_PCA9539 is not set
666# CONFIG_SENSORS_PCF8591 is not set 666# CONFIG_SENSORS_PCF8591 is not set
@@ -687,7 +687,7 @@ CONFIG_SPI_ATMEL=y
687# 687#
688# SPI Protocol Masters 688# SPI Protocol Masters
689# 689#
690# CONFIG_SPI_AT25 is not set 690# CONFIG_EEPROM_AT25 is not set
691# CONFIG_SPI_SPIDEV is not set 691# CONFIG_SPI_SPIDEV is not set
692# CONFIG_SPI_TLE62X0 is not set 692# CONFIG_SPI_TLE62X0 is not set
693# CONFIG_W1 is not set 693# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91sam9263ek_defconfig b/arch/arm/configs/at91sam9263ek_defconfig
index a7ddd94363ca..036a126725c1 100644
--- a/arch/arm/configs/at91sam9263ek_defconfig
+++ b/arch/arm/configs/at91sam9263ek_defconfig
@@ -670,7 +670,7 @@ CONFIG_I2C_GPIO=y
670# CONFIG_SENSORS_DS1337 is not set 670# CONFIG_SENSORS_DS1337 is not set
671# CONFIG_SENSORS_DS1374 is not set 671# CONFIG_SENSORS_DS1374 is not set
672# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
673# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
674# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
675# CONFIG_SENSORS_PCA9539 is not set 675# CONFIG_SENSORS_PCA9539 is not set
676# CONFIG_SENSORS_PCF8591 is not set 676# CONFIG_SENSORS_PCF8591 is not set
@@ -697,7 +697,7 @@ CONFIG_SPI_ATMEL=y
697# 697#
698# SPI Protocol Masters 698# SPI Protocol Masters
699# 699#
700# CONFIG_SPI_AT25 is not set 700# CONFIG_EEPROM_AT25 is not set
701# CONFIG_SPI_SPIDEV is not set 701# CONFIG_SPI_SPIDEV is not set
702# CONFIG_SPI_TLE62X0 is not set 702# CONFIG_SPI_TLE62X0 is not set
703# CONFIG_W1 is not set 703# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91sam9g20ek_defconfig b/arch/arm/configs/at91sam9g20ek_defconfig
index df0d6ee672b3..7e018a04c31b 100644
--- a/arch/arm/configs/at91sam9g20ek_defconfig
+++ b/arch/arm/configs/at91sam9g20ek_defconfig
@@ -665,7 +665,7 @@ CONFIG_SPI_ATMEL=y
665# 665#
666# SPI Protocol Masters 666# SPI Protocol Masters
667# 667#
668# CONFIG_SPI_AT25 is not set 668# CONFIG_EEPROM_AT25 is not set
669CONFIG_SPI_SPIDEV=y 669CONFIG_SPI_SPIDEV=y
670# CONFIG_SPI_TLE62X0 is not set 670# CONFIG_SPI_TLE62X0 is not set
671# CONFIG_W1 is not set 671# CONFIG_W1 is not set
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index 811bebbdc784..237a2a6a8517 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -566,7 +566,7 @@ CONFIG_I2C_GPIO=y
566# CONFIG_SENSORS_DS1337 is not set 566# CONFIG_SENSORS_DS1337 is not set
567# CONFIG_SENSORS_DS1374 is not set 567# CONFIG_SENSORS_DS1374 is not set
568# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_SENSORS_PCA9539 is not set 571# CONFIG_SENSORS_PCA9539 is not set
572# CONFIG_SENSORS_PCF8591 is not set 572# CONFIG_SENSORS_PCF8591 is not set
@@ -593,7 +593,7 @@ CONFIG_SPI_ATMEL=y
593# 593#
594# SPI Protocol Masters 594# SPI Protocol Masters
595# 595#
596# CONFIG_SPI_AT25 is not set 596# CONFIG_EEPROM_AT25 is not set
597# CONFIG_SPI_SPIDEV is not set 597# CONFIG_SPI_SPIDEV is not set
598# CONFIG_SPI_TLE62X0 is not set 598# CONFIG_SPI_TLE62X0 is not set
599# CONFIG_W1 is not set 599# CONFIG_W1 is not set
diff --git a/arch/arm/configs/ateb9200_defconfig b/arch/arm/configs/ateb9200_defconfig
index 85c80f723d8e..a19e824cf7f8 100644
--- a/arch/arm/configs/ateb9200_defconfig
+++ b/arch/arm/configs/ateb9200_defconfig
@@ -723,7 +723,7 @@ CONFIG_I2C_GPIO=m
723# 723#
724# CONFIG_SENSORS_DS1337 is not set 724# CONFIG_SENSORS_DS1337 is not set
725# CONFIG_SENSORS_DS1374 is not set 725# CONFIG_SENSORS_DS1374 is not set
726# CONFIG_SENSORS_EEPROM is not set 726# CONFIG_EEPROM_LEGACY is not set
727# CONFIG_SENSORS_PCF8574 is not set 727# CONFIG_SENSORS_PCF8574 is not set
728# CONFIG_SENSORS_PCA9539 is not set 728# CONFIG_SENSORS_PCA9539 is not set
729# CONFIG_SENSORS_PCF8591 is not set 729# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index b2bbf217c707..80222feb7dad 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -750,7 +750,7 @@ CONFIG_I2C_ELEKTOR=m
750# Other I2C Chip support 750# Other I2C Chip support
751# 751#
752# CONFIG_SENSORS_DS1337 is not set 752# CONFIG_SENSORS_DS1337 is not set
753# CONFIG_SENSORS_EEPROM is not set 753# CONFIG_EEPROM_LEGACY is not set
754# CONFIG_SENSORS_PCF8574 is not set 754# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_SENSORS_PCF8591 is not set 755# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_SENSORS_RTC8564 is not set 756# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
index f945105d6cd6..8448108347cf 100644
--- a/arch/arm/configs/cam60_defconfig
+++ b/arch/arm/configs/cam60_defconfig
@@ -722,7 +722,7 @@ CONFIG_I2C_ALGOBIT=y
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_DS1682 is not set 724# CONFIG_DS1682 is not set
725# CONFIG_SENSORS_EEPROM is not set 725# CONFIG_EEPROM_LEGACY is not set
726# CONFIG_SENSORS_PCF8574 is not set 726# CONFIG_SENSORS_PCF8574 is not set
727# CONFIG_SENSORS_PCA9539 is not set 727# CONFIG_SENSORS_PCA9539 is not set
728# CONFIG_SENSORS_PCF8591 is not set 728# CONFIG_SENSORS_PCF8591 is not set
@@ -749,7 +749,7 @@ CONFIG_SPI_ATMEL=y
749# 749#
750# SPI Protocol Masters 750# SPI Protocol Masters
751# 751#
752# CONFIG_SPI_AT25 is not set 752# CONFIG_EEPROM_AT25 is not set
753# CONFIG_SPI_SPIDEV is not set 753# CONFIG_SPI_SPIDEV is not set
754# CONFIG_SPI_TLE62X0 is not set 754# CONFIG_SPI_TLE62X0 is not set
755# CONFIG_W1 is not set 755# CONFIG_W1 is not set
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index 46f1c9dc350c..227da0843ead 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -763,8 +763,8 @@ CONFIG_I2C_PXA=y
763# Miscellaneous I2C Chip support 763# Miscellaneous I2C Chip support
764# 764#
765# CONFIG_DS1682 is not set 765# CONFIG_DS1682 is not set
766# CONFIG_AT24 is not set 766# CONFIG_EEPROM_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 767# CONFIG_EEPROM_LEGACY is not set
768# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
770# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/colibri_defconfig b/arch/arm/configs/colibri_defconfig
index c3e3418ed4fe..744086fff414 100644
--- a/arch/arm/configs/colibri_defconfig
+++ b/arch/arm/configs/colibri_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C_CHARDEV=y
801# CONFIG_SENSORS_DS1337 is not set 801# CONFIG_SENSORS_DS1337 is not set
802# CONFIG_SENSORS_DS1374 is not set 802# CONFIG_SENSORS_DS1374 is not set
803# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCA9539 is not set 806# CONFIG_SENSORS_PCA9539 is not set
807# CONFIG_SENSORS_PCF8591 is not set 807# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index 98765438048d..d6cd165e9310 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -982,8 +982,8 @@ CONFIG_I2C_PXA=y
982# Miscellaneous I2C Chip support 982# Miscellaneous I2C Chip support
983# 983#
984# CONFIG_DS1682 is not set 984# CONFIG_DS1682 is not set
985# CONFIG_AT24 is not set 985# CONFIG_EEPROM_AT24 is not set
986# CONFIG_SENSORS_EEPROM is not set 986# CONFIG_EEPROM_LEGACY is not set
987# CONFIG_SENSORS_PCF8574 is not set 987# CONFIG_SENSORS_PCF8574 is not set
988# CONFIG_PCF8575 is not set 988# CONFIG_PCF8575 is not set
989# CONFIG_SENSORS_PCA9539 is not set 989# CONFIG_SENSORS_PCA9539 is not set
@@ -1008,7 +1008,7 @@ CONFIG_SPI_PXA2XX=y
1008# 1008#
1009# SPI Protocol Masters 1009# SPI Protocol Masters
1010# 1010#
1011# CONFIG_SPI_AT25 is not set 1011# CONFIG_EEPROM_AT25 is not set
1012# CONFIG_SPI_SPIDEV is not set 1012# CONFIG_SPI_SPIDEV is not set
1013# CONFIG_SPI_TLE62X0 is not set 1013# CONFIG_SPI_TLE62X0 is not set
1014CONFIG_ARCH_REQUIRE_GPIOLIB=y 1014CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig
index 67e65e4f0cdc..29f68c2effe6 100644
--- a/arch/arm/configs/csb337_defconfig
+++ b/arch/arm/configs/csb337_defconfig
@@ -679,7 +679,7 @@ CONFIG_I2C_GPIO=y
679# CONFIG_SENSORS_DS1337 is not set 679# CONFIG_SENSORS_DS1337 is not set
680# CONFIG_SENSORS_DS1374 is not set 680# CONFIG_SENSORS_DS1374 is not set
681# CONFIG_DS1682 is not set 681# CONFIG_DS1682 is not set
682# CONFIG_SENSORS_EEPROM is not set 682# CONFIG_EEPROM_LEGACY is not set
683# CONFIG_SENSORS_PCF8574 is not set 683# CONFIG_SENSORS_PCF8574 is not set
684# CONFIG_SENSORS_PCA9539 is not set 684# CONFIG_SENSORS_PCA9539 is not set
685# CONFIG_SENSORS_PCF8591 is not set 685# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig
index 99702146c9fc..f7b60ceed6c7 100644
--- a/arch/arm/configs/csb637_defconfig
+++ b/arch/arm/configs/csb637_defconfig
@@ -704,7 +704,7 @@ CONFIG_I2C_CHARDEV=y
704# Miscellaneous I2C Chip support 704# Miscellaneous I2C Chip support
705# 705#
706# CONFIG_DS1682 is not set 706# CONFIG_DS1682 is not set
707# CONFIG_SENSORS_EEPROM is not set 707# CONFIG_EEPROM_LEGACY is not set
708# CONFIG_SENSORS_PCF8574 is not set 708# CONFIG_SENSORS_PCF8574 is not set
709# CONFIG_PCF8575 is not set 709# CONFIG_PCF8575 is not set
710# CONFIG_SENSORS_PCF8591 is not set 710# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ecbat91_defconfig b/arch/arm/configs/ecbat91_defconfig
index cfeb817ad21a..ca520733bdb0 100644
--- a/arch/arm/configs/ecbat91_defconfig
+++ b/arch/arm/configs/ecbat91_defconfig
@@ -721,7 +721,7 @@ CONFIG_I2C_GPIO=y
721# 721#
722# CONFIG_SENSORS_DS1337 is not set 722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set 723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_SENSORS_EEPROM is not set 724# CONFIG_EEPROM_LEGACY is not set
725# CONFIG_SENSORS_PCF8574 is not set 725# CONFIG_SENSORS_PCF8574 is not set
726# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
727# CONFIG_SENSORS_PCF8591 is not set 727# CONFIG_SENSORS_PCF8591 is not set
@@ -747,7 +747,7 @@ CONFIG_SPI_AT91=y
747# 747#
748# SPI Protocol Masters 748# SPI Protocol Masters
749# 749#
750# CONFIG_SPI_AT25 is not set 750# CONFIG_EEPROM_AT25 is not set
751# CONFIG_SPI_SPIDEV is not set 751# CONFIG_SPI_SPIDEV is not set
752 752
753# 753#
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 21aa013793c6..3f89d5f25bce 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_ALGOBIT=y
681# 681#
682# CONFIG_SENSORS_DS1337 is not set 682# CONFIG_SENSORS_DS1337 is not set
683# CONFIG_SENSORS_DS1374 is not set 683# CONFIG_SENSORS_DS1374 is not set
684CONFIG_SENSORS_EEPROM=y 684CONFIG_EEPROM_LEGACY=y
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index 2a84d557adc2..d5ee16e6abf3 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -877,7 +877,7 @@ CONFIG_I2C_PXA=y
877# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
878# 878#
879# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
880# CONFIG_SENSORS_EEPROM is not set 880# CONFIG_EEPROM_LEGACY is not set
881# CONFIG_SENSORS_PCF8574 is not set 881# CONFIG_SENSORS_PCF8574 is not set
882# CONFIG_PCF8575 is not set 882# CONFIG_PCF8575 is not set
883# CONFIG_SENSORS_PCF8591 is not set 883# CONFIG_SENSORS_PCF8591 is not set
@@ -900,7 +900,7 @@ CONFIG_SPI_PXA2XX=m
900# 900#
901# SPI Protocol Masters 901# SPI Protocol Masters
902# 902#
903# CONFIG_SPI_AT25 is not set 903# CONFIG_EEPROM_AT25 is not set
904# CONFIG_SPI_SPIDEV is not set 904# CONFIG_SPI_SPIDEV is not set
905# CONFIG_SPI_TLE62X0 is not set 905# CONFIG_SPI_TLE62X0 is not set
906CONFIG_HAVE_GPIO_LIB=y 906CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 299dc22294a0..6ace512fa101 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -801,7 +801,7 @@ CONFIG_I2C=m
801# 801#
802# Other I2C Chip support 802# Other I2C Chip support
803# 803#
804# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_EEPROM_LEGACY is not set
805# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
806# CONFIG_SENSORS_PCF8591 is not set 806# CONFIG_SENSORS_PCF8591 is not set
807# CONFIG_SENSORS_RTC8564 is not set 807# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index 482e57061053..89c17761726b 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_IOP3XX=y
744# CONFIG_SENSORS_DS1337 is not set 744# CONFIG_SENSORS_DS1337 is not set
745# CONFIG_SENSORS_DS1374 is not set 745# CONFIG_SENSORS_DS1374 is not set
746# CONFIG_DS1682 is not set 746# CONFIG_DS1682 is not set
747# CONFIG_SENSORS_EEPROM is not set 747# CONFIG_EEPROM_LEGACY is not set
748# CONFIG_SENSORS_PCF8574 is not set 748# CONFIG_SENSORS_PCF8574 is not set
749# CONFIG_SENSORS_PCA9539 is not set 749# CONFIG_SENSORS_PCA9539 is not set
750# CONFIG_SENSORS_PCF8591 is not set 750# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index 8612f58e1056..d70177b38f5f 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -847,7 +847,7 @@ CONFIG_I2C_IOP3XX=y
847# CONFIG_SENSORS_DS1337 is not set 847# CONFIG_SENSORS_DS1337 is not set
848# CONFIG_SENSORS_DS1374 is not set 848# CONFIG_SENSORS_DS1374 is not set
849# CONFIG_DS1682 is not set 849# CONFIG_DS1682 is not set
850# CONFIG_SENSORS_EEPROM is not set 850# CONFIG_EEPROM_LEGACY is not set
851# CONFIG_SENSORS_PCF8574 is not set 851# CONFIG_SENSORS_PCF8574 is not set
852# CONFIG_SENSORS_PCA9539 is not set 852# CONFIG_SENSORS_PCA9539 is not set
853# CONFIG_SENSORS_PCF8591 is not set 853# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index 8b0098d19d08..eec488298267 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -746,7 +746,7 @@ CONFIG_I2C_IOP3XX=y
746# CONFIG_SENSORS_DS1337 is not set 746# CONFIG_SENSORS_DS1337 is not set
747# CONFIG_SENSORS_DS1374 is not set 747# CONFIG_SENSORS_DS1374 is not set
748# CONFIG_DS1682 is not set 748# CONFIG_DS1682 is not set
749# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
752# CONFIG_SENSORS_PCF8591 is not set 752# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index 84680db6c615..57526c15e854 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -768,7 +768,7 @@ CONFIG_I2C_IXP2000=y
768# 768#
769# CONFIG_SENSORS_DS1337 is not set 769# CONFIG_SENSORS_DS1337 is not set
770# CONFIG_SENSORS_DS1374 is not set 770# CONFIG_SENSORS_DS1374 is not set
771CONFIG_SENSORS_EEPROM=y 771CONFIG_EEPROM_LEGACY=y
772# CONFIG_SENSORS_PCF8574 is not set 772# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_SENSORS_PCA9539 is not set 773# CONFIG_SENSORS_PCA9539 is not set
774# CONFIG_SENSORS_PCF8591 is not set 774# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 4a2f7b2372db..ef97561ed75b 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -900,7 +900,7 @@ CONFIG_I2C_ALGOBIT=y
900# 900#
901# CONFIG_SENSORS_DS1337 is not set 901# CONFIG_SENSORS_DS1337 is not set
902# CONFIG_SENSORS_DS1374 is not set 902# CONFIG_SENSORS_DS1374 is not set
903CONFIG_SENSORS_EEPROM=y 903CONFIG_EEPROM_LEGACY=y
904# CONFIG_SENSORS_PCF8574 is not set 904# CONFIG_SENSORS_PCF8574 is not set
905# CONFIG_SENSORS_PCA9539 is not set 905# CONFIG_SENSORS_PCA9539 is not set
906# CONFIG_SENSORS_PCF8591 is not set 906# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig
index fc14932e3abd..95cd8dfb5f1e 100644
--- a/arch/arm/configs/ixp4xx_defconfig
+++ b/arch/arm/configs/ixp4xx_defconfig
@@ -1083,7 +1083,7 @@ CONFIG_I2C_IXP4XX=y
1083# CONFIG_SENSORS_DS1337 is not set 1083# CONFIG_SENSORS_DS1337 is not set
1084# CONFIG_SENSORS_DS1374 is not set 1084# CONFIG_SENSORS_DS1374 is not set
1085# CONFIG_DS1682 is not set 1085# CONFIG_DS1682 is not set
1086CONFIG_SENSORS_EEPROM=y 1086CONFIG_EEPROM_LEGACY=y
1087# CONFIG_SENSORS_PCF8574 is not set 1087# CONFIG_SENSORS_PCF8574 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1088# CONFIG_SENSORS_PCA9539 is not set
1089# CONFIG_SENSORS_PCF8591 is not set 1089# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kafa_defconfig b/arch/arm/configs/kafa_defconfig
index 6dd95a2c8d5d..9f92fc527f59 100644
--- a/arch/arm/configs/kafa_defconfig
+++ b/arch/arm/configs/kafa_defconfig
@@ -603,7 +603,7 @@ CONFIG_I2C_GPIO=y
603# 603#
604# CONFIG_SENSORS_DS1337 is not set 604# CONFIG_SENSORS_DS1337 is not set
605# CONFIG_SENSORS_DS1374 is not set 605# CONFIG_SENSORS_DS1374 is not set
606# CONFIG_SENSORS_EEPROM is not set 606# CONFIG_EEPROM_LEGACY is not set
607# CONFIG_SENSORS_PCF8574 is not set 607# CONFIG_SENSORS_PCF8574 is not set
608# CONFIG_SENSORS_PCA9539 is not set 608# CONFIG_SENSORS_PCA9539 is not set
609# CONFIG_SENSORS_PCF8591 is not set 609# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index ab8b1e0d0dac..4bc38078d580 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -905,8 +905,8 @@ CONFIG_I2C_MV64XXX=y
905# Miscellaneous I2C Chip support 905# Miscellaneous I2C Chip support
906# 906#
907# CONFIG_DS1682 is not set 907# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 908# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 909# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 910# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 911# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 912# CONFIG_SENSORS_PCA9539 is not set
@@ -930,7 +930,7 @@ CONFIG_SPI_ORION=y
930# 930#
931# SPI Protocol Masters 931# SPI Protocol Masters
932# 932#
933# CONFIG_SPI_AT25 is not set 933# CONFIG_EEPROM_AT25 is not set
934# CONFIG_SPI_SPIDEV is not set 934# CONFIG_SPI_SPIDEV is not set
935# CONFIG_SPI_TLE62X0 is not set 935# CONFIG_SPI_TLE62X0 is not set
936# CONFIG_W1 is not set 936# CONFIG_W1 is not set
diff --git a/arch/arm/configs/loki_defconfig b/arch/arm/configs/loki_defconfig
index 17da7c3b3d53..b720fcffbcd4 100644
--- a/arch/arm/configs/loki_defconfig
+++ b/arch/arm/configs/loki_defconfig
@@ -654,7 +654,7 @@ CONFIG_I2C_MV64XXX=y
654# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
655# 655#
656# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
657# CONFIG_SENSORS_EEPROM is not set 657# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 658# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 659# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCF8591 is not set 660# CONFIG_SENSORS_PCF8591 is not set
@@ -675,7 +675,7 @@ CONFIG_SPI_MASTER=y
675# 675#
676# SPI Protocol Masters 676# SPI Protocol Masters
677# 677#
678# CONFIG_SPI_AT25 is not set 678# CONFIG_EEPROM_AT25 is not set
679# CONFIG_SPI_SPIDEV is not set 679# CONFIG_SPI_SPIDEV is not set
680# CONFIG_SPI_TLE62X0 is not set 680# CONFIG_SPI_TLE62X0 is not set
681# CONFIG_W1 is not set 681# CONFIG_W1 is not set
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
index 4d11678584db..73ba62b71063 100644
--- a/arch/arm/configs/magician_defconfig
+++ b/arch/arm/configs/magician_defconfig
@@ -678,7 +678,7 @@ CONFIG_I2C_PXA=m
678# CONFIG_SENSORS_DS1337 is not set 678# CONFIG_SENSORS_DS1337 is not set
679# CONFIG_SENSORS_DS1374 is not set 679# CONFIG_SENSORS_DS1374 is not set
680# CONFIG_DS1682 is not set 680# CONFIG_DS1682 is not set
681# CONFIG_SENSORS_EEPROM is not set 681# CONFIG_EEPROM_LEGACY is not set
682# CONFIG_SENSORS_PCF8574 is not set 682# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_SENSORS_PCA9539 is not set 683# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set 684# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index 3b4ecf2a90dd..cc3b06ee24f9 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -580,7 +580,7 @@ CONFIG_I2C_MSM=y
580# CONFIG_SENSORS_DS1337 is not set 580# CONFIG_SENSORS_DS1337 is not set
581# CONFIG_SENSORS_DS1374 is not set 581# CONFIG_SENSORS_DS1374 is not set
582# CONFIG_DS1682 is not set 582# CONFIG_DS1682 is not set
583# CONFIG_SENSORS_EEPROM is not set 583# CONFIG_EEPROM_LEGACY is not set
584# CONFIG_SENSORS_PCF8574 is not set 584# CONFIG_SENSORS_PCF8574 is not set
585# CONFIG_SENSORS_PCA9539 is not set 585# CONFIG_SENSORS_PCA9539 is not set
586CONFIG_SENSORS_PCA9633=y 586CONFIG_SENSORS_PCA9633=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index d38ebf8721a4..83c817f31bcc 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -832,7 +832,7 @@ CONFIG_I2C_MV64XXX=y
832# Miscellaneous I2C Chip support 832# Miscellaneous I2C Chip support
833# 833#
834# CONFIG_DS1682 is not set 834# CONFIG_DS1682 is not set
835# CONFIG_SENSORS_EEPROM is not set 835# CONFIG_EEPROM_LEGACY is not set
836# CONFIG_SENSORS_PCF8574 is not set 836# CONFIG_SENSORS_PCF8574 is not set
837# CONFIG_PCF8575 is not set 837# CONFIG_PCF8575 is not set
838# CONFIG_SENSORS_PCF8591 is not set 838# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
index 568ef1770d5f..672f6db06a52 100644
--- a/arch/arm/configs/n770_defconfig
+++ b/arch/arm/configs/n770_defconfig
@@ -767,7 +767,7 @@ CONFIG_I2C_OMAP=y
767# CONFIG_SENSORS_DS1337 is not set 767# CONFIG_SENSORS_DS1337 is not set
768# CONFIG_SENSORS_DS1374 is not set 768# CONFIG_SENSORS_DS1374 is not set
769# CONFIG_DS1682 is not set 769# CONFIG_DS1682 is not set
770# CONFIG_SENSORS_EEPROM is not set 770# CONFIG_EEPROM_LEGACY is not set
771# CONFIG_SENSORS_PCF8574 is not set 771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set 772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set 773# CONFIG_SENSORS_PCF8591 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_OMAP_UWIRE=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_TSC2101 is not set 802# CONFIG_SPI_TSC2101 is not set
803# CONFIG_SPI_TSC2102 is not set 803# CONFIG_SPI_TSC2102 is not set
804# CONFIG_SPI_TSC210X is not set 804# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/neocore926_defconfig b/arch/arm/configs/neocore926_defconfig
index 325f1e105f69..e0e4e98b5aa2 100644
--- a/arch/arm/configs/neocore926_defconfig
+++ b/arch/arm/configs/neocore926_defconfig
@@ -774,8 +774,8 @@ CONFIG_I2C_CHARDEV=y
774# Miscellaneous I2C Chip support 774# Miscellaneous I2C Chip support
775# 775#
776# CONFIG_DS1682 is not set 776# CONFIG_DS1682 is not set
777# CONFIG_AT24 is not set 777# CONFIG_EEPROM_AT24 is not set
778# CONFIG_SENSORS_EEPROM is not set 778# CONFIG_EEPROM_LEGACY is not set
779# CONFIG_SENSORS_PCF8574 is not set 779# CONFIG_SENSORS_PCF8574 is not set
780# CONFIG_PCF8575 is not set 780# CONFIG_PCF8575 is not set
781# CONFIG_SENSORS_PCA9539 is not set 781# CONFIG_SENSORS_PCA9539 is not set
@@ -798,7 +798,7 @@ CONFIG_SPI_ATMEL=y
798# 798#
799# SPI Protocol Masters 799# SPI Protocol Masters
800# 800#
801# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
802# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
803# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
804# CONFIG_W1 is not set 804# CONFIG_W1 is not set
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index 92ccdc6492f7..d81ea219c934 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -737,7 +737,7 @@ CONFIG_I2C_ALGOBIT=y
737# 737#
738# Other I2C Chip support 738# Other I2C Chip support
739# 739#
740# CONFIG_SENSORS_EEPROM is not set 740# CONFIG_EEPROM_LEGACY is not set
741# CONFIG_SENSORS_PCF8574 is not set 741# CONFIG_SENSORS_PCF8574 is not set
742# CONFIG_SENSORS_PCF8591 is not set 742# CONFIG_SENSORS_PCF8591 is not set
743# CONFIG_SENSORS_RTC8564 is not set 743# CONFIG_SENSORS_RTC8564 is not set
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index e042d27eae16..4c6fb7e959df 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -687,8 +687,8 @@ CONFIG_I2C_OMAP=y
687# Miscellaneous I2C Chip support 687# Miscellaneous I2C Chip support
688# 688#
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_AT24 is not set 690# CONFIG_EEPROM_AT24 is not set
691# CONFIG_SENSORS_EEPROM is not set 691# CONFIG_EEPROM_LEGACY is not set
692# CONFIG_SENSORS_PCF8574 is not set 692# CONFIG_SENSORS_PCF8574 is not set
693# CONFIG_PCF8575 is not set 693# CONFIG_PCF8575 is not set
694# CONFIG_SENSORS_PCA9539 is not set 694# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig
index 09543f4de5bc..b54ad2e2da36 100644
--- a/arch/arm/configs/omap3_pandora_defconfig
+++ b/arch/arm/configs/omap3_pandora_defconfig
@@ -713,8 +713,8 @@ CONFIG_I2C_OMAP=y
713# Miscellaneous I2C Chip support 713# Miscellaneous I2C Chip support
714# 714#
715# CONFIG_DS1682 is not set 715# CONFIG_DS1682 is not set
716# CONFIG_AT24 is not set 716# CONFIG_EEPROM_AT24 is not set
717# CONFIG_SENSORS_EEPROM is not set 717# CONFIG_EEPROM_LEGACY is not set
718# CONFIG_SENSORS_PCF8574 is not set 718# CONFIG_SENSORS_PCF8574 is not set
719# CONFIG_PCF8575 is not set 719# CONFIG_PCF8575 is not set
720# CONFIG_SENSORS_PCA9539 is not set 720# CONFIG_SENSORS_PCA9539 is not set
@@ -740,7 +740,7 @@ CONFIG_SPI_OMAP24XX=y
740# 740#
741# SPI Protocol Masters 741# SPI Protocol Masters
742# 742#
743# CONFIG_SPI_AT25 is not set 743# CONFIG_EEPROM_AT25 is not set
744# CONFIG_SPI_SPIDEV is not set 744# CONFIG_SPI_SPIDEV is not set
745# CONFIG_SPI_TLE62X0 is not set 745# CONFIG_SPI_TLE62X0 is not set
746CONFIG_ARCH_REQUIRE_GPIOLIB=y 746CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
index b0617c0da2a1..640e9afc4630 100644
--- a/arch/arm/configs/omap_2430sdp_defconfig
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -710,7 +710,7 @@ CONFIG_I2C_OMAP=y
710# CONFIG_SENSORS_DS1337 is not set 710# CONFIG_SENSORS_DS1337 is not set
711# CONFIG_SENSORS_DS1374 is not set 711# CONFIG_SENSORS_DS1374 is not set
712# CONFIG_DS1682 is not set 712# CONFIG_DS1682 is not set
713# CONFIG_SENSORS_EEPROM is not set 713# CONFIG_EEPROM_LEGACY is not set
714# CONFIG_SENSORS_PCF8574 is not set 714# CONFIG_SENSORS_PCF8574 is not set
715# CONFIG_SENSORS_PCA9539 is not set 715# CONFIG_SENSORS_PCA9539 is not set
716# CONFIG_SENSORS_PCF8591 is not set 716# CONFIG_SENSORS_PCF8591 is not set
@@ -743,7 +743,7 @@ CONFIG_SPI_MASTER=y
743# 743#
744# SPI Protocol Masters 744# SPI Protocol Masters
745# 745#
746# CONFIG_SPI_AT25 is not set 746# CONFIG_EEPROM_AT25 is not set
747# CONFIG_SPI_TSC2101 is not set 747# CONFIG_SPI_TSC2101 is not set
748# CONFIG_SPI_TSC2102 is not set 748# CONFIG_SPI_TSC2102 is not set
749# CONFIG_SPI_TSC210X is not set 749# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
index bb39dfc72d69..ac7adf34c54a 100644
--- a/arch/arm/configs/omap_apollon_2420_defconfig
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -612,7 +612,7 @@ CONFIG_SPI_OMAP24XX=y
612# 612#
613# SPI Protocol Masters 613# SPI Protocol Masters
614# 614#
615# CONFIG_SPI_AT25 is not set 615# CONFIG_EEPROM_AT25 is not set
616# CONFIG_SPI_TSC2101 is not set 616# CONFIG_SPI_TSC2101 is not set
617# CONFIG_SPI_TSC2102 is not set 617# CONFIG_SPI_TSC2102 is not set
618# CONFIG_SPI_TSC210X is not set 618# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
index 4b1c252f2091..ccdc661b5856 100644
--- a/arch/arm/configs/omap_generic_1510_defconfig
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -637,7 +637,7 @@ CONFIG_I2C_ALGOBIT=y
637# CONFIG_SENSORS_DS1337 is not set 637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set 638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_DS1682 is not set 639# CONFIG_DS1682 is not set
640# CONFIG_SENSORS_EEPROM is not set 640# CONFIG_EEPROM_LEGACY is not set
641# CONFIG_SENSORS_PCF8574 is not set 641# CONFIG_SENSORS_PCF8574 is not set
642# CONFIG_SENSORS_PCA9539 is not set 642# CONFIG_SENSORS_PCA9539 is not set
643# CONFIG_SENSORS_PCF8591 is not set 643# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
index fc66f019d56c..0c42c8955047 100644
--- a/arch/arm/configs/omap_generic_1610_defconfig
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -641,7 +641,7 @@ CONFIG_I2C_ALGOBIT=y
641# CONFIG_SENSORS_DS1337 is not set 641# CONFIG_SENSORS_DS1337 is not set
642# CONFIG_SENSORS_DS1374 is not set 642# CONFIG_SENSORS_DS1374 is not set
643# CONFIG_DS1682 is not set 643# CONFIG_DS1682 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_SENSORS_PCA9539 is not set 646# CONFIG_SENSORS_PCA9539 is not set
647# CONFIG_SENSORS_PCF8591 is not set 647# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index c03507202f3c..74dbdc644d32 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -700,7 +700,7 @@ CONFIG_I2C_OMAP=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_SENSORS_EEPROM is not set 703# CONFIG_EEPROM_LEGACY is not set
704# CONFIG_SENSORS_PCF8574 is not set 704# CONFIG_SENSORS_PCF8574 is not set
705# CONFIG_PCF8575 is not set 705# CONFIG_PCF8575 is not set
706# CONFIG_SENSORS_PCF8591 is not set 706# CONFIG_SENSORS_PCF8591 is not set
@@ -731,7 +731,7 @@ CONFIG_SPI_OMAP_UWIRE=y
731# 731#
732# SPI Protocol Masters 732# SPI Protocol Masters
733# 733#
734# CONFIG_SPI_AT25 is not set 734# CONFIG_EEPROM_AT25 is not set
735CONFIG_SPI_TSC2101=y 735CONFIG_SPI_TSC2101=y
736# CONFIG_SPI_TSC2102 is not set 736# CONFIG_SPI_TSC2102 is not set
737# CONFIG_SPI_TSC210X is not set 737# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
index 5bc89185a64f..a4aab8e4c29b 100644
--- a/arch/arm/configs/omap_h4_2420_defconfig
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -681,7 +681,7 @@ CONFIG_I2C_OMAP=y
681# CONFIG_SENSORS_DS1337 is not set 681# CONFIG_SENSORS_DS1337 is not set
682# CONFIG_SENSORS_DS1374 is not set 682# CONFIG_SENSORS_DS1374 is not set
683# CONFIG_DS1682 is not set 683# CONFIG_DS1682 is not set
684# CONFIG_SENSORS_EEPROM is not set 684# CONFIG_EEPROM_LEGACY is not set
685# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set 686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
index 55b2611bd90a..0cfe363e3365 100644
--- a/arch/arm/configs/omap_innovator_1510_defconfig
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -631,7 +631,7 @@ CONFIG_I2C_BOARDINFO=y
631# CONFIG_SENSORS_DS1337 is not set 631# CONFIG_SENSORS_DS1337 is not set
632# CONFIG_SENSORS_DS1374 is not set 632# CONFIG_SENSORS_DS1374 is not set
633# CONFIG_DS1682 is not set 633# CONFIG_DS1682 is not set
634# CONFIG_SENSORS_EEPROM is not set 634# CONFIG_EEPROM_LEGACY is not set
635# CONFIG_SENSORS_PCF8574 is not set 635# CONFIG_SENSORS_PCF8574 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
637# CONFIG_SENSORS_PCF8591 is not set 637# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index b77d054169ee..aa9d34feddc6 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -629,8 +629,8 @@ CONFIG_I2C_OMAP=y
629# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
630# 630#
631# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set 632# CONFIG_EEPROM_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set 633# CONFIG_EEPROM_LEGACY is not set
634# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
@@ -656,7 +656,7 @@ CONFIG_SPI_OMAP24XX=y
656# 656#
657# SPI Protocol Masters 657# SPI Protocol Masters
658# 658#
659# CONFIG_SPI_AT25 is not set 659# CONFIG_EEPROM_AT25 is not set
660# CONFIG_SPI_SPIDEV is not set 660# CONFIG_SPI_SPIDEV is not set
661# CONFIG_SPI_TLE62X0 is not set 661# CONFIG_SPI_TLE62X0 is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y 662CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index b68e0144cab5..6b3b5c610da0 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -711,7 +711,7 @@ CONFIG_I2C_OMAP=y
711# CONFIG_SENSORS_DS1337 is not set 711# CONFIG_SENSORS_DS1337 is not set
712# CONFIG_SENSORS_DS1374 is not set 712# CONFIG_SENSORS_DS1374 is not set
713# CONFIG_DS1682 is not set 713# CONFIG_DS1682 is not set
714# CONFIG_SENSORS_EEPROM is not set 714# CONFIG_EEPROM_LEGACY is not set
715# CONFIG_SENSORS_PCF8574 is not set 715# CONFIG_SENSORS_PCF8574 is not set
716# CONFIG_SENSORS_PCA9539 is not set 716# CONFIG_SENSORS_PCA9539 is not set
717# CONFIG_SENSORS_PCF8591 is not set 717# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 418ca2febbe3..f8701fadb600 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -698,7 +698,7 @@ CONFIG_I2C_CHARDEV=y
698# 698#
699# CONFIG_SENSORS_DS1337 is not set 699# CONFIG_SENSORS_DS1337 is not set
700# CONFIG_SENSORS_DS1374 is not set 700# CONFIG_SENSORS_DS1374 is not set
701# CONFIG_SENSORS_EEPROM is not set 701# CONFIG_EEPROM_LEGACY is not set
702# CONFIG_SENSORS_PCF8574 is not set 702# CONFIG_SENSORS_PCF8574 is not set
703# CONFIG_SENSORS_PCA9539 is not set 703# CONFIG_SENSORS_PCA9539 is not set
704# CONFIG_SENSORS_PCF8591 is not set 704# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index b2456ca544c9..a8ee6984a09e 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -886,8 +886,8 @@ CONFIG_I2C_MV64XXX=y
886# Miscellaneous I2C Chip support 886# Miscellaneous I2C Chip support
887# 887#
888# CONFIG_DS1682 is not set 888# CONFIG_DS1682 is not set
889# CONFIG_AT24 is not set 889# CONFIG_EEPROM_AT24 is not set
890# CONFIG_SENSORS_EEPROM is not set 890# CONFIG_EEPROM_LEGACY is not set
891# CONFIG_SENSORS_PCF8574 is not set 891# CONFIG_SENSORS_PCF8574 is not set
892# CONFIG_PCF8575 is not set 892# CONFIG_PCF8575 is not set
893# CONFIG_SENSORS_PCA9539 is not set 893# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/overo_defconfig b/arch/arm/configs/overo_defconfig
index 49200967a153..a57f9e4124fa 100644
--- a/arch/arm/configs/overo_defconfig
+++ b/arch/arm/configs/overo_defconfig
@@ -858,8 +858,8 @@ CONFIG_I2C_OMAP=y
858# Miscellaneous I2C Chip support 858# Miscellaneous I2C Chip support
859# 859#
860# CONFIG_DS1682 is not set 860# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 861# CONFIG_EEPROM_AT24 is not set
862CONFIG_SENSORS_EEPROM=y 862CONFIG_EEPROM_LEGACY=y
863# CONFIG_SENSORS_PCF8574 is not set 863# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 864# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 865# CONFIG_SENSORS_PCA9539 is not set
@@ -885,7 +885,7 @@ CONFIG_SPI_OMAP24XX=y
885# 885#
886# SPI Protocol Masters 886# SPI Protocol Masters
887# 887#
888# CONFIG_SPI_AT25 is not set 888# CONFIG_EEPROM_AT25 is not set
889# CONFIG_SPI_SPIDEV is not set 889# CONFIG_SPI_SPIDEV is not set
890# CONFIG_SPI_TLE62X0 is not set 890# CONFIG_SPI_TLE62X0 is not set
891CONFIG_ARCH_REQUIRE_GPIOLIB=y 891CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
index 6361922e71c1..08e14068fff7 100644
--- a/arch/arm/configs/palmz71_defconfig
+++ b/arch/arm/configs/palmz71_defconfig
@@ -554,7 +554,7 @@ CONFIG_SPI_OMAP_UWIRE=y
554# 554#
555# SPI Protocol Masters 555# SPI Protocol Masters
556# 556#
557# CONFIG_SPI_AT25 is not set 557# CONFIG_EEPROM_AT25 is not set
558# CONFIG_SPI_TSC2101 is not set 558# CONFIG_SPI_TSC2101 is not set
559# CONFIG_SPI_TSC2102 is not set 559# CONFIG_SPI_TSC2102 is not set
560# CONFIG_SPI_TSC210X is not set 560# CONFIG_SPI_TSC210X is not set
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
index 3245f8f33e0a..a0dc37c05dea 100644
--- a/arch/arm/configs/palmz72_defconfig
+++ b/arch/arm/configs/palmz72_defconfig
@@ -527,8 +527,8 @@ CONFIG_I2C_PXA=y
527# Miscellaneous I2C Chip support 527# Miscellaneous I2C Chip support
528# 528#
529# CONFIG_DS1682 is not set 529# CONFIG_DS1682 is not set
530# CONFIG_AT24 is not set 530# CONFIG_EEPROM_AT24 is not set
531# CONFIG_SENSORS_EEPROM is not set 531# CONFIG_EEPROM_LEGACY is not set
532# CONFIG_SENSORS_PCF8574 is not set 532# CONFIG_SENSORS_PCF8574 is not set
533# CONFIG_PCF8575 is not set 533# CONFIG_PCF8575 is not set
534# CONFIG_SENSORS_PCA9539 is not set 534# CONFIG_SENSORS_PCA9539 is not set
@@ -552,7 +552,7 @@ CONFIG_SPI_MASTER=y
552# 552#
553# SPI Protocol Masters 553# SPI Protocol Masters
554# 554#
555# CONFIG_SPI_AT25 is not set 555# CONFIG_EEPROM_AT25 is not set
556CONFIG_SPI_SPIDEV=y 556CONFIG_SPI_SPIDEV=y
557# CONFIG_SPI_TLE62X0 is not set 557# CONFIG_SPI_TLE62X0 is not set
558CONFIG_ARCH_REQUIRE_GPIOLIB=y 558CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
index 17b9b2469570..05ad96a43b1d 100644
--- a/arch/arm/configs/pcm027_defconfig
+++ b/arch/arm/configs/pcm027_defconfig
@@ -606,7 +606,7 @@ CONFIG_I2C_PXA=y
606# CONFIG_SENSORS_DS1337 is not set 606# CONFIG_SENSORS_DS1337 is not set
607# CONFIG_SENSORS_DS1374 is not set 607# CONFIG_SENSORS_DS1374 is not set
608# CONFIG_DS1682 is not set 608# CONFIG_DS1682 is not set
609CONFIG_SENSORS_EEPROM=y 609CONFIG_EEPROM_LEGACY=y
610# CONFIG_SENSORS_PCF8574 is not set 610# CONFIG_SENSORS_PCF8574 is not set
611# CONFIG_SENSORS_PCA9539 is not set 611# CONFIG_SENSORS_PCA9539 is not set
612# CONFIG_SENSORS_PCF8591 is not set 612# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/pcm038_defconfig b/arch/arm/configs/pcm038_defconfig
index 6b798c215ca8..41429a00f58c 100644
--- a/arch/arm/configs/pcm038_defconfig
+++ b/arch/arm/configs/pcm038_defconfig
@@ -604,7 +604,7 @@ CONFIG_I2C_BOARDINFO=y
604# Miscellaneous I2C Chip support 604# Miscellaneous I2C Chip support
605# 605#
606# CONFIG_DS1682 is not set 606# CONFIG_DS1682 is not set
607# CONFIG_SENSORS_EEPROM is not set 607# CONFIG_EEPROM_LEGACY is not set
608# CONFIG_SENSORS_PCF8574 is not set 608# CONFIG_SENSORS_PCF8574 is not set
609# CONFIG_PCF8575 is not set 609# CONFIG_PCF8575 is not set
610# CONFIG_SENSORS_PCF8591 is not set 610# CONFIG_SENSORS_PCF8591 is not set
@@ -626,7 +626,7 @@ CONFIG_SPI_BITBANG=y
626# 626#
627# SPI Protocol Masters 627# SPI Protocol Masters
628# 628#
629# CONFIG_SPI_AT25 is not set 629# CONFIG_EEPROM_AT25 is not set
630# CONFIG_SPI_SPIDEV is not set 630# CONFIG_SPI_SPIDEV is not set
631# CONFIG_SPI_TLE62X0 is not set 631# CONFIG_SPI_TLE62X0 is not set
632CONFIG_HAVE_GPIO_LIB=y 632CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/picotux200_defconfig b/arch/arm/configs/picotux200_defconfig
index 59e4463c2da2..9018f0f298aa 100644
--- a/arch/arm/configs/picotux200_defconfig
+++ b/arch/arm/configs/picotux200_defconfig
@@ -744,7 +744,7 @@ CONFIG_I2C_GPIO=m
744# 744#
745CONFIG_SENSORS_DS1337=m 745CONFIG_SENSORS_DS1337=m
746CONFIG_SENSORS_DS1374=m 746CONFIG_SENSORS_DS1374=m
747CONFIG_SENSORS_EEPROM=m 747CONFIG_EEPROM_LEGACY=m
748CONFIG_SENSORS_PCF8574=m 748CONFIG_SENSORS_PCF8574=m
749CONFIG_SENSORS_PCA9539=m 749CONFIG_SENSORS_PCA9539=m
750CONFIG_SENSORS_PCF8591=m 750CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig
index 811b8f60d19d..67b5f1e15f4a 100644
--- a/arch/arm/configs/pnx4008_defconfig
+++ b/arch/arm/configs/pnx4008_defconfig
@@ -915,7 +915,7 @@ CONFIG_I2C_ALGOPCA=m
915# 915#
916# CONFIG_SENSORS_DS1337 is not set 916# CONFIG_SENSORS_DS1337 is not set
917# CONFIG_SENSORS_DS1374 is not set 917# CONFIG_SENSORS_DS1374 is not set
918CONFIG_SENSORS_EEPROM=m 918CONFIG_EEPROM_LEGACY=m
919CONFIG_SENSORS_PCF8574=m 919CONFIG_SENSORS_PCF8574=m
920# CONFIG_SENSORS_PCA9539 is not set 920# CONFIG_SENSORS_PCA9539 is not set
921CONFIG_SENSORS_PCF8591=m 921CONFIG_SENSORS_PCF8591=m
diff --git a/arch/arm/configs/qil-a9260_defconfig b/arch/arm/configs/qil-a9260_defconfig
index 5cbd81589647..cd1d717903ac 100644
--- a/arch/arm/configs/qil-a9260_defconfig
+++ b/arch/arm/configs/qil-a9260_defconfig
@@ -687,7 +687,7 @@ CONFIG_I2C_CHARDEV=y
687# CONFIG_SENSORS_DS1337 is not set 687# CONFIG_SENSORS_DS1337 is not set
688# CONFIG_SENSORS_DS1374 is not set 688# CONFIG_SENSORS_DS1374 is not set
689# CONFIG_DS1682 is not set 689# CONFIG_DS1682 is not set
690# CONFIG_SENSORS_EEPROM is not set 690# CONFIG_EEPROM_LEGACY is not set
691# CONFIG_SENSORS_PCF8574 is not set 691# CONFIG_SENSORS_PCF8574 is not set
692# CONFIG_SENSORS_PCA9539 is not set 692# CONFIG_SENSORS_PCA9539 is not set
693# CONFIG_SENSORS_PCF8591 is not set 693# CONFIG_SENSORS_PCF8591 is not set
@@ -714,7 +714,7 @@ CONFIG_SPI_ATMEL=y
714# 714#
715# SPI Protocol Masters 715# SPI Protocol Masters
716# 716#
717# CONFIG_SPI_AT25 is not set 717# CONFIG_EEPROM_AT25 is not set
718# CONFIG_SPI_SPIDEV is not set 718# CONFIG_SPI_SPIDEV is not set
719# CONFIG_SPI_TLE62X0 is not set 719# CONFIG_SPI_TLE62X0 is not set
720# CONFIG_W1 is not set 720# CONFIG_W1 is not set
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index f62d1817d2c6..a29d61fe4c6a 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -590,7 +590,7 @@ CONFIG_I2C_ACORN=y
590# CONFIG_SENSORS_DS1337 is not set 590# CONFIG_SENSORS_DS1337 is not set
591# CONFIG_SENSORS_DS1374 is not set 591# CONFIG_SENSORS_DS1374 is not set
592# CONFIG_DS1682 is not set 592# CONFIG_DS1682 is not set
593# CONFIG_SENSORS_EEPROM is not set 593# CONFIG_EEPROM_LEGACY is not set
594# CONFIG_SENSORS_PCF8574 is not set 594# CONFIG_SENSORS_PCF8574 is not set
595# CONFIG_SENSORS_PCA9539 is not set 595# CONFIG_SENSORS_PCA9539 is not set
596# CONFIG_SENSORS_PCF8591 is not set 596# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 35faaea8623e..65a583ee5df8 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -923,7 +923,7 @@ CONFIG_I2C_SIMTEC=y
923# Miscellaneous I2C Chip support 923# Miscellaneous I2C Chip support
924# 924#
925# CONFIG_DS1682 is not set 925# CONFIG_DS1682 is not set
926CONFIG_SENSORS_EEPROM=m 926CONFIG_EEPROM_LEGACY=m
927# CONFIG_SENSORS_PCF8574 is not set 927# CONFIG_SENSORS_PCF8574 is not set
928# CONFIG_PCF8575 is not set 928# CONFIG_PCF8575 is not set
929# CONFIG_SENSORS_PCF8591 is not set 929# CONFIG_SENSORS_PCF8591 is not set
@@ -950,7 +950,7 @@ CONFIG_SPI_S3C24XX_GPIO=m
950# 950#
951# SPI Protocol Masters 951# SPI Protocol Masters
952# 952#
953# CONFIG_SPI_AT25 is not set 953# CONFIG_EEPROM_AT25 is not set
954# CONFIG_SPI_SPIDEV is not set 954# CONFIG_SPI_SPIDEV is not set
955# CONFIG_SPI_TLE62X0 is not set 955# CONFIG_SPI_TLE62X0 is not set
956CONFIG_HAVE_GPIO_LIB=y 956CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index cf3c1b5d7048..2e8fa50e9a09 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -465,8 +465,8 @@ CONFIG_I2C_S3C2410=y
465# Miscellaneous I2C Chip support 465# Miscellaneous I2C Chip support
466# 466#
467# CONFIG_DS1682 is not set 467# CONFIG_DS1682 is not set
468CONFIG_AT24=y 468CONFIG_EEPROM_AT24=y
469# CONFIG_SENSORS_EEPROM is not set 469# CONFIG_EEPROM_LEGACY is not set
470# CONFIG_SENSORS_PCF8574 is not set 470# CONFIG_SENSORS_PCF8574 is not set
471# CONFIG_PCF8575 is not set 471# CONFIG_PCF8575 is not set
472# CONFIG_SENSORS_PCA9539 is not set 472# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig
index 4df5b4db2aa0..745c68ffb885 100644
--- a/arch/arm/configs/spitz_defconfig
+++ b/arch/arm/configs/spitz_defconfig
@@ -977,8 +977,8 @@ CONFIG_I2C_PXA=y
977# Miscellaneous I2C Chip support 977# Miscellaneous I2C Chip support
978# 978#
979# CONFIG_DS1682 is not set 979# CONFIG_DS1682 is not set
980# CONFIG_AT24 is not set 980# CONFIG_EEPROM_AT24 is not set
981# CONFIG_SENSORS_EEPROM is not set 981# CONFIG_EEPROM_LEGACY is not set
982# CONFIG_SENSORS_PCF8574 is not set 982# CONFIG_SENSORS_PCF8574 is not set
983# CONFIG_PCF8575 is not set 983# CONFIG_PCF8575 is not set
984# CONFIG_SENSORS_PCA9539 is not set 984# CONFIG_SENSORS_PCA9539 is not set
@@ -1003,7 +1003,7 @@ CONFIG_SPI_PXA2XX=y
1003# 1003#
1004# SPI Protocol Masters 1004# SPI Protocol Masters
1005# 1005#
1006# CONFIG_SPI_AT25 is not set 1006# CONFIG_EEPROM_AT25 is not set
1007# CONFIG_SPI_SPIDEV is not set 1007# CONFIG_SPI_SPIDEV is not set
1008# CONFIG_SPI_TLE62X0 is not set 1008# CONFIG_SPI_TLE62X0 is not set
1009CONFIG_ARCH_REQUIRE_GPIOLIB=y 1009CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
index 853dcdd9f2e0..25b007ff8bab 100644
--- a/arch/arm/configs/sx1_defconfig
+++ b/arch/arm/configs/sx1_defconfig
@@ -610,7 +610,7 @@ CONFIG_I2C_OMAP=y
610# 610#
611# CONFIG_SENSORS_DS1337 is not set 611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set 612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set 613# CONFIG_EEPROM_LEGACY is not set
614# CONFIG_SENSORS_PCF8574 is not set 614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set 615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set 616# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index 9033d147f052..b6f838197816 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -948,7 +948,7 @@ CONFIG_I2C_PXA_SLAVE=y
948# 948#
949# CONFIG_SENSORS_DS1337 is not set 949# CONFIG_SENSORS_DS1337 is not set
950# CONFIG_SENSORS_DS1374 is not set 950# CONFIG_SENSORS_DS1374 is not set
951# CONFIG_SENSORS_EEPROM is not set 951# CONFIG_EEPROM_LEGACY is not set
952# CONFIG_SENSORS_PCF8574 is not set 952# CONFIG_SENSORS_PCF8574 is not set
953# CONFIG_SENSORS_PCA9539 is not set 953# CONFIG_SENSORS_PCA9539 is not set
954# CONFIG_SENSORS_PCF8591 is not set 954# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/usb-a9260_defconfig b/arch/arm/configs/usb-a9260_defconfig
index fcb4aaabd439..fd7774033d64 100644
--- a/arch/arm/configs/usb-a9260_defconfig
+++ b/arch/arm/configs/usb-a9260_defconfig
@@ -676,7 +676,7 @@ CONFIG_SPI_ATMEL=y
676# 676#
677# SPI Protocol Masters 677# SPI Protocol Masters
678# 678#
679# CONFIG_SPI_AT25 is not set 679# CONFIG_EEPROM_AT25 is not set
680# CONFIG_SPI_SPIDEV is not set 680# CONFIG_SPI_SPIDEV is not set
681# CONFIG_SPI_TLE62X0 is not set 681# CONFIG_SPI_TLE62X0 is not set
682# CONFIG_W1 is not set 682# CONFIG_W1 is not set
diff --git a/arch/arm/configs/usb-a9263_defconfig b/arch/arm/configs/usb-a9263_defconfig
index b786e0407e8e..e7c19dd92557 100644
--- a/arch/arm/configs/usb-a9263_defconfig
+++ b/arch/arm/configs/usb-a9263_defconfig
@@ -668,7 +668,7 @@ CONFIG_SPI_ATMEL=y
668# 668#
669# SPI Protocol Masters 669# SPI Protocol Masters
670# 670#
671# CONFIG_SPI_AT25 is not set 671# CONFIG_EEPROM_AT25 is not set
672# CONFIG_SPI_SPIDEV is not set 672# CONFIG_SPI_SPIDEV is not set
673# CONFIG_SPI_TLE62X0 is not set 673# CONFIG_SPI_TLE62X0 is not set
674# CONFIG_W1 is not set 674# CONFIG_W1 is not set
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index 8355f88f7292..b11c5da3996c 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -611,7 +611,7 @@ CONFIG_I2C_ALGOBIT=y
611# 611#
612# CONFIG_SENSORS_DS1337 is not set 612# CONFIG_SENSORS_DS1337 is not set
613# CONFIG_SENSORS_DS1374 is not set 613# CONFIG_SENSORS_DS1374 is not set
614CONFIG_SENSORS_EEPROM=m 614CONFIG_EEPROM_LEGACY=m
615# CONFIG_SENSORS_PCF8574 is not set 615# CONFIG_SENSORS_PCF8574 is not set
616# CONFIG_SENSORS_PCA9539 is not set 616# CONFIG_SENSORS_PCA9539 is not set
617# CONFIG_SENSORS_PCF8591 is not set 617# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index d01fecb8673e..30f463d2fa8a 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -860,8 +860,8 @@ CONFIG_I2C_PXA=y
860# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
861# 861#
862# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 863# CONFIG_EEPROM_AT24 is not set
864# CONFIG_SENSORS_EEPROM is not set 864# CONFIG_EEPROM_LEGACY is not set
865# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 866# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/xm_x2xx_defconfig b/arch/arm/configs/xm_x2xx_defconfig
index f891364deceb..1039f366bf8d 100644
--- a/arch/arm/configs/xm_x2xx_defconfig
+++ b/arch/arm/configs/xm_x2xx_defconfig
@@ -1009,8 +1009,8 @@ CONFIG_I2C_PXA=y
1009# Miscellaneous I2C Chip support 1009# Miscellaneous I2C Chip support
1010# 1010#
1011# CONFIG_DS1682 is not set 1011# CONFIG_DS1682 is not set
1012# CONFIG_AT24 is not set 1012# CONFIG_EEPROM_AT24 is not set
1013# CONFIG_SENSORS_EEPROM is not set 1013# CONFIG_EEPROM_LEGACY is not set
1014# CONFIG_SENSORS_PCF8574 is not set 1014# CONFIG_SENSORS_PCF8574 is not set
1015# CONFIG_PCF8575 is not set 1015# CONFIG_PCF8575 is not set
1016# CONFIG_SENSORS_PCA9539 is not set 1016# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/arm/configs/yl9200_defconfig b/arch/arm/configs/yl9200_defconfig
index a9f41c24c9dc..9192e5977674 100644
--- a/arch/arm/configs/yl9200_defconfig
+++ b/arch/arm/configs/yl9200_defconfig
@@ -682,7 +682,7 @@ CONFIG_SPI_ATMEL=y
682# 682#
683# SPI Protocol Masters 683# SPI Protocol Masters
684# 684#
685# CONFIG_SPI_AT25 is not set 685# CONFIG_EEPROM_AT25 is not set
686# CONFIG_SPI_TLE62X0 is not set 686# CONFIG_SPI_TLE62X0 is not set
687# CONFIG_W1 is not set 687# CONFIG_W1 is not set
688# CONFIG_POWER_SUPPLY is not set 688# CONFIG_POWER_SUPPLY is not set
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index fe182a85159c..c6fb32c36c52 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -12,6 +12,7 @@
12 12
13#include <mach/common.h> 13#include <mach/common.h>
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/irqs.h>
15 16
16#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) 17#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
17static struct musb_hdrc_eps_bits musb_eps[] = { 18static struct musb_hdrc_eps_bits musb_eps[] = {
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index b240c5f861da..0d784a795092 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -37,16 +37,14 @@
37#include <asm/mach/flash.h> 37#include <asm/mach/flash.h>
38#include <asm/mach/map.h> 38#include <asm/mach/map.h>
39 39
40#include <mach/gpio-switch.h>
41#include <mach/mux.h> 40#include <mach/mux.h>
41#include <mach/dma.h>
42#include <mach/tc.h> 42#include <mach/tc.h>
43#include <mach/nand.h> 43#include <mach/nand.h>
44#include <mach/irda.h> 44#include <mach/irda.h>
45#include <mach/usb.h> 45#include <mach/usb.h>
46#include <mach/keypad.h> 46#include <mach/keypad.h>
47#include <mach/common.h> 47#include <mach/common.h>
48#include <mach/mcbsp.h>
49#include <mach/omap-alsa.h>
50 48
51static int h2_keymap[] = { 49static int h2_keymap[] = {
52 KEY(0, 0, KEY_LEFT), 50 KEY(0, 0, KEY_LEFT),
@@ -292,41 +290,6 @@ static struct platform_device h2_lcd_device = {
292 .id = -1, 290 .id = -1,
293}; 291};
294 292
295static struct omap_mcbsp_reg_cfg mcbsp_regs = {
296 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
297 .spcr1 = RINTM(3) | RRST,
298 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
299 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
300 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
301 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
302 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
303 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
304 .srgr1 = FWID(15),
305 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
306
307 .pcr0 = CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
308 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
309};
310
311static struct omap_alsa_codec_config alsa_config = {
312 .name = "H2 TSC2101",
313 .mcbsp_regs_alsa = &mcbsp_regs,
314 .codec_configure_dev = NULL, /* tsc2101_configure, */
315 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
316 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
317 .codec_clock_on = NULL, /* tsc2101_clock_on, */
318 .codec_clock_off = NULL, /* tsc2101_clock_off, */
319 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
320};
321
322static struct platform_device h2_mcbsp1_device = {
323 .name = "omap_alsa_mcbsp",
324 .id = 1,
325 .dev = {
326 .platform_data = &alsa_config,
327 },
328};
329
330static struct platform_device *h2_devices[] __initdata = { 293static struct platform_device *h2_devices[] __initdata = {
331 &h2_nor_device, 294 &h2_nor_device,
332 &h2_nand_device, 295 &h2_nand_device,
@@ -334,7 +297,6 @@ static struct platform_device *h2_devices[] __initdata = {
334 &h2_irda_device, 297 &h2_irda_device,
335 &h2_kp_device, 298 &h2_kp_device,
336 &h2_lcd_device, 299 &h2_lcd_device,
337 &h2_mcbsp1_device,
338}; 300};
339 301
340static void __init h2_init_smc91x(void) 302static void __init h2_init_smc91x(void)
@@ -409,11 +371,6 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
409 371
410#define H2_NAND_RB_GPIO_PIN 62 372#define H2_NAND_RB_GPIO_PIN 62
411 373
412static int h2_nand_dev_ready(struct omap_nand_platform_data *data)
413{
414 return gpio_get_value(H2_NAND_RB_GPIO_PIN);
415}
416
417static void __init h2_init(void) 374static void __init h2_init(void)
418{ 375{
419 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped 376 /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 5157eea9be35..bf08b6ad22ee 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -49,8 +49,6 @@
49#include <mach/keypad.h> 49#include <mach/keypad.h>
50#include <mach/dma.h> 50#include <mach/dma.h>
51#include <mach/common.h> 51#include <mach/common.h>
52#include <mach/mcbsp.h>
53#include <mach/omap-alsa.h>
54 52
55#define H3_TS_GPIO 48 53#define H3_TS_GPIO 48
56 54
@@ -387,41 +385,6 @@ static struct spi_board_info h3_spi_board_info[] __initdata = {
387 }, 385 },
388}; 386};
389 387
390static struct omap_mcbsp_reg_cfg mcbsp_regs = {
391 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
392 .spcr1 = RINTM(3) | RRST,
393 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
394 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(1),
395 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
396 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
397 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(1) | XFIG,
398 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
399 .srgr1 = FWID(15),
400 .srgr2 = GSYNC | CLKSP | FSGM | FPER(31),
401
402 .pcr0 = CLKRM | SCLKME | FSXP | FSRP | CLKXP | CLKRP,
403 /*.pcr0 = CLKXP | CLKRP,*/ /* mcbsp: slave */
404};
405
406static struct omap_alsa_codec_config alsa_config = {
407 .name = "H3 TSC2101",
408 .mcbsp_regs_alsa = &mcbsp_regs,
409 .codec_configure_dev = NULL, /* tsc2101_configure, */
410 .codec_set_samplerate = NULL, /* tsc2101_set_samplerate, */
411 .codec_clock_setup = NULL, /* tsc2101_clock_setup, */
412 .codec_clock_on = NULL, /* tsc2101_clock_on, */
413 .codec_clock_off = NULL, /* tsc2101_clock_off, */
414 .get_default_samplerate = NULL, /* tsc2101_get_default_samplerate, */
415};
416
417static struct platform_device h3_mcbsp1_device = {
418 .name = "omap_alsa_mcbsp",
419 .id = 1,
420 .dev = {
421 .platform_data = &alsa_config,
422 },
423};
424
425static struct platform_device *devices[] __initdata = { 388static struct platform_device *devices[] __initdata = {
426 &nor_device, 389 &nor_device,
427 &nand_device, 390 &nand_device,
@@ -430,7 +393,6 @@ static struct platform_device *devices[] __initdata = {
430 &h3_irda_device, 393 &h3_irda_device,
431 &h3_kp_device, 394 &h3_kp_device,
432 &h3_lcd_device, 395 &h3_lcd_device,
433 &h3_mcbsp1_device,
434}; 396};
435 397
436static struct omap_usb_config h3_usb_config __initdata = { 398static struct omap_usb_config h3_usb_config __initdata = {
@@ -472,18 +434,6 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
472 }, 434 },
473}; 435};
474 436
475static struct omap_gpio_switch h3_gpio_switches[] __initdata = {
476 {
477 .name = "mmc_slot",
478 .gpio = OMAP_MPUIO(1),
479 .type = OMAP_GPIO_SWITCH_TYPE_COVER,
480 .debounce_rising = 100,
481 .debounce_falling = 0,
482 .notify = h3_mmc_slot_cover_handler,
483 .notify_data = NULL,
484 },
485};
486
487#define H3_NAND_RB_GPIO_PIN 10 437#define H3_NAND_RB_GPIO_PIN 10
488 438
489static int nand_dev_ready(struct omap_nand_platform_data *data) 439static int nand_dev_ready(struct omap_nand_platform_data *data)
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index af2fb9070083..071cd02a734e 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -37,8 +37,6 @@
37#include <mach/usb.h> 37#include <mach/usb.h>
38#include <mach/keypad.h> 38#include <mach/keypad.h>
39#include <mach/common.h> 39#include <mach/common.h>
40#include <mach/mcbsp.h>
41#include <mach/omap-alsa.h>
42#include <mach/mmc.h> 40#include <mach/mmc.h>
43 41
44static int innovator_keymap[] = { 42static int innovator_keymap[] = {
@@ -115,42 +113,6 @@ static struct platform_device innovator_flash_device = {
115 .resource = &innovator_flash_resource, 113 .resource = &innovator_flash_resource,
116}; 114};
117 115
118#define DEFAULT_BITPERSAMPLE 16
119
120static struct omap_mcbsp_reg_cfg mcbsp_regs = {
121 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
122 .spcr1 = RINTM(3) | RRST,
123 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
124 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
125 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
126 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
127 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
128 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
129 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
130 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
131 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
132 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
133};
134
135static struct omap_alsa_codec_config alsa_config = {
136 .name = "OMAP Innovator AIC23",
137 .mcbsp_regs_alsa = &mcbsp_regs,
138 .codec_configure_dev = NULL, /* aic23_configure, */
139 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
140 .codec_clock_setup = NULL, /* aic23_clock_setup, */
141 .codec_clock_on = NULL, /* aic23_clock_on, */
142 .codec_clock_off = NULL, /* aic23_clock_off, */
143 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
144};
145
146static struct platform_device innovator_mcbsp1_device = {
147 .name = "omap_alsa_mcbsp",
148 .id = 1,
149 .dev = {
150 .platform_data = &alsa_config,
151 },
152};
153
154static struct resource innovator_kp_resources[] = { 116static struct resource innovator_kp_resources[] = {
155 [0] = { 117 [0] = {
156 .start = INT_KEYBOARD, 118 .start = INT_KEYBOARD,
@@ -227,7 +189,6 @@ static struct platform_device innovator1510_spi_device = {
227static struct platform_device *innovator1510_devices[] __initdata = { 189static struct platform_device *innovator1510_devices[] __initdata = {
228 &innovator_flash_device, 190 &innovator_flash_device,
229 &innovator1510_smc91x_device, 191 &innovator1510_smc91x_device,
230 &innovator_mcbsp1_device,
231 &innovator_kp_device, 192 &innovator_kp_device,
232 &innovator1510_lcd_device, 193 &innovator1510_lcd_device,
233 &innovator1510_spi_device, 194 &innovator1510_spi_device,
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 4970c402a594..af51e0b180f2 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -32,7 +32,6 @@
32#include <mach/keypad.h> 32#include <mach/keypad.h>
33#include <mach/common.h> 33#include <mach/common.h>
34#include <mach/dsp_common.h> 34#include <mach/dsp_common.h>
35#include <mach/aic23.h>
36#include <mach/omapfb.h> 35#include <mach/omapfb.h>
37#include <mach/lcd_mipid.h> 36#include <mach/lcd_mipid.h>
38#include <mach/mmc.h> 37#include <mach/mmc.h>
@@ -261,6 +260,13 @@ static DEFINE_MUTEX(audio_pwr_lock);
261 */ 260 */
262static int audio_pwr_state = -1; 261static int audio_pwr_state = -1;
263 262
263static inline void aic23_power_up(void)
264{
265}
266static inline void aic23_power_down(void)
267{
268}
269
264/* 270/*
265 * audio_pwr_up / down should be called under audio_pwr_lock 271 * audio_pwr_up / down should be called under audio_pwr_lock
266 */ 272 */
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index ff9e67baa5c9..1a16ecb2ccc8 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -51,8 +51,6 @@
51#include <mach/mux.h> 51#include <mach/mux.h>
52#include <mach/tc.h> 52#include <mach/tc.h>
53#include <mach/common.h> 53#include <mach/common.h>
54#include <mach/mcbsp.h>
55#include <mach/omap-alsa.h>
56 54
57static struct mtd_partition osk_partitions[] = { 55static struct mtd_partition osk_partitions[] = {
58 /* bootloader (U-Boot, etc) in first sector */ 56 /* bootloader (U-Boot, etc) in first sector */
@@ -141,47 +139,10 @@ static struct platform_device osk5912_cf_device = {
141 .resource = osk5912_cf_resources, 139 .resource = osk5912_cf_resources,
142}; 140};
143 141
144#define DEFAULT_BITPERSAMPLE 16
145
146static struct omap_mcbsp_reg_cfg mcbsp_regs = {
147 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
148 .spcr1 = RINTM(3) | RRST,
149 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
150 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
151 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
152 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
153 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
154 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
155 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
156 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
157 /*.pcr0 = FSXM | FSRM | CLKXM | CLKRM | CLKXP | CLKRP,*/ /* mcbsp: master */
158 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
159};
160
161static struct omap_alsa_codec_config alsa_config = {
162 .name = "OSK AIC23",
163 .mcbsp_regs_alsa = &mcbsp_regs,
164 .codec_configure_dev = NULL, /* aic23_configure, */
165 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
166 .codec_clock_setup = NULL, /* aic23_clock_setup, */
167 .codec_clock_on = NULL, /* aic23_clock_on, */
168 .codec_clock_off = NULL, /* aic23_clock_off, */
169 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
170};
171
172static struct platform_device osk5912_mcbsp1_device = {
173 .name = "omap_alsa_mcbsp",
174 .id = 1,
175 .dev = {
176 .platform_data = &alsa_config,
177 },
178};
179
180static struct platform_device *osk5912_devices[] __initdata = { 142static struct platform_device *osk5912_devices[] __initdata = {
181 &osk5912_flash_device, 143 &osk5912_flash_device,
182 &osk5912_smc91x_device, 144 &osk5912_smc91x_device,
183 &osk5912_cf_device, 145 &osk5912_cf_device,
184 &osk5912_mcbsp1_device,
185}; 146};
186 147
187static struct gpio_led tps_leds[] = { 148static struct gpio_led tps_leds[] = {
@@ -259,8 +220,10 @@ static struct i2c_board_info __initdata osk_i2c_board_info[] = {
259 .platform_data = &tps_board, 220 .platform_data = &tps_board,
260 221
261 }, 222 },
223 {
224 I2C_BOARD_INFO("tlv320aic23", 0x1B),
225 },
262 /* TODO when driver support is ready: 226 /* TODO when driver support is ready:
263 * - aic23 audio chip at 0x1a
264 * - optionally on Mistral, ov9640 camera sensor at 0x30 227 * - optionally on Mistral, ov9640 camera sensor at 0x30
265 */ 228 */
266}; 229};
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c
index 75e32d35afd9..99f2b43f2541 100644
--- a/arch/arm/mach-omap1/board-palmte.c
+++ b/arch/arm/mach-omap1/board-palmte.c
@@ -42,8 +42,6 @@
42#include <mach/irda.h> 42#include <mach/irda.h>
43#include <mach/keypad.h> 43#include <mach/keypad.h>
44#include <mach/common.h> 44#include <mach/common.h>
45#include <mach/mcbsp.h>
46#include <mach/omap-alsa.h>
47 45
48static void __init omap_palmte_init_irq(void) 46static void __init omap_palmte_init_irq(void)
49{ 47{
@@ -195,15 +193,6 @@ static struct omap_usb_config palmte_usb_config __initdata = {
195 .pins[0] = 2, 193 .pins[0] = 2,
196}; 194};
197 195
198static struct omap_mmc_config palmte_mmc_config __initdata = {
199 .mmc[0] = {
200 .enabled = 1,
201 .wp_pin = PALMTE_MMC_WP_GPIO,
202 .power_pin = PALMTE_MMC_POWER_GPIO,
203 .switch_pin = PALMTE_MMC_SWITCH_GPIO,
204 },
205};
206
207static struct omap_lcd_config palmte_lcd_config __initdata = { 196static struct omap_lcd_config palmte_lcd_config __initdata = {
208 .ctrl_name = "internal", 197 .ctrl_name = "internal",
209}; 198};
@@ -212,24 +201,6 @@ static struct omap_uart_config palmte_uart_config __initdata = {
212 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2), 201 .enabled_uarts = (1 << 0) | (1 << 1) | (0 << 2),
213}; 202};
214 203
215static struct omap_mcbsp_reg_cfg palmte_mcbsp1_regs = {
216 .spcr2 = FRST | GRST | XRST | XINTM(3),
217 .xcr2 = XDATDLY(1) | XFIG,
218 .xcr1 = XWDLEN1(OMAP_MCBSP_WORD_32),
219 .pcr0 = SCLKME | FSXP | CLKXP,
220};
221
222static struct omap_alsa_codec_config palmte_alsa_config = {
223 .name = "TSC2102 audio",
224 .mcbsp_regs_alsa = &palmte_mcbsp1_regs,
225 .codec_configure_dev = NULL, /* tsc2102_configure, */
226 .codec_set_samplerate = NULL, /* tsc2102_set_samplerate, */
227 .codec_clock_setup = NULL, /* tsc2102_clock_setup, */
228 .codec_clock_on = NULL, /* tsc2102_clock_on, */
229 .codec_clock_off = NULL, /* tsc2102_clock_off, */
230 .get_default_samplerate = NULL, /* tsc2102_get_default_samplerate, */
231};
232
233#ifdef CONFIG_APM 204#ifdef CONFIG_APM
234/* 205/*
235 * Values measured in 10 minute intervals averaged over 10 samples. 206 * Values measured in 10 minute intervals averaged over 10 samples.
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c
index 5c001afe8062..1cbc1275c95f 100644
--- a/arch/arm/mach-omap1/board-palmtt.c
+++ b/arch/arm/mach-omap1/board-palmtt.c
@@ -30,7 +30,6 @@
30#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
31 31
32#include <mach/led.h> 32#include <mach/led.h>
33#include <mach/mcbsp.h>
34#include <mach/gpio.h> 33#include <mach/gpio.h>
35#include <mach/mux.h> 34#include <mach/mux.h>
36#include <mach/usb.h> 35#include <mach/usb.h>
@@ -40,7 +39,6 @@
40#include <mach/irda.h> 39#include <mach/irda.h>
41#include <mach/keypad.h> 40#include <mach/keypad.h>
42#include <mach/common.h> 41#include <mach/common.h>
43#include <mach/omap-alsa.h>
44 42
45#include <linux/spi/spi.h> 43#include <linux/spi/spi.h>
46#include <linux/spi/ads7846.h> 44#include <linux/spi/ads7846.h>
@@ -122,44 +120,6 @@ static struct platform_device palmtt_flash_device = {
122 .resource = &palmtt_flash_resource, 120 .resource = &palmtt_flash_resource,
123}; 121};
124 122
125#define DEFAULT_BITPERSAMPLE 16
126
127static struct omap_mcbsp_reg_cfg mcbsp_regs = {
128 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
129 .spcr1 = RINTM(3) | RRST,
130 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
131 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
132 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) |
133 RWDLEN1(OMAP_MCBSP_WORD_16),
134 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
135 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
136 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) |
137 XWDLEN1(OMAP_MCBSP_WORD_16),
138 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
139 .srgr2 = GSYNC | CLKSP | FSGM |
140 FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
141 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
142};
143
144static struct omap_alsa_codec_config alsa_config = {
145 .name = "PalmTT AIC23",
146 .mcbsp_regs_alsa = &mcbsp_regs,
147 .codec_configure_dev = NULL, /* aic23_configure, */
148 .codec_set_samplerate = NULL, /* aic23_set_samplerate, */
149 .codec_clock_setup = NULL, /* aic23_clock_setup, */
150 .codec_clock_on = NULL, /* aic23_clock_on, */
151 .codec_clock_off = NULL, /* aic23_clock_off, */
152 .get_default_samplerate = NULL, /* aic23_get_default_samplerate, */
153};
154
155static struct platform_device palmtt_mcbsp1_device = {
156 .name = "omap_alsa_mcbsp",
157 .id = 1,
158 .dev = {
159 .platform_data = &alsa_config,
160 },
161};
162
163static struct resource palmtt_kp_resources[] = { 123static struct resource palmtt_kp_resources[] = {
164 [0] = { 124 [0] = {
165 .start = INT_KEYBOARD, 125 .start = INT_KEYBOARD,
@@ -257,7 +217,6 @@ static struct platform_device palmtt_led_device = {
257 217
258static struct platform_device *palmtt_devices[] __initdata = { 218static struct platform_device *palmtt_devices[] __initdata = {
259 &palmtt_flash_device, 219 &palmtt_flash_device,
260 &palmtt_mcbsp1_device,
261 &palmtt_kp_device, 220 &palmtt_kp_device,
262 &palmtt_lcd_device, 221 &palmtt_lcd_device,
263 &palmtt_irda_device, 222 &palmtt_irda_device,
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c
index cc05257eb1cd..baf5efbfe3e8 100644
--- a/arch/arm/mach-omap1/board-palmz71.c
+++ b/arch/arm/mach-omap1/board-palmz71.c
@@ -32,7 +32,6 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33#include <asm/mach/flash.h> 33#include <asm/mach/flash.h>
34 34
35#include <mach/mcbsp.h>
36#include <mach/gpio.h> 35#include <mach/gpio.h>
37#include <mach/mux.h> 36#include <mach/mux.h>
38#include <mach/usb.h> 37#include <mach/usb.h>
@@ -179,41 +178,6 @@ static struct platform_device palmz71_spi_device = {
179 .id = -1, 178 .id = -1,
180}; 179};
181 180
182#define DEFAULT_BITPERSAMPLE 16
183
184static struct omap_mcbsp_reg_cfg mcbsp_regs = {
185 .spcr2 = FREE | FRST | GRST | XRST | XINTM(3),
186 .spcr1 = RINTM(3) | RRST,
187 .rcr2 = RPHASE | RFRLEN2(OMAP_MCBSP_WORD_8) |
188 RWDLEN2(OMAP_MCBSP_WORD_16) | RDATDLY(0),
189 .rcr1 = RFRLEN1(OMAP_MCBSP_WORD_8) | RWDLEN1(OMAP_MCBSP_WORD_16),
190 .xcr2 = XPHASE | XFRLEN2(OMAP_MCBSP_WORD_8) |
191 XWDLEN2(OMAP_MCBSP_WORD_16) | XDATDLY(0) | XFIG,
192 .xcr1 = XFRLEN1(OMAP_MCBSP_WORD_8) | XWDLEN1(OMAP_MCBSP_WORD_16),
193 .srgr1 = FWID(DEFAULT_BITPERSAMPLE - 1),
194 .srgr2 = GSYNC | CLKSP | FSGM | FPER(DEFAULT_BITPERSAMPLE * 2 - 1),
195 .pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
196};
197
198static struct omap_alsa_codec_config alsa_config = {
199 .name = "PalmZ71 AIC23",
200 .mcbsp_regs_alsa = &mcbsp_regs,
201 .codec_configure_dev = NULL, /* aic23_configure */
202 .codec_set_samplerate = NULL, /* aic23_set_samplerate */
203 .codec_clock_setup = NULL, /* aic23_clock_setup */
204 .codec_clock_on = NULL, /* aic23_clock_on */
205 .codec_clock_off = NULL, /* aic23_clock_off */
206 .get_default_samplerate = NULL, /* aic23_get_default_samplerate */
207};
208
209static struct platform_device palmz71_mcbsp1_device = {
210 .name = "omap_alsa_mcbsp",
211 .id = 1,
212 .dev = {
213 .platform_data = &alsa_config,
214 },
215};
216
217static struct omap_backlight_config palmz71_backlight_config = { 181static struct omap_backlight_config palmz71_backlight_config = {
218 .default_intensity = 0xa0, 182 .default_intensity = 0xa0,
219}; 183};
@@ -229,7 +193,6 @@ static struct platform_device palmz71_backlight_device = {
229static struct platform_device *devices[] __initdata = { 193static struct platform_device *devices[] __initdata = {
230 &palmz71_rom_device, 194 &palmz71_rom_device,
231 &palmz71_kp_device, 195 &palmz71_kp_device,
232 &palmz71_mcbsp1_device,
233 &palmz71_lcd_device, 196 &palmz71_lcd_device,
234 &palmz71_irda_device, 197 &palmz71_irda_device,
235 &palmz71_spi_device, 198 &palmz71_spi_device,
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 8171fe0ca082..28c76a1e71c0 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -34,13 +34,12 @@
34 34
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <mach/mux.h> 36#include <mach/mux.h>
37#include <mach/dma.h>
37#include <mach/irda.h> 38#include <mach/irda.h>
38#include <mach/usb.h> 39#include <mach/usb.h>
39#include <mach/tc.h> 40#include <mach/tc.h>
40#include <mach/board.h> 41#include <mach/board.h>
41#include <mach/common.h> 42#include <mach/common.h>
42#include <mach/mcbsp.h>
43#include <mach/omap-alsa.h>
44#include <mach/keypad.h> 43#include <mach/keypad.h>
45 44
46/* Write to I2C device */ 45/* Write to I2C device */
@@ -254,35 +253,6 @@ static struct platform_device sx1_irda_device = {
254 .resource = sx1_irda_resources, 253 .resource = sx1_irda_resources,
255}; 254};
256 255
257/*----------- McBSP & Sound -------------------------*/
258
259/* Playback interface - McBSP1 */
260static struct omap_mcbsp_reg_cfg mcbsp1_regs = {
261 .spcr2 = XINTM(3), /* SPCR2=30 */
262 .spcr1 = RINTM(3), /* SPCR1=30 */
263 .rcr2 = 0, /* RCR2 =00 */
264 .rcr1 = RFRLEN1(1) | RWDLEN1(OMAP_MCBSP_WORD_16), /* RCR1=140 */
265 .xcr2 = 0, /* XCR2 = 0 */
266 .xcr1 = XFRLEN1(1) | XWDLEN1(OMAP_MCBSP_WORD_16), /* XCR1 = 140 */
267 .srgr1 = FWID(15) | CLKGDV(12), /* SRGR1=0f0c */
268 .srgr2 = FSGM | FPER(31), /* SRGR2=101f */
269 .pcr0 = FSXM | FSRM | CLKXM | CLKRM | FSXP | FSRP | CLKXP | CLKRP,
270 /* PCR0 =0f0f */
271};
272
273static struct omap_alsa_codec_config sx1_alsa_config = {
274 .name = "SX1 EGold",
275 .mcbsp_regs_alsa = &mcbsp1_regs,
276};
277
278static struct platform_device sx1_mcbsp1_device = {
279 .name = "omap_alsa_mcbsp",
280 .id = 1,
281 .dev = {
282 .platform_data = &sx1_alsa_config,
283 },
284};
285
286/*----------- MTD -------------------------*/ 256/*----------- MTD -------------------------*/
287 257
288static struct mtd_partition sx1_partitions[] = { 258static struct mtd_partition sx1_partitions[] = {
@@ -394,7 +364,6 @@ static struct platform_device *sx1_devices[] __initdata = {
394 &sx1_flash_device, 364 &sx1_flash_device,
395 &sx1_kp_device, 365 &sx1_kp_device,
396 &sx1_lcd_device, 366 &sx1_lcd_device,
397 &sx1_mcbsp1_device,
398 &sx1_irda_device, 367 &sx1_irda_device,
399}; 368};
400/*-----------------------------------------*/ 369/*-----------------------------------------*/
@@ -423,9 +392,9 @@ static void __init omap_sx1_init(void)
423 392
424 /* turn on USB power */ 393 /* turn on USB power */
425 /* sx1_setusbpower(1); cant do it here because i2c is not ready */ 394 /* sx1_setusbpower(1); cant do it here because i2c is not ready */
426 omap_request_gpio(1); /* A_IRDA_OFF */ 395 gpio_request(1, "A_IRDA_OFF");
427 omap_request_gpio(11); /* A_SWITCH */ 396 gpio_request(11, "A_SWITCH");
428 omap_request_gpio(15); /* A_USB_ON */ 397 gpio_request(15, "A_USB_ON");
429 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */ 398 gpio_direction_output(1, 1); /*A_IRDA_OFF = 1 */
430 gpio_direction_output(11, 0); /*A_SWITCH = 0 */ 399 gpio_direction_output(11, 0); /*A_SWITCH = 0 */
431 gpio_direction_output(15, 0); /*A_USB_ON = 0 */ 400 gpio_direction_output(15, 0); /*A_USB_ON = 0 */
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index c224f3c64235..a7653542a2b0 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -22,7 +22,6 @@
22#include <linux/reboot.h> 22#include <linux/reboot.h>
23#include <linux/serial_8250.h> 23#include <linux/serial_8250.h>
24#include <linux/serial_reg.h> 24#include <linux/serial_reg.h>
25#include <linux/irq.h>
26 25
27#include <mach/hardware.h> 26#include <mach/hardware.h>
28#include <asm/mach-types.h> 27#include <asm/mach-types.h>
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 4474da7bc88a..ca7a0cc1707c 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -17,6 +17,7 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index bf1e5d32c2a3..0a7b24ba1652 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -22,8 +22,6 @@
22#include <linux/mtd/mtd.h> 22#include <linux/mtd/mtd.h>
23#include <linux/mtd/partitions.h> 23#include <linux/mtd/partitions.h>
24#include <linux/mtd/onenand.h> 24#include <linux/mtd/onenand.h>
25#include <linux/irq.h>
26#include <linux/interrupt.h>
27#include <linux/delay.h> 25#include <linux/delay.h>
28#include <linux/leds.h> 26#include <linux/leds.h>
29#include <linux/err.h> 27#include <linux/err.h>
@@ -282,65 +280,16 @@ static void __init apollon_led_init(void)
282{ 280{
283 /* LED0 - AA10 */ 281 /* LED0 - AA10 */
284 omap_cfg_reg(AA10_242X_GPIO13); 282 omap_cfg_reg(AA10_242X_GPIO13);
285 omap_request_gpio(LED0_GPIO13); 283 gpio_request(LED0_GPIO13, "LED0");
286 omap_set_gpio_direction(LED0_GPIO13, 0); 284 gpio_direction_output(LED0_GPIO13, 0);
287 omap_set_gpio_dataout(LED0_GPIO13, 0);
288 /* LED1 - AA6 */ 285 /* LED1 - AA6 */
289 omap_cfg_reg(AA6_242X_GPIO14); 286 omap_cfg_reg(AA6_242X_GPIO14);
290 omap_request_gpio(LED1_GPIO14); 287 gpio_request(LED1_GPIO14, "LED1");
291 omap_set_gpio_direction(LED1_GPIO14, 0); 288 gpio_direction_output(LED1_GPIO14, 0);
292 omap_set_gpio_dataout(LED1_GPIO14, 0);
293 /* LED2 - AA4 */ 289 /* LED2 - AA4 */
294 omap_cfg_reg(AA4_242X_GPIO15); 290 omap_cfg_reg(AA4_242X_GPIO15);
295 omap_request_gpio(LED2_GPIO15); 291 gpio_request(LED2_GPIO15, "LED2");
296 omap_set_gpio_direction(LED2_GPIO15, 0); 292 gpio_direction_output(LED2_GPIO15, 0);
297 omap_set_gpio_dataout(LED2_GPIO15, 0);
298}
299
300static irqreturn_t apollon_sw_interrupt(int irq, void *ignored)
301{
302 static unsigned int led0, led1, led2;
303
304 if (irq == OMAP_GPIO_IRQ(SW_ENTER_GPIO16))
305 omap_set_gpio_dataout(LED0_GPIO13, led0 ^= 1);
306 else if (irq == OMAP_GPIO_IRQ(SW_UP_GPIO17))
307 omap_set_gpio_dataout(LED1_GPIO14, led1 ^= 1);
308 else if (irq == OMAP_GPIO_IRQ(SW_DOWN_GPIO58))
309 omap_set_gpio_dataout(LED2_GPIO15, led2 ^= 1);
310
311 return IRQ_HANDLED;
312}
313
314static void __init apollon_sw_init(void)
315{
316 /* Enter SW - Y11 */
317 omap_cfg_reg(Y11_242X_GPIO16);
318 omap_request_gpio(SW_ENTER_GPIO16);
319 gpio_direction_input(SW_ENTER_GPIO16);
320 /* Up SW - AA12 */
321 omap_cfg_reg(AA12_242X_GPIO17);
322 omap_request_gpio(SW_UP_GPIO17);
323 gpio_direction_input(SW_UP_GPIO17);
324 /* Down SW - AA8 */
325 omap_cfg_reg(AA8_242X_GPIO58);
326 omap_request_gpio(SW_DOWN_GPIO58);
327 gpio_direction_input(SW_DOWN_GPIO58);
328
329 set_irq_type(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), IRQ_TYPE_EDGE_RISING);
330 if (request_irq(OMAP_GPIO_IRQ(SW_ENTER_GPIO16), &apollon_sw_interrupt,
331 IRQF_SHARED, "enter sw",
332 &apollon_sw_interrupt))
333 return;
334 set_irq_type(OMAP_GPIO_IRQ(SW_UP_GPIO17), IRQ_TYPE_EDGE_RISING);
335 if (request_irq(OMAP_GPIO_IRQ(SW_UP_GPIO17), &apollon_sw_interrupt,
336 IRQF_SHARED, "up sw",
337 &apollon_sw_interrupt))
338 return;
339 set_irq_type(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), IRQ_TYPE_EDGE_RISING);
340 if (request_irq(OMAP_GPIO_IRQ(SW_DOWN_GPIO58), &apollon_sw_interrupt,
341 IRQF_SHARED, "down sw",
342 &apollon_sw_interrupt))
343 return;
344} 293}
345 294
346static void __init apollon_usb_init(void) 295static void __init apollon_usb_init(void)
@@ -357,7 +306,6 @@ static void __init omap_apollon_init(void)
357 u32 v; 306 u32 v;
358 307
359 apollon_led_init(); 308 apollon_led_init();
360 apollon_sw_init();
361 apollon_flash_init(); 309 apollon_flash_init();
362 apollon_usb_init(); 310 apollon_usb_init();
363 311
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index aa6972781e4a..f6a13451d1fd 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -88,7 +88,7 @@ static inline void __init ldp_init_smc911x(void)
88 88
89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio); 89 ldp_smc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
90 90
91 if (omap_request_gpio(eth_gpio) < 0) { 91 if (gpio_request(eth_gpio, "smc911x irq") < 0) {
92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n", 92 printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
93 eth_gpio); 93 eth_gpio);
94 return; 94 return;
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 9e5ada01b5fa..38c88fbe658d 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -28,6 +28,8 @@
28#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
29#include <linux/mtd/nand.h> 29#include <linux/mtd/nand.h>
30 30
31#include <linux/i2c/twl4030.h>
32
31#include <mach/hardware.h> 33#include <mach/hardware.h>
32#include <asm/mach-types.h> 34#include <asm/mach-types.h>
33#include <asm/mach/arch.h> 35#include <asm/mach/arch.h>
@@ -120,6 +122,9 @@ static int beagle_twl_gpio_setup(struct device *dev,
120 unsigned gpio, unsigned ngpio) 122 unsigned gpio, unsigned ngpio)
121{ 123{
122 /* gpio + 0 is "mmc0_cd" (input/IRQ) */ 124 /* gpio + 0 is "mmc0_cd" (input/IRQ) */
125 omap_cfg_reg(AH8_34XX_GPIO29);
126 mmc[0].gpio_cd = gpio + 0;
127 twl4030_mmc_init(mmc);
123 128
124 /* REVISIT: need ehci-omap hooks for external VBUS 129 /* REVISIT: need ehci-omap hooks for external VBUS
125 * power switch and overcurrent detect 130 * power switch and overcurrent detect
@@ -304,10 +309,6 @@ static void __init omap3_beagle_init(void)
304 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); 309 omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
305 omap_serial_init(); 310 omap_serial_init();
306 311
307 omap_cfg_reg(AH8_34XX_GPIO29);
308 mmc[0].gpio_cd = gpio + 0;
309 twl4030_mmc_init(mmc);
310
311 omap_cfg_reg(J25_34XX_GPIO170); 312 omap_cfg_reg(J25_34XX_GPIO170);
312 gpio_request(170, "DVI_nPD"); 313 gpio_request(170, "DVI_nPD");
313 /* REVISIT leave DVI powered down until it's needed ... */ 314 /* REVISIT leave DVI powered down until it's needed ... */
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index acdc709901cd..e20023c9d15d 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -17,6 +17,7 @@
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19 19
20#include <mach/irqs.h>
20#include <mach/dma.h> 21#include <mach/dma.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
22#include <mach/mux.h> 23#include <mach/mux.h>
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index bdb5fd983b15..1601698b9800 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -68,7 +68,7 @@ mc_copy_user_page(void *from, void *to)
68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64)); 68 : "r" (from), "r" (to), "I" (PAGE_SIZE / 64));
69} 69}
70 70
71void v4_mc_copy_user_highpage(struct page *from, struct page *to, 71void v4_mc_copy_user_highpage(struct page *to, struct page *from,
72 unsigned long vaddr) 72 unsigned long vaddr)
73{ 73{
74 void *kto = kmap_atomic(to, KM_USER1); 74 void *kto = kmap_atomic(to, KM_USER1);
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 18373f73f2fc..9f88dd3be601 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -138,7 +138,7 @@ void __check_kvm_seq(struct mm_struct *mm)
138 */ 138 */
139static void unmap_area_sections(unsigned long virt, unsigned long size) 139static void unmap_area_sections(unsigned long virt, unsigned long size)
140{ 140{
141 unsigned long addr = virt, end = virt + (size & ~SZ_1M); 141 unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));
142 pgd_t *pgd; 142 pgd_t *pgd;
143 143
144 flush_cache_vunmap(addr, end); 144 flush_cache_vunmap(addr, end);
@@ -337,10 +337,7 @@ void __iounmap(volatile void __iomem *io_addr)
337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr); 337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
338#ifndef CONFIG_SMP 338#ifndef CONFIG_SMP
339 struct vm_struct **p, *tmp; 339 struct vm_struct **p, *tmp;
340#endif
341 unsigned int section_mapping = 0;
342 340
343#ifndef CONFIG_SMP
344 /* 341 /*
345 * If this is a section based mapping we need to handle it 342 * If this is a section based mapping we need to handle it
346 * specially as the VM subsystem does not know how to handle 343 * specially as the VM subsystem does not know how to handle
@@ -352,11 +349,8 @@ void __iounmap(volatile void __iomem *io_addr)
352 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 349 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
353 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { 350 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
354 if (tmp->flags & VM_ARM_SECTION_MAPPING) { 351 if (tmp->flags & VM_ARM_SECTION_MAPPING) {
355 *p = tmp->next;
356 unmap_area_sections((unsigned long)tmp->addr, 352 unmap_area_sections((unsigned long)tmp->addr,
357 tmp->size); 353 tmp->size);
358 kfree(tmp);
359 section_mapping = 1;
360 } 354 }
361 break; 355 break;
362 } 356 }
@@ -364,7 +358,6 @@ void __iounmap(volatile void __iomem *io_addr)
364 write_unlock(&vmlist_lock); 358 write_unlock(&vmlist_lock);
365#endif 359#endif
366 360
367 if (!section_mapping) 361 vunmap(addr);
368 vunmap(addr);
369} 362}
370EXPORT_SYMBOL(__iounmap); 363EXPORT_SYMBOL(__iounmap);
diff --git a/arch/arm/plat-mxc/include/mach/ipu.h b/arch/arm/plat-mxc/include/mach/ipu.h
new file mode 100644
index 000000000000..a9221f1cc1a0
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/ipu.h
@@ -0,0 +1,181 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright (C) 2005-2007 Freescale Semiconductor, Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#ifndef _IPU_H_
13#define _IPU_H_
14
15#include <linux/types.h>
16#include <linux/dmaengine.h>
17
18/* IPU DMA Controller channel definitions. */
19enum ipu_channel {
20 IDMAC_IC_0 = 0, /* IC (encoding task) to memory */
21 IDMAC_IC_1 = 1, /* IC (viewfinder task) to memory */
22 IDMAC_ADC_0 = 1,
23 IDMAC_IC_2 = 2,
24 IDMAC_ADC_1 = 2,
25 IDMAC_IC_3 = 3,
26 IDMAC_IC_4 = 4,
27 IDMAC_IC_5 = 5,
28 IDMAC_IC_6 = 6,
29 IDMAC_IC_7 = 7, /* IC (sensor data) to memory */
30 IDMAC_IC_8 = 8,
31 IDMAC_IC_9 = 9,
32 IDMAC_IC_10 = 10,
33 IDMAC_IC_11 = 11,
34 IDMAC_IC_12 = 12,
35 IDMAC_IC_13 = 13,
36 IDMAC_SDC_0 = 14, /* Background synchronous display data */
37 IDMAC_SDC_1 = 15, /* Foreground data (overlay) */
38 IDMAC_SDC_2 = 16,
39 IDMAC_SDC_3 = 17,
40 IDMAC_ADC_2 = 18,
41 IDMAC_ADC_3 = 19,
42 IDMAC_ADC_4 = 20,
43 IDMAC_ADC_5 = 21,
44 IDMAC_ADC_6 = 22,
45 IDMAC_ADC_7 = 23,
46 IDMAC_PF_0 = 24,
47 IDMAC_PF_1 = 25,
48 IDMAC_PF_2 = 26,
49 IDMAC_PF_3 = 27,
50 IDMAC_PF_4 = 28,
51 IDMAC_PF_5 = 29,
52 IDMAC_PF_6 = 30,
53 IDMAC_PF_7 = 31,
54};
55
56/* Order significant! */
57enum ipu_channel_status {
58 IPU_CHANNEL_FREE,
59 IPU_CHANNEL_INITIALIZED,
60 IPU_CHANNEL_READY,
61 IPU_CHANNEL_ENABLED,
62};
63
64#define IPU_CHANNELS_NUM 32
65
66enum pixel_fmt {
67 /* 1 byte */
68 IPU_PIX_FMT_GENERIC,
69 IPU_PIX_FMT_RGB332,
70 IPU_PIX_FMT_YUV420P,
71 IPU_PIX_FMT_YUV422P,
72 IPU_PIX_FMT_YUV420P2,
73 IPU_PIX_FMT_YVU422P,
74 /* 2 bytes */
75 IPU_PIX_FMT_RGB565,
76 IPU_PIX_FMT_RGB666,
77 IPU_PIX_FMT_BGR666,
78 IPU_PIX_FMT_YUYV,
79 IPU_PIX_FMT_UYVY,
80 /* 3 bytes */
81 IPU_PIX_FMT_RGB24,
82 IPU_PIX_FMT_BGR24,
83 /* 4 bytes */
84 IPU_PIX_FMT_GENERIC_32,
85 IPU_PIX_FMT_RGB32,
86 IPU_PIX_FMT_BGR32,
87 IPU_PIX_FMT_ABGR32,
88 IPU_PIX_FMT_BGRA32,
89 IPU_PIX_FMT_RGBA32,
90};
91
92enum ipu_color_space {
93 IPU_COLORSPACE_RGB,
94 IPU_COLORSPACE_YCBCR,
95 IPU_COLORSPACE_YUV
96};
97
98/*
99 * Enumeration of IPU rotation modes
100 */
101enum ipu_rotate_mode {
102 /* Note the enum values correspond to BAM value */
103 IPU_ROTATE_NONE = 0,
104 IPU_ROTATE_VERT_FLIP = 1,
105 IPU_ROTATE_HORIZ_FLIP = 2,
106 IPU_ROTATE_180 = 3,
107 IPU_ROTATE_90_RIGHT = 4,
108 IPU_ROTATE_90_RIGHT_VFLIP = 5,
109 IPU_ROTATE_90_RIGHT_HFLIP = 6,
110 IPU_ROTATE_90_LEFT = 7,
111};
112
113struct ipu_platform_data {
114 unsigned int irq_base;
115};
116
117/*
118 * Enumeration of DI ports for ADC.
119 */
120enum display_port {
121 DISP0,
122 DISP1,
123 DISP2,
124 DISP3
125};
126
127struct idmac_video_param {
128 unsigned short in_width;
129 unsigned short in_height;
130 uint32_t in_pixel_fmt;
131 unsigned short out_width;
132 unsigned short out_height;
133 uint32_t out_pixel_fmt;
134 unsigned short out_stride;
135 bool graphics_combine_en;
136 bool global_alpha_en;
137 bool key_color_en;
138 enum display_port disp;
139 unsigned short out_left;
140 unsigned short out_top;
141};
142
143/*
144 * Union of initialization parameters for a logical channel. So far only video
145 * parameters are used.
146 */
147union ipu_channel_param {
148 struct idmac_video_param video;
149};
150
151struct idmac_tx_desc {
152 struct dma_async_tx_descriptor txd;
153 struct scatterlist *sg; /* scatterlist for this */
154 unsigned int sg_len; /* tx-descriptor. */
155 struct list_head list;
156};
157
158struct idmac_channel {
159 struct dma_chan dma_chan;
160 dma_cookie_t completed; /* last completed cookie */
161 union ipu_channel_param params;
162 enum ipu_channel link; /* input channel, linked to the output */
163 enum ipu_channel_status status;
164 void *client; /* Only one client per channel */
165 unsigned int n_tx_desc;
166 struct idmac_tx_desc *desc; /* allocated tx-descriptors */
167 struct scatterlist *sg[2]; /* scatterlist elements in buffer-0 and -1 */
168 struct list_head free_list; /* free tx-descriptors */
169 struct list_head queue; /* queued tx-descriptors */
170 spinlock_t lock; /* protects sg[0,1], queue */
171 struct mutex chan_mutex; /* protects status, cookie, free_list */
172 bool sec_chan_en;
173 int active_buffer;
174 unsigned int eof_irq;
175 char eof_name[16]; /* EOF IRQ name for request_irq() */
176};
177
178#define to_tx_desc(tx) container_of(tx, struct idmac_tx_desc, txd)
179#define to_idmac_chan(c) container_of(c, struct idmac_channel, dma_chan)
180
181#endif
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
index e06d3cb0ee11..c02b8fc2d821 100644
--- a/arch/arm/plat-mxc/include/mach/irqs.h
+++ b/arch/arm/plat-mxc/include/mach/irqs.h
@@ -35,7 +35,15 @@
35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS) 35#define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS)
36#define MXC_BOARD_IRQS 16 36#define MXC_BOARD_IRQS 16
37 37
38#define NR_IRQS (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) 38#define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS)
39
40#ifdef CONFIG_MX3_IPU_IRQS
41#define MX3_IPU_IRQS CONFIG_MX3_IPU_IRQS
42#else
43#define MX3_IPU_IRQS 0
44#endif
45
46#define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS)
39 47
40extern void imx_irq_set_priority(unsigned char irq, unsigned char prio); 48extern void imx_irq_set_priority(unsigned char irq, unsigned char prio);
41 49
diff --git a/arch/arm/plat-mxc/include/mach/mx3fb.h b/arch/arm/plat-mxc/include/mach/mx3fb.h
new file mode 100644
index 000000000000..e391a76ca87d
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mx3fb.h
@@ -0,0 +1,38 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#ifndef __ASM_ARCH_MX3FB_H__
11#define __ASM_ARCH_MX3FB_H__
12
13#include <linux/device.h>
14#include <linux/fb.h>
15
16/* Proprietary FB_SYNC_ flags */
17#define FB_SYNC_OE_ACT_HIGH 0x80000000
18#define FB_SYNC_CLK_INVERT 0x40000000
19#define FB_SYNC_DATA_INVERT 0x20000000
20#define FB_SYNC_CLK_IDLE_EN 0x10000000
21#define FB_SYNC_SHARP_MODE 0x08000000
22#define FB_SYNC_SWAP_RGB 0x04000000
23#define FB_SYNC_CLK_SEL_EN 0x02000000
24
25/**
26 * struct mx3fb_platform_data - mx3fb platform data
27 *
28 * @dma_dev: pointer to the dma-device, used for dma-slave connection
29 * @mode: pointer to a platform-provided per mxc_register_fb() videomode
30 */
31struct mx3fb_platform_data {
32 struct device *dma_dev;
33 const char *name;
34 const struct fb_videomode *mode;
35 int num_modes;
36};
37
38#endif
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 692d2b495af3..e77373c39f8c 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -278,14 +278,11 @@ void omap_set_dma_transfer_params(int lch, int data_type, int elem_count,
278 u32 val; 278 u32 val;
279 279
280 val = dma_read(CCR(lch)); 280 val = dma_read(CCR(lch));
281 val &= ~(3 << 19); 281
282 if (dma_trigger > 63) 282 /* DMA_SYNCHRO_CONTROL_UPPER depends on the channel number */
283 val |= 1 << 20; 283 val &= ~((3 << 19) | 0x1f);
284 if (dma_trigger > 31) 284 val |= (dma_trigger & ~0x1f) << 14;
285 val |= 1 << 19; 285 val |= dma_trigger & 0x1f;
286
287 val &= ~(0x1f);
288 val |= (dma_trigger & 0x1f);
289 286
290 if (sync_mode & OMAP_DMA_SYNC_FRAME) 287 if (sync_mode & OMAP_DMA_SYNC_FRAME)
291 val |= 1 << 5; 288 val |= 1 << 5;
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 07b6968a7d16..f856a90b264e 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -1789,6 +1789,8 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1789/* FIXME for at least omap2, show pullup/pulldown state */ 1789/* FIXME for at least omap2, show pullup/pulldown state */
1790 1790
1791 irqstat = irq_desc[irq].status; 1791 irqstat = irq_desc[irq].status;
1792#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP24XX) || \
1793 defined(CONFIG_ARCH_OMAP34XX)
1792 if (is_in && ((bank->suspend_wakeup & mask) 1794 if (is_in && ((bank->suspend_wakeup & mask)
1793 || irqstat & IRQ_TYPE_SENSE_MASK)) { 1795 || irqstat & IRQ_TYPE_SENSE_MASK)) {
1794 char *trigger = NULL; 1796 char *trigger = NULL;
@@ -1818,6 +1820,7 @@ static int dbg_gpio_show(struct seq_file *s, void *unused)
1818 (bank->suspend_wakeup & mask) 1820 (bank->suspend_wakeup & mask)
1819 ? " wakeup" : ""); 1821 ? " wakeup" : "");
1820 } 1822 }
1823#endif
1821 seq_printf(s, "\n"); 1824 seq_printf(s, "\n");
1822 } 1825 }
1823 1826
diff --git a/arch/arm/plat-omap/include/mach/aic23.h b/arch/arm/plat-omap/include/mach/aic23.h
deleted file mode 100644
index 5ccedac77526..000000000000
--- a/arch/arm/plat-omap/include/mach/aic23.h
+++ /dev/null
@@ -1,116 +0,0 @@
1/*
2 * arch/arm/plat-omap/include/mach/aic23.h
3 *
4 * Hardware definitions for TI TLV320AIC23 audio codec
5 *
6 * Copyright (C) 2002 RidgeRun, Inc.
7 * Author: Steve Johnson
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#ifndef __ASM_ARCH_AIC23_H
31#define __ASM_ARCH_AIC23_H
32
33// Codec TLV320AIC23
34#define LEFT_LINE_VOLUME_ADDR 0x00
35#define RIGHT_LINE_VOLUME_ADDR 0x01
36#define LEFT_CHANNEL_VOLUME_ADDR 0x02
37#define RIGHT_CHANNEL_VOLUME_ADDR 0x03
38#define ANALOG_AUDIO_CONTROL_ADDR 0x04
39#define DIGITAL_AUDIO_CONTROL_ADDR 0x05
40#define POWER_DOWN_CONTROL_ADDR 0x06
41#define DIGITAL_AUDIO_FORMAT_ADDR 0x07
42#define SAMPLE_RATE_CONTROL_ADDR 0x08
43#define DIGITAL_INTERFACE_ACT_ADDR 0x09
44#define RESET_CONTROL_ADDR 0x0F
45
46// Left (right) line input volume control register
47#define LRS_ENABLED 0x0100
48#define LIM_MUTED 0x0080
49#define LIV_DEFAULT 0x0017
50#define LIV_MAX 0x001f
51#define LIV_MIN 0x0000
52
53// Left (right) channel headphone volume control register
54#define LZC_ON 0x0080
55#define LHV_DEFAULT 0x0079
56#define LHV_MAX 0x007f
57#define LHV_MIN 0x0000
58
59// Analog audio path control register
60#define STA_REG(x) ((x)<<6)
61#define STE_ENABLED 0x0020
62#define DAC_SELECTED 0x0010
63#define BYPASS_ON 0x0008
64#define INSEL_MIC 0x0004
65#define MICM_MUTED 0x0002
66#define MICB_20DB 0x0001
67
68// Digital audio path control register
69#define DACM_MUTE 0x0008
70#define DEEMP_32K 0x0002
71#define DEEMP_44K 0x0004
72#define DEEMP_48K 0x0006
73#define ADCHP_ON 0x0001
74
75// Power control down register
76#define DEVICE_POWER_OFF 0x0080
77#define CLK_OFF 0x0040
78#define OSC_OFF 0x0020
79#define OUT_OFF 0x0010
80#define DAC_OFF 0x0008
81#define ADC_OFF 0x0004
82#define MIC_OFF 0x0002
83#define LINE_OFF 0x0001
84
85// Digital audio interface register
86#define MS_MASTER 0x0040
87#define LRSWAP_ON 0x0020
88#define LRP_ON 0x0010
89#define IWL_16 0x0000
90#define IWL_20 0x0004
91#define IWL_24 0x0008
92#define IWL_32 0x000C
93#define FOR_I2S 0x0002
94#define FOR_DSP 0x0003
95
96// Sample rate control register
97#define CLKOUT_HALF 0x0080
98#define CLKIN_HALF 0x0040
99#define BOSR_384fs 0x0002 // BOSR_272fs when in USB mode
100#define USB_CLK_ON 0x0001
101#define SR_MASK 0xf
102#define CLKOUT_SHIFT 7
103#define CLKIN_SHIFT 6
104#define SR_SHIFT 2
105#define BOSR_SHIFT 1
106
107// Digital interface register
108#define ACT_ON 0x0001
109
110#define TLV320AIC23ID1 (0x1a) // cs low
111#define TLV320AIC23ID2 (0x1b) // cs high
112
113void aic23_power_up(void);
114void aic23_power_down(void);
115
116#endif /* __ASM_ARCH_AIC23_H */
diff --git a/arch/arm/plat-omap/include/mach/board-h3.h b/arch/arm/plat-omap/include/mach/board-h3.h
index 14909dc7858a..1888326da7ea 100644
--- a/arch/arm/plat-omap/include/mach/board-h3.h
+++ b/arch/arm/plat-omap/include/mach/board-h3.h
@@ -30,7 +30,9 @@
30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */ 30/* In OMAP1710 H3 the Ethernet is directly connected to CS1 */
31#define OMAP1710_ETHR_START 0x04000300 31#define OMAP1710_ETHR_START 0x04000300
32 32
33#define H3_TPS_GPIO_BASE (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */)
34# define H3_TPS_GPIO_MMC_PWR_EN (H3_TPS_GPIO_BASE + 4)
35
33extern void h3_mmc_init(void); 36extern void h3_mmc_init(void);
34extern void h3_mmc_slot_cover_handler(void *arg, int state);
35 37
36#endif /* __ASM_ARCH_OMAP_H3_H */ 38#endif /* __ASM_ARCH_OMAP_H3_H */
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h
index 04e68e88f134..8d9dfe314387 100644
--- a/arch/arm/plat-omap/include/mach/gpio.h
+++ b/arch/arm/plat-omap/include/mach/gpio.h
@@ -87,16 +87,6 @@ extern void omap_set_gpio_debounce_time(int gpio, int enable);
87#include <linux/errno.h> 87#include <linux/errno.h>
88#include <asm-generic/gpio.h> 88#include <asm-generic/gpio.h>
89 89
90static inline int omap_request_gpio(int gpio)
91{
92 return gpio_request(gpio, "FIXME");
93}
94
95static inline void omap_free_gpio(int gpio)
96{
97 gpio_free(gpio);
98}
99
100static inline int gpio_get_value(unsigned gpio) 90static inline int gpio_get_value(unsigned gpio)
101{ 91{
102 return __gpio_get_value(gpio); 92 return __gpio_get_value(gpio);
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 6a0d1a0a24a7..eef873db3d48 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -87,6 +87,10 @@
87#define OMAP_MCBSP_REG_XCERG 0x3A 87#define OMAP_MCBSP_REG_XCERG 0x3A
88#define OMAP_MCBSP_REG_XCERH 0x3C 88#define OMAP_MCBSP_REG_XCERH 0x3C
89 89
90/* Dummy defines, these are not available on omap1 */
91#define OMAP_MCBSP_REG_XCCR 0x00
92#define OMAP_MCBSP_REG_RCCR 0x00
93
90#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1) 94#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1)
91#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1) 95#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1)
92 96
@@ -231,11 +235,16 @@
231#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */ 235#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
232 236
233/*********************** McBSP XCCR bit definitions *************************/ 237/*********************** McBSP XCCR bit definitions *************************/
238#define EXTCLKGATE 0x8000
239#define PPCONNECT 0x4000
240#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
241#define XFULL_CYCLE 0x0800
234#define DILB 0x0020 242#define DILB 0x0020
235#define XDMAEN 0x0008 243#define XDMAEN 0x0008
236#define XDISABLE 0x0001 244#define XDISABLE 0x0001
237 245
238/********************** McBSP RCCR bit definitions *************************/ 246/********************** McBSP RCCR bit definitions *************************/
247#define RFULL_CYCLE 0x0800
239#define RDMAEN 0x0008 248#define RDMAEN 0x0008
240#define RDISABLE 0x0001 249#define RDISABLE 0x0001
241 250
@@ -267,6 +276,8 @@ struct omap_mcbsp_reg_cfg {
267 u16 rcerh; 276 u16 rcerh;
268 u16 xcerg; 277 u16 xcerg;
269 u16 xcerh; 278 u16 xcerh;
279 u16 xccr;
280 u16 rccr;
270}; 281};
271 282
272typedef enum { 283typedef enum {
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index af33fc713e1a..f2401a831f99 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -173,6 +173,10 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2); 173 OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1); 174 OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0); 175 OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
176 if (cpu_is_omap2430() || cpu_is_omap34xx()) {
177 OMAP_MCBSP_WRITE(io_base, XCCR, config->xccr);
178 OMAP_MCBSP_WRITE(io_base, RCCR, config->rccr);
179 }
176} 180}
177EXPORT_SYMBOL(omap_mcbsp_config); 181EXPORT_SYMBOL(omap_mcbsp_config);
178 182
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index add0485703b5..e278de6862ae 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -431,15 +431,6 @@ bad:
431 431
432/*-------------------------------------------------------------------------*/ 432/*-------------------------------------------------------------------------*/
433 433
434#if defined(CONFIG_USB_GADGET_OMAP) || \
435 defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) || \
436 (defined(CONFIG_USB_OTG) && defined(CONFIG_ARCH_OMAP_OTG))
437static void usb_release(struct device *dev)
438{
439 /* normally not freed */
440}
441#endif
442
443#ifdef CONFIG_USB_GADGET_OMAP 434#ifdef CONFIG_USB_GADGET_OMAP
444 435
445static struct resource udc_resources[] = { 436static struct resource udc_resources[] = {
@@ -466,7 +457,6 @@ static struct platform_device udc_device = {
466 .name = "omap_udc", 457 .name = "omap_udc",
467 .id = -1, 458 .id = -1,
468 .dev = { 459 .dev = {
469 .release = usb_release,
470 .dma_mask = &udc_dmamask, 460 .dma_mask = &udc_dmamask,
471 .coherent_dma_mask = 0xffffffff, 461 .coherent_dma_mask = 0xffffffff,
472 }, 462 },
@@ -497,7 +487,6 @@ static struct platform_device ohci_device = {
497 .name = "ohci", 487 .name = "ohci",
498 .id = -1, 488 .id = -1,
499 .dev = { 489 .dev = {
500 .release = usb_release,
501 .dma_mask = &ohci_dmamask, 490 .dma_mask = &ohci_dmamask,
502 .coherent_dma_mask = 0xffffffff, 491 .coherent_dma_mask = 0xffffffff,
503 }, 492 },
@@ -524,9 +513,6 @@ static struct resource otg_resources[] = {
524static struct platform_device otg_device = { 513static struct platform_device otg_device = {
525 .name = "omap_otg", 514 .name = "omap_otg",
526 .id = -1, 515 .id = -1,
527 .dev = {
528 .release = usb_release,
529 },
530 .num_resources = ARRAY_SIZE(otg_resources), 516 .num_resources = ARRAY_SIZE(otg_resources),
531 .resource = otg_resources, 517 .resource = otg_resources,
532}; 518};
diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig
index 164e2814ae78..574aca975334 100644
--- a/arch/avr32/configs/atngw100_defconfig
+++ b/arch/avr32/configs/atngw100_defconfig
@@ -644,8 +644,8 @@ CONFIG_I2C_GPIO=m
644# Miscellaneous I2C Chip support 644# Miscellaneous I2C Chip support
645# 645#
646# CONFIG_DS1682 is not set 646# CONFIG_DS1682 is not set
647CONFIG_AT24=m 647CONFIG_EEPROM_AT24=m
648# CONFIG_SENSORS_EEPROM is not set 648# CONFIG_EEPROM_LEGACY is not set
649# CONFIG_SENSORS_PCF8574 is not set 649# CONFIG_SENSORS_PCF8574 is not set
650# CONFIG_PCF8575 is not set 650# CONFIG_PCF8575 is not set
651# CONFIG_SENSORS_PCA9539 is not set 651# CONFIG_SENSORS_PCA9539 is not set
@@ -670,7 +670,7 @@ CONFIG_SPI_ATMEL=y
670# 670#
671# SPI Protocol Masters 671# SPI Protocol Masters
672# 672#
673# CONFIG_SPI_AT25 is not set 673# CONFIG_EEPROM_AT25 is not set
674CONFIG_SPI_SPIDEV=m 674CONFIG_SPI_SPIDEV=m
675# CONFIG_SPI_TLE62X0 is not set 675# CONFIG_SPI_TLE62X0 is not set
676CONFIG_ARCH_REQUIRE_GPIOLIB=y 676CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig
index b0572d213826..86a45b5c9d0d 100644
--- a/arch/avr32/configs/atngw100_evklcd100_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd100_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig
index c5b898d21075..a96b68ea5e83 100644
--- a/arch/avr32/configs/atngw100_evklcd101_defconfig
+++ b/arch/avr32/configs/atngw100_evklcd101_defconfig
@@ -671,7 +671,7 @@ CONFIG_I2C_GPIO=m
671# Miscellaneous I2C Chip support 671# Miscellaneous I2C Chip support
672# 672#
673# CONFIG_DS1682 is not set 673# CONFIG_DS1682 is not set
674# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
675# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
@@ -699,7 +699,7 @@ CONFIG_SPI_ATMEL=y
699# 699#
700# SPI Protocol Masters 700# SPI Protocol Masters
701# 701#
702# CONFIG_SPI_AT25 is not set 702# CONFIG_EEPROM_AT25 is not set
703CONFIG_SPI_SPIDEV=m 703CONFIG_SPI_SPIDEV=m
704# CONFIG_SPI_TLE62X0 is not set 704# CONFIG_SPI_TLE62X0 is not set
705CONFIG_HAVE_GPIO_LIB=y 705CONFIG_HAVE_GPIO_LIB=y
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig
index c9dc64832a19..0abe90adb1a4 100644
--- a/arch/avr32/configs/atstk1002_defconfig
+++ b/arch/avr32/configs/atstk1002_defconfig
@@ -663,8 +663,8 @@ CONFIG_I2C_GPIO=m
663# Miscellaneous I2C Chip support 663# Miscellaneous I2C Chip support
664# 664#
665# CONFIG_DS1682 is not set 665# CONFIG_DS1682 is not set
666CONFIG_AT24=m 666CONFIG_EEPROM_AT24=m
667# CONFIG_SENSORS_EEPROM is not set 667# CONFIG_EEPROM_LEGACY is not set
668# CONFIG_SENSORS_PCF8574 is not set 668# CONFIG_SENSORS_PCF8574 is not set
669# CONFIG_PCF8575 is not set 669# CONFIG_PCF8575 is not set
670# CONFIG_SENSORS_PCA9539 is not set 670# CONFIG_SENSORS_PCA9539 is not set
@@ -689,7 +689,7 @@ CONFIG_SPI_ATMEL=y
689# 689#
690# SPI Protocol Masters 690# SPI Protocol Masters
691# 691#
692# CONFIG_SPI_AT25 is not set 692# CONFIG_EEPROM_AT25 is not set
693CONFIG_SPI_SPIDEV=m 693CONFIG_SPI_SPIDEV=m
694# CONFIG_SPI_TLE62X0 is not set 694# CONFIG_SPI_TLE62X0 is not set
695CONFIG_ARCH_REQUIRE_GPIOLIB=y 695CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig
index 29ea1327b498..101972f40f07 100644
--- a/arch/avr32/configs/atstk1003_defconfig
+++ b/arch/avr32/configs/atstk1003_defconfig
@@ -611,8 +611,8 @@ CONFIG_I2C_GPIO=m
611# Miscellaneous I2C Chip support 611# Miscellaneous I2C Chip support
612# 612#
613# CONFIG_DS1682 is not set 613# CONFIG_DS1682 is not set
614CONFIG_AT24=m 614CONFIG_EEPROM_AT24=m
615# CONFIG_SENSORS_EEPROM is not set 615# CONFIG_EEPROM_LEGACY is not set
616# CONFIG_SENSORS_PCF8574 is not set 616# CONFIG_SENSORS_PCF8574 is not set
617# CONFIG_PCF8575 is not set 617# CONFIG_PCF8575 is not set
618# CONFIG_SENSORS_PCA9539 is not set 618# CONFIG_SENSORS_PCA9539 is not set
@@ -637,7 +637,7 @@ CONFIG_SPI_ATMEL=y
637# 637#
638# SPI Protocol Masters 638# SPI Protocol Masters
639# 639#
640# CONFIG_SPI_AT25 is not set 640# CONFIG_EEPROM_AT25 is not set
641CONFIG_SPI_SPIDEV=m 641CONFIG_SPI_SPIDEV=m
642# CONFIG_SPI_TLE62X0 is not set 642# CONFIG_SPI_TLE62X0 is not set
643CONFIG_ARCH_REQUIRE_GPIOLIB=y 643CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig
index 69e6c0d08ce8..518f7898df75 100644
--- a/arch/avr32/configs/atstk1004_defconfig
+++ b/arch/avr32/configs/atstk1004_defconfig
@@ -394,7 +394,7 @@ CONFIG_SPI_ATMEL=y
394# 394#
395# SPI Protocol Masters 395# SPI Protocol Masters
396# 396#
397# CONFIG_SPI_AT25 is not set 397# CONFIG_EEPROM_AT25 is not set
398# CONFIG_SPI_SPIDEV is not set 398# CONFIG_SPI_SPIDEV is not set
399# CONFIG_SPI_TLE62X0 is not set 399# CONFIG_SPI_TLE62X0 is not set
400CONFIG_ARCH_REQUIRE_GPIOLIB=y 400CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
index 361c31c2af10..c1603c4860e0 100644
--- a/arch/avr32/configs/atstk1006_defconfig
+++ b/arch/avr32/configs/atstk1006_defconfig
@@ -684,8 +684,8 @@ CONFIG_I2C_GPIO=m
684# Miscellaneous I2C Chip support 684# Miscellaneous I2C Chip support
685# 685#
686# CONFIG_DS1682 is not set 686# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 687# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 688# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 689# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 690# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 691# CONFIG_SENSORS_PCA9539 is not set
@@ -710,7 +710,7 @@ CONFIG_SPI_ATMEL=y
710# 710#
711# SPI Protocol Masters 711# SPI Protocol Masters
712# 712#
713# CONFIG_SPI_AT25 is not set 713# CONFIG_EEPROM_AT25 is not set
714CONFIG_SPI_SPIDEV=m 714CONFIG_SPI_SPIDEV=m
715# CONFIG_SPI_TLE62X0 is not set 715# CONFIG_SPI_TLE62X0 is not set
716CONFIG_ARCH_REQUIRE_GPIOLIB=y 716CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
index e2bd9982e2af..4c3ac0643e4a 100644
--- a/arch/avr32/configs/favr-32_defconfig
+++ b/arch/avr32/configs/favr-32_defconfig
@@ -633,8 +633,8 @@ CONFIG_I2C_GPIO=m
633# Miscellaneous I2C Chip support 633# Miscellaneous I2C Chip support
634# 634#
635# CONFIG_DS1682 is not set 635# CONFIG_DS1682 is not set
636# CONFIG_AT24 is not set 636# CONFIG_EEPROM_AT24 is not set
637# CONFIG_SENSORS_EEPROM is not set 637# CONFIG_EEPROM_LEGACY is not set
638# CONFIG_SENSORS_PCF8574 is not set 638# CONFIG_SENSORS_PCF8574 is not set
639# CONFIG_PCF8575 is not set 639# CONFIG_PCF8575 is not set
640# CONFIG_SENSORS_PCA9539 is not set 640# CONFIG_SENSORS_PCA9539 is not set
@@ -659,7 +659,7 @@ CONFIG_SPI_ATMEL=y
659# 659#
660# SPI Protocol Masters 660# SPI Protocol Masters
661# 661#
662# CONFIG_SPI_AT25 is not set 662# CONFIG_EEPROM_AT25 is not set
663CONFIG_SPI_SPIDEV=m 663CONFIG_SPI_SPIDEV=m
664# CONFIG_SPI_TLE62X0 is not set 664# CONFIG_SPI_TLE62X0 is not set
665CONFIG_ARCH_REQUIRE_GPIOLIB=y 665CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/hammerhead_defconfig b/arch/avr32/configs/hammerhead_defconfig
index 0d3d2982c8f5..3970fcc4d76e 100644
--- a/arch/avr32/configs/hammerhead_defconfig
+++ b/arch/avr32/configs/hammerhead_defconfig
@@ -716,8 +716,8 @@ CONFIG_I2C_GPIO=m
716# Miscellaneous I2C Chip support 716# Miscellaneous I2C Chip support
717# 717#
718# CONFIG_DS1682 is not set 718# CONFIG_DS1682 is not set
719# CONFIG_AT24 is not set 719# CONFIG_EEPROM_AT24 is not set
720# CONFIG_SENSORS_EEPROM is not set 720# CONFIG_EEPROM_LEGACY is not set
721# CONFIG_SENSORS_PCF8574 is not set 721# CONFIG_SENSORS_PCF8574 is not set
722# CONFIG_PCF8575 is not set 722# CONFIG_PCF8575 is not set
723# CONFIG_SENSORS_PCA9539 is not set 723# CONFIG_SENSORS_PCA9539 is not set
@@ -742,7 +742,7 @@ CONFIG_SPI_ATMEL=y
742# 742#
743# SPI Protocol Masters 743# SPI Protocol Masters
744# 744#
745# CONFIG_SPI_AT25 is not set 745# CONFIG_EEPROM_AT25 is not set
746CONFIG_SPI_SPIDEV=m 746CONFIG_SPI_SPIDEV=m
747# CONFIG_SPI_TLE62X0 is not set 747# CONFIG_SPI_TLE62X0 is not set
748CONFIG_ARCH_REQUIRE_GPIOLIB=y 748CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig
index 981e4f8b8aeb..1a58ffbc752d 100644
--- a/arch/avr32/configs/mimc200_defconfig
+++ b/arch/avr32/configs/mimc200_defconfig
@@ -565,8 +565,8 @@ CONFIG_I2C_GPIO=y
565# Miscellaneous I2C Chip support 565# Miscellaneous I2C Chip support
566# 566#
567# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
568CONFIG_AT24=y 568CONFIG_EEPROM_AT24=y
569# CONFIG_SENSORS_EEPROM is not set 569# CONFIG_EEPROM_LEGACY is not set
570# CONFIG_SENSORS_PCF8574 is not set 570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_PCF8575 is not set 571# CONFIG_PCF8575 is not set
572# CONFIG_SENSORS_PCA9539 is not set 572# CONFIG_SENSORS_PCA9539 is not set
@@ -592,7 +592,7 @@ CONFIG_SPI_ATMEL=y
592# 592#
593# SPI Protocol Masters 593# SPI Protocol Masters
594# 594#
595CONFIG_SPI_AT25=y 595CONFIG_EEPROM_AT25=y
596# CONFIG_SPI_SPIDEV is not set 596# CONFIG_SPI_SPIDEV is not set
597# CONFIG_SPI_TLE62X0 is not set 597# CONFIG_SPI_TLE62X0 is not set
598CONFIG_ARCH_REQUIRE_GPIOLIB=y 598CONFIG_ARCH_REQUIRE_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index e0b3f242b555..defb9785c65b 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -746,9 +746,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
746# Miscellaneous I2C Chip support 746# Miscellaneous I2C Chip support
747# 747#
748# CONFIG_DS1682 is not set 748# CONFIG_DS1682 is not set
749# CONFIG_AT24 is not set 749# CONFIG_EEPROM_AT24 is not set
750# CONFIG_SENSORS_AD5252 is not set 750# CONFIG_SENSORS_AD5252 is not set
751# CONFIG_SENSORS_EEPROM is not set 751# CONFIG_EEPROM_LEGACY is not set
752# CONFIG_SENSORS_PCF8574 is not set 752# CONFIG_SENSORS_PCF8574 is not set
753# CONFIG_PCF8575 is not set 753# CONFIG_PCF8575 is not set
754# CONFIG_SENSORS_PCA9539 is not set 754# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index 69f66c35b2a5..992424ff3153 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -793,9 +793,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
793# Miscellaneous I2C Chip support 793# Miscellaneous I2C Chip support
794# 794#
795# CONFIG_DS1682 is not set 795# CONFIG_DS1682 is not set
796# CONFIG_AT24 is not set 796# CONFIG_EEPROM_AT24 is not set
797# CONFIG_SENSORS_AD5252 is not set 797# CONFIG_SENSORS_AD5252 is not set
798# CONFIG_SENSORS_EEPROM is not set 798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 799# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 800# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 801# CONFIG_SENSORS_PCA9539 is not set
@@ -820,7 +820,7 @@ CONFIG_SPI_BFIN=y
820# 820#
821# SPI Protocol Masters 821# SPI Protocol Masters
822# 822#
823# CONFIG_SPI_AT25 is not set 823# CONFIG_EEPROM_AT25 is not set
824# CONFIG_SPI_SPIDEV is not set 824# CONFIG_SPI_SPIDEV is not set
825# CONFIG_SPI_TLE62X0 is not set 825# CONFIG_SPI_TLE62X0 is not set
826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 826CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index f92668af00b0..21e3c1af55ba 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -837,9 +837,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
837# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
838# 838#
839# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set 840# CONFIG_EEPROM_AT24 is not set
841# CONFIG_SENSORS_AD5252 is not set 841# CONFIG_SENSORS_AD5252 is not set
842# CONFIG_SENSORS_EEPROM is not set 842# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 845# CONFIG_SENSORS_PCA9539 is not set
@@ -864,7 +864,7 @@ CONFIG_SPI_BFIN=y
864# 864#
865# SPI Protocol Masters 865# SPI Protocol Masters
866# 866#
867# CONFIG_SPI_AT25 is not set 867# CONFIG_EEPROM_AT25 is not set
868# CONFIG_SPI_SPIDEV is not set 868# CONFIG_SPI_SPIDEV is not set
869# CONFIG_SPI_TLE62X0 is not set 869# CONFIG_SPI_TLE62X0 is not set
870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 870CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 92afd988449b..0bdf20a1af61 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -719,7 +719,7 @@ CONFIG_SPI_BFIN=y
719# 719#
720# SPI Protocol Masters 720# SPI Protocol Masters
721# 721#
722# CONFIG_SPI_AT25 is not set 722# CONFIG_EEPROM_AT25 is not set
723# CONFIG_SPI_SPIDEV is not set 723# CONFIG_SPI_SPIDEV is not set
724# CONFIG_SPI_TLE62X0 is not set 724# CONFIG_SPI_TLE62X0 is not set
725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 725CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 49eabb41e9e5..2f747d6e97e2 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -743,9 +743,9 @@ CONFIG_I2C_HELPER_AUTO=y
743# Miscellaneous I2C Chip support 743# Miscellaneous I2C Chip support
744# 744#
745# CONFIG_DS1682 is not set 745# CONFIG_DS1682 is not set
746# CONFIG_AT24 is not set 746# CONFIG_EEPROM_AT24 is not set
747# CONFIG_SENSORS_AD5252 is not set 747# CONFIG_SENSORS_AD5252 is not set
748# CONFIG_SENSORS_EEPROM is not set 748# CONFIG_EEPROM_LEGACY is not set
749# CONFIG_SENSORS_PCF8574 is not set 749# CONFIG_SENSORS_PCF8574 is not set
750# CONFIG_PCF8575 is not set 750# CONFIG_PCF8575 is not set
751# CONFIG_SENSORS_PCA9539 is not set 751# CONFIG_SENSORS_PCA9539 is not set
@@ -770,7 +770,7 @@ CONFIG_SPI_BFIN=y
770# 770#
771# SPI Protocol Masters 771# SPI Protocol Masters
772# 772#
773# CONFIG_SPI_AT25 is not set 773# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 774# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 775# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index 332142f7f9b4..8b0a81294e65 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -794,9 +794,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
794# Miscellaneous I2C Chip support 794# Miscellaneous I2C Chip support
795# 795#
796# CONFIG_DS1682 is not set 796# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 797# CONFIG_EEPROM_AT24 is not set
798CONFIG_SENSORS_AD5252=m 798CONFIG_SENSORS_AD5252=m
799# CONFIG_SENSORS_EEPROM is not set 799# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 800# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 801# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 802# CONFIG_SENSORS_PCA9539 is not set
@@ -821,7 +821,7 @@ CONFIG_SPI_BFIN=y
821# 821#
822# SPI Protocol Masters 822# SPI Protocol Masters
823# 823#
824# CONFIG_SPI_AT25 is not set 824# CONFIG_EEPROM_AT25 is not set
825# CONFIG_SPI_SPIDEV is not set 825# CONFIG_SPI_SPIDEV is not set
826# CONFIG_SPI_TLE62X0 is not set 826# CONFIG_SPI_TLE62X0 is not set
827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index ed15934c67c2..a1f766bf7d9b 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -796,9 +796,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_PCF8575 is not set 803# CONFIG_PCF8575 is not set
804# CONFIG_SENSORS_PCA9539 is not set 804# CONFIG_SENSORS_PCA9539 is not set
@@ -823,7 +823,7 @@ CONFIG_SPI_BFIN=y
823# 823#
824# SPI Protocol Masters 824# SPI Protocol Masters
825# 825#
826# CONFIG_SPI_AT25 is not set 826# CONFIG_EEPROM_AT25 is not set
827# CONFIG_SPI_SPIDEV is not set 827# CONFIG_SPI_SPIDEV is not set
828# CONFIG_SPI_TLE62X0 is not set 828# CONFIG_SPI_TLE62X0 is not set
829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 829CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index d4ed9ce1f62f..cd2da6b7692c 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -928,9 +928,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
928# Miscellaneous I2C Chip support 928# Miscellaneous I2C Chip support
929# 929#
930# CONFIG_DS1682 is not set 930# CONFIG_DS1682 is not set
931# CONFIG_AT24 is not set 931# CONFIG_EEPROM_AT24 is not set
932# CONFIG_SENSORS_AD5252 is not set 932# CONFIG_SENSORS_AD5252 is not set
933# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_EEPROM_LEGACY is not set
934# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
935# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set 936# CONFIG_SENSORS_PCA9539 is not set
@@ -955,7 +955,7 @@ CONFIG_SPI_BFIN=y
955# 955#
956# SPI Protocol Masters 956# SPI Protocol Masters
957# 957#
958# CONFIG_SPI_AT25 is not set 958# CONFIG_EEPROM_AT25 is not set
959# CONFIG_SPI_SPIDEV is not set 959# CONFIG_SPI_SPIDEV is not set
960# CONFIG_SPI_TLE62X0 is not set 960# CONFIG_SPI_TLE62X0 is not set
961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 961CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 1ecb7a38c905..b398ca202dbd 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -756,7 +756,7 @@ CONFIG_SPI_BFIN=y
756# 756#
757# SPI Protocol Masters 757# SPI Protocol Masters
758# 758#
759# CONFIG_SPI_AT25 is not set 759# CONFIG_EEPROM_AT25 is not set
760# CONFIG_SPI_SPIDEV is not set 760# CONFIG_SPI_SPIDEV is not set
761# CONFIG_SPI_TLE62X0 is not set 761# CONFIG_SPI_TLE62X0 is not set
762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 762CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/BlackStamp_defconfig b/arch/blackfin/configs/BlackStamp_defconfig
index 9683b2e13097..3a20e281d23c 100644
--- a/arch/blackfin/configs/BlackStamp_defconfig
+++ b/arch/blackfin/configs/BlackStamp_defconfig
@@ -691,7 +691,7 @@ CONFIG_I2C_GPIO=m
691# 691#
692# CONFIG_DS1682 is not set 692# CONFIG_DS1682 is not set
693# CONFIG_SENSORS_AD5252 is not set 693# CONFIG_SENSORS_AD5252 is not set
694# CONFIG_SENSORS_EEPROM is not set 694# CONFIG_EEPROM_LEGACY is not set
695# CONFIG_SENSORS_PCF8574 is not set 695# CONFIG_SENSORS_PCF8574 is not set
696# CONFIG_PCF8575 is not set 696# CONFIG_PCF8575 is not set
697# CONFIG_SENSORS_PCF8591 is not set 697# CONFIG_SENSORS_PCF8591 is not set
@@ -713,7 +713,7 @@ CONFIG_SPI_BFIN=y
713# 713#
714# SPI Protocol Masters 714# SPI Protocol Masters
715# 715#
716CONFIG_SPI_AT25=y 716CONFIG_EEPROM_AT25=y
717CONFIG_SPI_SPIDEV=m 717CONFIG_SPI_SPIDEV=m
718# CONFIG_SPI_TLE62X0 is not set 718# CONFIG_SPI_TLE62X0 is not set
719# CONFIG_W1 is not set 719# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/CM-BF527_defconfig b/arch/blackfin/configs/CM-BF527_defconfig
index a041e7eba770..95146948166f 100644
--- a/arch/blackfin/configs/CM-BF527_defconfig
+++ b/arch/blackfin/configs/CM-BF527_defconfig
@@ -715,7 +715,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
715# CONFIG_SENSORS_DS1374 is not set 715# CONFIG_SENSORS_DS1374 is not set
716# CONFIG_DS1682 is not set 716# CONFIG_DS1682 is not set
717# CONFIG_SENSORS_AD5252 is not set 717# CONFIG_SENSORS_AD5252 is not set
718# CONFIG_SENSORS_EEPROM is not set 718# CONFIG_EEPROM_LEGACY is not set
719# CONFIG_SENSORS_PCF8574 is not set 719# CONFIG_SENSORS_PCF8574 is not set
720# CONFIG_SENSORS_PCF8575 is not set 720# CONFIG_SENSORS_PCF8575 is not set
721# CONFIG_SENSORS_PCA9539 is not set 721# CONFIG_SENSORS_PCA9539 is not set
@@ -742,7 +742,7 @@ CONFIG_SPI_BFIN=y
742# 742#
743# SPI Protocol Masters 743# SPI Protocol Masters
744# 744#
745# CONFIG_SPI_AT25 is not set 745# CONFIG_EEPROM_AT25 is not set
746# CONFIG_SPI_SPIDEV is not set 746# CONFIG_SPI_SPIDEV is not set
747# CONFIG_SPI_TLE62X0 is not set 747# CONFIG_SPI_TLE62X0 is not set
748# CONFIG_W1 is not set 748# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/CM-BF548_defconfig b/arch/blackfin/configs/CM-BF548_defconfig
index efd68bc78f35..efe9741b1f14 100644
--- a/arch/blackfin/configs/CM-BF548_defconfig
+++ b/arch/blackfin/configs/CM-BF548_defconfig
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1374 is not set 798# CONFIG_SENSORS_DS1374 is not set
799# CONFIG_DS1682 is not set 799# CONFIG_DS1682 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829# CONFIG_SPI_AT25 is not set 829# CONFIG_EEPROM_AT25 is not set
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831# CONFIG_SPI_TLE62X0 is not set 831# CONFIG_SPI_TLE62X0 is not set
832# CONFIG_W1 is not set 832# CONFIG_W1 is not set
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index 5d3901d23fd1..bd553da15db8 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -750,7 +750,7 @@ CONFIG_SPI_BFIN=y
750# 750#
751# SPI Protocol Masters 751# SPI Protocol Masters
752# 752#
753CONFIG_SPI_AT25=y 753CONFIG_EEPROM_AT25=y
754CONFIG_SPI_SPIDEV=y 754CONFIG_SPI_SPIDEV=y
755 755
756# 756#
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index e66f5daaa828..eae83b5de92f 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -803,7 +803,7 @@ CONFIG_SPI_BFIN=y
803# 803#
804# SPI Protocol Masters 804# SPI Protocol Masters
805# 805#
806# CONFIG_SPI_AT25 is not set 806# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 807# CONFIG_SPI_SPIDEV is not set
808 808
809# 809#
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index ce5dde9de9db..ad096702ac16 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -755,9 +755,9 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
755# Miscellaneous I2C Chip support 755# Miscellaneous I2C Chip support
756# 756#
757# CONFIG_DS1682 is not set 757# CONFIG_DS1682 is not set
758# CONFIG_AT24 is not set 758# CONFIG_EEPROM_AT24 is not set
759# CONFIG_SENSORS_AD5252 is not set 759# CONFIG_SENSORS_AD5252 is not set
760# CONFIG_SENSORS_EEPROM is not set 760# CONFIG_EEPROM_LEGACY is not set
761CONFIG_SENSORS_PCF8574=m 761CONFIG_SENSORS_PCF8574=m
762# CONFIG_PCF8575 is not set 762# CONFIG_PCF8575 is not set
763# CONFIG_SENSORS_PCA9539 is not set 763# CONFIG_SENSORS_PCA9539 is not set
@@ -781,7 +781,7 @@ CONFIG_SPI_BFIN=y
781# 781#
782# SPI Protocol Masters 782# SPI Protocol Masters
783# 783#
784# CONFIG_SPI_AT25 is not set 784# CONFIG_EEPROM_AT25 is not set
785# CONFIG_SPI_SPIDEV is not set 785# CONFIG_SPI_SPIDEV is not set
786# CONFIG_SPI_TLE62X0 is not set 786# CONFIG_SPI_TLE62X0 is not set
787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 787CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/blackfin/configs/SRV1_defconfig b/arch/blackfin/configs/SRV1_defconfig
index 7c8250d6fa66..fa580affc9d6 100644
--- a/arch/blackfin/configs/SRV1_defconfig
+++ b/arch/blackfin/configs/SRV1_defconfig
@@ -798,7 +798,7 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
798# CONFIG_SENSORS_DS1337 is not set 798# CONFIG_SENSORS_DS1337 is not set
799# CONFIG_SENSORS_DS1374 is not set 799# CONFIG_SENSORS_DS1374 is not set
800# CONFIG_SENSORS_AD5252 is not set 800# CONFIG_SENSORS_AD5252 is not set
801# CONFIG_SENSORS_EEPROM is not set 801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set 802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_SENSORS_PCF8575 is not set 803# CONFIG_SENSORS_PCF8575 is not set
804# CONFIG_SENSORS_PCA9543 is not set 804# CONFIG_SENSORS_PCA9543 is not set
@@ -826,7 +826,7 @@ CONFIG_SPI_BFIN=y
826# 826#
827# SPI Protocol Masters 827# SPI Protocol Masters
828# 828#
829CONFIG_SPI_AT25=m 829CONFIG_EEPROM_AT25=m
830# CONFIG_SPI_SPIDEV is not set 830# CONFIG_SPI_SPIDEV is not set
831 831
832# 832#
diff --git a/arch/blackfin/configs/TCM-BF537_defconfig b/arch/blackfin/configs/TCM-BF537_defconfig
index 9af522c7dadf..97a1f1d20dcf 100644
--- a/arch/blackfin/configs/TCM-BF537_defconfig
+++ b/arch/blackfin/configs/TCM-BF537_defconfig
@@ -533,7 +533,7 @@ CONFIG_SPI_BFIN=y
533# 533#
534# SPI Protocol Masters 534# SPI Protocol Masters
535# 535#
536# CONFIG_SPI_AT25 is not set 536# CONFIG_EEPROM_AT25 is not set
537# CONFIG_SPI_SPIDEV is not set 537# CONFIG_SPI_SPIDEV is not set
538# CONFIG_SPI_TLE62X0 is not set 538# CONFIG_SPI_TLE62X0 is not set
539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 539CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig
index 6dd8655664f3..ace41096b47b 100644
--- a/arch/ia64/configs/bigsur_defconfig
+++ b/arch/ia64/configs/bigsur_defconfig
@@ -752,7 +752,7 @@ CONFIG_I2C_ALGOBIT=y
752# 752#
753# CONFIG_SENSORS_DS1337 is not set 753# CONFIG_SENSORS_DS1337 is not set
754# CONFIG_SENSORS_DS1374 is not set 754# CONFIG_SENSORS_DS1374 is not set
755# CONFIG_SENSORS_EEPROM is not set 755# CONFIG_EEPROM_LEGACY is not set
756# CONFIG_SENSORS_PCF8574 is not set 756# CONFIG_SENSORS_PCF8574 is not set
757# CONFIG_SENSORS_PCA9539 is not set 757# CONFIG_SENSORS_PCA9539 is not set
758# CONFIG_SENSORS_PCF8591 is not set 758# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig
index 0a06b1333c95..514f0635dafe 100644
--- a/arch/ia64/configs/zx1_defconfig
+++ b/arch/ia64/configs/zx1_defconfig
@@ -841,7 +841,7 @@ CONFIG_I2C_ALGOPCF=y
841# 841#
842# CONFIG_SENSORS_DS1337 is not set 842# CONFIG_SENSORS_DS1337 is not set
843# CONFIG_SENSORS_DS1374 is not set 843# CONFIG_SENSORS_DS1374 is not set
844# CONFIG_SENSORS_EEPROM is not set 844# CONFIG_EEPROM_LEGACY is not set
845# CONFIG_SENSORS_PCF8574 is not set 845# CONFIG_SENSORS_PCF8574 is not set
846# CONFIG_SENSORS_PCA9539 is not set 846# CONFIG_SENSORS_PCA9539 is not set
847# CONFIG_SENSORS_PCF8591 is not set 847# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/m32r/configs/m32104ut_defconfig b/arch/m32r/configs/m32104ut_defconfig
index 9b5af6cd2e0b..6f54b00b3838 100644
--- a/arch/m32r/configs/m32104ut_defconfig
+++ b/arch/m32r/configs/m32104ut_defconfig
@@ -621,7 +621,7 @@ CONFIG_I2C_ELEKTOR=m
621# CONFIG_SENSORS_DS1337 is not set 621# CONFIG_SENSORS_DS1337 is not set
622# CONFIG_SENSORS_DS1374 is not set 622# CONFIG_SENSORS_DS1374 is not set
623# CONFIG_DS1682 is not set 623# CONFIG_DS1682 is not set
624# CONFIG_SENSORS_EEPROM is not set 624# CONFIG_EEPROM_LEGACY is not set
625# CONFIG_SENSORS_PCF8574 is not set 625# CONFIG_SENSORS_PCF8574 is not set
626# CONFIG_SENSORS_PCA9539 is not set 626# CONFIG_SENSORS_PCA9539 is not set
627# CONFIG_SENSORS_PCF8591 is not set 627# CONFIG_SENSORS_PCF8591 is not set
diff --git a/include/asm-m68k/Kbuild b/arch/m68k/include/asm/Kbuild
index 1a922fad76f7..1a922fad76f7 100644
--- a/include/asm-m68k/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
diff --git a/arch/m68knommu/include/asm/MC68328.h b/arch/m68k/include/asm/MC68328.h
index a337e56d09bf..a337e56d09bf 100644
--- a/arch/m68knommu/include/asm/MC68328.h
+++ b/arch/m68k/include/asm/MC68328.h
diff --git a/arch/m68knommu/include/asm/MC68332.h b/arch/m68k/include/asm/MC68332.h
index 6bb8f02685a2..6bb8f02685a2 100644
--- a/arch/m68knommu/include/asm/MC68332.h
+++ b/arch/m68k/include/asm/MC68332.h
diff --git a/arch/m68knommu/include/asm/MC68EZ328.h b/arch/m68k/include/asm/MC68EZ328.h
index 69b7f9139e5e..69b7f9139e5e 100644
--- a/arch/m68knommu/include/asm/MC68EZ328.h
+++ b/arch/m68k/include/asm/MC68EZ328.h
diff --git a/arch/m68knommu/include/asm/MC68VZ328.h b/arch/m68k/include/asm/MC68VZ328.h
index 2b9bf626a0a5..2b9bf626a0a5 100644
--- a/arch/m68knommu/include/asm/MC68VZ328.h
+++ b/arch/m68k/include/asm/MC68VZ328.h
diff --git a/include/asm-m68k/a.out-core.h b/arch/m68k/include/asm/a.out-core.h
index f6bfc1d63ff6..f6bfc1d63ff6 100644
--- a/include/asm-m68k/a.out-core.h
+++ b/arch/m68k/include/asm/a.out-core.h
diff --git a/include/asm-m68k/a.out.h b/arch/m68k/include/asm/a.out.h
index 3885fe43432a..3885fe43432a 100644
--- a/include/asm-m68k/a.out.h
+++ b/arch/m68k/include/asm/a.out.h
diff --git a/include/asm-m68k/adb_iop.h b/arch/m68k/include/asm/adb_iop.h
index 8a48e56f2d62..8a48e56f2d62 100644
--- a/include/asm-m68k/adb_iop.h
+++ b/arch/m68k/include/asm/adb_iop.h
diff --git a/include/asm-m68k/amigahw.h b/arch/m68k/include/asm/amigahw.h
index 5ca5dd951a4a..5ca5dd951a4a 100644
--- a/include/asm-m68k/amigahw.h
+++ b/arch/m68k/include/asm/amigahw.h
diff --git a/include/asm-m68k/amigaints.h b/arch/m68k/include/asm/amigaints.h
index b1bcdb835ab9..b1bcdb835ab9 100644
--- a/include/asm-m68k/amigaints.h
+++ b/arch/m68k/include/asm/amigaints.h
diff --git a/include/asm-m68k/amigayle.h b/arch/m68k/include/asm/amigayle.h
index bb5a6aa329f3..bb5a6aa329f3 100644
--- a/include/asm-m68k/amigayle.h
+++ b/arch/m68k/include/asm/amigayle.h
diff --git a/include/asm-m68k/amipcmcia.h b/arch/m68k/include/asm/amipcmcia.h
index 6f1ec1887d82..6f1ec1887d82 100644
--- a/include/asm-m68k/amipcmcia.h
+++ b/arch/m68k/include/asm/amipcmcia.h
diff --git a/arch/m68knommu/include/asm/anchor.h b/arch/m68k/include/asm/anchor.h
index 871c0d5cfc3d..871c0d5cfc3d 100644
--- a/arch/m68knommu/include/asm/anchor.h
+++ b/arch/m68k/include/asm/anchor.h
diff --git a/include/asm-m68k/apollodma.h b/arch/m68k/include/asm/apollodma.h
index 954adc851adb..954adc851adb 100644
--- a/include/asm-m68k/apollodma.h
+++ b/arch/m68k/include/asm/apollodma.h
diff --git a/include/asm-m68k/apollohw.h b/arch/m68k/include/asm/apollohw.h
index a1373b9aa281..a1373b9aa281 100644
--- a/include/asm-m68k/apollohw.h
+++ b/arch/m68k/include/asm/apollohw.h
diff --git a/include/asm-m68k/atafd.h b/arch/m68k/include/asm/atafd.h
index 8456889ee7da..8456889ee7da 100644
--- a/include/asm-m68k/atafd.h
+++ b/arch/m68k/include/asm/atafd.h
diff --git a/include/asm-m68k/atafdreg.h b/arch/m68k/include/asm/atafdreg.h
index bbf80949fd9f..bbf80949fd9f 100644
--- a/include/asm-m68k/atafdreg.h
+++ b/arch/m68k/include/asm/atafdreg.h
diff --git a/include/asm-m68k/atari_joystick.h b/arch/m68k/include/asm/atari_joystick.h
index 93be7da9f2c7..93be7da9f2c7 100644
--- a/include/asm-m68k/atari_joystick.h
+++ b/arch/m68k/include/asm/atari_joystick.h
diff --git a/include/asm-m68k/atari_stdma.h b/arch/m68k/include/asm/atari_stdma.h
index 8e389b7fa70c..8e389b7fa70c 100644
--- a/include/asm-m68k/atari_stdma.h
+++ b/arch/m68k/include/asm/atari_stdma.h
diff --git a/include/asm-m68k/atari_stram.h b/arch/m68k/include/asm/atari_stram.h
index 7546d13963be..7546d13963be 100644
--- a/include/asm-m68k/atari_stram.h
+++ b/arch/m68k/include/asm/atari_stram.h
diff --git a/include/asm-m68k/atarihw.h b/arch/m68k/include/asm/atarihw.h
index 1412b4ab202f..1412b4ab202f 100644
--- a/include/asm-m68k/atarihw.h
+++ b/arch/m68k/include/asm/atarihw.h
diff --git a/include/asm-m68k/atariints.h b/arch/m68k/include/asm/atariints.h
index 5748e99f4e26..5748e99f4e26 100644
--- a/include/asm-m68k/atariints.h
+++ b/arch/m68k/include/asm/atariints.h
diff --git a/include/asm-m68k/atarikb.h b/arch/m68k/include/asm/atarikb.h
index 546e7da5804f..546e7da5804f 100644
--- a/include/asm-m68k/atarikb.h
+++ b/arch/m68k/include/asm/atarikb.h
diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h
new file mode 100644
index 000000000000..8d29145ebb27
--- /dev/null
+++ b/arch/m68k/include/asm/atomic.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "atomic_no.h"
3#else
4#include "atomic_mm.h"
5#endif
diff --git a/include/asm-m68k/atomic.h b/arch/m68k/include/asm/atomic_mm.h
index eb0ab9d4ee77..eb0ab9d4ee77 100644
--- a/include/asm-m68k/atomic.h
+++ b/arch/m68k/include/asm/atomic_mm.h
diff --git a/arch/m68knommu/include/asm/atomic.h b/arch/m68k/include/asm/atomic_no.h
index 6bb674855a3f..6bb674855a3f 100644
--- a/arch/m68knommu/include/asm/atomic.h
+++ b/arch/m68k/include/asm/atomic_no.h
diff --git a/arch/m68knommu/include/asm/auxvec.h b/arch/m68k/include/asm/auxvec.h
index 844d6d52204b..844d6d52204b 100644
--- a/arch/m68knommu/include/asm/auxvec.h
+++ b/arch/m68k/include/asm/auxvec.h
diff --git a/arch/m68k/include/asm/bitops.h b/arch/m68k/include/asm/bitops.h
new file mode 100644
index 000000000000..ce163abddaba
--- /dev/null
+++ b/arch/m68k/include/asm/bitops.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bitops_no.h"
3#else
4#include "bitops_mm.h"
5#endif
diff --git a/include/asm-m68k/bitops.h b/arch/m68k/include/asm/bitops_mm.h
index 9bde784e7bad..9bde784e7bad 100644
--- a/include/asm-m68k/bitops.h
+++ b/arch/m68k/include/asm/bitops_mm.h
diff --git a/arch/m68knommu/include/asm/bitops.h b/arch/m68k/include/asm/bitops_no.h
index 9d3cbe5fad1e..9d3cbe5fad1e 100644
--- a/arch/m68knommu/include/asm/bitops.h
+++ b/arch/m68k/include/asm/bitops_no.h
diff --git a/include/asm-m68k/blinken.h b/arch/m68k/include/asm/blinken.h
index 1a749cf7b06d..1a749cf7b06d 100644
--- a/include/asm-m68k/blinken.h
+++ b/arch/m68k/include/asm/blinken.h
diff --git a/arch/m68k/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo.h
new file mode 100644
index 000000000000..fedf3e326121
--- /dev/null
+++ b/arch/m68k/include/asm/bootinfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bootinfo_no.h"
3#else
4#include "bootinfo_mm.h"
5#endif
diff --git a/include/asm-m68k/bootinfo.h b/arch/m68k/include/asm/bootinfo_mm.h
index fb8a06b9ab6a..fb8a06b9ab6a 100644
--- a/include/asm-m68k/bootinfo.h
+++ b/arch/m68k/include/asm/bootinfo_mm.h
diff --git a/arch/m68knommu/include/asm/bootinfo.h b/arch/m68k/include/asm/bootinfo_no.h
index c12e526f5189..c12e526f5189 100644
--- a/arch/m68knommu/include/asm/bootinfo.h
+++ b/arch/m68k/include/asm/bootinfo_no.h
diff --git a/arch/m68knommu/include/asm/bootstd.h b/arch/m68k/include/asm/bootstd.h
index bdc1a4ac4fe9..bdc1a4ac4fe9 100644
--- a/arch/m68knommu/include/asm/bootstd.h
+++ b/arch/m68k/include/asm/bootstd.h
diff --git a/arch/m68k/include/asm/bug.h b/arch/m68k/include/asm/bug.h
new file mode 100644
index 000000000000..997e0944ebc1
--- /dev/null
+++ b/arch/m68k/include/asm/bug.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bug_no.h"
3#else
4#include "bug_mm.h"
5#endif
diff --git a/include/asm-m68k/bug.h b/arch/m68k/include/asm/bug_mm.h
index e5b528deb8a8..e5b528deb8a8 100644
--- a/include/asm-m68k/bug.h
+++ b/arch/m68k/include/asm/bug_mm.h
diff --git a/arch/m68knommu/include/asm/bug.h b/arch/m68k/include/asm/bug_no.h
index 70e7dc0af21a..70e7dc0af21a 100644
--- a/arch/m68knommu/include/asm/bug.h
+++ b/arch/m68k/include/asm/bug_no.h
diff --git a/arch/m68k/include/asm/bugs.h b/arch/m68k/include/asm/bugs.h
new file mode 100644
index 000000000000..01f047d784ec
--- /dev/null
+++ b/arch/m68k/include/asm/bugs.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "bugs_no.h"
3#else
4#include "bugs_mm.h"
5#endif
diff --git a/include/asm-m68k/bugs.h b/arch/m68k/include/asm/bugs_mm.h
index d01935592410..d01935592410 100644
--- a/include/asm-m68k/bugs.h
+++ b/arch/m68k/include/asm/bugs_mm.h
diff --git a/arch/m68knommu/include/asm/bugs.h b/arch/m68k/include/asm/bugs_no.h
index 5f382dac3a60..5f382dac3a60 100644
--- a/arch/m68knommu/include/asm/bugs.h
+++ b/arch/m68k/include/asm/bugs_no.h
diff --git a/include/asm-m68k/bvme6000hw.h b/arch/m68k/include/asm/bvme6000hw.h
index f40d2f8510ee..f40d2f8510ee 100644
--- a/include/asm-m68k/bvme6000hw.h
+++ b/arch/m68k/include/asm/bvme6000hw.h
diff --git a/include/asm-m68k/byteorder.h b/arch/m68k/include/asm/byteorder.h
index 31b260a88803..31b260a88803 100644
--- a/include/asm-m68k/byteorder.h
+++ b/arch/m68k/include/asm/byteorder.h
diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
new file mode 100644
index 000000000000..599c29bc8f40
--- /dev/null
+++ b/arch/m68k/include/asm/cache.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cache_no.h"
3#else
4#include "cache_mm.h"
5#endif
diff --git a/include/asm-m68k/cache.h b/arch/m68k/include/asm/cache_mm.h
index fed3fd30de7e..fed3fd30de7e 100644
--- a/include/asm-m68k/cache.h
+++ b/arch/m68k/include/asm/cache_mm.h
diff --git a/arch/m68knommu/include/asm/cache.h b/arch/m68k/include/asm/cache_no.h
index 24e9eace5f8c..24e9eace5f8c 100644
--- a/arch/m68knommu/include/asm/cache.h
+++ b/arch/m68k/include/asm/cache_no.h
diff --git a/include/asm-m68k/cachectl.h b/arch/m68k/include/asm/cachectl.h
index 525978e959e3..525978e959e3 100644
--- a/include/asm-m68k/cachectl.h
+++ b/arch/m68k/include/asm/cachectl.h
diff --git a/arch/m68k/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush.h
new file mode 100644
index 000000000000..a70d7319630a
--- /dev/null
+++ b/arch/m68k/include/asm/cacheflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "cacheflush_no.h"
3#else
4#include "cacheflush_mm.h"
5#endif
diff --git a/include/asm-m68k/cacheflush.h b/arch/m68k/include/asm/cacheflush_mm.h
index 16bf375fdbe1..16bf375fdbe1 100644
--- a/include/asm-m68k/cacheflush.h
+++ b/arch/m68k/include/asm/cacheflush_mm.h
diff --git a/arch/m68knommu/include/asm/cacheflush.h b/arch/m68k/include/asm/cacheflush_no.h
index 87e5dc0413b4..87e5dc0413b4 100644
--- a/arch/m68knommu/include/asm/cacheflush.h
+++ b/arch/m68k/include/asm/cacheflush_no.h
diff --git a/arch/m68k/include/asm/checksum.h b/arch/m68k/include/asm/checksum.h
new file mode 100644
index 000000000000..1cf544767453
--- /dev/null
+++ b/arch/m68k/include/asm/checksum.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "checksum_no.h"
3#else
4#include "checksum_mm.h"
5#endif
diff --git a/include/asm-m68k/checksum.h b/arch/m68k/include/asm/checksum_mm.h
index 494f9aec37ea..494f9aec37ea 100644
--- a/include/asm-m68k/checksum.h
+++ b/arch/m68k/include/asm/checksum_mm.h
diff --git a/arch/m68knommu/include/asm/checksum.h b/arch/m68k/include/asm/checksum_no.h
index 81883482ffb1..81883482ffb1 100644
--- a/arch/m68knommu/include/asm/checksum.h
+++ b/arch/m68k/include/asm/checksum_no.h
diff --git a/arch/m68knommu/include/asm/coldfire.h b/arch/m68k/include/asm/coldfire.h
index 83a9fa4e618a..83a9fa4e618a 100644
--- a/arch/m68knommu/include/asm/coldfire.h
+++ b/arch/m68k/include/asm/coldfire.h
diff --git a/arch/m68knommu/include/asm/commproc.h b/arch/m68k/include/asm/commproc.h
index edf5eb6c08d2..edf5eb6c08d2 100644
--- a/arch/m68knommu/include/asm/commproc.h
+++ b/arch/m68k/include/asm/commproc.h
diff --git a/include/asm-m68k/contregs.h b/arch/m68k/include/asm/contregs.h
index d1ea750bddfe..d1ea750bddfe 100644
--- a/include/asm-m68k/contregs.h
+++ b/arch/m68k/include/asm/contregs.h
diff --git a/include/asm-m68k/cputime.h b/arch/m68k/include/asm/cputime.h
index c79c5e892305..c79c5e892305 100644
--- a/include/asm-m68k/cputime.h
+++ b/arch/m68k/include/asm/cputime.h
diff --git a/arch/m68k/include/asm/current.h b/arch/m68k/include/asm/current.h
new file mode 100644
index 000000000000..51b056dfaedd
--- /dev/null
+++ b/arch/m68k/include/asm/current.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "current_no.h"
3#else
4#include "current_mm.h"
5#endif
diff --git a/include/asm-m68k/current.h b/arch/m68k/include/asm/current_mm.h
index 8de8f8ceda61..8de8f8ceda61 100644
--- a/include/asm-m68k/current.h
+++ b/arch/m68k/include/asm/current_mm.h
diff --git a/arch/m68knommu/include/asm/current.h b/arch/m68k/include/asm/current_no.h
index 53ee0f9f7cef..53ee0f9f7cef 100644
--- a/arch/m68knommu/include/asm/current.h
+++ b/arch/m68k/include/asm/current_no.h
diff --git a/arch/m68knommu/include/asm/dbg.h b/arch/m68k/include/asm/dbg.h
index 27af3270f671..27af3270f671 100644
--- a/arch/m68knommu/include/asm/dbg.h
+++ b/arch/m68k/include/asm/dbg.h
diff --git a/arch/m68k/include/asm/delay.h b/arch/m68k/include/asm/delay.h
new file mode 100644
index 000000000000..d2598e3dd7b2
--- /dev/null
+++ b/arch/m68k/include/asm/delay.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "delay_no.h"
3#else
4#include "delay_mm.h"
5#endif
diff --git a/include/asm-m68k/delay.h b/arch/m68k/include/asm/delay_mm.h
index 5ed92851bc6f..5ed92851bc6f 100644
--- a/include/asm-m68k/delay.h
+++ b/arch/m68k/include/asm/delay_mm.h
diff --git a/arch/m68knommu/include/asm/delay.h b/arch/m68k/include/asm/delay_no.h
index 55cbd6294ab6..55cbd6294ab6 100644
--- a/arch/m68knommu/include/asm/delay.h
+++ b/arch/m68k/include/asm/delay_no.h
diff --git a/arch/m68knommu/include/asm/device.h b/arch/m68k/include/asm/device.h
index d8f9872b0e2d..d8f9872b0e2d 100644
--- a/arch/m68knommu/include/asm/device.h
+++ b/arch/m68k/include/asm/device.h
diff --git a/arch/m68k/include/asm/div64.h b/arch/m68k/include/asm/div64.h
new file mode 100644
index 000000000000..d211d9f54276
--- /dev/null
+++ b/arch/m68k/include/asm/div64.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "div64_no.h"
3#else
4#include "div64_mm.h"
5#endif
diff --git a/include/asm-m68k/div64.h b/arch/m68k/include/asm/div64_mm.h
index 8243c931b5c0..8243c931b5c0 100644
--- a/include/asm-m68k/div64.h
+++ b/arch/m68k/include/asm/div64_mm.h
diff --git a/arch/m68knommu/include/asm/div64.h b/arch/m68k/include/asm/div64_no.h
index 6cd978cefb28..6cd978cefb28 100644
--- a/arch/m68knommu/include/asm/div64.h
+++ b/arch/m68k/include/asm/div64_no.h
diff --git a/arch/m68k/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping.h
new file mode 100644
index 000000000000..f4a4c7638f89
--- /dev/null
+++ b/arch/m68k/include/asm/dma-mapping.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma-mapping_no.h"
3#else
4#include "dma-mapping_mm.h"
5#endif
diff --git a/include/asm-m68k/dma-mapping.h b/arch/m68k/include/asm/dma-mapping_mm.h
index 26f505488c11..26f505488c11 100644
--- a/include/asm-m68k/dma-mapping.h
+++ b/arch/m68k/include/asm/dma-mapping_mm.h
diff --git a/arch/m68knommu/include/asm/dma-mapping.h b/arch/m68k/include/asm/dma-mapping_no.h
index 6aeab18e58bd..6aeab18e58bd 100644
--- a/arch/m68knommu/include/asm/dma-mapping.h
+++ b/arch/m68k/include/asm/dma-mapping_no.h
diff --git a/arch/m68k/include/asm/dma.h b/arch/m68k/include/asm/dma.h
new file mode 100644
index 000000000000..b82e660cf1c2
--- /dev/null
+++ b/arch/m68k/include/asm/dma.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "dma_no.h"
3#else
4#include "dma_mm.h"
5#endif
diff --git a/include/asm-m68k/dma.h b/arch/m68k/include/asm/dma_mm.h
index 4240fbc946f8..4240fbc946f8 100644
--- a/include/asm-m68k/dma.h
+++ b/arch/m68k/include/asm/dma_mm.h
diff --git a/arch/m68knommu/include/asm/dma.h b/arch/m68k/include/asm/dma_no.h
index 939a02056217..939a02056217 100644
--- a/arch/m68knommu/include/asm/dma.h
+++ b/arch/m68k/include/asm/dma_no.h
diff --git a/include/asm-m68k/dsp56k.h b/arch/m68k/include/asm/dsp56k.h
index 2d8c0c9f794b..2d8c0c9f794b 100644
--- a/include/asm-m68k/dsp56k.h
+++ b/arch/m68k/include/asm/dsp56k.h
diff --git a/include/asm-m68k/dvma.h b/arch/m68k/include/asm/dvma.h
index 890bbf7e7758..890bbf7e7758 100644
--- a/include/asm-m68k/dvma.h
+++ b/arch/m68k/include/asm/dvma.h
diff --git a/arch/m68k/include/asm/elf.h b/arch/m68k/include/asm/elf.h
new file mode 100644
index 000000000000..04ce488bc63f
--- /dev/null
+++ b/arch/m68k/include/asm/elf.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "elf_no.h"
3#else
4#include "elf_mm.h"
5#endif
diff --git a/include/asm-m68k/elf.h b/arch/m68k/include/asm/elf_mm.h
index 0b0f49eb876b..0b0f49eb876b 100644
--- a/include/asm-m68k/elf.h
+++ b/arch/m68k/include/asm/elf_mm.h
diff --git a/arch/m68knommu/include/asm/elf.h b/arch/m68k/include/asm/elf_no.h
index b8046837f384..b8046837f384 100644
--- a/arch/m68knommu/include/asm/elf.h
+++ b/arch/m68k/include/asm/elf_no.h
diff --git a/arch/m68knommu/include/asm/elia.h b/arch/m68k/include/asm/elia.h
index e037d4e2de33..e037d4e2de33 100644
--- a/arch/m68knommu/include/asm/elia.h
+++ b/arch/m68k/include/asm/elia.h
diff --git a/arch/m68knommu/include/asm/emergency-restart.h b/arch/m68k/include/asm/emergency-restart.h
index 108d8c48e42e..108d8c48e42e 100644
--- a/arch/m68knommu/include/asm/emergency-restart.h
+++ b/arch/m68k/include/asm/emergency-restart.h
diff --git a/arch/m68k/include/asm/entry.h b/arch/m68k/include/asm/entry.h
new file mode 100644
index 000000000000..876eec6f2b52
--- /dev/null
+++ b/arch/m68k/include/asm/entry.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "entry_no.h"
3#else
4#include "entry_mm.h"
5#endif
diff --git a/include/asm-m68k/entry.h b/arch/m68k/include/asm/entry_mm.h
index 5202f5a5b420..5202f5a5b420 100644
--- a/include/asm-m68k/entry.h
+++ b/arch/m68k/include/asm/entry_mm.h
diff --git a/arch/m68knommu/include/asm/entry.h b/arch/m68k/include/asm/entry_no.h
index c2553d26273d..c2553d26273d 100644
--- a/arch/m68knommu/include/asm/entry.h
+++ b/arch/m68k/include/asm/entry_no.h
diff --git a/include/asm-m68k/errno.h b/arch/m68k/include/asm/errno.h
index 0d4e188d6ef6..0d4e188d6ef6 100644
--- a/include/asm-m68k/errno.h
+++ b/arch/m68k/include/asm/errno.h
diff --git a/arch/m68k/include/asm/fb.h b/arch/m68k/include/asm/fb.h
new file mode 100644
index 000000000000..97bcaefd2064
--- /dev/null
+++ b/arch/m68k/include/asm/fb.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fb_no.h"
3#else
4#include "fb_mm.h"
5#endif
diff --git a/include/asm-m68k/fb.h b/arch/m68k/include/asm/fb_mm.h
index 380b97ae8157..380b97ae8157 100644
--- a/include/asm-m68k/fb.h
+++ b/arch/m68k/include/asm/fb_mm.h
diff --git a/arch/m68knommu/include/asm/fb.h b/arch/m68k/include/asm/fb_no.h
index c7df38030992..c7df38030992 100644
--- a/arch/m68knommu/include/asm/fb.h
+++ b/arch/m68k/include/asm/fb_no.h
diff --git a/include/asm-m68k/fbio.h b/arch/m68k/include/asm/fbio.h
index b9215a0907d3..b9215a0907d3 100644
--- a/include/asm-m68k/fbio.h
+++ b/arch/m68k/include/asm/fbio.h
diff --git a/include/asm-m68k/fcntl.h b/arch/m68k/include/asm/fcntl.h
index 1c369b20dc45..1c369b20dc45 100644
--- a/include/asm-m68k/fcntl.h
+++ b/arch/m68k/include/asm/fcntl.h
diff --git a/arch/m68knommu/include/asm/flat.h b/arch/m68k/include/asm/flat.h
index 814b5174a8e0..814b5174a8e0 100644
--- a/arch/m68knommu/include/asm/flat.h
+++ b/arch/m68k/include/asm/flat.h
diff --git a/include/asm-m68k/floppy.h b/arch/m68k/include/asm/floppy.h
index 697d50393dd0..697d50393dd0 100644
--- a/include/asm-m68k/floppy.h
+++ b/arch/m68k/include/asm/floppy.h
diff --git a/arch/m68k/include/asm/fpu.h b/arch/m68k/include/asm/fpu.h
new file mode 100644
index 000000000000..e19bc5ed9c37
--- /dev/null
+++ b/arch/m68k/include/asm/fpu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "fpu_no.h"
3#else
4#include "fpu_mm.h"
5#endif
diff --git a/include/asm-m68k/fpu.h b/arch/m68k/include/asm/fpu_mm.h
index ffb6b8cfc6d5..ffb6b8cfc6d5 100644
--- a/include/asm-m68k/fpu.h
+++ b/arch/m68k/include/asm/fpu_mm.h
diff --git a/arch/m68knommu/include/asm/fpu.h b/arch/m68k/include/asm/fpu_no.h
index b16b2e4fca2a..b16b2e4fca2a 100644
--- a/arch/m68knommu/include/asm/fpu.h
+++ b/arch/m68k/include/asm/fpu_no.h
diff --git a/arch/m68knommu/include/asm/futex.h b/arch/m68k/include/asm/futex.h
index 6a332a9f099c..6a332a9f099c 100644
--- a/arch/m68knommu/include/asm/futex.h
+++ b/arch/m68k/include/asm/futex.h
diff --git a/arch/m68k/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq.h
new file mode 100644
index 000000000000..56d0d5db231c
--- /dev/null
+++ b/arch/m68k/include/asm/hardirq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hardirq_no.h"
3#else
4#include "hardirq_mm.h"
5#endif
diff --git a/include/asm-m68k/hardirq.h b/arch/m68k/include/asm/hardirq_mm.h
index 394ee946015c..394ee946015c 100644
--- a/include/asm-m68k/hardirq.h
+++ b/arch/m68k/include/asm/hardirq_mm.h
diff --git a/arch/m68knommu/include/asm/hardirq.h b/arch/m68k/include/asm/hardirq_no.h
index bfad28149a49..bfad28149a49 100644
--- a/arch/m68knommu/include/asm/hardirq.h
+++ b/arch/m68k/include/asm/hardirq_no.h
diff --git a/include/asm-m68k/hp300hw.h b/arch/m68k/include/asm/hp300hw.h
index d998ea67c19c..d998ea67c19c 100644
--- a/include/asm-m68k/hp300hw.h
+++ b/arch/m68k/include/asm/hp300hw.h
diff --git a/arch/m68k/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq.h
new file mode 100644
index 000000000000..e19526015890
--- /dev/null
+++ b/arch/m68k/include/asm/hw_irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "hw_irq_no.h"
3#else
4#include "hw_irq_mm.h"
5#endif
diff --git a/include/asm-m68k/hw_irq.h b/arch/m68k/include/asm/hw_irq_mm.h
index eacef0951fbf..eacef0951fbf 100644
--- a/include/asm-m68k/hw_irq.h
+++ b/arch/m68k/include/asm/hw_irq_mm.h
diff --git a/arch/m68knommu/include/asm/hw_irq.h b/arch/m68k/include/asm/hw_irq_no.h
index f3ec9e5ae049..f3ec9e5ae049 100644
--- a/arch/m68knommu/include/asm/hw_irq.h
+++ b/arch/m68k/include/asm/hw_irq_no.h
diff --git a/include/asm-m68k/hwtest.h b/arch/m68k/include/asm/hwtest.h
index 402c8a4401fe..402c8a4401fe 100644
--- a/include/asm-m68k/hwtest.h
+++ b/arch/m68k/include/asm/hwtest.h
diff --git a/include/asm-m68k/ide.h b/arch/m68k/include/asm/ide.h
index b996a3c8cff5..b996a3c8cff5 100644
--- a/include/asm-m68k/ide.h
+++ b/arch/m68k/include/asm/ide.h
diff --git a/include/asm-m68k/idprom.h b/arch/m68k/include/asm/idprom.h
index 160616a89e05..160616a89e05 100644
--- a/include/asm-m68k/idprom.h
+++ b/arch/m68k/include/asm/idprom.h
diff --git a/include/asm-m68k/intersil.h b/arch/m68k/include/asm/intersil.h
index f482902cac8a..f482902cac8a 100644
--- a/include/asm-m68k/intersil.h
+++ b/arch/m68k/include/asm/intersil.h
diff --git a/arch/m68k/include/asm/io.h b/arch/m68k/include/asm/io.h
new file mode 100644
index 000000000000..c7210ba184ea
--- /dev/null
+++ b/arch/m68k/include/asm/io.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "io_no.h"
3#else
4#include "io_mm.h"
5#endif
diff --git a/include/asm-m68k/io.h b/arch/m68k/include/asm/io_mm.h
index 9e673e3bd434..9e673e3bd434 100644
--- a/include/asm-m68k/io.h
+++ b/arch/m68k/include/asm/io_mm.h
diff --git a/arch/m68knommu/include/asm/io.h b/arch/m68k/include/asm/io_no.h
index 6adef1ee2082..6adef1ee2082 100644
--- a/arch/m68knommu/include/asm/io.h
+++ b/arch/m68k/include/asm/io_no.h
diff --git a/arch/m68knommu/include/asm/ioctl.h b/arch/m68k/include/asm/ioctl.h
index b279fe06dfe5..b279fe06dfe5 100644
--- a/arch/m68knommu/include/asm/ioctl.h
+++ b/arch/m68k/include/asm/ioctl.h
diff --git a/include/asm-m68k/ioctls.h b/arch/m68k/include/asm/ioctls.h
index b8d2f4be7fd7..b8d2f4be7fd7 100644
--- a/include/asm-m68k/ioctls.h
+++ b/arch/m68k/include/asm/ioctls.h
diff --git a/include/asm-m68k/ipcbuf.h b/arch/m68k/include/asm/ipcbuf.h
index a623ea3f0955..a623ea3f0955 100644
--- a/include/asm-m68k/ipcbuf.h
+++ b/arch/m68k/include/asm/ipcbuf.h
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
new file mode 100644
index 000000000000..d031416595b2
--- /dev/null
+++ b/arch/m68k/include/asm/irq.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "irq_no.h"
3#else
4#include "irq_mm.h"
5#endif
diff --git a/include/asm-m68k/irq.h b/arch/m68k/include/asm/irq_mm.h
index 226bfc0f21b1..226bfc0f21b1 100644
--- a/include/asm-m68k/irq.h
+++ b/arch/m68k/include/asm/irq_mm.h
diff --git a/arch/m68knommu/include/asm/irq.h b/arch/m68k/include/asm/irq_no.h
index 9373c31ac87d..9373c31ac87d 100644
--- a/arch/m68knommu/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq_no.h
diff --git a/arch/m68knommu/include/asm/irq_regs.h b/arch/m68k/include/asm/irq_regs.h
index 3dd9c0b70270..3dd9c0b70270 100644
--- a/arch/m68knommu/include/asm/irq_regs.h
+++ b/arch/m68k/include/asm/irq_regs.h
diff --git a/arch/m68knommu/include/asm/kdebug.h b/arch/m68k/include/asm/kdebug.h
index 6ece1b037665..6ece1b037665 100644
--- a/arch/m68knommu/include/asm/kdebug.h
+++ b/arch/m68k/include/asm/kdebug.h
diff --git a/arch/m68k/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types.h
new file mode 100644
index 000000000000..045d9fd122a2
--- /dev/null
+++ b/arch/m68k/include/asm/kmap_types.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "kmap_types_no.h"
3#else
4#include "kmap_types_mm.h"
5#endif
diff --git a/include/asm-m68k/kmap_types.h b/arch/m68k/include/asm/kmap_types_mm.h
index c843c63d3801..c843c63d3801 100644
--- a/include/asm-m68k/kmap_types.h
+++ b/arch/m68k/include/asm/kmap_types_mm.h
diff --git a/arch/m68knommu/include/asm/kmap_types.h b/arch/m68k/include/asm/kmap_types_no.h
index bfb6707575d1..bfb6707575d1 100644
--- a/arch/m68knommu/include/asm/kmap_types.h
+++ b/arch/m68k/include/asm/kmap_types_no.h
diff --git a/include/asm-m68k/linkage.h b/arch/m68k/include/asm/linkage.h
index 5a822bb790f7..5a822bb790f7 100644
--- a/include/asm-m68k/linkage.h
+++ b/arch/m68k/include/asm/linkage.h
diff --git a/include/asm-m68k/local.h b/arch/m68k/include/asm/local.h
index 6c259263e1f0..6c259263e1f0 100644
--- a/include/asm-m68k/local.h
+++ b/arch/m68k/include/asm/local.h
diff --git a/arch/m68knommu/include/asm/m5206sim.h b/arch/m68k/include/asm/m5206sim.h
index 7e3594dea88b..7e3594dea88b 100644
--- a/arch/m68knommu/include/asm/m5206sim.h
+++ b/arch/m68k/include/asm/m5206sim.h
diff --git a/arch/m68knommu/include/asm/m520xsim.h b/arch/m68k/include/asm/m520xsim.h
index 49d016e6391a..49d016e6391a 100644
--- a/arch/m68knommu/include/asm/m520xsim.h
+++ b/arch/m68k/include/asm/m520xsim.h
diff --git a/arch/m68knommu/include/asm/m523xsim.h b/arch/m68k/include/asm/m523xsim.h
index bf397313e93f..bf397313e93f 100644
--- a/arch/m68knommu/include/asm/m523xsim.h
+++ b/arch/m68k/include/asm/m523xsim.h
diff --git a/arch/m68knommu/include/asm/m5249sim.h b/arch/m68k/include/asm/m5249sim.h
index 366eb8602d2f..366eb8602d2f 100644
--- a/arch/m68knommu/include/asm/m5249sim.h
+++ b/arch/m68k/include/asm/m5249sim.h
diff --git a/arch/m68knommu/include/asm/m5272sim.h b/arch/m68k/include/asm/m5272sim.h
index 6217edc21139..6217edc21139 100644
--- a/arch/m68knommu/include/asm/m5272sim.h
+++ b/arch/m68k/include/asm/m5272sim.h
diff --git a/arch/m68knommu/include/asm/m527xsim.h b/arch/m68k/include/asm/m527xsim.h
index 1f63ab3fb3e6..1f63ab3fb3e6 100644
--- a/arch/m68knommu/include/asm/m527xsim.h
+++ b/arch/m68k/include/asm/m527xsim.h
diff --git a/arch/m68knommu/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h
index 28bf783a5d6d..28bf783a5d6d 100644
--- a/arch/m68knommu/include/asm/m528xsim.h
+++ b/arch/m68k/include/asm/m528xsim.h
diff --git a/arch/m68knommu/include/asm/m5307sim.h b/arch/m68k/include/asm/m5307sim.h
index 5886728409c0..5886728409c0 100644
--- a/arch/m68knommu/include/asm/m5307sim.h
+++ b/arch/m68k/include/asm/m5307sim.h
diff --git a/arch/m68knommu/include/asm/m532xsim.h b/arch/m68k/include/asm/m532xsim.h
index 1835fd20a82c..1835fd20a82c 100644
--- a/arch/m68knommu/include/asm/m532xsim.h
+++ b/arch/m68k/include/asm/m532xsim.h
diff --git a/arch/m68knommu/include/asm/m5407sim.h b/arch/m68k/include/asm/m5407sim.h
index cc22c4a53005..cc22c4a53005 100644
--- a/arch/m68knommu/include/asm/m5407sim.h
+++ b/arch/m68k/include/asm/m5407sim.h
diff --git a/arch/m68knommu/include/asm/m68360.h b/arch/m68k/include/asm/m68360.h
index eb7d39ef2855..eb7d39ef2855 100644
--- a/arch/m68knommu/include/asm/m68360.h
+++ b/arch/m68k/include/asm/m68360.h
diff --git a/arch/m68knommu/include/asm/m68360_enet.h b/arch/m68k/include/asm/m68360_enet.h
index c36f4d059203..c36f4d059203 100644
--- a/arch/m68knommu/include/asm/m68360_enet.h
+++ b/arch/m68k/include/asm/m68360_enet.h
diff --git a/arch/m68knommu/include/asm/m68360_pram.h b/arch/m68k/include/asm/m68360_pram.h
index e6088bbce93d..e6088bbce93d 100644
--- a/arch/m68knommu/include/asm/m68360_pram.h
+++ b/arch/m68k/include/asm/m68360_pram.h
diff --git a/arch/m68knommu/include/asm/m68360_quicc.h b/arch/m68k/include/asm/m68360_quicc.h
index 6d40f4d18e10..6d40f4d18e10 100644
--- a/arch/m68knommu/include/asm/m68360_quicc.h
+++ b/arch/m68k/include/asm/m68360_quicc.h
diff --git a/arch/m68knommu/include/asm/m68360_regs.h b/arch/m68k/include/asm/m68360_regs.h
index d57217ca4f27..d57217ca4f27 100644
--- a/arch/m68knommu/include/asm/m68360_regs.h
+++ b/arch/m68k/include/asm/m68360_regs.h
diff --git a/include/asm-m68k/mac_asc.h b/arch/m68k/include/asm/mac_asc.h
index fc2e5467b41e..fc2e5467b41e 100644
--- a/include/asm-m68k/mac_asc.h
+++ b/arch/m68k/include/asm/mac_asc.h
diff --git a/include/asm-m68k/mac_baboon.h b/arch/m68k/include/asm/mac_baboon.h
index c2a042b8c349..c2a042b8c349 100644
--- a/include/asm-m68k/mac_baboon.h
+++ b/arch/m68k/include/asm/mac_baboon.h
diff --git a/include/asm-m68k/mac_iop.h b/arch/m68k/include/asm/mac_iop.h
index a2c7e6fcca38..a2c7e6fcca38 100644
--- a/include/asm-m68k/mac_iop.h
+++ b/arch/m68k/include/asm/mac_iop.h
diff --git a/include/asm-m68k/mac_mouse.h b/arch/m68k/include/asm/mac_mouse.h
index 39a5c292eaee..39a5c292eaee 100644
--- a/include/asm-m68k/mac_mouse.h
+++ b/arch/m68k/include/asm/mac_mouse.h
diff --git a/include/asm-m68k/mac_oss.h b/arch/m68k/include/asm/mac_oss.h
index 7221f7251934..7221f7251934 100644
--- a/include/asm-m68k/mac_oss.h
+++ b/arch/m68k/include/asm/mac_oss.h
diff --git a/include/asm-m68k/mac_psc.h b/arch/m68k/include/asm/mac_psc.h
index 7808bb0b2323..7808bb0b2323 100644
--- a/include/asm-m68k/mac_psc.h
+++ b/arch/m68k/include/asm/mac_psc.h
diff --git a/include/asm-m68k/mac_via.h b/arch/m68k/include/asm/mac_via.h
index 39afb438b656..39afb438b656 100644
--- a/include/asm-m68k/mac_via.h
+++ b/arch/m68k/include/asm/mac_via.h
diff --git a/arch/m68k/include/asm/machdep.h b/arch/m68k/include/asm/machdep.h
new file mode 100644
index 000000000000..fc24b6fc5508
--- /dev/null
+++ b/arch/m68k/include/asm/machdep.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "machdep_no.h"
3#else
4#include "machdep_mm.h"
5#endif
diff --git a/include/asm-m68k/machdep.h b/arch/m68k/include/asm/machdep_mm.h
index 5637dcef314e..5637dcef314e 100644
--- a/include/asm-m68k/machdep.h
+++ b/arch/m68k/include/asm/machdep_mm.h
diff --git a/arch/m68knommu/include/asm/machdep.h b/arch/m68k/include/asm/machdep_no.h
index de9f47a51cc2..de9f47a51cc2 100644
--- a/arch/m68knommu/include/asm/machdep.h
+++ b/arch/m68k/include/asm/machdep_no.h
diff --git a/include/asm-m68k/machines.h b/arch/m68k/include/asm/machines.h
index be667e84f01b..be667e84f01b 100644
--- a/include/asm-m68k/machines.h
+++ b/arch/m68k/include/asm/machines.h
diff --git a/include/asm-m68k/machw.h b/arch/m68k/include/asm/machw.h
index 2b4de0c2ce4a..2b4de0c2ce4a 100644
--- a/include/asm-m68k/machw.h
+++ b/arch/m68k/include/asm/machw.h
diff --git a/include/asm-m68k/macintosh.h b/arch/m68k/include/asm/macintosh.h
index 05309f7e3d06..05309f7e3d06 100644
--- a/include/asm-m68k/macintosh.h
+++ b/arch/m68k/include/asm/macintosh.h
diff --git a/include/asm-m68k/macints.h b/arch/m68k/include/asm/macints.h
index 679c48ab4407..679c48ab4407 100644
--- a/include/asm-m68k/macints.h
+++ b/arch/m68k/include/asm/macints.h
diff --git a/include/asm-m68k/math-emu.h b/arch/m68k/include/asm/math-emu.h
index ddfab96403cb..ddfab96403cb 100644
--- a/include/asm-m68k/math-emu.h
+++ b/arch/m68k/include/asm/math-emu.h
diff --git a/arch/m68k/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc.h
new file mode 100644
index 000000000000..fb90dcf78426
--- /dev/null
+++ b/arch/m68k/include/asm/mc146818rtc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mc146818rtc_no.h"
3#else
4#include "mc146818rtc_mm.h"
5#endif
diff --git a/include/asm-m68k/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc_mm.h
index 9f70a01f73dc..9f70a01f73dc 100644
--- a/include/asm-m68k/mc146818rtc.h
+++ b/arch/m68k/include/asm/mc146818rtc_mm.h
diff --git a/arch/m68knommu/include/asm/mc146818rtc.h b/arch/m68k/include/asm/mc146818rtc_no.h
index 907a0481a140..907a0481a140 100644
--- a/arch/m68knommu/include/asm/mc146818rtc.h
+++ b/arch/m68k/include/asm/mc146818rtc_no.h
diff --git a/arch/m68knommu/include/asm/mcfcache.h b/arch/m68k/include/asm/mcfcache.h
index c042634fadaa..c042634fadaa 100644
--- a/arch/m68knommu/include/asm/mcfcache.h
+++ b/arch/m68k/include/asm/mcfcache.h
diff --git a/arch/m68knommu/include/asm/mcfdma.h b/arch/m68k/include/asm/mcfdma.h
index 705c52c79cd8..705c52c79cd8 100644
--- a/arch/m68knommu/include/asm/mcfdma.h
+++ b/arch/m68k/include/asm/mcfdma.h
diff --git a/arch/m68knommu/include/asm/mcfmbus.h b/arch/m68k/include/asm/mcfmbus.h
index 319899c47a2c..319899c47a2c 100644
--- a/arch/m68knommu/include/asm/mcfmbus.h
+++ b/arch/m68k/include/asm/mcfmbus.h
diff --git a/arch/m68knommu/include/asm/mcfne.h b/arch/m68k/include/asm/mcfne.h
index 431f63aadd0e..431f63aadd0e 100644
--- a/arch/m68knommu/include/asm/mcfne.h
+++ b/arch/m68k/include/asm/mcfne.h
diff --git a/arch/m68knommu/include/asm/mcfpci.h b/arch/m68k/include/asm/mcfpci.h
index f1507dd06ec6..f1507dd06ec6 100644
--- a/arch/m68knommu/include/asm/mcfpci.h
+++ b/arch/m68k/include/asm/mcfpci.h
diff --git a/arch/m68knommu/include/asm/mcfpit.h b/arch/m68k/include/asm/mcfpit.h
index f570cf64fd29..f570cf64fd29 100644
--- a/arch/m68knommu/include/asm/mcfpit.h
+++ b/arch/m68k/include/asm/mcfpit.h
diff --git a/arch/m68knommu/include/asm/mcfsim.h b/arch/m68k/include/asm/mcfsim.h
index da3f2ceff3a4..da3f2ceff3a4 100644
--- a/arch/m68knommu/include/asm/mcfsim.h
+++ b/arch/m68k/include/asm/mcfsim.h
diff --git a/arch/m68knommu/include/asm/mcfsmc.h b/arch/m68k/include/asm/mcfsmc.h
index 2d7a4dbd9683..2d7a4dbd9683 100644
--- a/arch/m68knommu/include/asm/mcfsmc.h
+++ b/arch/m68k/include/asm/mcfsmc.h
diff --git a/arch/m68knommu/include/asm/mcftimer.h b/arch/m68k/include/asm/mcftimer.h
index 0f90f6d2227a..0f90f6d2227a 100644
--- a/arch/m68knommu/include/asm/mcftimer.h
+++ b/arch/m68k/include/asm/mcftimer.h
diff --git a/arch/m68knommu/include/asm/mcfuart.h b/arch/m68k/include/asm/mcfuart.h
index ef2293873612..ef2293873612 100644
--- a/arch/m68knommu/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
diff --git a/arch/m68knommu/include/asm/mcfwdebug.h b/arch/m68k/include/asm/mcfwdebug.h
index 27f70e45d700..27f70e45d700 100644
--- a/arch/m68knommu/include/asm/mcfwdebug.h
+++ b/arch/m68k/include/asm/mcfwdebug.h
diff --git a/include/asm-m68k/md.h b/arch/m68k/include/asm/md.h
index d2f78f226f3d..d2f78f226f3d 100644
--- a/include/asm-m68k/md.h
+++ b/arch/m68k/include/asm/md.h
diff --git a/include/asm-m68k/mman.h b/arch/m68k/include/asm/mman.h
index 1626d37f4898..1626d37f4898 100644
--- a/include/asm-m68k/mman.h
+++ b/arch/m68k/include/asm/mman.h
diff --git a/arch/m68k/include/asm/mmu.h b/arch/m68k/include/asm/mmu.h
new file mode 100644
index 000000000000..a81d3946675f
--- /dev/null
+++ b/arch/m68k/include/asm/mmu.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_no.h"
3#else
4#include "mmu_mm.h"
5#endif
diff --git a/arch/m68k/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context.h
new file mode 100644
index 000000000000..b440928fc6c7
--- /dev/null
+++ b/arch/m68k/include/asm/mmu_context.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "mmu_context_no.h"
3#else
4#include "mmu_context_mm.h"
5#endif
diff --git a/include/asm-m68k/mmu_context.h b/arch/m68k/include/asm/mmu_context_mm.h
index 894dacbcee14..894dacbcee14 100644
--- a/include/asm-m68k/mmu_context.h
+++ b/arch/m68k/include/asm/mmu_context_mm.h
diff --git a/arch/m68knommu/include/asm/mmu_context.h b/arch/m68k/include/asm/mmu_context_no.h
index 9ccee4278c97..9ccee4278c97 100644
--- a/arch/m68knommu/include/asm/mmu_context.h
+++ b/arch/m68k/include/asm/mmu_context_no.h
diff --git a/include/asm-m68k/mmu.h b/arch/m68k/include/asm/mmu_mm.h
index ccd36d26615a..ccd36d26615a 100644
--- a/include/asm-m68k/mmu.h
+++ b/arch/m68k/include/asm/mmu_mm.h
diff --git a/arch/m68knommu/include/asm/mmu.h b/arch/m68k/include/asm/mmu_no.h
index e2da1e6f09fe..e2da1e6f09fe 100644
--- a/arch/m68knommu/include/asm/mmu.h
+++ b/arch/m68k/include/asm/mmu_no.h
diff --git a/include/asm-m68k/mmzone.h b/arch/m68k/include/asm/mmzone.h
index e1f1ec7b7006..e1f1ec7b7006 100644
--- a/include/asm-m68k/mmzone.h
+++ b/arch/m68k/include/asm/mmzone.h
diff --git a/arch/m68k/include/asm/module.h b/arch/m68k/include/asm/module.h
new file mode 100644
index 000000000000..79b59d137dd0
--- /dev/null
+++ b/arch/m68k/include/asm/module.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "module_no.h"
3#else
4#include "module_mm.h"
5#endif
diff --git a/include/asm-m68k/module.h b/arch/m68k/include/asm/module_mm.h
index 382d20a6fc18..382d20a6fc18 100644
--- a/include/asm-m68k/module.h
+++ b/arch/m68k/include/asm/module_mm.h
diff --git a/arch/m68knommu/include/asm/module.h b/arch/m68k/include/asm/module_no.h
index 2e45ab50b232..2e45ab50b232 100644
--- a/arch/m68knommu/include/asm/module.h
+++ b/arch/m68k/include/asm/module_no.h
diff --git a/include/asm-m68k/motorola_pgalloc.h b/arch/m68k/include/asm/motorola_pgalloc.h
index d08bf6261df8..d08bf6261df8 100644
--- a/include/asm-m68k/motorola_pgalloc.h
+++ b/arch/m68k/include/asm/motorola_pgalloc.h
diff --git a/include/asm-m68k/motorola_pgtable.h b/arch/m68k/include/asm/motorola_pgtable.h
index 8e9a8a754dde..8e9a8a754dde 100644
--- a/include/asm-m68k/motorola_pgtable.h
+++ b/arch/m68k/include/asm/motorola_pgtable.h
diff --git a/include/asm-m68k/movs.h b/arch/m68k/include/asm/movs.h
index 67dbea36960f..67dbea36960f 100644
--- a/include/asm-m68k/movs.h
+++ b/arch/m68k/include/asm/movs.h
diff --git a/include/asm-m68k/msgbuf.h b/arch/m68k/include/asm/msgbuf.h
index 243cb798de8f..243cb798de8f 100644
--- a/include/asm-m68k/msgbuf.h
+++ b/arch/m68k/include/asm/msgbuf.h
diff --git a/arch/m68knommu/include/asm/mutex.h b/arch/m68k/include/asm/mutex.h
index 458c1f7fbc18..458c1f7fbc18 100644
--- a/arch/m68knommu/include/asm/mutex.h
+++ b/arch/m68k/include/asm/mutex.h
diff --git a/include/asm-m68k/mvme147hw.h b/arch/m68k/include/asm/mvme147hw.h
index b81043108472..b81043108472 100644
--- a/include/asm-m68k/mvme147hw.h
+++ b/arch/m68k/include/asm/mvme147hw.h
diff --git a/include/asm-m68k/mvme16xhw.h b/arch/m68k/include/asm/mvme16xhw.h
index 6117f56653d2..6117f56653d2 100644
--- a/include/asm-m68k/mvme16xhw.h
+++ b/arch/m68k/include/asm/mvme16xhw.h
diff --git a/arch/m68knommu/include/asm/nettel.h b/arch/m68k/include/asm/nettel.h
index 0299f6a2deeb..0299f6a2deeb 100644
--- a/arch/m68knommu/include/asm/nettel.h
+++ b/arch/m68k/include/asm/nettel.h
diff --git a/include/asm-m68k/nubus.h b/arch/m68k/include/asm/nubus.h
index d6be9976f1ae..d6be9976f1ae 100644
--- a/include/asm-m68k/nubus.h
+++ b/arch/m68k/include/asm/nubus.h
diff --git a/include/asm-m68k/openprom.h b/arch/m68k/include/asm/openprom.h
index d33cdadf78e1..d33cdadf78e1 100644
--- a/include/asm-m68k/openprom.h
+++ b/arch/m68k/include/asm/openprom.h
diff --git a/include/asm-m68k/oplib.h b/arch/m68k/include/asm/oplib.h
index f082d03336bd..f082d03336bd 100644
--- a/include/asm-m68k/oplib.h
+++ b/arch/m68k/include/asm/oplib.h
diff --git a/arch/m68k/include/asm/page.h b/arch/m68k/include/asm/page.h
new file mode 100644
index 000000000000..f2b4480cc98a
--- /dev/null
+++ b/arch/m68k/include/asm/page.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_no.h"
3#else
4#include "page_mm.h"
5#endif
diff --git a/include/asm-m68k/page.h b/arch/m68k/include/asm/page_mm.h
index a34b8bad7847..a34b8bad7847 100644
--- a/include/asm-m68k/page.h
+++ b/arch/m68k/include/asm/page_mm.h
diff --git a/arch/m68knommu/include/asm/page.h b/arch/m68k/include/asm/page_no.h
index 3a1ede4544cb..3a1ede4544cb 100644
--- a/arch/m68knommu/include/asm/page.h
+++ b/arch/m68k/include/asm/page_no.h
diff --git a/arch/m68k/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset.h
new file mode 100644
index 000000000000..66455c849fbb
--- /dev/null
+++ b/arch/m68k/include/asm/page_offset.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "page_offset_no.h"
3#else
4#include "page_offset_mm.h"
5#endif
diff --git a/include/asm-m68k/page_offset.h b/arch/m68k/include/asm/page_offset_mm.h
index 1cbdb7f30ac2..1cbdb7f30ac2 100644
--- a/include/asm-m68k/page_offset.h
+++ b/arch/m68k/include/asm/page_offset_mm.h
diff --git a/arch/m68knommu/include/asm/page_offset.h b/arch/m68k/include/asm/page_offset_no.h
index d4e73e0ba646..d4e73e0ba646 100644
--- a/arch/m68knommu/include/asm/page_offset.h
+++ b/arch/m68k/include/asm/page_offset_no.h
diff --git a/arch/m68k/include/asm/param.h b/arch/m68k/include/asm/param.h
new file mode 100644
index 000000000000..40d1112a4588
--- /dev/null
+++ b/arch/m68k/include/asm/param.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "param_no.h"
3#else
4#include "param_mm.h"
5#endif
diff --git a/include/asm-m68k/param.h b/arch/m68k/include/asm/param_mm.h
index 536a27888358..536a27888358 100644
--- a/include/asm-m68k/param.h
+++ b/arch/m68k/include/asm/param_mm.h
diff --git a/arch/m68knommu/include/asm/param.h b/arch/m68k/include/asm/param_no.h
index 6044397adb64..6044397adb64 100644
--- a/arch/m68knommu/include/asm/param.h
+++ b/arch/m68k/include/asm/param_no.h
diff --git a/include/asm-m68k/parport.h b/arch/m68k/include/asm/parport.h
index 646b1872f73b..646b1872f73b 100644
--- a/include/asm-m68k/parport.h
+++ b/arch/m68k/include/asm/parport.h
diff --git a/arch/m68k/include/asm/pci.h b/arch/m68k/include/asm/pci.h
new file mode 100644
index 000000000000..dbea95373080
--- /dev/null
+++ b/arch/m68k/include/asm/pci.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pci_no.h"
3#else
4#include "pci_mm.h"
5#endif
diff --git a/include/asm-m68k/pci.h b/arch/m68k/include/asm/pci_mm.h
index 4ad0aea48ab4..4ad0aea48ab4 100644
--- a/include/asm-m68k/pci.h
+++ b/arch/m68k/include/asm/pci_mm.h
diff --git a/arch/m68knommu/include/asm/pci.h b/arch/m68k/include/asm/pci_no.h
index a13f3cc87451..9abbc03c73ee 100644
--- a/arch/m68knommu/include/asm/pci.h
+++ b/arch/m68k/include/asm/pci_no.h
@@ -1,7 +1,7 @@
1#ifndef M68KNOMMU_PCI_H 1#ifndef M68KNOMMU_PCI_H
2#define M68KNOMMU_PCI_H 2#define M68KNOMMU_PCI_H
3 3
4#include <asm-m68k/pci.h> 4#include <asm/pci_mm.h>
5 5
6#ifdef CONFIG_COMEMPCI 6#ifdef CONFIG_COMEMPCI
7/* 7/*
diff --git a/include/asm-m68k/percpu.h b/arch/m68k/include/asm/percpu.h
index 0859d048faf5..0859d048faf5 100644
--- a/include/asm-m68k/percpu.h
+++ b/arch/m68k/include/asm/percpu.h
diff --git a/arch/m68k/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc.h
new file mode 100644
index 000000000000..059cb73e78fc
--- /dev/null
+++ b/arch/m68k/include/asm/pgalloc.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgalloc_no.h"
3#else
4#include "pgalloc_mm.h"
5#endif
diff --git a/include/asm-m68k/pgalloc.h b/arch/m68k/include/asm/pgalloc_mm.h
index 4cb1a57ab763..4cb1a57ab763 100644
--- a/include/asm-m68k/pgalloc.h
+++ b/arch/m68k/include/asm/pgalloc_mm.h
diff --git a/arch/m68knommu/include/asm/pgalloc.h b/arch/m68k/include/asm/pgalloc_no.h
index d6352f671ec0..d6352f671ec0 100644
--- a/arch/m68knommu/include/asm/pgalloc.h
+++ b/arch/m68k/include/asm/pgalloc_no.h
diff --git a/arch/m68k/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable.h
new file mode 100644
index 000000000000..ee6759eb445a
--- /dev/null
+++ b/arch/m68k/include/asm/pgtable.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "pgtable_no.h"
3#else
4#include "pgtable_mm.h"
5#endif
diff --git a/include/asm-m68k/pgtable.h b/arch/m68k/include/asm/pgtable_mm.h
index 0b604f0f192d..0b604f0f192d 100644
--- a/include/asm-m68k/pgtable.h
+++ b/arch/m68k/include/asm/pgtable_mm.h
diff --git a/arch/m68knommu/include/asm/pgtable.h b/arch/m68k/include/asm/pgtable_no.h
index 46251016e821..46251016e821 100644
--- a/arch/m68knommu/include/asm/pgtable.h
+++ b/arch/m68k/include/asm/pgtable_no.h
diff --git a/include/asm-m68k/poll.h b/arch/m68k/include/asm/poll.h
index f080fcdb61bf..f080fcdb61bf 100644
--- a/include/asm-m68k/poll.h
+++ b/arch/m68k/include/asm/poll.h
diff --git a/include/asm-m68k/posix_types.h b/arch/m68k/include/asm/posix_types.h
index 63cdcc142d93..63cdcc142d93 100644
--- a/include/asm-m68k/posix_types.h
+++ b/arch/m68k/include/asm/posix_types.h
diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h
new file mode 100644
index 000000000000..fc3f2c22f2b8
--- /dev/null
+++ b/arch/m68k/include/asm/processor.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "processor_no.h"
3#else
4#include "processor_mm.h"
5#endif
diff --git a/include/asm-m68k/processor.h b/arch/m68k/include/asm/processor_mm.h
index 1f61ef53f0e0..1f61ef53f0e0 100644
--- a/include/asm-m68k/processor.h
+++ b/arch/m68k/include/asm/processor_mm.h
diff --git a/arch/m68knommu/include/asm/processor.h b/arch/m68k/include/asm/processor_no.h
index 91cba18acdd3..91cba18acdd3 100644
--- a/arch/m68knommu/include/asm/processor.h
+++ b/arch/m68k/include/asm/processor_no.h
diff --git a/arch/m68k/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace.h
new file mode 100644
index 000000000000..e83cd2f66101
--- /dev/null
+++ b/arch/m68k/include/asm/ptrace.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ptrace_no.h"
3#else
4#include "ptrace_mm.h"
5#endif
diff --git a/include/asm-m68k/ptrace.h b/arch/m68k/include/asm/ptrace_mm.h
index 57e763d79bf4..57e763d79bf4 100644
--- a/include/asm-m68k/ptrace.h
+++ b/arch/m68k/include/asm/ptrace_mm.h
diff --git a/arch/m68knommu/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace_no.h
index 8c9194b98548..8c9194b98548 100644
--- a/arch/m68knommu/include/asm/ptrace.h
+++ b/arch/m68k/include/asm/ptrace_no.h
diff --git a/include/asm-m68k/q40_master.h b/arch/m68k/include/asm/q40_master.h
index 3907a09d4fca..3907a09d4fca 100644
--- a/include/asm-m68k/q40_master.h
+++ b/arch/m68k/include/asm/q40_master.h
diff --git a/include/asm-m68k/q40ints.h b/arch/m68k/include/asm/q40ints.h
index 3d970afb708f..3d970afb708f 100644
--- a/include/asm-m68k/q40ints.h
+++ b/arch/m68k/include/asm/q40ints.h
diff --git a/arch/m68knommu/include/asm/quicc_simple.h b/arch/m68k/include/asm/quicc_simple.h
index c3636932d4bc..c3636932d4bc 100644
--- a/arch/m68knommu/include/asm/quicc_simple.h
+++ b/arch/m68k/include/asm/quicc_simple.h
diff --git a/include/asm-m68k/raw_io.h b/arch/m68k/include/asm/raw_io.h
index d9eb9834ccc8..d9eb9834ccc8 100644
--- a/include/asm-m68k/raw_io.h
+++ b/arch/m68k/include/asm/raw_io.h
diff --git a/include/asm-m68k/resource.h b/arch/m68k/include/asm/resource.h
index e7d35019f337..e7d35019f337 100644
--- a/include/asm-m68k/resource.h
+++ b/arch/m68k/include/asm/resource.h
diff --git a/include/asm-m68k/rtc.h b/arch/m68k/include/asm/rtc.h
index 5d3e03859844..5d3e03859844 100644
--- a/include/asm-m68k/rtc.h
+++ b/arch/m68k/include/asm/rtc.h
diff --git a/include/asm-m68k/sbus.h b/arch/m68k/include/asm/sbus.h
index bfe3ba147f2e..bfe3ba147f2e 100644
--- a/include/asm-m68k/sbus.h
+++ b/arch/m68k/include/asm/sbus.h
diff --git a/arch/m68k/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist.h
new file mode 100644
index 000000000000..b7e528636252
--- /dev/null
+++ b/arch/m68k/include/asm/scatterlist.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "scatterlist_no.h"
3#else
4#include "scatterlist_mm.h"
5#endif
diff --git a/include/asm-m68k/scatterlist.h b/arch/m68k/include/asm/scatterlist_mm.h
index d3a7a0edfeca..d3a7a0edfeca 100644
--- a/include/asm-m68k/scatterlist.h
+++ b/arch/m68k/include/asm/scatterlist_mm.h
diff --git a/arch/m68knommu/include/asm/scatterlist.h b/arch/m68k/include/asm/scatterlist_no.h
index afc4788b0d2c..afc4788b0d2c 100644
--- a/arch/m68knommu/include/asm/scatterlist.h
+++ b/arch/m68k/include/asm/scatterlist_no.h
diff --git a/include/asm-m68k/sections.h b/arch/m68k/include/asm/sections.h
index d64967ecfec6..d64967ecfec6 100644
--- a/include/asm-m68k/sections.h
+++ b/arch/m68k/include/asm/sections.h
diff --git a/arch/m68k/include/asm/segment.h b/arch/m68k/include/asm/segment.h
new file mode 100644
index 000000000000..82583bc004bd
--- /dev/null
+++ b/arch/m68k/include/asm/segment.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "segment_no.h"
3#else
4#include "segment_mm.h"
5#endif
diff --git a/include/asm-m68k/segment.h b/arch/m68k/include/asm/segment_mm.h
index 7b0b2d3127f9..7b0b2d3127f9 100644
--- a/include/asm-m68k/segment.h
+++ b/arch/m68k/include/asm/segment_mm.h
diff --git a/arch/m68knommu/include/asm/segment.h b/arch/m68k/include/asm/segment_no.h
index 42318ebec7ec..42318ebec7ec 100644
--- a/arch/m68knommu/include/asm/segment.h
+++ b/arch/m68k/include/asm/segment_no.h
diff --git a/include/asm-m68k/sembuf.h b/arch/m68k/include/asm/sembuf.h
index 2308052a8c24..2308052a8c24 100644
--- a/include/asm-m68k/sembuf.h
+++ b/arch/m68k/include/asm/sembuf.h
diff --git a/include/asm-m68k/serial.h b/arch/m68k/include/asm/serial.h
index 2b90d6e69070..2b90d6e69070 100644
--- a/include/asm-m68k/serial.h
+++ b/arch/m68k/include/asm/serial.h
diff --git a/arch/m68k/include/asm/setup.h b/arch/m68k/include/asm/setup.h
new file mode 100644
index 000000000000..842f86f75ccd
--- /dev/null
+++ b/arch/m68k/include/asm/setup.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "setup_no.h"
3#else
4#include "setup_mm.h"
5#endif
diff --git a/include/asm-m68k/setup.h b/arch/m68k/include/asm/setup_mm.h
index 4dfb3952b375..4dfb3952b375 100644
--- a/include/asm-m68k/setup.h
+++ b/arch/m68k/include/asm/setup_mm.h
diff --git a/arch/m68knommu/include/asm/setup.h b/arch/m68k/include/asm/setup_no.h
index fb86bb2a6078..45d286ce9398 100644
--- a/arch/m68knommu/include/asm/setup.h
+++ b/arch/m68k/include/asm/setup_no.h
@@ -1,6 +1,6 @@
1#ifdef __KERNEL__ 1#ifdef __KERNEL__
2 2
3#include <asm-m68k/setup.h> 3#include <asm/setup_mm.h>
4 4
5/* We have a bigger command line buffer. */ 5/* We have a bigger command line buffer. */
6#undef COMMAND_LINE_SIZE 6#undef COMMAND_LINE_SIZE
diff --git a/include/asm-m68k/shm.h b/arch/m68k/include/asm/shm.h
index fa56ec84a126..fa56ec84a126 100644
--- a/include/asm-m68k/shm.h
+++ b/arch/m68k/include/asm/shm.h
diff --git a/include/asm-m68k/shmbuf.h b/arch/m68k/include/asm/shmbuf.h
index f8928d62f1b7..f8928d62f1b7 100644
--- a/include/asm-m68k/shmbuf.h
+++ b/arch/m68k/include/asm/shmbuf.h
diff --git a/include/asm-m68k/shmparam.h b/arch/m68k/include/asm/shmparam.h
index 558892a2efb3..558892a2efb3 100644
--- a/include/asm-m68k/shmparam.h
+++ b/arch/m68k/include/asm/shmparam.h
diff --git a/arch/m68k/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext.h
new file mode 100644
index 000000000000..bff6d40345a9
--- /dev/null
+++ b/arch/m68k/include/asm/sigcontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "sigcontext_no.h"
3#else
4#include "sigcontext_mm.h"
5#endif
diff --git a/include/asm-m68k/sigcontext.h b/arch/m68k/include/asm/sigcontext_mm.h
index 64fbe34cf26f..64fbe34cf26f 100644
--- a/include/asm-m68k/sigcontext.h
+++ b/arch/m68k/include/asm/sigcontext_mm.h
diff --git a/arch/m68knommu/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext_no.h
index 36c293fc133d..36c293fc133d 100644
--- a/arch/m68knommu/include/asm/sigcontext.h
+++ b/arch/m68k/include/asm/sigcontext_no.h
diff --git a/arch/m68k/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo.h
new file mode 100644
index 000000000000..61219d7affc8
--- /dev/null
+++ b/arch/m68k/include/asm/siginfo.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "siginfo_no.h"
3#else
4#include "siginfo_mm.h"
5#endif
diff --git a/include/asm-m68k/siginfo.h b/arch/m68k/include/asm/siginfo_mm.h
index 05a8d6d90b58..05a8d6d90b58 100644
--- a/include/asm-m68k/siginfo.h
+++ b/arch/m68k/include/asm/siginfo_mm.h
diff --git a/arch/m68knommu/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo_no.h
index b18e5f4064ae..b18e5f4064ae 100644
--- a/arch/m68knommu/include/asm/siginfo.h
+++ b/arch/m68k/include/asm/siginfo_no.h
diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h
new file mode 100644
index 000000000000..3c19988bd93c
--- /dev/null
+++ b/arch/m68k/include/asm/signal.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "signal_no.h"
3#else
4#include "signal_mm.h"
5#endif
diff --git a/include/asm-m68k/signal.h b/arch/m68k/include/asm/signal_mm.h
index 3db8a81942f1..3db8a81942f1 100644
--- a/include/asm-m68k/signal.h
+++ b/arch/m68k/include/asm/signal_mm.h
diff --git a/arch/m68knommu/include/asm/signal.h b/arch/m68k/include/asm/signal_no.h
index 216c08be54a0..216c08be54a0 100644
--- a/arch/m68knommu/include/asm/signal.h
+++ b/arch/m68k/include/asm/signal_no.h
diff --git a/arch/m68knommu/include/asm/smp.h b/arch/m68k/include/asm/smp.h
index 9e9bd7e58922..9e9bd7e58922 100644
--- a/arch/m68knommu/include/asm/smp.h
+++ b/arch/m68k/include/asm/smp.h
diff --git a/include/asm-m68k/socket.h b/arch/m68k/include/asm/socket.h
index dbc64e92c41a..dbc64e92c41a 100644
--- a/include/asm-m68k/socket.h
+++ b/arch/m68k/include/asm/socket.h
diff --git a/include/asm-m68k/sockios.h b/arch/m68k/include/asm/sockios.h
index c04a23943cb7..c04a23943cb7 100644
--- a/include/asm-m68k/sockios.h
+++ b/arch/m68k/include/asm/sockios.h
diff --git a/include/asm-m68k/spinlock.h b/arch/m68k/include/asm/spinlock.h
index 20f46e27b534..20f46e27b534 100644
--- a/include/asm-m68k/spinlock.h
+++ b/arch/m68k/include/asm/spinlock.h
diff --git a/include/asm-m68k/stat.h b/arch/m68k/include/asm/stat.h
index dd38bc2e9f98..dd38bc2e9f98 100644
--- a/include/asm-m68k/stat.h
+++ b/arch/m68k/include/asm/stat.h
diff --git a/include/asm-m68k/statfs.h b/arch/m68k/include/asm/statfs.h
index 08d93f14e061..08d93f14e061 100644
--- a/include/asm-m68k/statfs.h
+++ b/arch/m68k/include/asm/statfs.h
diff --git a/arch/m68k/include/asm/string.h b/arch/m68k/include/asm/string.h
new file mode 100644
index 000000000000..2c356f90f171
--- /dev/null
+++ b/arch/m68k/include/asm/string.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "string_no.h"
3#else
4#include "string_mm.h"
5#endif
diff --git a/include/asm-m68k/string.h b/arch/m68k/include/asm/string_mm.h
index 2eb7df1e0f5d..2eb7df1e0f5d 100644
--- a/include/asm-m68k/string.h
+++ b/arch/m68k/include/asm/string_mm.h
diff --git a/arch/m68knommu/include/asm/string.h b/arch/m68k/include/asm/string_no.h
index af09e17000fc..af09e17000fc 100644
--- a/arch/m68knommu/include/asm/string.h
+++ b/arch/m68k/include/asm/string_no.h
diff --git a/include/asm-m68k/sun3-head.h b/arch/m68k/include/asm/sun3-head.h
index 05af2f18b3bd..05af2f18b3bd 100644
--- a/include/asm-m68k/sun3-head.h
+++ b/arch/m68k/include/asm/sun3-head.h
diff --git a/include/asm-m68k/sun3_pgalloc.h b/arch/m68k/include/asm/sun3_pgalloc.h
index d4c83f143816..d4c83f143816 100644
--- a/include/asm-m68k/sun3_pgalloc.h
+++ b/arch/m68k/include/asm/sun3_pgalloc.h
diff --git a/include/asm-m68k/sun3_pgtable.h b/arch/m68k/include/asm/sun3_pgtable.h
index f847ec732d62..f847ec732d62 100644
--- a/include/asm-m68k/sun3_pgtable.h
+++ b/arch/m68k/include/asm/sun3_pgtable.h
diff --git a/include/asm-m68k/sun3ints.h b/arch/m68k/include/asm/sun3ints.h
index 309d6e6a1374..309d6e6a1374 100644
--- a/include/asm-m68k/sun3ints.h
+++ b/arch/m68k/include/asm/sun3ints.h
diff --git a/include/asm-m68k/sun3mmu.h b/arch/m68k/include/asm/sun3mmu.h
index d8f17a0d8c9f..d8f17a0d8c9f 100644
--- a/include/asm-m68k/sun3mmu.h
+++ b/arch/m68k/include/asm/sun3mmu.h
diff --git a/include/asm-m68k/sun3x.h b/arch/m68k/include/asm/sun3x.h
index f5691a1ed7cc..f5691a1ed7cc 100644
--- a/include/asm-m68k/sun3x.h
+++ b/arch/m68k/include/asm/sun3x.h
diff --git a/include/asm-m68k/sun3xflop.h b/arch/m68k/include/asm/sun3xflop.h
index 32c45f84ac60..32c45f84ac60 100644
--- a/include/asm-m68k/sun3xflop.h
+++ b/arch/m68k/include/asm/sun3xflop.h
diff --git a/include/asm-m68k/sun3xprom.h b/arch/m68k/include/asm/sun3xprom.h
index 6735efcf5f6d..6735efcf5f6d 100644
--- a/include/asm-m68k/sun3xprom.h
+++ b/arch/m68k/include/asm/sun3xprom.h
diff --git a/include/asm-m68k/suspend.h b/arch/m68k/include/asm/suspend.h
index 57b3ddb4d269..57b3ddb4d269 100644
--- a/include/asm-m68k/suspend.h
+++ b/arch/m68k/include/asm/suspend.h
diff --git a/arch/m68k/include/asm/swab.h b/arch/m68k/include/asm/swab.h
new file mode 100644
index 000000000000..7d7dde1c73ec
--- /dev/null
+++ b/arch/m68k/include/asm/swab.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "swab_no.h"
3#else
4#include "swab_mm.h"
5#endif
diff --git a/include/asm-m68k/swab.h b/arch/m68k/include/asm/swab_mm.h
index 7221e3066825..7221e3066825 100644
--- a/include/asm-m68k/swab.h
+++ b/arch/m68k/include/asm/swab_mm.h
diff --git a/arch/m68knommu/include/asm/swab.h b/arch/m68k/include/asm/swab_no.h
index e582257db300..e582257db300 100644
--- a/arch/m68knommu/include/asm/swab.h
+++ b/arch/m68k/include/asm/swab_no.h
diff --git a/arch/m68k/include/asm/system.h b/arch/m68k/include/asm/system.h
new file mode 100644
index 000000000000..ccea925ff4f5
--- /dev/null
+++ b/arch/m68k/include/asm/system.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "system_no.h"
3#else
4#include "system_mm.h"
5#endif
diff --git a/include/asm-m68k/system.h b/arch/m68k/include/asm/system_mm.h
index dbb6515ffd5b..dbb6515ffd5b 100644
--- a/include/asm-m68k/system.h
+++ b/arch/m68k/include/asm/system_mm.h
diff --git a/arch/m68knommu/include/asm/system.h b/arch/m68k/include/asm/system_no.h
index 40f49de69821..40f49de69821 100644
--- a/arch/m68knommu/include/asm/system.h
+++ b/arch/m68k/include/asm/system_no.h
diff --git a/include/asm-m68k/termbits.h b/arch/m68k/include/asm/termbits.h
index 8c14170996bb..8c14170996bb 100644
--- a/include/asm-m68k/termbits.h
+++ b/arch/m68k/include/asm/termbits.h
diff --git a/include/asm-m68k/termios.h b/arch/m68k/include/asm/termios.h
index 0823032e4045..0823032e4045 100644
--- a/include/asm-m68k/termios.h
+++ b/arch/m68k/include/asm/termios.h
diff --git a/arch/m68k/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info.h
new file mode 100644
index 000000000000..f31a3f42b7b3
--- /dev/null
+++ b/arch/m68k/include/asm/thread_info.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "thread_info_no.h"
3#else
4#include "thread_info_mm.h"
5#endif
diff --git a/include/asm-m68k/thread_info.h b/arch/m68k/include/asm/thread_info_mm.h
index af0fda46e94b..af0fda46e94b 100644
--- a/include/asm-m68k/thread_info.h
+++ b/arch/m68k/include/asm/thread_info_mm.h
diff --git a/arch/m68knommu/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info_no.h
index 82529f424ea3..82529f424ea3 100644
--- a/arch/m68knommu/include/asm/thread_info.h
+++ b/arch/m68k/include/asm/thread_info_no.h
diff --git a/arch/m68k/include/asm/timex.h b/arch/m68k/include/asm/timex.h
new file mode 100644
index 000000000000..719762980578
--- /dev/null
+++ b/arch/m68k/include/asm/timex.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "timex_no.h"
3#else
4#include "timex_mm.h"
5#endif
diff --git a/include/asm-m68k/timex.h b/arch/m68k/include/asm/timex_mm.h
index b87f2f278f67..b87f2f278f67 100644
--- a/include/asm-m68k/timex.h
+++ b/arch/m68k/include/asm/timex_mm.h
diff --git a/arch/m68knommu/include/asm/timex.h b/arch/m68k/include/asm/timex_no.h
index 109050f3fe91..109050f3fe91 100644
--- a/arch/m68knommu/include/asm/timex.h
+++ b/arch/m68k/include/asm/timex_no.h
diff --git a/include/asm-m68k/tlb.h b/arch/m68k/include/asm/tlb.h
index 1785cff73449..1785cff73449 100644
--- a/include/asm-m68k/tlb.h
+++ b/arch/m68k/include/asm/tlb.h
diff --git a/arch/m68k/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush.h
new file mode 100644
index 000000000000..b6f93b30951e
--- /dev/null
+++ b/arch/m68k/include/asm/tlbflush.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "tlbflush_no.h"
3#else
4#include "tlbflush_mm.h"
5#endif
diff --git a/include/asm-m68k/tlbflush.h b/arch/m68k/include/asm/tlbflush_mm.h
index acb6bf21a321..acb6bf21a321 100644
--- a/include/asm-m68k/tlbflush.h
+++ b/arch/m68k/include/asm/tlbflush_mm.h
diff --git a/arch/m68knommu/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush_no.h
index a470cfb803eb..a470cfb803eb 100644
--- a/arch/m68knommu/include/asm/tlbflush.h
+++ b/arch/m68k/include/asm/tlbflush_no.h
diff --git a/arch/m68knommu/include/asm/topology.h b/arch/m68k/include/asm/topology.h
index ca173e9f26ff..ca173e9f26ff 100644
--- a/arch/m68knommu/include/asm/topology.h
+++ b/arch/m68k/include/asm/topology.h
diff --git a/arch/m68k/include/asm/traps.h b/arch/m68k/include/asm/traps.h
new file mode 100644
index 000000000000..3011ec0f5365
--- /dev/null
+++ b/arch/m68k/include/asm/traps.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "traps_no.h"
3#else
4#include "traps_mm.h"
5#endif
diff --git a/include/asm-m68k/traps.h b/arch/m68k/include/asm/traps_mm.h
index 8caef25624c7..8caef25624c7 100644
--- a/include/asm-m68k/traps.h
+++ b/arch/m68k/include/asm/traps_mm.h
diff --git a/arch/m68knommu/include/asm/traps.h b/arch/m68k/include/asm/traps_no.h
index d0671e5f8e29..d0671e5f8e29 100644
--- a/arch/m68knommu/include/asm/traps.h
+++ b/arch/m68k/include/asm/traps_no.h
diff --git a/include/asm-m68k/types.h b/arch/m68k/include/asm/types.h
index 6441cb5f8e7c..6441cb5f8e7c 100644
--- a/include/asm-m68k/types.h
+++ b/arch/m68k/include/asm/types.h
diff --git a/arch/m68k/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess.h
new file mode 100644
index 000000000000..38f92dbb9a45
--- /dev/null
+++ b/arch/m68k/include/asm/uaccess.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "uaccess_no.h"
3#else
4#include "uaccess_mm.h"
5#endif
diff --git a/include/asm-m68k/uaccess.h b/arch/m68k/include/asm/uaccess_mm.h
index 7107f3fbdbb6..7107f3fbdbb6 100644
--- a/include/asm-m68k/uaccess.h
+++ b/arch/m68k/include/asm/uaccess_mm.h
diff --git a/arch/m68knommu/include/asm/uaccess.h b/arch/m68k/include/asm/uaccess_no.h
index 68bbe9b312f1..68bbe9b312f1 100644
--- a/arch/m68knommu/include/asm/uaccess.h
+++ b/arch/m68k/include/asm/uaccess_no.h
diff --git a/arch/m68k/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext.h
new file mode 100644
index 000000000000..b53cd160c0b3
--- /dev/null
+++ b/arch/m68k/include/asm/ucontext.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "ucontext_no.h"
3#else
4#include "ucontext_mm.h"
5#endif
diff --git a/include/asm-m68k/ucontext.h b/arch/m68k/include/asm/ucontext_mm.h
index e4e22669edc0..e4e22669edc0 100644
--- a/include/asm-m68k/ucontext.h
+++ b/arch/m68k/include/asm/ucontext_mm.h
diff --git a/arch/m68knommu/include/asm/ucontext.h b/arch/m68k/include/asm/ucontext_no.h
index 713a27f901cd..713a27f901cd 100644
--- a/arch/m68knommu/include/asm/ucontext.h
+++ b/arch/m68k/include/asm/ucontext_no.h
diff --git a/arch/m68k/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned.h
new file mode 100644
index 000000000000..c640bba3bdf4
--- /dev/null
+++ b/arch/m68k/include/asm/unaligned.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unaligned_no.h"
3#else
4#include "unaligned_mm.h"
5#endif
diff --git a/include/asm-m68k/unaligned.h b/arch/m68k/include/asm/unaligned_mm.h
index 77698f2dc33c..77698f2dc33c 100644
--- a/include/asm-m68k/unaligned.h
+++ b/arch/m68k/include/asm/unaligned_mm.h
diff --git a/arch/m68knommu/include/asm/unaligned.h b/arch/m68k/include/asm/unaligned_no.h
index eb1ea4cb9a59..eb1ea4cb9a59 100644
--- a/arch/m68knommu/include/asm/unaligned.h
+++ b/arch/m68k/include/asm/unaligned_no.h
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
new file mode 100644
index 000000000000..df1d9d4cb1fd
--- /dev/null
+++ b/arch/m68k/include/asm/unistd.h
@@ -0,0 +1,5 @@
1#ifdef __uClinux__
2#include "unistd_no.h"
3#else
4#include "unistd_mm.h"
5#endif
diff --git a/include/asm-m68k/unistd.h b/arch/m68k/include/asm/unistd_mm.h
index 3c19027331fa..3c19027331fa 100644
--- a/include/asm-m68k/unistd.h
+++ b/arch/m68k/include/asm/unistd_mm.h
diff --git a/arch/m68knommu/include/asm/unistd.h b/arch/m68k/include/asm/unistd_no.h
index b034a2f7b444..b034a2f7b444 100644
--- a/arch/m68knommu/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd_no.h
diff --git a/include/asm-m68k/user.h b/arch/m68k/include/asm/user.h
index f1f478d6e050..f1f478d6e050 100644
--- a/include/asm-m68k/user.h
+++ b/arch/m68k/include/asm/user.h
diff --git a/include/asm-m68k/virtconvert.h b/arch/m68k/include/asm/virtconvert.h
index 22ab05c9c52b..22ab05c9c52b 100644
--- a/include/asm-m68k/virtconvert.h
+++ b/arch/m68k/include/asm/virtconvert.h
diff --git a/include/asm-m68k/xor.h b/arch/m68k/include/asm/xor.h
index c82eb12a5b18..c82eb12a5b18 100644
--- a/include/asm-m68k/xor.h
+++ b/arch/m68k/include/asm/xor.h
diff --git a/include/asm-m68k/zorro.h b/arch/m68k/include/asm/zorro.h
index 5ce97c22b582..5ce97c22b582 100644
--- a/include/asm-m68k/zorro.h
+++ b/arch/m68k/include/asm/zorro.h
diff --git a/arch/m68knommu/include/asm/Kbuild b/arch/m68knommu/include/asm/Kbuild
deleted file mode 100644
index c68e1680da01..000000000000
--- a/arch/m68knommu/include/asm/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
1include include/asm-generic/Kbuild.asm
diff --git a/arch/m68knommu/include/asm/byteorder.h b/arch/m68knommu/include/asm/byteorder.h
deleted file mode 100644
index 9c6c76a15041..000000000000
--- a/arch/m68knommu/include/asm/byteorder.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _M68KNOMMU_BYTEORDER_H
2#define _M68KNOMMU_BYTEORDER_H
3
4#include <linux/byteorder/big_endian.h>
5
6#endif /* _M68KNOMMU_BYTEORDER_H */
diff --git a/arch/m68knommu/include/asm/cachectl.h b/arch/m68knommu/include/asm/cachectl.h
deleted file mode 100644
index bcf5a6a9dd52..000000000000
--- a/arch/m68knommu/include/asm/cachectl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/cachectl.h>
diff --git a/arch/m68knommu/include/asm/cputime.h b/arch/m68knommu/include/asm/cputime.h
deleted file mode 100644
index a0c4a660878d..000000000000
--- a/arch/m68knommu/include/asm/cputime.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_CPUTIME_H
2#define __M68KNOMMU_CPUTIME_H
3
4#include <asm-generic/cputime.h>
5
6#endif /* __M68KNOMMU_CPUTIME_H */
diff --git a/arch/m68knommu/include/asm/errno.h b/arch/m68knommu/include/asm/errno.h
deleted file mode 100644
index 7e8c22b9a5e6..000000000000
--- a/arch/m68knommu/include/asm/errno.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/errno.h>
diff --git a/arch/m68knommu/include/asm/fcntl.h b/arch/m68knommu/include/asm/fcntl.h
deleted file mode 100644
index f6a552cda4cd..000000000000
--- a/arch/m68knommu/include/asm/fcntl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/fcntl.h>
diff --git a/arch/m68knommu/include/asm/hwtest.h b/arch/m68knommu/include/asm/hwtest.h
deleted file mode 100644
index 700626a1b1bf..000000000000
--- a/arch/m68knommu/include/asm/hwtest.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/hwtest.h>
diff --git a/arch/m68knommu/include/asm/ioctls.h b/arch/m68knommu/include/asm/ioctls.h
deleted file mode 100644
index 0b1eb4d85059..000000000000
--- a/arch/m68knommu/include/asm/ioctls.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ioctls.h>
diff --git a/arch/m68knommu/include/asm/ipcbuf.h b/arch/m68knommu/include/asm/ipcbuf.h
deleted file mode 100644
index e4a7be6dd706..000000000000
--- a/arch/m68knommu/include/asm/ipcbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/ipcbuf.h>
diff --git a/arch/m68knommu/include/asm/linkage.h b/arch/m68knommu/include/asm/linkage.h
deleted file mode 100644
index c288a19ff489..000000000000
--- a/arch/m68knommu/include/asm/linkage.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/linkage.h>
diff --git a/arch/m68knommu/include/asm/local.h b/arch/m68knommu/include/asm/local.h
deleted file mode 100644
index 84a39c1b86f8..000000000000
--- a/arch/m68knommu/include/asm/local.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __M68KNOMMU_LOCAL_H
2#define __M68KNOMMU_LOCAL_H
3
4#include <asm-generic/local.h>
5
6#endif /* __M68KNOMMU_LOCAL_H */
diff --git a/arch/m68knommu/include/asm/math-emu.h b/arch/m68knommu/include/asm/math-emu.h
deleted file mode 100644
index 7e7090517b72..000000000000
--- a/arch/m68knommu/include/asm/math-emu.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/math-emu.h>
diff --git a/arch/m68knommu/include/asm/md.h b/arch/m68knommu/include/asm/md.h
deleted file mode 100644
index d810c78de5ff..000000000000
--- a/arch/m68knommu/include/asm/md.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/md.h>
diff --git a/arch/m68knommu/include/asm/mman.h b/arch/m68knommu/include/asm/mman.h
deleted file mode 100644
index 4846c682efed..000000000000
--- a/arch/m68knommu/include/asm/mman.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/mman.h>
diff --git a/arch/m68knommu/include/asm/movs.h b/arch/m68knommu/include/asm/movs.h
deleted file mode 100644
index 81a16779e833..000000000000
--- a/arch/m68knommu/include/asm/movs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/movs.h>
diff --git a/arch/m68knommu/include/asm/msgbuf.h b/arch/m68knommu/include/asm/msgbuf.h
deleted file mode 100644
index bdfadec4d52d..000000000000
--- a/arch/m68knommu/include/asm/msgbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/msgbuf.h>
diff --git a/arch/m68knommu/include/asm/openprom.h b/arch/m68knommu/include/asm/openprom.h
deleted file mode 100644
index fdba7953ff9f..000000000000
--- a/arch/m68knommu/include/asm/openprom.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/openprom.h>
diff --git a/arch/m68knommu/include/asm/oplib.h b/arch/m68knommu/include/asm/oplib.h
deleted file mode 100644
index ce079dc332d9..000000000000
--- a/arch/m68knommu/include/asm/oplib.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/oplib.h>
diff --git a/arch/m68knommu/include/asm/percpu.h b/arch/m68knommu/include/asm/percpu.h
deleted file mode 100644
index 5de72c327efd..000000000000
--- a/arch/m68knommu/include/asm/percpu.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __ARCH_M68KNOMMU_PERCPU__
2#define __ARCH_M68KNOMMU_PERCPU__
3
4#include <asm-generic/percpu.h>
5
6#endif /* __ARCH_M68KNOMMU_PERCPU__ */
diff --git a/arch/m68knommu/include/asm/poll.h b/arch/m68knommu/include/asm/poll.h
deleted file mode 100644
index ee1b6cb549ca..000000000000
--- a/arch/m68knommu/include/asm/poll.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/poll.h>
diff --git a/arch/m68knommu/include/asm/posix_types.h b/arch/m68knommu/include/asm/posix_types.h
deleted file mode 100644
index 6205fb9392a3..000000000000
--- a/arch/m68knommu/include/asm/posix_types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/posix_types.h>
diff --git a/arch/m68knommu/include/asm/resource.h b/arch/m68knommu/include/asm/resource.h
deleted file mode 100644
index 7fa63d5ea576..000000000000
--- a/arch/m68knommu/include/asm/resource.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/resource.h>
diff --git a/arch/m68knommu/include/asm/rtc.h b/arch/m68knommu/include/asm/rtc.h
deleted file mode 100644
index eaf18ec83c8e..000000000000
--- a/arch/m68knommu/include/asm/rtc.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/rtc.h>
diff --git a/arch/m68knommu/include/asm/sections.h b/arch/m68knommu/include/asm/sections.h
deleted file mode 100644
index dd0ecb98ec08..000000000000
--- a/arch/m68knommu/include/asm/sections.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef _M68KNOMMU_SECTIONS_H
2#define _M68KNOMMU_SECTIONS_H
3
4/* nothing to see, move along */
5#include <asm-generic/sections.h>
6
7#endif
diff --git a/arch/m68knommu/include/asm/sembuf.h b/arch/m68knommu/include/asm/sembuf.h
deleted file mode 100644
index 3a634f9ecf50..000000000000
--- a/arch/m68knommu/include/asm/sembuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sembuf.h>
diff --git a/arch/m68knommu/include/asm/shm.h b/arch/m68knommu/include/asm/shm.h
deleted file mode 100644
index cc8e522d9050..000000000000
--- a/arch/m68knommu/include/asm/shm.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shm.h>
diff --git a/arch/m68knommu/include/asm/shmbuf.h b/arch/m68knommu/include/asm/shmbuf.h
deleted file mode 100644
index bc34cf8eefce..000000000000
--- a/arch/m68knommu/include/asm/shmbuf.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmbuf.h>
diff --git a/arch/m68knommu/include/asm/shmparam.h b/arch/m68knommu/include/asm/shmparam.h
deleted file mode 100644
index d7ee69648ebf..000000000000
--- a/arch/m68knommu/include/asm/shmparam.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/shmparam.h>
diff --git a/arch/m68knommu/include/asm/socket.h b/arch/m68knommu/include/asm/socket.h
deleted file mode 100644
index ac5478bf6371..000000000000
--- a/arch/m68knommu/include/asm/socket.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/socket.h>
diff --git a/arch/m68knommu/include/asm/sockios.h b/arch/m68knommu/include/asm/sockios.h
deleted file mode 100644
index dcc6a8900ce2..000000000000
--- a/arch/m68knommu/include/asm/sockios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/sockios.h>
diff --git a/arch/m68knommu/include/asm/spinlock.h b/arch/m68knommu/include/asm/spinlock.h
deleted file mode 100644
index 6bb1f06c4781..000000000000
--- a/arch/m68knommu/include/asm/spinlock.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/spinlock.h>
diff --git a/arch/m68knommu/include/asm/stat.h b/arch/m68knommu/include/asm/stat.h
deleted file mode 100644
index 3d4b260e7c03..000000000000
--- a/arch/m68knommu/include/asm/stat.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/stat.h>
diff --git a/arch/m68knommu/include/asm/statfs.h b/arch/m68knommu/include/asm/statfs.h
deleted file mode 100644
index 2ce99eaf0970..000000000000
--- a/arch/m68knommu/include/asm/statfs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/statfs.h>
diff --git a/arch/m68knommu/include/asm/termbits.h b/arch/m68knommu/include/asm/termbits.h
deleted file mode 100644
index 05dd6bc27285..000000000000
--- a/arch/m68knommu/include/asm/termbits.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termbits.h>
diff --git a/arch/m68knommu/include/asm/termios.h b/arch/m68knommu/include/asm/termios.h
deleted file mode 100644
index e7337881a985..000000000000
--- a/arch/m68knommu/include/asm/termios.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/termios.h>
diff --git a/arch/m68knommu/include/asm/tlb.h b/arch/m68knommu/include/asm/tlb.h
deleted file mode 100644
index 77a7c51ca299..000000000000
--- a/arch/m68knommu/include/asm/tlb.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/tlb.h>
diff --git a/arch/m68knommu/include/asm/types.h b/arch/m68knommu/include/asm/types.h
deleted file mode 100644
index 031238c2d180..000000000000
--- a/arch/m68knommu/include/asm/types.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/types.h>
diff --git a/arch/m68knommu/include/asm/user.h b/arch/m68knommu/include/asm/user.h
deleted file mode 100644
index a5a555b761c4..000000000000
--- a/arch/m68knommu/include/asm/user.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-m68k/user.h>
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index a3bbbf067a3b..783da855a2e3 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -959,7 +959,7 @@ CONFIG_I2C_SIBYTE=y
959# Miscellaneous I2C Chip support 959# Miscellaneous I2C Chip support
960# 960#
961# CONFIG_DS1682 is not set 961# CONFIG_DS1682 is not set
962CONFIG_SENSORS_EEPROM=y 962CONFIG_EEPROM_LEGACY=y
963CONFIG_SENSORS_PCF8574=y 963CONFIG_SENSORS_PCF8574=y
964# CONFIG_PCF8575 is not set 964# CONFIG_PCF8575 is not set
965CONFIG_SENSORS_PCF8591=y 965CONFIG_SENSORS_PCF8591=y
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/emma2rh_defconfig
index 634bb4eaf132..fea9bc9865a3 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/emma2rh_defconfig
@@ -996,7 +996,7 @@ CONFIG_I2C_CHARDEV=y
996# 996#
997# CONFIG_SENSORS_DS1337 is not set 997# CONFIG_SENSORS_DS1337 is not set
998# CONFIG_SENSORS_DS1374 is not set 998# CONFIG_SENSORS_DS1374 is not set
999# CONFIG_SENSORS_EEPROM is not set 999# CONFIG_EEPROM_LEGACY is not set
1000# CONFIG_SENSORS_PCF8574 is not set 1000# CONFIG_SENSORS_PCF8574 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
1002# CONFIG_SENSORS_PCF8591 is not set 1002# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig
index b6698a232ae9..786a9bc9a696 100644
--- a/arch/mips/configs/fulong_defconfig
+++ b/arch/mips/configs/fulong_defconfig
@@ -1006,8 +1006,8 @@ CONFIG_I2C_VIAPRO=m
1006# Miscellaneous I2C Chip support 1006# Miscellaneous I2C Chip support
1007# 1007#
1008# CONFIG_DS1682 is not set 1008# CONFIG_DS1682 is not set
1009# CONFIG_AT24 is not set 1009# CONFIG_EEPROM_AT24 is not set
1010# CONFIG_SENSORS_EEPROM is not set 1010# CONFIG_EEPROM_LEGACY is not set
1011# CONFIG_SENSORS_PCF8574 is not set 1011# CONFIG_SENSORS_PCF8574 is not set
1012# CONFIG_PCF8575 is not set 1012# CONFIG_PCF8575 is not set
1013# CONFIG_SENSORS_PCA9539 is not set 1013# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/msp71xx_defconfig b/arch/mips/configs/msp71xx_defconfig
index dd13db4d0fb9..84d6491b3d41 100644
--- a/arch/mips/configs/msp71xx_defconfig
+++ b/arch/mips/configs/msp71xx_defconfig
@@ -929,7 +929,7 @@ CONFIG_I2C_PMCMSP=y
929# 929#
930# CONFIG_SENSORS_DS1337 is not set 930# CONFIG_SENSORS_DS1337 is not set
931# CONFIG_SENSORS_DS1374 is not set 931# CONFIG_SENSORS_DS1374 is not set
932# CONFIG_SENSORS_EEPROM is not set 932# CONFIG_EEPROM_LEGACY is not set
933# CONFIG_SENSORS_PCF8574 is not set 933# CONFIG_SENSORS_PCF8574 is not set
934CONFIG_PMCTWILED=y 934CONFIG_PMCTWILED=y
935# CONFIG_SENSORS_PCA9539 is not set 935# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index db9272677aa2..8426d3b9501c 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -1845,7 +1845,7 @@ CONFIG_I2C_VOODOO3=m
1845CONFIG_SENSORS_DS1337=m 1845CONFIG_SENSORS_DS1337=m
1846CONFIG_SENSORS_DS1374=m 1846CONFIG_SENSORS_DS1374=m
1847# CONFIG_DS1682 is not set 1847# CONFIG_DS1682 is not set
1848CONFIG_SENSORS_EEPROM=m 1848CONFIG_EEPROM_LEGACY=m
1849CONFIG_SENSORS_PCF8574=m 1849CONFIG_SENSORS_PCF8574=m
1850CONFIG_SENSORS_PCA9539=m 1850CONFIG_SENSORS_PCA9539=m
1851CONFIG_SENSORS_PCF8591=m 1851CONFIG_SENSORS_PCF8591=m
@@ -1872,7 +1872,7 @@ CONFIG_SPI_BUTTERFLY=m
1872# 1872#
1873# SPI Protocol Masters 1873# SPI Protocol Masters
1874# 1874#
1875# CONFIG_SPI_AT25 is not set 1875# CONFIG_EEPROM_AT25 is not set
1876# CONFIG_SPI_SPIDEV is not set 1876# CONFIG_SPI_SPIDEV is not set
1877# CONFIG_SPI_TLE62X0 is not set 1877# CONFIG_SPI_TLE62X0 is not set
1878CONFIG_W1=m 1878CONFIG_W1=m
diff --git a/arch/mips/configs/pnx8335-stb225_defconfig b/arch/mips/configs/pnx8335-stb225_defconfig
index d9536522cff5..2728caa6c2fb 100644
--- a/arch/mips/configs/pnx8335-stb225_defconfig
+++ b/arch/mips/configs/pnx8335-stb225_defconfig
@@ -640,8 +640,8 @@ CONFIG_I2C_CHARDEV=y
640# Miscellaneous I2C Chip support 640# Miscellaneous I2C Chip support
641# 641#
642# CONFIG_DS1682 is not set 642# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 643# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 646# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 647# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/mips/configs/rbtx49xx_defconfig b/arch/mips/configs/rbtx49xx_defconfig
index c7c0864b8ce9..83d5c58662c8 100644
--- a/arch/mips/configs/rbtx49xx_defconfig
+++ b/arch/mips/configs/rbtx49xx_defconfig
@@ -522,7 +522,7 @@ CONFIG_SPI_TXX9=y
522# 522#
523# SPI Protocol Masters 523# SPI Protocol Masters
524# 524#
525CONFIG_SPI_AT25=y 525CONFIG_EEPROM_AT25=y
526# CONFIG_SPI_TLE62X0 is not set 526# CONFIG_SPI_TLE62X0 is not set
527CONFIG_HAVE_GPIO_LIB=y 527CONFIG_HAVE_GPIO_LIB=y
528 528
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig
index 15f48e03ec2e..ce28cd6f0d4f 100644
--- a/arch/powerpc/configs/44x/sam440ep_defconfig
+++ b/arch/powerpc/configs/44x/sam440ep_defconfig
@@ -730,8 +730,8 @@ CONFIG_I2C_IBM_IIC=y
730# Miscellaneous I2C Chip support 730# Miscellaneous I2C Chip support
731# 731#
732# CONFIG_DS1682 is not set 732# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 733# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 734# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 735# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 736# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 737# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig
index 59cbd2761ed7..031ac6d4212f 100644
--- a/arch/powerpc/configs/44x/warp_defconfig
+++ b/arch/powerpc/configs/44x/warp_defconfig
@@ -660,8 +660,8 @@ CONFIG_I2C_HELPER_AUTO=y
660# Miscellaneous I2C Chip support 660# Miscellaneous I2C Chip support
661# 661#
662# CONFIG_DS1682 is not set 662# CONFIG_DS1682 is not set
663# CONFIG_AT24 is not set 663# CONFIG_EEPROM_AT24 is not set
664CONFIG_SENSORS_EEPROM=y 664CONFIG_EEPROM_LEGACY=y
665# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 666# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 667# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 3df627494b65..99c495ad9c75 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_defconfig
@@ -629,8 +629,8 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
630# 630#
631# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set 632# CONFIG_EEPROM_AT24 is not set
633# CONFIG_SENSORS_EEPROM is not set 633# CONFIG_EEPROM_LEGACY is not set
634# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 5b969f9c925e..9796220032fd 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_defconfig
@@ -762,8 +762,8 @@ CONFIG_I2C_MPC=y
762# Miscellaneous I2C Chip support 762# Miscellaneous I2C Chip support
763# 763#
764# CONFIG_DS1682 is not set 764# CONFIG_DS1682 is not set
765# CONFIG_AT24 is not set 765# CONFIG_EEPROM_AT24 is not set
766# CONFIG_SENSORS_EEPROM is not set 766# CONFIG_EEPROM_LEGACY is not set
767# CONFIG_SENSORS_PCF8574 is not set 767# CONFIG_SENSORS_PCF8574 is not set
768# CONFIG_PCF8575 is not set 768# CONFIG_PCF8575 is not set
769# CONFIG_SENSORS_PCA9539 is not set 769# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index 3c0d4e561726..d081e0031057 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_defconfig
@@ -629,8 +629,8 @@ CONFIG_I2C_MPC=y
629# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
630# 630#
631# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
632# CONFIG_AT24 is not set 632# CONFIG_EEPROM_AT24 is not set
633CONFIG_SENSORS_EEPROM=y 633CONFIG_EEPROM_LEGACY=y
634# CONFIG_SENSORS_PCF8574 is not set 634# CONFIG_SENSORS_PCF8574 is not set
635# CONFIG_PCF8575 is not set 635# CONFIG_PCF8575 is not set
636# CONFIG_SENSORS_PCA9539 is not set 636# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 9d0207783d60..b21b8e8c3a78 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_defconfig
@@ -740,8 +740,8 @@ CONFIG_I2C_MPC=y
740# Miscellaneous I2C Chip support 740# Miscellaneous I2C Chip support
741# 741#
742# CONFIG_DS1682 is not set 742# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set 743# CONFIG_EEPROM_AT24 is not set
744CONFIG_SENSORS_EEPROM=m 744CONFIG_EEPROM_LEGACY=m
745# CONFIG_SENSORS_PCF8574 is not set 745# CONFIG_SENSORS_PCF8574 is not set
746# CONFIG_PCF8575 is not set 746# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set 747# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index bc190051e8d5..79954579f5ec 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_defconfig
@@ -645,8 +645,8 @@ CONFIG_I2C_MPC=y
645# Miscellaneous I2C Chip support 645# Miscellaneous I2C Chip support
646# 646#
647# CONFIG_DS1682 is not set 647# CONFIG_DS1682 is not set
648# CONFIG_AT24 is not set 648# CONFIG_EEPROM_AT24 is not set
649# CONFIG_SENSORS_EEPROM is not set 649# CONFIG_EEPROM_LEGACY is not set
650# CONFIG_SENSORS_PCF8574 is not set 650# CONFIG_SENSORS_PCF8574 is not set
651# CONFIG_PCF8575 is not set 651# CONFIG_PCF8575 is not set
652# CONFIG_SENSORS_PCA9539 is not set 652# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index cbecaf3d7906..b3d9d1a8dfaf 100644
--- a/arch/powerpc/configs/83xx/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_defconfig
@@ -732,8 +732,8 @@ CONFIG_I2C_MPC=y
732# Miscellaneous I2C Chip support 732# Miscellaneous I2C Chip support
733# 733#
734# CONFIG_DS1682 is not set 734# CONFIG_DS1682 is not set
735# CONFIG_AT24 is not set 735# CONFIG_EEPROM_AT24 is not set
736# CONFIG_SENSORS_EEPROM is not set 736# CONFIG_EEPROM_LEGACY is not set
737# CONFIG_SENSORS_PCF8574 is not set 737# CONFIG_SENSORS_PCF8574 is not set
738# CONFIG_PCF8575 is not set 738# CONFIG_PCF8575 is not set
739# CONFIG_SENSORS_PCA9539 is not set 739# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index bfc32ea265a7..6293bb99b52e 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
@@ -858,8 +858,8 @@ CONFIG_I2C_MPC=y
858# Miscellaneous I2C Chip support 858# Miscellaneous I2C Chip support
859# 859#
860# CONFIG_DS1682 is not set 860# CONFIG_DS1682 is not set
861# CONFIG_AT24 is not set 861# CONFIG_EEPROM_AT24 is not set
862# CONFIG_SENSORS_EEPROM is not set 862# CONFIG_EEPROM_LEGACY is not set
863# CONFIG_SENSORS_PCF8574 is not set 863# CONFIG_SENSORS_PCF8574 is not set
864# CONFIG_PCF8575 is not set 864# CONFIG_PCF8575 is not set
865# CONFIG_SENSORS_PCA9539 is not set 865# CONFIG_SENSORS_PCA9539 is not set
@@ -884,7 +884,7 @@ CONFIG_SPI_MPC83xx=y
884# 884#
885# SPI Protocol Masters 885# SPI Protocol Masters
886# 886#
887# CONFIG_SPI_AT25 is not set 887# CONFIG_EEPROM_AT25 is not set
888# CONFIG_SPI_SPIDEV is not set 888# CONFIG_SPI_SPIDEV is not set
889# CONFIG_SPI_TLE62X0 is not set 889# CONFIG_SPI_TLE62X0 is not set
890CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 890CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index aad0e1a98c55..c7cceb4536d8 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
@@ -919,8 +919,8 @@ CONFIG_I2C_MPC=y
919# Miscellaneous I2C Chip support 919# Miscellaneous I2C Chip support
920# 920#
921# CONFIG_DS1682 is not set 921# CONFIG_DS1682 is not set
922# CONFIG_AT24 is not set 922# CONFIG_EEPROM_AT24 is not set
923# CONFIG_SENSORS_EEPROM is not set 923# CONFIG_EEPROM_LEGACY is not set
924# CONFIG_SENSORS_PCF8574 is not set 924# CONFIG_SENSORS_PCF8574 is not set
925# CONFIG_PCF8575 is not set 925# CONFIG_PCF8575 is not set
926# CONFIG_SENSORS_PCA9539 is not set 926# CONFIG_SENSORS_PCA9539 is not set
@@ -945,7 +945,7 @@ CONFIG_SPI_MPC83xx=y
945# 945#
946# SPI Protocol Masters 946# SPI Protocol Masters
947# 947#
948# CONFIG_SPI_AT25 is not set 948# CONFIG_EEPROM_AT25 is not set
949# CONFIG_SPI_SPIDEV is not set 949# CONFIG_SPI_SPIDEV is not set
950# CONFIG_SPI_TLE62X0 is not set 950# CONFIG_SPI_TLE62X0 is not set
951CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 951CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 9cb8c8b956e4..5e3cd49a2e9c 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
@@ -730,8 +730,8 @@ CONFIG_I2C_MPC=y
730# Miscellaneous I2C Chip support 730# Miscellaneous I2C Chip support
731# 731#
732# CONFIG_DS1682 is not set 732# CONFIG_DS1682 is not set
733# CONFIG_AT24 is not set 733# CONFIG_EEPROM_AT24 is not set
734# CONFIG_SENSORS_EEPROM is not set 734# CONFIG_EEPROM_LEGACY is not set
735# CONFIG_SENSORS_PCF8574 is not set 735# CONFIG_SENSORS_PCF8574 is not set
736# CONFIG_PCF8575 is not set 736# CONFIG_PCF8575 is not set
737# CONFIG_SENSORS_PCA9539 is not set 737# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 9cc976f010c9..90c482606880 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
@@ -745,8 +745,8 @@ CONFIG_I2C_MPC=y
745# Miscellaneous I2C Chip support 745# Miscellaneous I2C Chip support
746# 746#
747# CONFIG_DS1682 is not set 747# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 748# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 751# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 752# CONFIG_SENSORS_PCA9539 is not set
@@ -770,7 +770,7 @@ CONFIG_SPI_MPC83xx=y
770# 770#
771# SPI Protocol Masters 771# SPI Protocol Masters
772# 772#
773# CONFIG_SPI_AT25 is not set 773# CONFIG_EEPROM_AT25 is not set
774# CONFIG_SPI_SPIDEV is not set 774# CONFIG_SPI_SPIDEV is not set
775# CONFIG_SPI_TLE62X0 is not set 775# CONFIG_SPI_TLE62X0 is not set
776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 776CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 07a674f5344e..42b7f3403fb0 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
@@ -898,8 +898,8 @@ CONFIG_I2C_MPC=y
898# Miscellaneous I2C Chip support 898# Miscellaneous I2C Chip support
899# 899#
900# CONFIG_DS1682 is not set 900# CONFIG_DS1682 is not set
901# CONFIG_AT24 is not set 901# CONFIG_EEPROM_AT24 is not set
902# CONFIG_SENSORS_EEPROM is not set 902# CONFIG_EEPROM_LEGACY is not set
903CONFIG_SENSORS_PCF8574=y 903CONFIG_SENSORS_PCF8574=y
904# CONFIG_PCF8575 is not set 904# CONFIG_PCF8575 is not set
905# CONFIG_SENSORS_PCA9539 is not set 905# CONFIG_SENSORS_PCA9539 is not set
@@ -923,7 +923,7 @@ CONFIG_SPI_MPC83xx=y
923# 923#
924# SPI Protocol Masters 924# SPI Protocol Masters
925# 925#
926# CONFIG_SPI_AT25 is not set 926# CONFIG_EEPROM_AT25 is not set
927# CONFIG_SPI_SPIDEV is not set 927# CONFIG_SPI_SPIDEV is not set
928# CONFIG_SPI_TLE62X0 is not set 928# CONFIG_SPI_TLE62X0 is not set
929CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 929CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 426232cb0097..17c903b36576 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
@@ -778,8 +778,8 @@ CONFIG_I2C_MPC=y
778# Miscellaneous I2C Chip support 778# Miscellaneous I2C Chip support
779# 779#
780# CONFIG_DS1682 is not set 780# CONFIG_DS1682 is not set
781# CONFIG_AT24 is not set 781# CONFIG_EEPROM_AT24 is not set
782# CONFIG_SENSORS_EEPROM is not set 782# CONFIG_EEPROM_LEGACY is not set
783CONFIG_SENSORS_PCF8574=y 783CONFIG_SENSORS_PCF8574=y
784# CONFIG_PCF8575 is not set 784# CONFIG_PCF8575 is not set
785# CONFIG_SENSORS_PCA9539 is not set 785# CONFIG_SENSORS_PCA9539 is not set
@@ -803,7 +803,7 @@ CONFIG_SPI_MPC83xx=y
803# 803#
804# SPI Protocol Masters 804# SPI Protocol Masters
805# 805#
806# CONFIG_SPI_AT25 is not set 806# CONFIG_EEPROM_AT25 is not set
807# CONFIG_SPI_SPIDEV is not set 807# CONFIG_SPI_SPIDEV is not set
808# CONFIG_SPI_TLE62X0 is not set 808# CONFIG_SPI_TLE62X0 is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 36e2e93a1c53..728fc95d5870 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
@@ -673,8 +673,8 @@ CONFIG_I2C_MPC=y
673# Miscellaneous I2C Chip support 673# Miscellaneous I2C Chip support
674# 674#
675# CONFIG_DS1682 is not set 675# CONFIG_DS1682 is not set
676# CONFIG_AT24 is not set 676# CONFIG_EEPROM_AT24 is not set
677# CONFIG_SENSORS_EEPROM is not set 677# CONFIG_EEPROM_LEGACY is not set
678# CONFIG_SENSORS_PCF8574 is not set 678# CONFIG_SENSORS_PCF8574 is not set
679# CONFIG_PCF8575 is not set 679# CONFIG_PCF8575 is not set
680# CONFIG_SENSORS_PCA9539 is not set 680# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 80eb6c9a05c4..f7546e7cb762 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
@@ -805,8 +805,8 @@ CONFIG_I2C_MPC=y
805# Miscellaneous I2C Chip support 805# Miscellaneous I2C Chip support
806# 806#
807# CONFIG_DS1682 is not set 807# CONFIG_DS1682 is not set
808# CONFIG_AT24 is not set 808# CONFIG_EEPROM_AT24 is not set
809# CONFIG_SENSORS_EEPROM is not set 809# CONFIG_EEPROM_LEGACY is not set
810# CONFIG_SENSORS_PCF8574 is not set 810# CONFIG_SENSORS_PCF8574 is not set
811# CONFIG_PCF8575 is not set 811# CONFIG_PCF8575 is not set
812# CONFIG_SENSORS_PCA9539 is not set 812# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index b9b236806e9f..b94972f52241 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
@@ -723,8 +723,8 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 723# Miscellaneous I2C Chip support
724# 724#
725# CONFIG_DS1682 is not set 725# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 726# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 727# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 728# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 729# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 730# CONFIG_SENSORS_PCA9539 is not set
@@ -749,7 +749,7 @@ CONFIG_SPI_MPC83xx=y
749# 749#
750# SPI Protocol Masters 750# SPI Protocol Masters
751# 751#
752# CONFIG_SPI_AT25 is not set 752# CONFIG_EEPROM_AT25 is not set
753CONFIG_SPI_SPIDEV=y 753CONFIG_SPI_SPIDEV=y
754# CONFIG_SPI_TLE62X0 is not set 754# CONFIG_SPI_TLE62X0 is not set
755CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 755CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f6350d7e1688..ad97649bdc73 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
@@ -787,8 +787,8 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 787# Miscellaneous I2C Chip support
788# 788#
789# CONFIG_DS1682 is not set 789# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 790# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 791# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 792# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 793# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 794# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index f447de16f75d..2e526beeeb90 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
@@ -789,8 +789,8 @@ CONFIG_I2C_MPC=y
789# Miscellaneous I2C Chip support 789# Miscellaneous I2C Chip support
790# 790#
791# CONFIG_DS1682 is not set 791# CONFIG_DS1682 is not set
792# CONFIG_AT24 is not set 792# CONFIG_EEPROM_AT24 is not set
793# CONFIG_SENSORS_EEPROM is not set 793# CONFIG_EEPROM_LEGACY is not set
794# CONFIG_SENSORS_PCF8574 is not set 794# CONFIG_SENSORS_PCF8574 is not set
795# CONFIG_PCF8575 is not set 795# CONFIG_PCF8575 is not set
796# CONFIG_SENSORS_PCA9539 is not set 796# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 8d2d7eeab5f5..54bb24a5e02a 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_defconfig
@@ -640,8 +640,8 @@ CONFIG_I2C_MPC=y
640# Miscellaneous I2C Chip support 640# Miscellaneous I2C Chip support
641# 641#
642# CONFIG_DS1682 is not set 642# CONFIG_DS1682 is not set
643# CONFIG_AT24 is not set 643# CONFIG_EEPROM_AT24 is not set
644# CONFIG_SENSORS_EEPROM is not set 644# CONFIG_EEPROM_LEGACY is not set
645# CONFIG_SENSORS_PCF8574 is not set 645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_PCF8575 is not set 646# CONFIG_PCF8575 is not set
647# CONFIG_SENSORS_PCA9539 is not set 647# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index e243e14a6708..256055cb6d2f 100644
--- a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
@@ -849,8 +849,8 @@ CONFIG_I2C_MPC=y
849# Miscellaneous I2C Chip support 849# Miscellaneous I2C Chip support
850# 850#
851# CONFIG_DS1682 is not set 851# CONFIG_DS1682 is not set
852# CONFIG_AT24 is not set 852# CONFIG_EEPROM_AT24 is not set
853CONFIG_SENSORS_EEPROM=y 853CONFIG_EEPROM_LEGACY=y
854# CONFIG_SENSORS_PCF8574 is not set 854# CONFIG_SENSORS_PCF8574 is not set
855# CONFIG_PCF8575 is not set 855# CONFIG_PCF8575 is not set
856# CONFIG_SENSORS_PCA9539 is not set 856# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index f6cb01495ea6..5ac7e51e9f14 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
@@ -848,8 +848,8 @@ CONFIG_I2C_MPC=y
848# Miscellaneous I2C Chip support 848# Miscellaneous I2C Chip support
849# 849#
850# CONFIG_DS1682 is not set 850# CONFIG_DS1682 is not set
851# CONFIG_AT24 is not set 851# CONFIG_EEPROM_AT24 is not set
852CONFIG_SENSORS_EEPROM=y 852CONFIG_EEPROM_LEGACY=y
853# CONFIG_SENSORS_PCF8574 is not set 853# CONFIG_SENSORS_PCF8574 is not set
854# CONFIG_PCF8575 is not set 854# CONFIG_PCF8575 is not set
855# CONFIG_SENSORS_PCA9539 is not set 855# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 597be8491812..ab5b0b58924c 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
@@ -723,8 +723,8 @@ CONFIG_I2C_MPC=y
723# Miscellaneous I2C Chip support 723# Miscellaneous I2C Chip support
724# 724#
725# CONFIG_DS1682 is not set 725# CONFIG_DS1682 is not set
726# CONFIG_AT24 is not set 726# CONFIG_EEPROM_AT24 is not set
727# CONFIG_SENSORS_EEPROM is not set 727# CONFIG_EEPROM_LEGACY is not set
728# CONFIG_SENSORS_PCF8574 is not set 728# CONFIG_SENSORS_PCF8574 is not set
729# CONFIG_PCF8575 is not set 729# CONFIG_PCF8575 is not set
730# CONFIG_SENSORS_PCA9539 is not set 730# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 32aeb79216f7..65ef823e08c6 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
@@ -861,8 +861,8 @@ CONFIG_I2C_MPC=y
861# Miscellaneous I2C Chip support 861# Miscellaneous I2C Chip support
862# 862#
863# CONFIG_DS1682 is not set 863# CONFIG_DS1682 is not set
864# CONFIG_AT24 is not set 864# CONFIG_EEPROM_AT24 is not set
865CONFIG_SENSORS_EEPROM=y 865CONFIG_EEPROM_LEGACY=y
866# CONFIG_SENSORS_PCF8574 is not set 866# CONFIG_SENSORS_PCF8574 is not set
867# CONFIG_PCF8575 is not set 867# CONFIG_PCF8575 is not set
868# CONFIG_SENSORS_PCA9539 is not set 868# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 5a0cf58d2b8c..f1288a0c3040 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig
@@ -877,8 +877,8 @@ CONFIG_I2C_HELPER_AUTO=y
877# Miscellaneous I2C Chip support 877# Miscellaneous I2C Chip support
878# 878#
879# CONFIG_DS1682 is not set 879# CONFIG_DS1682 is not set
880# CONFIG_AT24 is not set 880# CONFIG_EEPROM_AT24 is not set
881# CONFIG_SENSORS_EEPROM is not set 881# CONFIG_EEPROM_LEGACY is not set
882# CONFIG_SENSORS_PCF8574 is not set 882# CONFIG_SENSORS_PCF8574 is not set
883# CONFIG_PCF8575 is not set 883# CONFIG_PCF8575 is not set
884# CONFIG_SENSORS_PCA9539 is not set 884# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index f3e4f3481fda..b3b1de6a6a85 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_defconfig
@@ -787,8 +787,8 @@ CONFIG_I2C_MPC=y
787# Miscellaneous I2C Chip support 787# Miscellaneous I2C Chip support
788# 788#
789# CONFIG_DS1682 is not set 789# CONFIG_DS1682 is not set
790# CONFIG_AT24 is not set 790# CONFIG_EEPROM_AT24 is not set
791# CONFIG_SENSORS_EEPROM is not set 791# CONFIG_EEPROM_LEGACY is not set
792# CONFIG_SENSORS_PCF8574 is not set 792# CONFIG_SENSORS_PCF8574 is not set
793# CONFIG_PCF8575 is not set 793# CONFIG_PCF8575 is not set
794# CONFIG_SENSORS_PCA9539 is not set 794# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index c62489394535..a92a639cdf8a 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_defconfig
@@ -796,8 +796,8 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 800# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index eef45b97dc3e..397d37fbe7e3 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_defconfig
@@ -806,8 +806,8 @@ CONFIG_I2C_MPC=y
806# Miscellaneous I2C Chip support 806# Miscellaneous I2C Chip support
807# 807#
808# CONFIG_DS1682 is not set 808# CONFIG_DS1682 is not set
809# CONFIG_AT24 is not set 809# CONFIG_EEPROM_AT24 is not set
810# CONFIG_SENSORS_EEPROM is not set 810# CONFIG_EEPROM_LEGACY is not set
811# CONFIG_SENSORS_PCF8574 is not set 811# CONFIG_SENSORS_PCF8574 is not set
812# CONFIG_PCF8575 is not set 812# CONFIG_PCF8575 is not set
813# CONFIG_SENSORS_PCA9539 is not set 813# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index 11b637e99a54..856ca6ab37b7 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_defconfig
@@ -796,8 +796,8 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 800# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 2519169b6d4b..56ed4213609c 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_defconfig
@@ -796,8 +796,8 @@ CONFIG_I2C_MPC=y
796# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
797# 797#
798# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set 799# CONFIG_EEPROM_AT24 is not set
800# CONFIG_SENSORS_EEPROM is not set 800# CONFIG_EEPROM_LEGACY is not set
801# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
802# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 391874c7b436..840b09a07282 100644
--- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
@@ -1081,8 +1081,8 @@ CONFIG_I2C_MPC=y
1081# Miscellaneous I2C Chip support 1081# Miscellaneous I2C Chip support
1082# 1082#
1083CONFIG_DS1682=y 1083CONFIG_DS1682=y
1084# CONFIG_AT24 is not set 1084# CONFIG_EEPROM_AT24 is not set
1085# CONFIG_SENSORS_EEPROM is not set 1085# CONFIG_EEPROM_LEGACY is not set
1086# CONFIG_SENSORS_PCF8574 is not set 1086# CONFIG_SENSORS_PCF8574 is not set
1087# CONFIG_PCF8575 is not set 1087# CONFIG_PCF8575 is not set
1088# CONFIG_SENSORS_PCA9539 is not set 1088# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index 72854a10dfa1..25bf4e95acb8 100644
--- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
@@ -905,8 +905,8 @@ CONFIG_I2C_MPC=y
905# Miscellaneous I2C Chip support 905# Miscellaneous I2C Chip support
906# 906#
907# CONFIG_DS1682 is not set 907# CONFIG_DS1682 is not set
908# CONFIG_AT24 is not set 908# CONFIG_EEPROM_AT24 is not set
909# CONFIG_SENSORS_EEPROM is not set 909# CONFIG_EEPROM_LEGACY is not set
910# CONFIG_SENSORS_PCF8574 is not set 910# CONFIG_SENSORS_PCF8574 is not set
911# CONFIG_PCF8575 is not set 911# CONFIG_PCF8575 is not set
912# CONFIG_SENSORS_PCA9539 is not set 912# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 41220ece603d..8e0f0e5180a4 100644
--- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
@@ -851,8 +851,8 @@ CONFIG_I2C_MPC=y
851# Miscellaneous I2C Chip support 851# Miscellaneous I2C Chip support
852# 852#
853# CONFIG_DS1682 is not set 853# CONFIG_DS1682 is not set
854# CONFIG_AT24 is not set 854# CONFIG_EEPROM_AT24 is not set
855CONFIG_SENSORS_EEPROM=y 855CONFIG_EEPROM_LEGACY=y
856# CONFIG_SENSORS_PCF8574 is not set 856# CONFIG_SENSORS_PCF8574 is not set
857# CONFIG_PCF8575 is not set 857# CONFIG_PCF8575 is not set
858# CONFIG_SENSORS_PCA9539 is not set 858# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index a4342862f6ef..37d9f4ed80f5 100644
--- a/arch/powerpc/configs/86xx/sbc8641d_defconfig
+++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig
@@ -958,8 +958,8 @@ CONFIG_I2C_MPC=y
958# Miscellaneous I2C Chip support 958# Miscellaneous I2C Chip support
959# 959#
960# CONFIG_DS1682 is not set 960# CONFIG_DS1682 is not set
961# CONFIG_AT24 is not set 961# CONFIG_EEPROM_AT24 is not set
962# CONFIG_SENSORS_EEPROM is not set 962# CONFIG_EEPROM_LEGACY is not set
963# CONFIG_SENSORS_PCF8574 is not set 963# CONFIG_SENSORS_PCF8574 is not set
964# CONFIG_PCF8575 is not set 964# CONFIG_PCF8575 is not set
965# CONFIG_SENSORS_PCA9539 is not set 965# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 5078594cd1f5..74c6feabdd77 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_defconfig
@@ -1124,8 +1124,8 @@ CONFIG_I2C_MV64XXX=m
1124# Miscellaneous I2C Chip support 1124# Miscellaneous I2C Chip support
1125# 1125#
1126# CONFIG_DS1682 is not set 1126# CONFIG_DS1682 is not set
1127# CONFIG_AT24 is not set 1127# CONFIG_EEPROM_AT24 is not set
1128CONFIG_SENSORS_EEPROM=m 1128CONFIG_EEPROM_LEGACY=m
1129CONFIG_SENSORS_PCF8574=m 1129CONFIG_SENSORS_PCF8574=m
1130# CONFIG_PCF8575 is not set 1130# CONFIG_PCF8575 is not set
1131# CONFIG_SENSORS_PCA9539 is not set 1131# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index c420e47426f8..c6d2baa7aaeb 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1012,7 +1012,7 @@ CONFIG_I2C_ALGOBIT=y
1012# Miscellaneous I2C Chip support 1012# Miscellaneous I2C Chip support
1013# 1013#
1014# CONFIG_DS1682 is not set 1014# CONFIG_DS1682 is not set
1015# CONFIG_SENSORS_EEPROM is not set 1015# CONFIG_EEPROM_LEGACY is not set
1016# CONFIG_SENSORS_PCF8574 is not set 1016# CONFIG_SENSORS_PCF8574 is not set
1017# CONFIG_PCF8575 is not set 1017# CONFIG_PCF8575 is not set
1018# CONFIG_SENSORS_PCF8591 is not set 1018# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig
index 9ba3c6fc2fef..d2123779512a 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -834,7 +834,7 @@ CONFIG_I2C_ALGOBIT=y
834# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
835# 835#
836# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
837# CONFIG_SENSORS_EEPROM is not set 837# CONFIG_EEPROM_LEGACY is not set
838# CONFIG_SENSORS_PCF8574 is not set 838# CONFIG_SENSORS_PCF8574 is not set
839# CONFIG_PCF8575 is not set 839# CONFIG_PCF8575 is not set
840# CONFIG_SENSORS_PCF8591 is not set 840# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 63b3c2372ce8..5094a65a4493 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -941,8 +941,8 @@ CONFIG_I2C_ALGOBIT=y
941# Miscellaneous I2C Chip support 941# Miscellaneous I2C Chip support
942# 942#
943# CONFIG_DS1682 is not set 943# CONFIG_DS1682 is not set
944# CONFIG_AT24 is not set 944# CONFIG_EEPROM_AT24 is not set
945# CONFIG_SENSORS_EEPROM is not set 945# CONFIG_EEPROM_LEGACY is not set
946# CONFIG_SENSORS_PCF8574 is not set 946# CONFIG_SENSORS_PCF8574 is not set
947# CONFIG_PCF8575 is not set 947# CONFIG_PCF8575 is not set
948# CONFIG_SENSORS_PCA9539 is not set 948# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index f85e71ccb989..fc905924c022 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -994,8 +994,8 @@ CONFIG_I2C_POWERMAC=y
994# Miscellaneous I2C Chip support 994# Miscellaneous I2C Chip support
995# 995#
996# CONFIG_DS1682 is not set 996# CONFIG_DS1682 is not set
997# CONFIG_AT24 is not set 997# CONFIG_EEPROM_AT24 is not set
998# CONFIG_SENSORS_EEPROM is not set 998# CONFIG_EEPROM_LEGACY is not set
999# CONFIG_SENSORS_PCF8574 is not set 999# CONFIG_SENSORS_PCF8574 is not set
1000# CONFIG_PCF8575 is not set 1000# CONFIG_PCF8575 is not set
1001# CONFIG_SENSORS_PCA9539 is not set 1001# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 54fa62481373..3a0ffd73b65c 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_defconfig
@@ -1015,8 +1015,8 @@ CONFIG_I2C_MPC=y
1015# Miscellaneous I2C Chip support 1015# Miscellaneous I2C Chip support
1016# 1016#
1017# CONFIG_DS1682 is not set 1017# CONFIG_DS1682 is not set
1018# CONFIG_AT24 is not set 1018# CONFIG_EEPROM_AT24 is not set
1019CONFIG_SENSORS_EEPROM=m 1019CONFIG_EEPROM_LEGACY=m
1020# CONFIG_SENSORS_PCF8574 is not set 1020# CONFIG_SENSORS_PCF8574 is not set
1021# CONFIG_PCF8575 is not set 1021# CONFIG_PCF8575 is not set
1022# CONFIG_SENSORS_PCA9539 is not set 1022# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 045f1b008ce5..8b244003b9e1 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -866,8 +866,8 @@ CONFIG_I2C_AMD8111=y
866# Miscellaneous I2C Chip support 866# Miscellaneous I2C Chip support
867# 867#
868# CONFIG_DS1682 is not set 868# CONFIG_DS1682 is not set
869# CONFIG_AT24 is not set 869# CONFIG_EEPROM_AT24 is not set
870# CONFIG_SENSORS_EEPROM is not set 870# CONFIG_EEPROM_LEGACY is not set
871# CONFIG_SENSORS_PCF8574 is not set 871# CONFIG_SENSORS_PCF8574 is not set
872# CONFIG_PCF8575 is not set 872# CONFIG_PCF8575 is not set
873# CONFIG_SENSORS_PCA9539 is not set 873# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 15c5604d0b26..5ff3de205d6a 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -844,8 +844,8 @@ CONFIG_I2C_MPC=y
844# Miscellaneous I2C Chip support 844# Miscellaneous I2C Chip support
845# 845#
846# CONFIG_DS1682 is not set 846# CONFIG_DS1682 is not set
847# CONFIG_AT24 is not set 847# CONFIG_EEPROM_AT24 is not set
848# CONFIG_SENSORS_EEPROM is not set 848# CONFIG_EEPROM_LEGACY is not set
849# CONFIG_SENSORS_PCF8574 is not set 849# CONFIG_SENSORS_PCF8574 is not set
850# CONFIG_PCF8575 is not set 850# CONFIG_PCF8575 is not set
851# CONFIG_SENSORS_PCA9539 is not set 851# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index d582014b0a38..3e1272cfdd91 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_defconfig
@@ -902,8 +902,8 @@ CONFIG_I2C_MPC=y
902# Miscellaneous I2C Chip support 902# Miscellaneous I2C Chip support
903# 903#
904# CONFIG_DS1682 is not set 904# CONFIG_DS1682 is not set
905# CONFIG_AT24 is not set 905# CONFIG_EEPROM_AT24 is not set
906# CONFIG_SENSORS_EEPROM is not set 906# CONFIG_EEPROM_LEGACY is not set
907# CONFIG_SENSORS_PCF8574 is not set 907# CONFIG_SENSORS_PCF8574 is not set
908# CONFIG_PCF8575 is not set 908# CONFIG_PCF8575 is not set
909# CONFIG_SENSORS_PCA9539 is not set 909# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index c87b53abc617..55e5ebd91cd0 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -860,8 +860,8 @@ CONFIG_I2C_MPC=y
860# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
861# 861#
862# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set 863# CONFIG_EEPROM_AT24 is not set
864CONFIG_SENSORS_EEPROM=y 864CONFIG_EEPROM_LEGACY=y
865# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set 866# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 1736bbc281ec..21e0ccbd3f5c 100644
--- a/arch/powerpc/configs/mpc86xx_defconfig
+++ b/arch/powerpc/configs/mpc86xx_defconfig
@@ -852,8 +852,8 @@ CONFIG_I2C_MPC=y
852# Miscellaneous I2C Chip support 852# Miscellaneous I2C Chip support
853# 853#
854# CONFIG_DS1682 is not set 854# CONFIG_DS1682 is not set
855# CONFIG_AT24 is not set 855# CONFIG_EEPROM_AT24 is not set
856CONFIG_SENSORS_EEPROM=y 856CONFIG_EEPROM_LEGACY=y
857# CONFIG_SENSORS_PCF8574 is not set 857# CONFIG_SENSORS_PCF8574 is not set
858# CONFIG_PCF8575 is not set 858# CONFIG_PCF8575 is not set
859# CONFIG_SENSORS_PCA9539 is not set 859# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 199e5f59d7a6..4f8681cc8d77 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -984,7 +984,7 @@ CONFIG_I2C_PASEMI=y
984# Miscellaneous I2C Chip support 984# Miscellaneous I2C Chip support
985# 985#
986# CONFIG_DS1682 is not set 986# CONFIG_DS1682 is not set
987CONFIG_SENSORS_EEPROM=y 987CONFIG_EEPROM_LEGACY=y
988# CONFIG_SENSORS_PCF8574 is not set 988# CONFIG_SENSORS_PCF8574 is not set
989# CONFIG_PCF8575 is not set 989# CONFIG_PCF8575 is not set
990# CONFIG_SENSORS_PCF8591 is not set 990# CONFIG_SENSORS_PCF8591 is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index de9b121820a6..5339bb44cce9 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -1232,8 +1232,8 @@ CONFIG_I2C_POWERMAC=y
1232# Miscellaneous I2C Chip support 1232# Miscellaneous I2C Chip support
1233# 1233#
1234# CONFIG_DS1682 is not set 1234# CONFIG_DS1682 is not set
1235# CONFIG_AT24 is not set 1235# CONFIG_EEPROM_AT24 is not set
1236# CONFIG_SENSORS_EEPROM is not set 1236# CONFIG_EEPROM_LEGACY is not set
1237# CONFIG_SENSORS_PCF8574 is not set 1237# CONFIG_SENSORS_PCF8574 is not set
1238# CONFIG_PCF8575 is not set 1238# CONFIG_PCF8575 is not set
1239# CONFIG_SENSORS_PCA9539 is not set 1239# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
index 4256e2c4534b..2d72ee7a8d60 100644
--- a/arch/powerpc/configs/ppc40x_defconfig
+++ b/arch/powerpc/configs/ppc40x_defconfig
@@ -745,8 +745,8 @@ CONFIG_I2C_IBM_IIC=m
745# Miscellaneous I2C Chip support 745# Miscellaneous I2C Chip support
746# 746#
747# CONFIG_DS1682 is not set 747# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set 748# CONFIG_EEPROM_AT24 is not set
749# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_EEPROM_LEGACY is not set
750# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
751# CONFIG_PCF8575 is not set 751# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set 752# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 034a1fbdc887..358b85f9270e 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_defconfig
@@ -794,8 +794,8 @@ CONFIG_I2C_IBM_IIC=m
794# Miscellaneous I2C Chip support 794# Miscellaneous I2C Chip support
795# 795#
796# CONFIG_DS1682 is not set 796# CONFIG_DS1682 is not set
797# CONFIG_AT24 is not set 797# CONFIG_EEPROM_AT24 is not set
798# CONFIG_SENSORS_EEPROM is not set 798# CONFIG_EEPROM_LEGACY is not set
799# CONFIG_SENSORS_PCF8574 is not set 799# CONFIG_SENSORS_PCF8574 is not set
800# CONFIG_PCF8575 is not set 800# CONFIG_PCF8575 is not set
801# CONFIG_SENSORS_PCA9539 is not set 801# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index d4685d1c0be8..88c6295b76c1 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1261,8 +1261,8 @@ CONFIG_I2C_PASEMI=y
1261# Miscellaneous I2C Chip support 1261# Miscellaneous I2C Chip support
1262# 1262#
1263# CONFIG_DS1682 is not set 1263# CONFIG_DS1682 is not set
1264# CONFIG_AT24 is not set 1264# CONFIG_EEPROM_AT24 is not set
1265# CONFIG_SENSORS_EEPROM is not set 1265# CONFIG_EEPROM_LEGACY is not set
1266# CONFIG_SENSORS_PCF8574 is not set 1266# CONFIG_SENSORS_PCF8574 is not set
1267# CONFIG_PCF8575 is not set 1267# CONFIG_PCF8575 is not set
1268# CONFIG_SENSORS_PCA9539 is not set 1268# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 01f05ec5abf3..7d044dfd9236 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1801,8 +1801,8 @@ CONFIG_I2C_STUB=m
1801# Miscellaneous I2C Chip support 1801# Miscellaneous I2C Chip support
1802# 1802#
1803# CONFIG_DS1682 is not set 1803# CONFIG_DS1682 is not set
1804CONFIG_AT24=m 1804CONFIG_EEPROM_AT24=m
1805CONFIG_SENSORS_EEPROM=m 1805CONFIG_EEPROM_LEGACY=m
1806CONFIG_SENSORS_PCF8574=m 1806CONFIG_SENSORS_PCF8574=m
1807CONFIG_PCF8575=m 1807CONFIG_PCF8575=m
1808CONFIG_SENSORS_PCA9539=m 1808CONFIG_SENSORS_PCA9539=m
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 6046dc0cbd82..a257da608081 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_defconfig
@@ -943,8 +943,8 @@ CONFIG_I2C_MV64XXX=y
943# Miscellaneous I2C Chip support 943# Miscellaneous I2C Chip support
944# 944#
945# CONFIG_DS1682 is not set 945# CONFIG_DS1682 is not set
946# CONFIG_AT24 is not set 946# CONFIG_EEPROM_AT24 is not set
947# CONFIG_SENSORS_EEPROM is not set 947# CONFIG_EEPROM_LEGACY is not set
948# CONFIG_SENSORS_PCF8574 is not set 948# CONFIG_SENSORS_PCF8574 is not set
949# CONFIG_PCF8575 is not set 949# CONFIG_PCF8575 is not set
950# CONFIG_SENSORS_PCA9539 is not set 950# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 1e520ab65118..61b100849715 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1055,8 +1055,8 @@ CONFIG_I2C_ALGOBIT=y
1055# Miscellaneous I2C Chip support 1055# Miscellaneous I2C Chip support
1056# 1056#
1057# CONFIG_DS1682 is not set 1057# CONFIG_DS1682 is not set
1058# CONFIG_AT24 is not set 1058# CONFIG_EEPROM_AT24 is not set
1059# CONFIG_SENSORS_EEPROM is not set 1059# CONFIG_EEPROM_LEGACY is not set
1060# CONFIG_SENSORS_PCF8574 is not set 1060# CONFIG_SENSORS_PCF8574 is not set
1061# CONFIG_PCF8575 is not set 1061# CONFIG_PCF8575 is not set
1062# CONFIG_SENSORS_PCA9539 is not set 1062# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index b3f5671972a9..7eb16ab7b71b 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_defconfig
@@ -795,8 +795,8 @@ CONFIG_I2C_MPC=y
795# Miscellaneous I2C Chip support 795# Miscellaneous I2C Chip support
796# 796#
797# CONFIG_DS1682 is not set 797# CONFIG_DS1682 is not set
798# CONFIG_AT24 is not set 798# CONFIG_EEPROM_AT24 is not set
799# CONFIG_SENSORS_EEPROM is not set 799# CONFIG_EEPROM_LEGACY is not set
800# CONFIG_SENSORS_PCF8574 is not set 800# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 801# CONFIG_PCF8575 is not set
802# CONFIG_SENSORS_PCA9539 is not set 802# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
index d480f39d65e6..74d0bbb7d955 100644
--- a/arch/s390/include/asm/elf.h
+++ b/arch/s390/include/asm/elf.h
@@ -172,14 +172,14 @@ extern char elf_platform[];
172#ifndef __s390x__ 172#ifndef __s390x__
173#define SET_PERSONALITY(ex) set_personality(PER_LINUX) 173#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
174#else /* __s390x__ */ 174#else /* __s390x__ */
175#define SET_PERSONALITY(ex) \ 175#define SET_PERSONALITY(ex) \
176do { \ 176do { \
177 if (current->personality != PER_LINUX32) \ 177 if (personality(current->personality) != PER_LINUX32) \
178 set_personality(PER_LINUX); \ 178 set_personality(PER_LINUX); \
179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ 179 if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
180 set_thread_flag(TIF_31BIT); \ 180 set_thread_flag(TIF_31BIT); \
181 else \ 181 else \
182 clear_thread_flag(TIF_31BIT); \ 182 clear_thread_flag(TIF_31BIT); \
183} while (0) 183} while (0)
184#endif /* __s390x__ */ 184#endif /* __s390x__ */
185 185
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 6035cd20c7a7..62c706eb0de6 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1767,3 +1767,41 @@ sys_dup3_wrapper:
1767sys_epoll_create1_wrapper: 1767sys_epoll_create1_wrapper:
1768 lgfr %r2,%r2 # int 1768 lgfr %r2,%r2 # int
1769 jg sys_epoll_create1 # branch to system call 1769 jg sys_epoll_create1 # branch to system call
1770
1771 .globl sys32_readahead_wrapper
1772sys32_readahead_wrapper:
1773 lgfr %r2,%r2 # int
1774 llgfr %r3,%r3 # u32
1775 llgfr %r4,%r4 # u32
1776 lgfr %r5,%r5 # s32
1777 jg sys32_readahead # branch to system call
1778
1779 .globl sys32_sendfile64_wrapper
1780sys32_sendfile64_wrapper:
1781 lgfr %r2,%r2 # int
1782 lgfr %r3,%r3 # int
1783 llgtr %r4,%r4 # compat_loff_t *
1784 lgfr %r5,%r5 # s32
1785 jg sys32_sendfile64 # branch to system call
1786
1787 .globl sys_tkill_wrapper
1788sys_tkill_wrapper:
1789 lgfr %r2,%r2 # pid_t
1790 lgfr %r3,%r3 # int
1791 jg sys_tkill # branch to system call
1792
1793 .globl sys_tgkill_wrapper
1794sys_tgkill_wrapper:
1795 lgfr %r2,%r2 # pid_t
1796 lgfr %r3,%r3 # pid_t
1797 lgfr %r4,%r4 # int
1798 jg sys_tgkill # branch to system call
1799
1800 .globl compat_sys_keyctl_wrapper
1801compat_sys_keyctl_wrapper:
1802 llgfr %r2,%r2 # u32
1803 llgfr %r3,%r3 # u32
1804 llgfr %r4,%r4 # u32
1805 llgfr %r5,%r5 # u32
1806 llgfr %r6,%r6 # u32
1807 jg compat_sys_keyctl # branch to system call
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 76d16e0140bb..fe5b25a988ab 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -194,7 +194,7 @@ SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* old chown16 syscall
194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) 194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) 195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ 196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */
197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack) 197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack_wrapper)
198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper) 198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper)
199NI_SYSCALL /* streams1 */ 199NI_SYSCALL /* streams1 */
200NI_SYSCALL /* streams2 */ 200NI_SYSCALL /* streams2 */
@@ -230,8 +230,8 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper) 230SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */ 231SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper) /* 220 */
232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper) 232SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
233SYSCALL(sys_readahead,sys_readahead,sys32_readahead) 233SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64) 234SYSCALL(sys_sendfile64,sys_ni_syscall,sys32_sendfile64_wrapper)
235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper) 235SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */ 236SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper) /* 225 */
237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper) 237SYSCALL(sys_fsetxattr,sys_fsetxattr,sys32_fsetxattr_wrapper)
@@ -245,11 +245,11 @@ SYSCALL(sys_removexattr,sys_removexattr,sys32_removexattr_wrapper)
245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper) 245SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper)
246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */ 246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */
247SYSCALL(sys_gettid,sys_gettid,sys_gettid) 247SYSCALL(sys_gettid,sys_gettid,sys_gettid)
248SYSCALL(sys_tkill,sys_tkill,sys_tkill) 248SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper)
249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper) 249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper)
250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper) 250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper)
251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */ 251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */
252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill) 252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper)
253NI_SYSCALL /* reserved for TUX */ 253NI_SYSCALL /* reserved for TUX */
254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper) 254SYSCALL(sys_io_setup,sys_io_setup,sys32_io_setup_wrapper)
255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper) 255SYSCALL(sys_io_destroy,sys_io_destroy,sys32_io_destroy_wrapper)
@@ -288,7 +288,7 @@ SYSCALL(sys_mq_getsetattr,sys_mq_getsetattr,compat_sys_mq_getsetattr_wrapper)
288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper) 288SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper)
289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper) 289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper)
290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper) 290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper)
291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl) /* 280 */ 291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */
292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper) 292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper)
293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper) 293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper)
294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper) 294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper)
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index d649600df5b9..fc468cae4460 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -399,8 +399,10 @@ static struct workqueue_struct *time_sync_wq;
399 399
400static void __init time_init_wq(void) 400static void __init time_init_wq(void)
401{ 401{
402 if (!time_sync_wq) 402 if (time_sync_wq)
403 time_sync_wq = create_singlethread_workqueue("timesync"); 403 return;
404 time_sync_wq = create_singlethread_workqueue("timesync");
405 stop_machine_create();
404} 406}
405 407
406/* 408/*
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index 2fb36e462194..ecf0304e61c1 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -516,8 +516,12 @@ EXPORT_SYMBOL(del_virt_timer);
516 */ 516 */
517void init_cpu_vtimer(void) 517void init_cpu_vtimer(void)
518{ 518{
519 struct thread_info *ti = current_thread_info();
519 struct vtimer_queue *vq; 520 struct vtimer_queue *vq;
520 521
522 S390_lowcore.user_timer = ti->user_timer;
523 S390_lowcore.system_timer = ti->system_timer;
524
521 /* kick the virtual timer */ 525 /* kick the virtual timer */
522 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock)); 526 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock));
523 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer)); 527 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer));
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index f32a5197128d..ebabe518e729 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -644,66 +644,25 @@ endmenu
644 644
645menu "Bus options" 645menu "Bus options"
646 646
647# Even on SuperH devices which don't have an ISA bus,
648# this variable helps the PCMCIA modules handle
649# IRQ requesting properly -- Greg Banks.
650#
651# Though we're generally not interested in it when
652# we're not using PCMCIA, so we make it dependent on
653# PCMCIA outright. -- PFM.
654config ISA
655 def_bool y
656 depends on PCMCIA && HD6446X_SERIES
657 help
658 Find out whether you have ISA slots on your motherboard. ISA is the
659 name of a bus system, i.e. the way the CPU talks to the other stuff
660 inside your box. Other bus systems are PCI, EISA, MicroChannel
661 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
662 newer boards don't support it. If you have ISA, say Y, otherwise N.
663
664config EISA
665 bool
666 ---help---
667 The Extended Industry Standard Architecture (EISA) bus was
668 developed as an open alternative to the IBM MicroChannel bus.
669
670 The EISA bus provided some of the features of the IBM MicroChannel
671 bus while maintaining backward compatibility with cards made for
672 the older ISA bus. The EISA bus saw limited use between 1988 and
673 1995 when it was made obsolete by the PCI bus.
674
675 Say Y here if you are building a kernel for an EISA-based machine.
676
677 Otherwise, say N.
678
679config MCA
680 bool
681 help
682 MicroChannel Architecture is found in some IBM PS/2 machines and
683 laptops. It is a bus system similar to PCI or ISA. See
684 <file:Documentation/mca.txt> (and especially the web page given
685 there) before attempting to build an MCA bus kernel.
686
687config SBUS
688 bool
689
690config SUPERHYWAY 647config SUPERHYWAY
691 tristate "SuperHyway Bus support" 648 tristate "SuperHyway Bus support"
692 depends on CPU_SUBTYPE_SH4_202 649 depends on CPU_SUBTYPE_SH4_202
693 650
694config MAPLE 651config MAPLE
695 bool "Maple Bus support" 652 bool "Maple Bus support"
696 depends on SH_DREAMCAST 653 depends on SH_DREAMCAST
697 help 654 help
698 The Maple Bus is SEGA's serial communication bus for peripherals 655 The Maple Bus is SEGA's serial communication bus for peripherals
699 on the Dreamcast. Without this bus support you won't be able to 656 on the Dreamcast. Without this bus support you won't be able to
700 get your Dreamcast keyboard etc to work, so most users 657 get your Dreamcast keyboard etc to work, so most users
701 probably want to say 'Y' here, unless you are only using the 658 probably want to say 'Y' here, unless you are only using the
702 Dreamcast with a serial line terminal or a remote network 659 Dreamcast with a serial line terminal or a remote network
703 connection. 660 connection.
704 661
705source "arch/sh/drivers/pci/Kconfig" 662source "arch/sh/drivers/pci/Kconfig"
706 663
664source "drivers/pci/pcie/Kconfig"
665
707source "drivers/pci/Kconfig" 666source "drivers/pci/Kconfig"
708 667
709source "drivers/pcmcia/Kconfig" 668source "drivers/pcmcia/Kconfig"
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 1c67cba6e34f..caf4c33f4e84 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -18,8 +18,10 @@
18#include <linux/mtd/sh_flctl.h> 18#include <linux/mtd/sh_flctl.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/smc911x.h> 21#include <linux/smsc911x.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23#include <linux/spi/spi.h>
24#include <linux/spi/spi_gpio.h>
23#include <media/soc_camera_platform.h> 25#include <media/soc_camera_platform.h>
24#include <media/sh_mobile_ceu.h> 26#include <media/sh_mobile_ceu.h>
25#include <video/sh_mobile_lcdc.h> 27#include <video/sh_mobile_lcdc.h>
@@ -27,12 +29,14 @@
27#include <asm/clock.h> 29#include <asm/clock.h>
28#include <cpu/sh7723.h> 30#include <cpu/sh7723.h>
29 31
30static struct smc911x_platdata smc911x_info = { 32static struct smsc911x_platform_config smsc911x_config = {
31 .flags = SMC911X_USE_32BIT, 33 .phy_interface = PHY_INTERFACE_MODE_MII,
32 .irq_flags = IRQF_TRIGGER_LOW, 34 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
35 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
36 .flags = SMSC911X_USE_32BIT,
33}; 37};
34 38
35static struct resource smc9118_resources[] = { 39static struct resource smsc9118_resources[] = {
36 [0] = { 40 [0] = {
37 .start = 0xb6080000, 41 .start = 0xb6080000,
38 .end = 0xb60fffff, 42 .end = 0xb60fffff,
@@ -45,13 +49,13 @@ static struct resource smc9118_resources[] = {
45 } 49 }
46}; 50};
47 51
48static struct platform_device smc9118_device = { 52static struct platform_device smsc9118_device = {
49 .name = "smc911x", 53 .name = "smsc911x",
50 .id = -1, 54 .id = -1,
51 .num_resources = ARRAY_SIZE(smc9118_resources), 55 .num_resources = ARRAY_SIZE(smsc9118_resources),
52 .resource = smc9118_resources, 56 .resource = smsc9118_resources,
53 .dev = { 57 .dev = {
54 .platform_data = &smc911x_info, 58 .platform_data = &smsc911x_config,
55 }, 59 },
56}; 60};
57 61
@@ -315,8 +319,22 @@ static struct platform_device ceu_device = {
315 }, 319 },
316}; 320};
317 321
322struct spi_gpio_platform_data sdcard_cn3_platform_data = {
323 .sck = GPIO_PTD0,
324 .mosi = GPIO_PTD1,
325 .miso = GPIO_PTD2,
326 .num_chipselect = 1,
327};
328
329static struct platform_device sdcard_cn3_device = {
330 .name = "spi_gpio",
331 .dev = {
332 .platform_data = &sdcard_cn3_platform_data,
333 },
334};
335
318static struct platform_device *ap325rxa_devices[] __initdata = { 336static struct platform_device *ap325rxa_devices[] __initdata = {
319 &smc9118_device, 337 &smsc9118_device,
320 &ap325rxa_nor_flash_device, 338 &ap325rxa_nor_flash_device,
321 &lcdc_device, 339 &lcdc_device,
322 &ceu_device, 340 &ceu_device,
@@ -324,6 +342,7 @@ static struct platform_device *ap325rxa_devices[] __initdata = {
324 &camera_device, 342 &camera_device,
325#endif 343#endif
326 &nand_flash_device, 344 &nand_flash_device,
345 &sdcard_cn3_device,
327}; 346};
328 347
329static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = { 348static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
@@ -332,6 +351,15 @@ static struct i2c_board_info __initdata ap325rxa_i2c_devices[] = {
332 }, 351 },
333}; 352};
334 353
354static struct spi_board_info ap325rxa_spi_devices[] = {
355 {
356 .modalias = "mmc_spi",
357 .max_speed_hz = 5000000,
358 .chip_select = 0,
359 .controller_data = (void *) GPIO_PTD5,
360 },
361};
362
335static int __init ap325rxa_devices_setup(void) 363static int __init ap325rxa_devices_setup(void)
336{ 364{
337 /* LD3 and LD4 LEDs */ 365 /* LD3 and LD4 LEDs */
@@ -429,6 +457,9 @@ static int __init ap325rxa_devices_setup(void)
429 i2c_register_board_info(0, ap325rxa_i2c_devices, 457 i2c_register_board_info(0, ap325rxa_i2c_devices,
430 ARRAY_SIZE(ap325rxa_i2c_devices)); 458 ARRAY_SIZE(ap325rxa_i2c_devices));
431 459
460 spi_register_board_info(ap325rxa_spi_devices,
461 ARRAY_SIZE(ap325rxa_spi_devices));
462
432 return platform_add_devices(ap325rxa_devices, 463 return platform_add_devices(ap325rxa_devices,
433 ARRAY_SIZE(ap325rxa_devices)); 464 ARRAY_SIZE(ap325rxa_devices));
434} 465}
diff --git a/arch/sh/boards/board-magicpanelr2.c b/arch/sh/boards/board-magicpanelr2.c
index 3de22ccdeb7e..0a37c8bfc959 100644
--- a/arch/sh/boards/board-magicpanelr2.c
+++ b/arch/sh/boards/board-magicpanelr2.c
@@ -14,6 +14,7 @@
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/gpio.h> 16#include <linux/gpio.h>
17#include <linux/smsc911x.h>
17#include <linux/mtd/mtd.h> 18#include <linux/mtd/mtd.h>
18#include <linux/mtd/partitions.h> 19#include <linux/mtd/partitions.h>
19#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
@@ -242,7 +243,7 @@ static void __init mpr2_setup(char **cmdline_p)
242 printk(KERN_WARNING "Ethernet not ready\n"); 243 printk(KERN_WARNING "Ethernet not ready\n");
243} 244}
244 245
245static struct resource smc911x_resources[] = { 246static struct resource smsc911x_resources[] = {
246 [0] = { 247 [0] = {
247 .start = 0xa8000000, 248 .start = 0xa8000000,
248 .end = 0xabffffff, 249 .end = 0xabffffff,
@@ -255,11 +256,21 @@ static struct resource smc911x_resources[] = {
255 }, 256 },
256}; 257};
257 258
258static struct platform_device smc911x_device = { 259static struct smsc911x_platform_config smsc911x_config = {
259 .name = "smc911x", 260 .phy_interface = PHY_INTERFACE_MODE_MII,
261 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
262 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
263 .flags = SMSC911X_USE_32BIT,
264};
265
266static struct platform_device smsc911x_device = {
267 .name = "smsc911x",
260 .id = -1, 268 .id = -1,
261 .num_resources = ARRAY_SIZE(smc911x_resources), 269 .num_resources = ARRAY_SIZE(smsc911x_resources),
262 .resource = smc911x_resources, 270 .resource = smsc911x_resources,
271 .dev = {
272 .platform_data = &smsc911x_config,
273 },
263}; 274};
264 275
265static struct resource heartbeat_resources[] = { 276static struct resource heartbeat_resources[] = {
@@ -360,7 +371,7 @@ static void __init set_mtd_partitions(void)
360 371
361static struct platform_device *mpr2_devices[] __initdata = { 372static struct platform_device *mpr2_devices[] __initdata = {
362 &heartbeat_device, 373 &heartbeat_device,
363 &smc911x_device, 374 &smsc911x_device,
364 &flash_device, 375 &flash_device,
365}; 376};
366 377
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 408bbddaf325..38a64968d7bf 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -18,6 +18,7 @@
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/i2c-pca-platform.h> 19#include <linux/i2c-pca-platform.h>
20#include <linux/i2c-algo-pca.h> 20#include <linux/i2c-algo-pca.h>
21#include <linux/irq.h>
21#include <asm/heartbeat.h> 22#include <asm/heartbeat.h>
22#include <mach/sh7785lcr.h> 23#include <mach/sh7785lcr.h>
23 24
diff --git a/arch/sh/boards/mach-highlander/setup.c b/arch/sh/boards/mach-highlander/setup.c
index 806438b42cac..20fe72c515d5 100644
--- a/arch/sh/boards/mach-highlander/setup.c
+++ b/arch/sh/boards/mach-highlander/setup.c
@@ -18,6 +18,7 @@
18#include <linux/ata_platform.h> 18#include <linux/ata_platform.h>
19#include <linux/types.h> 19#include <linux/types.h>
20#include <linux/i2c.h> 20#include <linux/i2c.h>
21#include <linux/irq.h>
21#include <net/ax88796.h> 22#include <net/ax88796.h>
22#include <asm/machvec.h> 23#include <asm/machvec.h>
23#include <mach/highlander.h> 24#include <mach/highlander.h>
diff --git a/arch/sh/boards/mach-hp6xx/setup.c b/arch/sh/boards/mach-hp6xx/setup.c
index 48fece78ff54..746742bdc014 100644
--- a/arch/sh/boards/mach-hp6xx/setup.c
+++ b/arch/sh/boards/mach-hp6xx/setup.c
@@ -12,9 +12,9 @@
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/irq.h>
15#include <asm/hd64461.h> 16#include <asm/hd64461.h>
16#include <asm/io.h> 17#include <asm/io.h>
17#include <asm/irq.h>
18#include <mach/hp6xx.h> 18#include <mach/hp6xx.h>
19#include <cpu/dac.h> 19#include <cpu/dac.h>
20 20
diff --git a/arch/sh/boards/mach-migor/setup.c b/arch/sh/boards/mach-migor/setup.c
index cc1408119c24..28e56c5809a2 100644
--- a/arch/sh/boards/mach-migor/setup.c
+++ b/arch/sh/boards/mach-migor/setup.c
@@ -18,9 +18,12 @@
18#include <linux/delay.h> 18#include <linux/delay.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <media/soc_camera_platform.h> 21#include <linux/spi/spi.h>
22#include <media/sh_mobile_ceu.h> 22#include <linux/spi/spi_gpio.h>
23#include <video/sh_mobile_lcdc.h> 23#include <video/sh_mobile_lcdc.h>
24#include <media/sh_mobile_ceu.h>
25#include <media/ov772x.h>
26#include <media/tw9910.h>
24#include <asm/clock.h> 27#include <asm/clock.h>
25#include <asm/machvec.h> 28#include <asm/machvec.h>
26#include <asm/io.h> 29#include <asm/io.h>
@@ -292,9 +295,12 @@ static struct platform_device migor_lcdc_device = {
292}; 295};
293 296
294static struct clk *camera_clk; 297static struct clk *camera_clk;
298static DEFINE_MUTEX(camera_lock);
295 299
296static void camera_power_on(void) 300static void camera_power_on(int is_tw)
297{ 301{
302 mutex_lock(&camera_lock);
303
298 /* Use 10 MHz VIO_CKO instead of 24 MHz to work 304 /* Use 10 MHz VIO_CKO instead of 24 MHz to work
299 * around signal quality issues on Panel Board V2.1. 305 * around signal quality issues on Panel Board V2.1.
300 */ 306 */
@@ -304,6 +310,12 @@ static void camera_power_on(void)
304 310
305 /* use VIO_RST to take camera out of reset */ 311 /* use VIO_RST to take camera out of reset */
306 mdelay(10); 312 mdelay(10);
313 if (is_tw) {
314 gpio_set_value(GPIO_PTT2, 0);
315 gpio_set_value(GPIO_PTT0, 0);
316 } else {
317 gpio_set_value(GPIO_PTT0, 1);
318 }
307 gpio_set_value(GPIO_PTT3, 0); 319 gpio_set_value(GPIO_PTT3, 0);
308 mdelay(10); 320 mdelay(10);
309 gpio_set_value(GPIO_PTT3, 1); 321 gpio_set_value(GPIO_PTT3, 1);
@@ -316,107 +328,29 @@ static void camera_power_off(void)
316 clk_put(camera_clk); 328 clk_put(camera_clk);
317 329
318 gpio_set_value(GPIO_PTT3, 0); 330 gpio_set_value(GPIO_PTT3, 0);
331 mutex_unlock(&camera_lock);
319} 332}
320 333
321static void camera_power(int mode) 334static int ov7725_power(struct device *dev, int mode)
322{ 335{
323 if (mode) 336 if (mode)
324 camera_power_on(); 337 camera_power_on(0);
325 else 338 else
326 camera_power_off(); 339 camera_power_off();
327}
328 340
329#ifdef CONFIG_I2C 341 return 0;
330static unsigned char camera_ov772x_magic[] = 342}
331{
332 0x09, 0x01, 0x0c, 0x20, 0x0d, 0x41, 0x0e, 0x01,
333 0x12, 0x00, 0x13, 0x8F, 0x14, 0x4A, 0x15, 0x00,
334 0x16, 0x00, 0x17, 0x23, 0x18, 0xa0, 0x19, 0x07,
335 0x1a, 0xf0, 0x1b, 0x40, 0x1f, 0x00, 0x20, 0x10,
336 0x22, 0xff, 0x23, 0x01, 0x28, 0x00, 0x29, 0xa0,
337 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0xf0, 0x2d, 0x00,
338 0x2e, 0x00, 0x30, 0x80, 0x31, 0x60, 0x32, 0x00,
339 0x33, 0x00, 0x34, 0x00, 0x3d, 0x80, 0x3e, 0xe2,
340 0x3f, 0x1f, 0x42, 0x80, 0x43, 0x80, 0x44, 0x80,
341 0x45, 0x80, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00,
342 0x49, 0x50, 0x4a, 0x30, 0x4b, 0x50, 0x4c, 0x50,
343 0x4d, 0x00, 0x4e, 0xef, 0x4f, 0x10, 0x50, 0x60,
344 0x51, 0x00, 0x52, 0x00, 0x53, 0x24, 0x54, 0x7a,
345 0x55, 0xfc, 0x62, 0xff, 0x63, 0xf0, 0x64, 0x1f,
346 0x65, 0x00, 0x66, 0x10, 0x67, 0x00, 0x68, 0x00,
347 0x69, 0x5c, 0x6a, 0x11, 0x6b, 0xa2, 0x6c, 0x01,
348 0x6d, 0x50, 0x6e, 0x80, 0x6f, 0x80, 0x70, 0x0f,
349 0x71, 0x00, 0x72, 0x00, 0x73, 0x0f, 0x74, 0x0f,
350 0x75, 0xff, 0x78, 0x10, 0x79, 0x70, 0x7a, 0x70,
351 0x7b, 0xf0, 0x7c, 0xf0, 0x7d, 0xf0, 0x7e, 0x0e,
352 0x7f, 0x1a, 0x80, 0x31, 0x81, 0x5a, 0x82, 0x69,
353 0x83, 0x75, 0x84, 0x7e, 0x85, 0x88, 0x86, 0x8f,
354 0x87, 0x96, 0x88, 0xa3, 0x89, 0xaf, 0x8a, 0xc4,
355 0x8b, 0xd7, 0x8c, 0xe8, 0x8d, 0x20, 0x8e, 0x00,
356 0x8f, 0x00, 0x90, 0x08, 0x91, 0x10, 0x92, 0x1f,
357 0x93, 0x01, 0x94, 0x2c, 0x95, 0x24, 0x96, 0x08,
358 0x97, 0x14, 0x98, 0x24, 0x99, 0x38, 0x9a, 0x9e,
359 0x9b, 0x00, 0x9c, 0x40, 0x9e, 0x11, 0x9f, 0x02,
360 0xa0, 0x00, 0xa1, 0x40, 0xa2, 0x40, 0xa3, 0x06,
361 0xa4, 0x00, 0xa6, 0x00, 0xa7, 0x40, 0xa8, 0x40,
362 0xa9, 0x80, 0xaa, 0x80, 0xab, 0x06, 0xac, 0xff,
363 0x12, 0x06, 0x64, 0x3f, 0x12, 0x46, 0x17, 0x3f,
364 0x18, 0x50, 0x19, 0x03, 0x1a, 0x78, 0x29, 0x50,
365 0x2c, 0x78,
366};
367 343
368static int ov772x_set_capture(struct soc_camera_platform_info *info, 344static int tw9910_power(struct device *dev, int mode)
369 int enable)
370{ 345{
371 struct i2c_adapter *a = i2c_get_adapter(0); 346 if (mode)
372 struct i2c_msg msg; 347 camera_power_on(1);
373 int ret = 0; 348 else
374 int i; 349 camera_power_off();
375
376 if (!enable)
377 return 0; /* camera_power_off() is enough */
378
379 for (i = 0; i < ARRAY_SIZE(camera_ov772x_magic); i += 2) {
380 u_int8_t buf[8];
381
382 msg.addr = 0x21;
383 msg.buf = buf;
384 msg.len = 2;
385 msg.flags = 0;
386
387 buf[0] = camera_ov772x_magic[i];
388 buf[1] = camera_ov772x_magic[i + 1];
389
390 ret = (ret < 0) ? ret : i2c_transfer(a, &msg, 1);
391 }
392 350
393 return ret; 351 return 0;
394} 352}
395 353
396static struct soc_camera_platform_info ov772x_info = {
397 .iface = 0,
398 .format_name = "RGB565",
399 .format_depth = 16,
400 .format = {
401 .pixelformat = V4L2_PIX_FMT_RGB565,
402 .colorspace = V4L2_COLORSPACE_SRGB,
403 .width = 320,
404 .height = 240,
405 },
406 .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH |
407 SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8,
408 .power = camera_power,
409 .set_capture = ov772x_set_capture,
410};
411
412static struct platform_device migor_camera_device = {
413 .name = "soc_camera_platform",
414 .dev = {
415 .platform_data = &ov772x_info,
416 },
417};
418#endif /* CONFIG_I2C */
419
420static struct sh_mobile_ceu_info sh_mobile_ceu_info = { 354static struct sh_mobile_ceu_info sh_mobile_ceu_info = {
421 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \ 355 .flags = SOCAM_MASTER | SOCAM_DATAWIDTH_8 | SOCAM_PCLK_SAMPLE_RISING \
422 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH, 356 | SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH,
@@ -448,16 +382,43 @@ static struct platform_device migor_ceu_device = {
448 }, 382 },
449}; 383};
450 384
385static struct ov772x_camera_info ov7725_info = {
386 .buswidth = SOCAM_DATAWIDTH_8,
387 .link = {
388 .power = ov7725_power,
389 },
390};
391
392static struct tw9910_video_info tw9910_info = {
393 .buswidth = SOCAM_DATAWIDTH_8,
394 .mpout = TW9910_MPO_FIELD,
395 .link = {
396 .power = tw9910_power,
397 }
398};
399
400struct spi_gpio_platform_data sdcard_cn9_platform_data = {
401 .sck = GPIO_PTD0,
402 .mosi = GPIO_PTD1,
403 .miso = GPIO_PTD2,
404 .num_chipselect = 1,
405};
406
407static struct platform_device sdcard_cn9_device = {
408 .name = "spi_gpio",
409 .dev = {
410 .platform_data = &sdcard_cn9_platform_data,
411 },
412};
413
451static struct platform_device *migor_devices[] __initdata = { 414static struct platform_device *migor_devices[] __initdata = {
452 &smc91x_eth_device, 415 &smc91x_eth_device,
453 &sh_keysc_device, 416 &sh_keysc_device,
454 &migor_lcdc_device, 417 &migor_lcdc_device,
455 &migor_ceu_device, 418 &migor_ceu_device,
456#ifdef CONFIG_I2C
457 &migor_camera_device,
458#endif
459 &migor_nor_flash_device, 419 &migor_nor_flash_device,
460 &migor_nand_flash_device, 420 &migor_nand_flash_device,
421 &sdcard_cn9_device,
461}; 422};
462 423
463static struct i2c_board_info migor_i2c_devices[] = { 424static struct i2c_board_info migor_i2c_devices[] = {
@@ -468,6 +429,23 @@ static struct i2c_board_info migor_i2c_devices[] = {
468 I2C_BOARD_INFO("migor_ts", 0x51), 429 I2C_BOARD_INFO("migor_ts", 0x51),
469 .irq = 38, /* IRQ6 */ 430 .irq = 38, /* IRQ6 */
470 }, 431 },
432 {
433 I2C_BOARD_INFO("ov772x", 0x21),
434 .platform_data = &ov7725_info,
435 },
436 {
437 I2C_BOARD_INFO("tw9910", 0x45),
438 .platform_data = &tw9910_info,
439 },
440};
441
442static struct spi_board_info migor_spi_devices[] = {
443 {
444 .modalias = "mmc_spi",
445 .max_speed_hz = 5000000,
446 .chip_select = 0,
447 .controller_data = (void *) GPIO_PTD5,
448 },
471}; 449};
472 450
473static int __init migor_devices_setup(void) 451static int __init migor_devices_setup(void)
@@ -592,6 +570,9 @@ static int __init migor_devices_setup(void)
592 i2c_register_board_info(0, migor_i2c_devices, 570 i2c_register_board_info(0, migor_i2c_devices,
593 ARRAY_SIZE(migor_i2c_devices)); 571 ARRAY_SIZE(migor_i2c_devices));
594 572
573 spi_register_board_info(migor_spi_devices,
574 ARRAY_SIZE(migor_spi_devices));
575
595 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices)); 576 return platform_add_devices(migor_devices, ARRAY_SIZE(migor_devices));
596} 577}
597__initcall(migor_devices_setup); 578__initcall(migor_devices_setup);
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c
index 73f743b9be8d..d8a65ea91665 100644
--- a/arch/sh/boards/mach-rsk/devices-rsk7203.c
+++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c
@@ -15,19 +15,21 @@
15#include <linux/mtd/partitions.h> 15#include <linux/mtd/partitions.h>
16#include <linux/mtd/physmap.h> 16#include <linux/mtd/physmap.h>
17#include <linux/mtd/map.h> 17#include <linux/mtd/map.h>
18#include <linux/smc911x.h> 18#include <linux/smsc911x.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/leds.h> 20#include <linux/leds.h>
21#include <asm/machvec.h> 21#include <asm/machvec.h>
22#include <asm/io.h> 22#include <asm/io.h>
23#include <cpu/sh7203.h> 23#include <cpu/sh7203.h>
24 24
25static struct smc911x_platdata smc911x_info = { 25static struct smsc911x_platform_config smsc911x_config = {
26 .flags = SMC911X_USE_16BIT, 26 .phy_interface = PHY_INTERFACE_MODE_MII,
27 .irq_flags = IRQF_TRIGGER_LOW, 27 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
28 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
29 .flags = SMSC911X_USE_16BIT,
28}; 30};
29 31
30static struct resource smc911x_resources[] = { 32static struct resource smsc911x_resources[] = {
31 [0] = { 33 [0] = {
32 .start = 0x24000000, 34 .start = 0x24000000,
33 .end = 0x24000000 + 0x100, 35 .end = 0x24000000 + 0x100,
@@ -40,13 +42,13 @@ static struct resource smc911x_resources[] = {
40 }, 42 },
41}; 43};
42 44
43static struct platform_device smc911x_device = { 45static struct platform_device smsc911x_device = {
44 .name = "smc911x", 46 .name = "smsc911x",
45 .id = -1, 47 .id = -1,
46 .num_resources = ARRAY_SIZE(smc911x_resources), 48 .num_resources = ARRAY_SIZE(smsc911x_resources),
47 .resource = smc911x_resources, 49 .resource = smsc911x_resources,
48 .dev = { 50 .dev = {
49 .platform_data = &smc911x_info, 51 .platform_data = &smsc911x_config,
50 }, 52 },
51}; 53};
52 54
@@ -87,7 +89,7 @@ static struct platform_device led_device = {
87}; 89};
88 90
89static struct platform_device *rsk7203_devices[] __initdata = { 91static struct platform_device *rsk7203_devices[] __initdata = {
90 &smc911x_device, 92 &smsc911x_device,
91 &led_device, 93 &led_device,
92}; 94};
93 95
diff --git a/arch/sh/boards/mach-x3proto/setup.c b/arch/sh/boards/mach-x3proto/setup.c
index a70d23b21788..a340492087fa 100644
--- a/arch/sh/boards/mach-x3proto/setup.c
+++ b/arch/sh/boards/mach-x3proto/setup.c
@@ -14,6 +14,7 @@
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/smc91x.h> 16#include <linux/smc91x.h>
17#include <linux/irq.h>
17#include <asm/ilsel.h> 18#include <asm/ilsel.h>
18 19
19static struct resource heartbeat_resources[] = { 20static struct resource heartbeat_resources[] = {
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 874dd9726e52..5c423fa8e6b8 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.27 3# Linux kernel version: 2.6.28
4# Tue Oct 21 18:20:06 2008 4# Fri Jan 9 16:54:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -75,12 +77,10 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 80CONFIG_SLAB=y
80# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
86CONFIG_HAVE_KPROBES=y 86CONFIG_HAVE_KPROBES=y
@@ -90,7 +90,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 93CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 94CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 95# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +97,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 97# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 98# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 99# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 100CONFIG_BLOCK=y
103# CONFIG_LBD is not set 101# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 102# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 103# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 104# CONFIG_BLK_DEV_INTEGRITY is not set
108 105
@@ -119,6 +116,10 @@ CONFIG_DEFAULT_CFQ=y
119# CONFIG_DEFAULT_NOOP is not set 116# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="cfq" 117CONFIG_DEFAULT_IOSCHED="cfq"
121CONFIG_CLASSIC_RCU=y 118CONFIG_CLASSIC_RCU=y
119# CONFIG_TREE_RCU is not set
120# CONFIG_PREEMPT_RCU is not set
121# CONFIG_TREE_RCU_TRACE is not set
122# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 123# CONFIG_FREEZER is not set
123 124
124# 125#
@@ -128,6 +129,7 @@ CONFIG_CPU_SH4=y
128CONFIG_CPU_SH4A=y 129CONFIG_CPU_SH4A=y
129CONFIG_CPU_SHX2=y 130CONFIG_CPU_SHX2=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 131# CONFIG_CPU_SUBTYPE_SH7619 is not set
132# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 133# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 134# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 135# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -192,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
192CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
193CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
194CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
195# CONFIG_RESOURCES_64BIT is not set
196# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
197CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
198CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -269,7 +270,6 @@ CONFIG_SECCOMP=y
269# CONFIG_PREEMPT_NONE is not set 270# CONFIG_PREEMPT_NONE is not set
270# CONFIG_PREEMPT_VOLUNTARY is not set 271# CONFIG_PREEMPT_VOLUNTARY is not set
271CONFIG_PREEMPT=y 272CONFIG_PREEMPT=y
272# CONFIG_PREEMPT_RCU is not set
273CONFIG_GUSA=y 273CONFIG_GUSA=y
274 274
275# 275#
@@ -293,11 +293,18 @@ CONFIG_BINFMT_ELF=y
293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
294# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
295# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
296CONFIG_NET=y 302CONFIG_NET=y
297 303
298# 304#
299# Networking options 305# Networking options
300# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
301CONFIG_PACKET=y 308CONFIG_PACKET=y
302# CONFIG_PACKET_MMAP is not set 309# CONFIG_PACKET_MMAP is not set
303CONFIG_UNIX=y 310CONFIG_UNIX=y
@@ -353,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
356 364
357# 365#
358# Network testing 366# Network testing
@@ -368,8 +376,8 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set
373# CONFIG_RFKILL is not set 381# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 382# CONFIG_NET_9P is not set
375 383
@@ -447,6 +455,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
447# 455#
448# Self-contained MTD device drivers 456# Self-contained MTD device drivers
449# 457#
458# CONFIG_MTD_DATAFLASH is not set
459# CONFIG_MTD_M25P80 is not set
450# CONFIG_MTD_SLRAM is not set 460# CONFIG_MTD_SLRAM is not set
451# CONFIG_MTD_PHRAM is not set 461# CONFIG_MTD_PHRAM is not set
452# CONFIG_MTD_MTDRAM is not set 462# CONFIG_MTD_MTDRAM is not set
@@ -472,7 +482,15 @@ CONFIG_MTD_NAND_SH_FLCTL=y
472# 482#
473# UBI - Unsorted block images 483# UBI - Unsorted block images
474# 484#
475# CONFIG_MTD_UBI is not set 485CONFIG_MTD_UBI=y
486CONFIG_MTD_UBI_WL_THRESHOLD=4096
487CONFIG_MTD_UBI_BEB_RESERVE=1
488# CONFIG_MTD_UBI_GLUEBI is not set
489
490#
491# UBI debugging options
492#
493# CONFIG_MTD_UBI_DEBUG is not set
476# CONFIG_PARPORT is not set 494# CONFIG_PARPORT is not set
477CONFIG_BLK_DEV=y 495CONFIG_BLK_DEV=y
478# CONFIG_BLK_DEV_COW_COMMON is not set 496# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -487,7 +505,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
487# CONFIG_BLK_DEV_HD is not set 505# CONFIG_BLK_DEV_HD is not set
488CONFIG_MISC_DEVICES=y 506CONFIG_MISC_DEVICES=y
489# CONFIG_EEPROM_93CX6 is not set 507# CONFIG_EEPROM_93CX6 is not set
508# CONFIG_ICS932S401 is not set
490# CONFIG_ENCLOSURE_SERVICES is not set 509# CONFIG_ENCLOSURE_SERVICES is not set
510# CONFIG_C2PORT is not set
491CONFIG_HAVE_IDE=y 511CONFIG_HAVE_IDE=y
492# CONFIG_IDE is not set 512# CONFIG_IDE is not set
493 513
@@ -530,6 +550,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 550# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 551CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 552# CONFIG_ISCSI_TCP is not set
553# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 554# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 555# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 556# CONFIG_ATA is not set
@@ -541,13 +562,34 @@ CONFIG_NETDEVICES=y
541# CONFIG_EQUALIZER is not set 562# CONFIG_EQUALIZER is not set
542# CONFIG_TUN is not set 563# CONFIG_TUN is not set
543# CONFIG_VETH is not set 564# CONFIG_VETH is not set
544# CONFIG_PHYLIB is not set 565CONFIG_PHYLIB=y
566
567#
568# MII PHY device drivers
569#
570# CONFIG_MARVELL_PHY is not set
571# CONFIG_DAVICOM_PHY is not set
572# CONFIG_QSEMI_PHY is not set
573# CONFIG_LXT_PHY is not set
574# CONFIG_CICADA_PHY is not set
575# CONFIG_VITESSE_PHY is not set
576CONFIG_SMSC_PHY=y
577# CONFIG_BROADCOM_PHY is not set
578# CONFIG_ICPLUS_PHY is not set
579# CONFIG_REALTEK_PHY is not set
580# CONFIG_NATIONAL_PHY is not set
581# CONFIG_STE10XP is not set
582# CONFIG_LSI_ET1011C_PHY is not set
583# CONFIG_FIXED_PHY is not set
584# CONFIG_MDIO_BITBANG is not set
545CONFIG_NET_ETHERNET=y 585CONFIG_NET_ETHERNET=y
546CONFIG_MII=y 586CONFIG_MII=y
547# CONFIG_AX88796 is not set 587# CONFIG_AX88796 is not set
548# CONFIG_STNIC is not set 588# CONFIG_STNIC is not set
549# CONFIG_SMC91X is not set 589# CONFIG_SMC91X is not set
550CONFIG_SMC911X=y 590# CONFIG_ENC28J60 is not set
591# CONFIG_SMC911X is not set
592CONFIG_SMSC911X=y
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 593# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 594# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 595# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -630,6 +672,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
630CONFIG_SERIAL_CORE=y 672CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y 673CONFIG_SERIAL_CORE_CONSOLE=y
632CONFIG_UNIX98_PTYS=y 674CONFIG_UNIX98_PTYS=y
675# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
633CONFIG_LEGACY_PTYS=y 676CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 677CONFIG_LEGACY_PTY_COUNT=256
635# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
@@ -637,19 +680,102 @@ CONFIG_HW_RANDOM=y
637# CONFIG_R3964 is not set 680# CONFIG_R3964 is not set
638# CONFIG_RAW_DRIVER is not set 681# CONFIG_RAW_DRIVER is not set
639# CONFIG_TCG_TPM is not set 682# CONFIG_TCG_TPM is not set
640# CONFIG_I2C is not set 683CONFIG_I2C=y
641# CONFIG_SPI is not set 684CONFIG_I2C_BOARDINFO=y
685CONFIG_I2C_CHARDEV=y
686CONFIG_I2C_HELPER_AUTO=y
687
688#
689# I2C Hardware Bus support
690#
691
692#
693# I2C system bus drivers (mostly embedded / system-on-chip)
694#
695# CONFIG_I2C_GPIO is not set
696# CONFIG_I2C_OCORES is not set
697CONFIG_I2C_SH_MOBILE=y
698# CONFIG_I2C_SIMTEC is not set
699
700#
701# External I2C/SMBus adapter drivers
702#
703# CONFIG_I2C_PARPORT_LIGHT is not set
704# CONFIG_I2C_TAOS_EVM is not set
705
706#
707# Other I2C/SMBus bus drivers
708#
709# CONFIG_I2C_PCA_PLATFORM is not set
710# CONFIG_I2C_STUB is not set
711
712#
713# Miscellaneous I2C Chip support
714#
715# CONFIG_DS1682 is not set
716# CONFIG_AT24 is not set
717# CONFIG_SENSORS_EEPROM is not set
718# CONFIG_SENSORS_PCF8574 is not set
719# CONFIG_PCF8575 is not set
720# CONFIG_SENSORS_PCA9539 is not set
721# CONFIG_SENSORS_PCF8591 is not set
722# CONFIG_SENSORS_MAX6875 is not set
723# CONFIG_SENSORS_TSL2550 is not set
724# CONFIG_I2C_DEBUG_CORE is not set
725# CONFIG_I2C_DEBUG_ALGO is not set
726# CONFIG_I2C_DEBUG_BUS is not set
727# CONFIG_I2C_DEBUG_CHIP is not set
728CONFIG_SPI=y
729CONFIG_SPI_MASTER=y
730
731#
732# SPI Master Controller Drivers
733#
734CONFIG_SPI_BITBANG=y
735CONFIG_SPI_GPIO=y
736# CONFIG_SPI_SH_SCI is not set
737
738#
739# SPI Protocol Masters
740#
741# CONFIG_SPI_AT25 is not set
742# CONFIG_SPI_SPIDEV is not set
743# CONFIG_SPI_TLE62X0 is not set
744CONFIG_ARCH_REQUIRE_GPIOLIB=y
745CONFIG_GPIOLIB=y
746# CONFIG_GPIO_SYSFS is not set
747
748#
749# Memory mapped GPIO expanders:
750#
751
752#
753# I2C GPIO expanders:
754#
755# CONFIG_GPIO_MAX732X is not set
756# CONFIG_GPIO_PCA953X is not set
757# CONFIG_GPIO_PCF857X is not set
758
759#
760# PCI GPIO expanders:
761#
762
763#
764# SPI GPIO expanders:
765#
766# CONFIG_GPIO_MAX7301 is not set
767# CONFIG_GPIO_MCP23S08 is not set
642# CONFIG_W1 is not set 768# CONFIG_W1 is not set
643# CONFIG_POWER_SUPPLY is not set 769# CONFIG_POWER_SUPPLY is not set
644# CONFIG_HWMON is not set 770# CONFIG_HWMON is not set
645# CONFIG_THERMAL is not set 771# CONFIG_THERMAL is not set
646# CONFIG_THERMAL_HWMON is not set 772# CONFIG_THERMAL_HWMON is not set
647# CONFIG_WATCHDOG is not set 773# CONFIG_WATCHDOG is not set
774CONFIG_SSB_POSSIBLE=y
648 775
649# 776#
650# Sonics Silicon Backplane 777# Sonics Silicon Backplane
651# 778#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 779# CONFIG_SSB is not set
654 780
655# 781#
@@ -658,8 +784,13 @@ CONFIG_SSB_POSSIBLE=y
658# CONFIG_MFD_CORE is not set 784# CONFIG_MFD_CORE is not set
659# CONFIG_MFD_SM501 is not set 785# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 786# CONFIG_HTC_PASIC3 is not set
787# CONFIG_TPS65010 is not set
788# CONFIG_TWL4030_CORE is not set
661# CONFIG_MFD_TMIO is not set 789# CONFIG_MFD_TMIO is not set
790# CONFIG_PMIC_DA903X is not set
662# CONFIG_MFD_WM8400 is not set 791# CONFIG_MFD_WM8400 is not set
792# CONFIG_MFD_WM8350_I2C is not set
793# CONFIG_REGULATOR is not set
663 794
664# 795#
665# Multimedia devices 796# Multimedia devices
@@ -668,13 +799,47 @@ CONFIG_SSB_POSSIBLE=y
668# 799#
669# Multimedia core support 800# Multimedia core support
670# 801#
671# CONFIG_VIDEO_DEV is not set 802CONFIG_VIDEO_DEV=y
803CONFIG_VIDEO_V4L2_COMMON=y
804# CONFIG_VIDEO_ALLOW_V4L1 is not set
805CONFIG_VIDEO_V4L1_COMPAT=y
672# CONFIG_DVB_CORE is not set 806# CONFIG_DVB_CORE is not set
673# CONFIG_VIDEO_MEDIA is not set 807CONFIG_VIDEO_MEDIA=y
674 808
675# 809#
676# Multimedia drivers 810# Multimedia drivers
677# 811#
812# CONFIG_MEDIA_ATTACH is not set
813CONFIG_MEDIA_TUNER=y
814# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
815CONFIG_MEDIA_TUNER_SIMPLE=y
816CONFIG_MEDIA_TUNER_TDA8290=y
817CONFIG_MEDIA_TUNER_TDA9887=y
818CONFIG_MEDIA_TUNER_TEA5761=y
819CONFIG_MEDIA_TUNER_TEA5767=y
820CONFIG_MEDIA_TUNER_MT20XX=y
821CONFIG_MEDIA_TUNER_XC2028=y
822CONFIG_MEDIA_TUNER_XC5000=y
823CONFIG_VIDEO_V4L2=y
824CONFIG_VIDEOBUF_GEN=y
825CONFIG_VIDEOBUF_DMA_CONTIG=y
826CONFIG_VIDEO_CAPTURE_DRIVERS=y
827# CONFIG_VIDEO_ADV_DEBUG is not set
828# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
829CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
830# CONFIG_VIDEO_VIVI is not set
831# CONFIG_VIDEO_SAA5246A is not set
832# CONFIG_VIDEO_SAA5249 is not set
833CONFIG_SOC_CAMERA=y
834# CONFIG_SOC_CAMERA_MT9M001 is not set
835# CONFIG_SOC_CAMERA_MT9M111 is not set
836# CONFIG_SOC_CAMERA_MT9T031 is not set
837# CONFIG_SOC_CAMERA_MT9V022 is not set
838# CONFIG_SOC_CAMERA_TW9910 is not set
839CONFIG_SOC_CAMERA_PLATFORM=y
840# CONFIG_SOC_CAMERA_OV772X is not set
841CONFIG_VIDEO_SH_MOBILE_CEU=y
842# CONFIG_RADIO_ADAPTERS is not set
678# CONFIG_DAB is not set 843# CONFIG_DAB is not set
679 844
680# 845#
@@ -682,7 +847,34 @@ CONFIG_SSB_POSSIBLE=y
682# 847#
683# CONFIG_VGASTATE is not set 848# CONFIG_VGASTATE is not set
684# CONFIG_VIDEO_OUTPUT_CONTROL is not set 849# CONFIG_VIDEO_OUTPUT_CONTROL is not set
685# CONFIG_FB is not set 850CONFIG_FB=y
851# CONFIG_FIRMWARE_EDID is not set
852# CONFIG_FB_DDC is not set
853# CONFIG_FB_BOOT_VESA_SUPPORT is not set
854# CONFIG_FB_CFB_FILLRECT is not set
855# CONFIG_FB_CFB_COPYAREA is not set
856# CONFIG_FB_CFB_IMAGEBLIT is not set
857# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
858CONFIG_FB_SYS_FILLRECT=y
859CONFIG_FB_SYS_COPYAREA=y
860CONFIG_FB_SYS_IMAGEBLIT=y
861# CONFIG_FB_FOREIGN_ENDIAN is not set
862CONFIG_FB_SYS_FOPS=y
863CONFIG_FB_DEFERRED_IO=y
864# CONFIG_FB_SVGALIB is not set
865# CONFIG_FB_MACMODES is not set
866# CONFIG_FB_BACKLIGHT is not set
867# CONFIG_FB_MODE_HELPERS is not set
868# CONFIG_FB_TILEBLITTING is not set
869
870#
871# Frame buffer hardware drivers
872#
873# CONFIG_FB_S1D13XXX is not set
874CONFIG_FB_SH_MOBILE_LCDC=y
875# CONFIG_FB_VIRTUAL is not set
876# CONFIG_FB_METRONOME is not set
877# CONFIG_FB_MB862XX is not set
686# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 878# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
687 879
688# 880#
@@ -694,14 +886,103 @@ CONFIG_SSB_POSSIBLE=y
694# Console display driver support 886# Console display driver support
695# 887#
696CONFIG_DUMMY_CONSOLE=y 888CONFIG_DUMMY_CONSOLE=y
889CONFIG_FRAMEBUFFER_CONSOLE=y
890# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
891# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
892# CONFIG_FONTS is not set
893CONFIG_FONT_8x8=y
894CONFIG_FONT_8x16=y
895CONFIG_LOGO=y
896CONFIG_LOGO_LINUX_MONO=y
897CONFIG_LOGO_LINUX_VGA16=y
898CONFIG_LOGO_LINUX_CLUT224=y
899CONFIG_LOGO_SUPERH_MONO=y
900CONFIG_LOGO_SUPERH_VGA16=y
901CONFIG_LOGO_SUPERH_CLUT224=y
697# CONFIG_SOUND is not set 902# CONFIG_SOUND is not set
698# CONFIG_HID_SUPPORT is not set 903# CONFIG_HID_SUPPORT is not set
699# CONFIG_USB_SUPPORT is not set 904# CONFIG_USB_SUPPORT is not set
700# CONFIG_MMC is not set 905CONFIG_MMC=y
906# CONFIG_MMC_DEBUG is not set
907# CONFIG_MMC_UNSAFE_RESUME is not set
908
909#
910# MMC/SD/SDIO Card Drivers
911#
912CONFIG_MMC_BLOCK=y
913CONFIG_MMC_BLOCK_BOUNCE=y
914# CONFIG_SDIO_UART is not set
915# CONFIG_MMC_TEST is not set
916
917#
918# MMC/SD/SDIO Host Controller Drivers
919#
920# CONFIG_MMC_SDHCI is not set
921CONFIG_MMC_SPI=y
701# CONFIG_MEMSTICK is not set 922# CONFIG_MEMSTICK is not set
702# CONFIG_NEW_LEDS is not set 923# CONFIG_NEW_LEDS is not set
703# CONFIG_ACCESSIBILITY is not set 924# CONFIG_ACCESSIBILITY is not set
704# CONFIG_RTC_CLASS is not set 925CONFIG_RTC_LIB=y
926CONFIG_RTC_CLASS=y
927CONFIG_RTC_HCTOSYS=y
928CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
929# CONFIG_RTC_DEBUG is not set
930
931#
932# RTC interfaces
933#
934CONFIG_RTC_INTF_SYSFS=y
935CONFIG_RTC_INTF_PROC=y
936CONFIG_RTC_INTF_DEV=y
937# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
938# CONFIG_RTC_DRV_TEST is not set
939
940#
941# I2C RTC drivers
942#
943# CONFIG_RTC_DRV_DS1307 is not set
944# CONFIG_RTC_DRV_DS1374 is not set
945# CONFIG_RTC_DRV_DS1672 is not set
946# CONFIG_RTC_DRV_MAX6900 is not set
947# CONFIG_RTC_DRV_RS5C372 is not set
948# CONFIG_RTC_DRV_ISL1208 is not set
949# CONFIG_RTC_DRV_X1205 is not set
950CONFIG_RTC_DRV_PCF8563=y
951# CONFIG_RTC_DRV_PCF8583 is not set
952# CONFIG_RTC_DRV_M41T80 is not set
953# CONFIG_RTC_DRV_S35390A is not set
954# CONFIG_RTC_DRV_FM3130 is not set
955# CONFIG_RTC_DRV_RX8581 is not set
956
957#
958# SPI RTC drivers
959#
960# CONFIG_RTC_DRV_M41T94 is not set
961# CONFIG_RTC_DRV_DS1305 is not set
962# CONFIG_RTC_DRV_DS1390 is not set
963# CONFIG_RTC_DRV_MAX6902 is not set
964# CONFIG_RTC_DRV_R9701 is not set
965# CONFIG_RTC_DRV_RS5C348 is not set
966# CONFIG_RTC_DRV_DS3234 is not set
967
968#
969# Platform RTC drivers
970#
971# CONFIG_RTC_DRV_DS1286 is not set
972# CONFIG_RTC_DRV_DS1511 is not set
973# CONFIG_RTC_DRV_DS1553 is not set
974# CONFIG_RTC_DRV_DS1742 is not set
975# CONFIG_RTC_DRV_STK17TA8 is not set
976# CONFIG_RTC_DRV_M48T86 is not set
977# CONFIG_RTC_DRV_M48T35 is not set
978# CONFIG_RTC_DRV_M48T59 is not set
979# CONFIG_RTC_DRV_BQ4802 is not set
980# CONFIG_RTC_DRV_V3020 is not set
981
982#
983# on-CPU RTC drivers
984#
985# CONFIG_RTC_DRV_SH is not set
705# CONFIG_DMADEVICES is not set 986# CONFIG_DMADEVICES is not set
706CONFIG_UIO=y 987CONFIG_UIO=y
707# CONFIG_UIO_PDRV is not set 988# CONFIG_UIO_PDRV is not set
@@ -768,10 +1049,7 @@ CONFIG_TMPFS=y
768# CONFIG_HUGETLBFS is not set 1049# CONFIG_HUGETLBFS is not set
769# CONFIG_HUGETLB_PAGE is not set 1050# CONFIG_HUGETLB_PAGE is not set
770# CONFIG_CONFIGFS_FS is not set 1051# CONFIG_CONFIGFS_FS is not set
771 1052CONFIG_MISC_FILESYSTEMS=y
772#
773# Miscellaneous filesystems
774#
775# CONFIG_ADFS_FS is not set 1053# CONFIG_ADFS_FS is not set
776# CONFIG_AFFS_FS is not set 1054# CONFIG_AFFS_FS is not set
777# CONFIG_HFS_FS is not set 1055# CONFIG_HFS_FS is not set
@@ -780,6 +1058,7 @@ CONFIG_TMPFS=y
780# CONFIG_BFS_FS is not set 1058# CONFIG_BFS_FS is not set
781# CONFIG_EFS_FS is not set 1059# CONFIG_EFS_FS is not set
782# CONFIG_JFFS2_FS is not set 1060# CONFIG_JFFS2_FS is not set
1061# CONFIG_UBIFS_FS is not set
783# CONFIG_CRAMFS is not set 1062# CONFIG_CRAMFS is not set
784# CONFIG_VXFS_FS is not set 1063# CONFIG_VXFS_FS is not set
785# CONFIG_MINIX_FS is not set 1064# CONFIG_MINIX_FS is not set
@@ -878,13 +1157,19 @@ CONFIG_FRAME_WARN=1024
878# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1157# CONFIG_RCU_CPU_STALL_DETECTOR is not set
879# CONFIG_LATENCYTOP is not set 1158# CONFIG_LATENCYTOP is not set
880CONFIG_SYSCTL_SYSCALL_CHECK=y 1159CONFIG_SYSCTL_SYSCALL_CHECK=y
881CONFIG_NOP_TRACER=y 1160CONFIG_HAVE_FUNCTION_TRACER=y
882CONFIG_HAVE_FTRACE=y 1161CONFIG_HAVE_DYNAMIC_FTRACE=y
1162CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1163
1164#
1165# Tracers
1166#
883# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1167# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
884# CONFIG_SAMPLES is not set 1168# CONFIG_SAMPLES is not set
1169CONFIG_HAVE_ARCH_KGDB=y
885# CONFIG_SH_STANDARD_BIOS is not set 1170# CONFIG_SH_STANDARD_BIOS is not set
886# CONFIG_EARLY_SCIF_CONSOLE is not set 1171# CONFIG_EARLY_SCIF_CONSOLE is not set
887# CONFIG_SH_KGDB is not set 1172# CONFIG_MORE_COMPILE_OPTIONS is not set
888 1173
889# 1174#
890# Security options 1175# Security options
@@ -900,11 +1185,14 @@ CONFIG_CRYPTO=y
900# 1185#
901# CONFIG_CRYPTO_FIPS is not set 1186# CONFIG_CRYPTO_FIPS is not set
902CONFIG_CRYPTO_ALGAPI=y 1187CONFIG_CRYPTO_ALGAPI=y
903CONFIG_CRYPTO_AEAD=y 1188CONFIG_CRYPTO_ALGAPI2=y
1189CONFIG_CRYPTO_AEAD2=y
904CONFIG_CRYPTO_BLKCIPHER=y 1190CONFIG_CRYPTO_BLKCIPHER=y
905CONFIG_CRYPTO_HASH=y 1191CONFIG_CRYPTO_BLKCIPHER2=y
906CONFIG_CRYPTO_RNG=y 1192CONFIG_CRYPTO_HASH2=y
1193CONFIG_CRYPTO_RNG2=y
907CONFIG_CRYPTO_MANAGER=y 1194CONFIG_CRYPTO_MANAGER=y
1195CONFIG_CRYPTO_MANAGER2=y
908# CONFIG_CRYPTO_GF128MUL is not set 1196# CONFIG_CRYPTO_GF128MUL is not set
909# CONFIG_CRYPTO_NULL is not set 1197# CONFIG_CRYPTO_NULL is not set
910# CONFIG_CRYPTO_CRYPTD is not set 1198# CONFIG_CRYPTO_CRYPTD is not set
@@ -987,12 +1275,13 @@ CONFIG_CRYPTO_HW=y
987# Library routines 1275# Library routines
988# 1276#
989CONFIG_BITREVERSE=y 1277CONFIG_BITREVERSE=y
1278CONFIG_GENERIC_FIND_LAST_BIT=y
990# CONFIG_CRC_CCITT is not set 1279# CONFIG_CRC_CCITT is not set
991# CONFIG_CRC16 is not set 1280# CONFIG_CRC16 is not set
992CONFIG_CRC_T10DIF=y 1281CONFIG_CRC_T10DIF=y
993# CONFIG_CRC_ITU_T is not set 1282CONFIG_CRC_ITU_T=y
994CONFIG_CRC32=y 1283CONFIG_CRC32=y
995# CONFIG_CRC7 is not set 1284CONFIG_CRC7=y
996# CONFIG_LIBCRC32C is not set 1285# CONFIG_LIBCRC32C is not set
997CONFIG_PLIST=y 1286CONFIG_PLIST=y
998CONFIG_HAS_IOMEM=y 1287CONFIG_HAS_IOMEM=y
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig
index e21c0e8e22d9..92895013813d 100644
--- a/arch/sh/configs/cayman_defconfig
+++ b/arch/sh/configs/cayman_defconfig
@@ -700,8 +700,8 @@ CONFIG_I2C_HELPER_AUTO=y
700# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
701# 701#
702# CONFIG_DS1682 is not set 702# CONFIG_DS1682 is not set
703# CONFIG_AT24 is not set 703# CONFIG_EEPROM_AT24 is not set
704# CONFIG_SENSORS_EEPROM is not set 704# CONFIG_EEPROM_LEGACY is not set
705# CONFIG_SENSORS_PCF8574 is not set 705# CONFIG_SENSORS_PCF8574 is not set
706# CONFIG_PCF8575 is not set 706# CONFIG_PCF8575 is not set
707# CONFIG_SENSORS_PCA9539 is not set 707# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index be4c2e0dbb26..2d86e0487517 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:18:02 2008 4# Fri Jan 9 16:54:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80CONFIG_PROFILING=y 82CONFIG_PROFILING=y
81# CONFIG_MARKERS is not set
82# CONFIG_OPROFILE is not set 83# CONFIG_OPROFILE is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -195,7 +198,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
195CONFIG_SPARSEMEM_STATIC=y 198CONFIG_SPARSEMEM_STATIC=y
196CONFIG_PAGEFLAGS_EXTENDED=y 199CONFIG_PAGEFLAGS_EXTENDED=y
197CONFIG_SPLIT_PTLOCK_CPUS=4 200CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_RESOURCES_64BIT is not set
199# CONFIG_PHYS_ADDR_T_64BIT is not set 201# CONFIG_PHYS_ADDR_T_64BIT is not set
200CONFIG_ZONE_DMA_FLAG=0 202CONFIG_ZONE_DMA_FLAG=0
201CONFIG_NR_QUICK=2 203CONFIG_NR_QUICK=2
@@ -290,7 +292,6 @@ CONFIG_SECCOMP=y
290# CONFIG_PREEMPT_NONE is not set 292# CONFIG_PREEMPT_NONE is not set
291# CONFIG_PREEMPT_VOLUNTARY is not set 293# CONFIG_PREEMPT_VOLUNTARY is not set
292CONFIG_PREEMPT=y 294CONFIG_PREEMPT=y
293# CONFIG_PREEMPT_RCU is not set
294CONFIG_GUSA=y 295CONFIG_GUSA=y
295# CONFIG_GUSA_RB is not set 296# CONFIG_GUSA_RB is not set
296 297
@@ -310,6 +311,7 @@ CONFIG_MAPLE=y
310CONFIG_PCI=y 311CONFIG_PCI=y
311CONFIG_SH_PCIDMA_NONCOHERENT=y 312CONFIG_SH_PCIDMA_NONCOHERENT=y
312CONFIG_PCI_AUTO=y 313CONFIG_PCI_AUTO=y
314# CONFIG_PCIEPORTBUS is not set
313# CONFIG_ARCH_SUPPORTS_MSI is not set 315# CONFIG_ARCH_SUPPORTS_MSI is not set
314CONFIG_PCI_LEGACY=y 316CONFIG_PCI_LEGACY=y
315# CONFIG_PCCARD is not set 317# CONFIG_PCCARD is not set
@@ -322,11 +324,18 @@ CONFIG_BINFMT_ELF=y
322# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 324# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
323# CONFIG_HAVE_AOUT is not set 325# CONFIG_HAVE_AOUT is not set
324# CONFIG_BINFMT_MISC is not set 326# CONFIG_BINFMT_MISC is not set
327
328#
329# Power management options (EXPERIMENTAL)
330#
331# CONFIG_PM is not set
332# CONFIG_CPU_IDLE is not set
325CONFIG_NET=y 333CONFIG_NET=y
326 334
327# 335#
328# Networking options 336# Networking options
329# 337#
338CONFIG_COMPAT_NET_DEV_OPS=y
330CONFIG_PACKET=y 339CONFIG_PACKET=y
331# CONFIG_PACKET_MMAP is not set 340# CONFIG_PACKET_MMAP is not set
332CONFIG_UNIX=y 341CONFIG_UNIX=y
@@ -379,6 +388,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
379# CONFIG_ECONET is not set 388# CONFIG_ECONET is not set
380# CONFIG_WAN_ROUTER is not set 389# CONFIG_WAN_ROUTER is not set
381# CONFIG_NET_SCHED is not set 390# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set
382 392
383# 393#
384# Network testing 394# Network testing
@@ -394,8 +404,8 @@ CONFIG_WIRELESS=y
394# CONFIG_CFG80211 is not set 404# CONFIG_CFG80211 is not set
395# CONFIG_WIRELESS_OLD_REGULATORY is not set 405# CONFIG_WIRELESS_OLD_REGULATORY is not set
396# CONFIG_WIRELESS_EXT is not set 406# CONFIG_WIRELESS_EXT is not set
407# CONFIG_LIB80211 is not set
397# CONFIG_MAC80211 is not set 408# CONFIG_MAC80211 is not set
398# CONFIG_IEEE80211 is not set
399# CONFIG_RFKILL is not set 409# CONFIG_RFKILL is not set
400# CONFIG_NET_9P is not set 410# CONFIG_NET_9P is not set
401 411
@@ -434,6 +444,7 @@ CONFIG_MISC_DEVICES=y
434# CONFIG_TIFM_CORE is not set 444# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 445# CONFIG_ENCLOSURE_SERVICES is not set
436# CONFIG_HP_ILO is not set 446# CONFIG_HP_ILO is not set
447# CONFIG_C2PORT is not set
437CONFIG_HAVE_IDE=y 448CONFIG_HAVE_IDE=y
438# CONFIG_IDE is not set 449# CONFIG_IDE is not set
439 450
@@ -477,6 +488,7 @@ CONFIG_MII=y
477# CONFIG_NET_VENDOR_3COM is not set 488# CONFIG_NET_VENDOR_3COM is not set
478# CONFIG_SMC91X is not set 489# CONFIG_SMC91X is not set
479# CONFIG_SMC911X is not set 490# CONFIG_SMC911X is not set
491# CONFIG_SMSC911X is not set
480# CONFIG_NET_TULIP is not set 492# CONFIG_NET_TULIP is not set
481# CONFIG_HP100 is not set 493# CONFIG_HP100 is not set
482# CONFIG_IBM_NEW_EMAC_ZMII is not set 494# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -492,7 +504,6 @@ CONFIG_NET_PCI=y
492# CONFIG_ADAPTEC_STARFIRE is not set 504# CONFIG_ADAPTEC_STARFIRE is not set
493# CONFIG_B44 is not set 505# CONFIG_B44 is not set
494# CONFIG_FORCEDETH is not set 506# CONFIG_FORCEDETH is not set
495# CONFIG_EEPRO100 is not set
496# CONFIG_E100 is not set 507# CONFIG_E100 is not set
497# CONFIG_FEALNX is not set 508# CONFIG_FEALNX is not set
498# CONFIG_NATSEMI is not set 509# CONFIG_NATSEMI is not set
@@ -506,6 +517,7 @@ CONFIG_8139TOO=y
506# CONFIG_R6040 is not set 517# CONFIG_R6040 is not set
507# CONFIG_SIS900 is not set 518# CONFIG_SIS900 is not set
508# CONFIG_EPIC100 is not set 519# CONFIG_EPIC100 is not set
520# CONFIG_SMSC9420 is not set
509# CONFIG_SUNDANCE is not set 521# CONFIG_SUNDANCE is not set
510# CONFIG_TLAN is not set 522# CONFIG_TLAN is not set
511# CONFIG_VIA_RHINE is not set 523# CONFIG_VIA_RHINE is not set
@@ -611,6 +623,7 @@ CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 623CONFIG_SERIAL_CORE_CONSOLE=y
612# CONFIG_SERIAL_JSM is not set 624# CONFIG_SERIAL_JSM is not set
613CONFIG_UNIX98_PTYS=y 625CONFIG_UNIX98_PTYS=y
626# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
614CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
615CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
616# CONFIG_IPMI_HANDLER is not set 629# CONFIG_IPMI_HANDLER is not set
@@ -643,11 +656,11 @@ CONFIG_SH_WDT=y
643# 656#
644# CONFIG_PCIPCWATCHDOG is not set 657# CONFIG_PCIPCWATCHDOG is not set
645# CONFIG_WDTPCI is not set 658# CONFIG_WDTPCI is not set
659CONFIG_SSB_POSSIBLE=y
646 660
647# 661#
648# Sonics Silicon Backplane 662# Sonics Silicon Backplane
649# 663#
650CONFIG_SSB_POSSIBLE=y
651# CONFIG_SSB is not set 664# CONFIG_SSB is not set
652 665
653# 666#
@@ -657,7 +670,7 @@ CONFIG_SSB_POSSIBLE=y
657# CONFIG_MFD_SM501 is not set 670# CONFIG_MFD_SM501 is not set
658# CONFIG_HTC_PASIC3 is not set 671# CONFIG_HTC_PASIC3 is not set
659# CONFIG_MFD_TMIO is not set 672# CONFIG_MFD_TMIO is not set
660# CONFIG_MFD_WM8400 is not set 673# CONFIG_REGULATOR is not set
661 674
662# 675#
663# Multimedia devices 676# Multimedia devices
@@ -732,6 +745,7 @@ CONFIG_FB_PVR2=y
732# CONFIG_FB_SH_MOBILE_LCDC is not set 745# CONFIG_FB_SH_MOBILE_LCDC is not set
733# CONFIG_FB_VIRTUAL is not set 746# CONFIG_FB_VIRTUAL is not set
734# CONFIG_FB_METRONOME is not set 747# CONFIG_FB_METRONOME is not set
748# CONFIG_FB_MB862XX is not set
735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
736 750
737# 751#
@@ -788,9 +802,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
788# 802#
789 803
790# 804#
791# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 805# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
792# 806#
793# CONFIG_USB_GADGET is not set 807# CONFIG_USB_GADGET is not set
808# CONFIG_UWB is not set
794# CONFIG_MMC is not set 809# CONFIG_MMC is not set
795# CONFIG_MEMSTICK is not set 810# CONFIG_MEMSTICK is not set
796# CONFIG_NEW_LEDS is not set 811# CONFIG_NEW_LEDS is not set
@@ -847,10 +862,7 @@ CONFIG_TMPFS=y
847CONFIG_HUGETLBFS=y 862CONFIG_HUGETLBFS=y
848CONFIG_HUGETLB_PAGE=y 863CONFIG_HUGETLB_PAGE=y
849# CONFIG_CONFIGFS_FS is not set 864# CONFIG_CONFIGFS_FS is not set
850 865CONFIG_MISC_FILESYSTEMS=y
851#
852# Miscellaneous filesystems
853#
854# CONFIG_ADFS_FS is not set 866# CONFIG_ADFS_FS is not set
855# CONFIG_AFFS_FS is not set 867# CONFIG_AFFS_FS is not set
856# CONFIG_HFS_FS is not set 868# CONFIG_HFS_FS is not set
@@ -901,13 +913,19 @@ CONFIG_FRAME_WARN=1024
901# CONFIG_DEBUG_MEMORY_INIT is not set 913# CONFIG_DEBUG_MEMORY_INIT is not set
902# CONFIG_RCU_CPU_STALL_DETECTOR is not set 914# CONFIG_RCU_CPU_STALL_DETECTOR is not set
903# CONFIG_LATENCYTOP is not set 915# CONFIG_LATENCYTOP is not set
904CONFIG_NOP_TRACER=y 916CONFIG_HAVE_FUNCTION_TRACER=y
905CONFIG_HAVE_FTRACE=y 917CONFIG_HAVE_DYNAMIC_FTRACE=y
918CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
919
920#
921# Tracers
922#
906# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 923# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
907# CONFIG_SAMPLES is not set 924# CONFIG_SAMPLES is not set
925CONFIG_HAVE_ARCH_KGDB=y
908# CONFIG_SH_STANDARD_BIOS is not set 926# CONFIG_SH_STANDARD_BIOS is not set
909# CONFIG_EARLY_SCIF_CONSOLE is not set 927# CONFIG_EARLY_SCIF_CONSOLE is not set
910# CONFIG_SH_KGDB is not set 928# CONFIG_MORE_COMPILE_OPTIONS is not set
911 929
912# 930#
913# Security options 931# Security options
@@ -923,6 +941,7 @@ CONFIG_CRYPTO=y
923# 941#
924# CONFIG_CRYPTO_FIPS is not set 942# CONFIG_CRYPTO_FIPS is not set
925# CONFIG_CRYPTO_MANAGER is not set 943# CONFIG_CRYPTO_MANAGER is not set
944# CONFIG_CRYPTO_MANAGER2 is not set
926# CONFIG_CRYPTO_GF128MUL is not set 945# CONFIG_CRYPTO_GF128MUL is not set
927# CONFIG_CRYPTO_NULL is not set 946# CONFIG_CRYPTO_NULL is not set
928# CONFIG_CRYPTO_CRYPTD is not set 947# CONFIG_CRYPTO_CRYPTD is not set
@@ -1006,6 +1025,7 @@ CONFIG_CRYPTO_HW=y
1006# Library routines 1025# Library routines
1007# 1026#
1008CONFIG_BITREVERSE=y 1027CONFIG_BITREVERSE=y
1028CONFIG_GENERIC_FIND_LAST_BIT=y
1009# CONFIG_CRC_CCITT is not set 1029# CONFIG_CRC_CCITT is not set
1010# CONFIG_CRC16 is not set 1030# CONFIG_CRC16 is not set
1011# CONFIG_CRC_T10DIF is not set 1031# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig
index 8f4329fbbd39..461bfb350221 100644
--- a/arch/sh/configs/edosk7705_defconfig
+++ b/arch/sh/configs/edosk7705_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc6 3# Linux kernel version: 2.6.28
4# Wed Dec 17 13:53:02 2008 4# Fri Jan 9 16:55:29 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -64,7 +64,6 @@ CONFIG_SHMEM=y
64CONFIG_SLUB=y 64CONFIG_SLUB=y
65# CONFIG_SLOB is not set 65# CONFIG_SLOB is not set
66# CONFIG_PROFILING is not set 66# CONFIG_PROFILING is not set
67# CONFIG_MARKERS is not set
68CONFIG_HAVE_OPROFILE=y 67CONFIG_HAVE_OPROFILE=y
69CONFIG_HAVE_IOREMAP_PROT=y 68CONFIG_HAVE_IOREMAP_PROT=y
70CONFIG_HAVE_KPROBES=y 69CONFIG_HAVE_KPROBES=y
@@ -72,11 +71,14 @@ CONFIG_HAVE_KRETPROBES=y
72CONFIG_HAVE_ARCH_TRACEHOOK=y 71CONFIG_HAVE_ARCH_TRACEHOOK=y
73CONFIG_HAVE_CLK=y 72CONFIG_HAVE_CLK=y
74CONFIG_HAVE_GENERIC_DMA_COHERENT=y 73CONFIG_HAVE_GENERIC_DMA_COHERENT=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=1 74CONFIG_BASE_SMALL=1
77# CONFIG_MODULES is not set 75# CONFIG_MODULES is not set
78# CONFIG_BLOCK is not set 76# CONFIG_BLOCK is not set
79CONFIG_CLASSIC_RCU=y 77CONFIG_CLASSIC_RCU=y
78# CONFIG_TREE_RCU is not set
79# CONFIG_PREEMPT_RCU is not set
80# CONFIG_TREE_RCU_TRACE is not set
81# CONFIG_PREEMPT_RCU_TRACE is not set
80# CONFIG_FREEZER is not set 82# CONFIG_FREEZER is not set
81 83
82# 84#
@@ -151,7 +153,6 @@ CONFIG_SPARSEMEM_STATIC=y
151CONFIG_PAGEFLAGS_EXTENDED=y 153CONFIG_PAGEFLAGS_EXTENDED=y
152CONFIG_SPLIT_PTLOCK_CPUS=4 154CONFIG_SPLIT_PTLOCK_CPUS=4
153CONFIG_MIGRATION=y 155CONFIG_MIGRATION=y
154# CONFIG_RESOURCES_64BIT is not set
155# CONFIG_PHYS_ADDR_T_64BIT is not set 156# CONFIG_PHYS_ADDR_T_64BIT is not set
156CONFIG_ZONE_DMA_FLAG=0 157CONFIG_ZONE_DMA_FLAG=0
157CONFIG_NR_QUICK=2 158CONFIG_NR_QUICK=2
@@ -362,7 +363,6 @@ CONFIG_SSB_POSSIBLE=y
362# CONFIG_DMADEVICES is not set 363# CONFIG_DMADEVICES is not set
363# CONFIG_UIO is not set 364# CONFIG_UIO is not set
364# CONFIG_STAGING is not set 365# CONFIG_STAGING is not set
365CONFIG_STAGING_EXCLUDE_BUILD=y
366 366
367# 367#
368# File systems 368# File systems
@@ -382,10 +382,7 @@ CONFIG_STAGING_EXCLUDE_BUILD=y
382# CONFIG_TMPFS is not set 382# CONFIG_TMPFS is not set
383# CONFIG_HUGETLBFS is not set 383# CONFIG_HUGETLBFS is not set
384# CONFIG_HUGETLB_PAGE is not set 384# CONFIG_HUGETLB_PAGE is not set
385 385CONFIG_MISC_FILESYSTEMS=y
386#
387# Miscellaneous filesystems
388#
389# CONFIG_NLS is not set 386# CONFIG_NLS is not set
390 387
391# 388#
@@ -426,6 +423,7 @@ CONFIG_HAVE_ARCH_KGDB=y
426# 423#
427# Library routines 424# Library routines
428# 425#
426CONFIG_GENERIC_FIND_LAST_BIT=y
429# CONFIG_CRC_CCITT is not set 427# CONFIG_CRC_CCITT is not set
430# CONFIG_CRC16 is not set 428# CONFIG_CRC16 is not set
431# CONFIG_CRC_T10DIF is not set 429# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig
index 158006847ad6..14d4b35685a1 100644
--- a/arch/sh/configs/edosk7760_defconfig
+++ b/arch/sh/configs/edosk7760_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:20:09 2008 4# Fri Jan 9 16:55:48 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,13 +78,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 78CONFIG_SHMEM=y
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 81CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 82# CONFIG_SLAB is not set
81CONFIG_SLUB=y 83CONFIG_SLUB=y
82# CONFIG_SLOB is not set 84# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 85# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 88CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 100CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_DEFAULT_CFQ=y
121# CONFIG_DEFAULT_NOOP is not set 119# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="cfq" 120CONFIG_DEFAULT_IOSCHED="cfq"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -128,6 +130,7 @@ CONFIG_CLASSIC_RCU=y
128# 130#
129CONFIG_CPU_SH4=y 131CONFIG_CPU_SH4=y
130# CONFIG_CPU_SUBTYPE_SH7619 is not set 132# CONFIG_CPU_SUBTYPE_SH7619 is not set
133# CONFIG_CPU_SUBTYPE_SH7201 is not set
131# CONFIG_CPU_SUBTYPE_SH7203 is not set 134# CONFIG_CPU_SUBTYPE_SH7203 is not set
132# CONFIG_CPU_SUBTYPE_SH7206 is not set 135# CONFIG_CPU_SUBTYPE_SH7206 is not set
133# CONFIG_CPU_SUBTYPE_SH7263 is not set 136# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -191,7 +194,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
191CONFIG_SPARSEMEM_STATIC=y 194CONFIG_SPARSEMEM_STATIC=y
192CONFIG_PAGEFLAGS_EXTENDED=y 195CONFIG_PAGEFLAGS_EXTENDED=y
193CONFIG_SPLIT_PTLOCK_CPUS=4 196CONFIG_SPLIT_PTLOCK_CPUS=4
194# CONFIG_RESOURCES_64BIT is not set
195# CONFIG_PHYS_ADDR_T_64BIT is not set 197# CONFIG_PHYS_ADDR_T_64BIT is not set
196CONFIG_ZONE_DMA_FLAG=0 198CONFIG_ZONE_DMA_FLAG=0
197CONFIG_NR_QUICK=2 199CONFIG_NR_QUICK=2
@@ -272,7 +274,6 @@ CONFIG_SCHED_HRTICK=y
272# CONFIG_PREEMPT_NONE is not set 274# CONFIG_PREEMPT_NONE is not set
273# CONFIG_PREEMPT_VOLUNTARY is not set 275# CONFIG_PREEMPT_VOLUNTARY is not set
274CONFIG_PREEMPT=y 276CONFIG_PREEMPT=y
275# CONFIG_PREEMPT_RCU is not set
276CONFIG_GUSA=y 277CONFIG_GUSA=y
277# CONFIG_GUSA_RB is not set 278# CONFIG_GUSA_RB is not set
278 279
@@ -298,11 +299,18 @@ CONFIG_BINFMT_ELF=y
298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
299# CONFIG_HAVE_AOUT is not set 300# CONFIG_HAVE_AOUT is not set
300# CONFIG_BINFMT_MISC is not set 301# CONFIG_BINFMT_MISC is not set
302
303#
304# Power management options (EXPERIMENTAL)
305#
306# CONFIG_PM is not set
307# CONFIG_CPU_IDLE is not set
301CONFIG_NET=y 308CONFIG_NET=y
302 309
303# 310#
304# Networking options 311# Networking options
305# 312#
313CONFIG_COMPAT_NET_DEV_OPS=y
306CONFIG_PACKET=y 314CONFIG_PACKET=y
307# CONFIG_PACKET_MMAP is not set 315# CONFIG_PACKET_MMAP is not set
308CONFIG_UNIX=y 316CONFIG_UNIX=y
@@ -353,6 +361,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_ECONET is not set 361# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 362# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
364# CONFIG_DCB is not set
356 365
357# 366#
358# Network testing 367# Network testing
@@ -368,8 +377,8 @@ CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 377# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_OLD_REGULATORY is not set 378# CONFIG_WIRELESS_OLD_REGULATORY is not set
370# CONFIG_WIRELESS_EXT is not set 379# CONFIG_WIRELESS_EXT is not set
380# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set 381# CONFIG_MAC80211 is not set
372# CONFIG_IEEE80211 is not set
373# CONFIG_RFKILL is not set 382# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 383# CONFIG_NET_9P is not set
375 384
@@ -510,6 +519,7 @@ CONFIG_MII=y
510# CONFIG_STNIC is not set 519# CONFIG_STNIC is not set
511CONFIG_SMC91X=y 520CONFIG_SMC91X=y
512# CONFIG_SMC911X is not set 521# CONFIG_SMC911X is not set
522# CONFIG_SMSC911X is not set
513# CONFIG_IBM_NEW_EMAC_ZMII is not set 523# CONFIG_IBM_NEW_EMAC_ZMII is not set
514# CONFIG_IBM_NEW_EMAC_RGMII is not set 524# CONFIG_IBM_NEW_EMAC_RGMII is not set
515# CONFIG_IBM_NEW_EMAC_TAH is not set 525# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -592,6 +602,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
592CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
593CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
594CONFIG_UNIX98_PTYS=y 604CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
595CONFIG_LEGACY_PTYS=y 606CONFIG_LEGACY_PTYS=y
596CONFIG_LEGACY_PTY_COUNT=256 607CONFIG_LEGACY_PTY_COUNT=256
597# CONFIG_IPMI_HANDLER is not set 608# CONFIG_IPMI_HANDLER is not set
@@ -632,8 +643,8 @@ CONFIG_I2C_SH7760=y
632# Miscellaneous I2C Chip support 643# Miscellaneous I2C Chip support
633# 644#
634# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
635# CONFIG_AT24 is not set 646# CONFIG_EEPROM_AT24 is not set
636# CONFIG_SENSORS_EEPROM is not set 647# CONFIG_EEPROM_LEGACY is not set
637# CONFIG_SENSORS_PCF8574 is not set 648# CONFIG_SENSORS_PCF8574 is not set
638# CONFIG_PCF8575 is not set 649# CONFIG_PCF8575 is not set
639# CONFIG_SENSORS_PCA9539 is not set 650# CONFIG_SENSORS_PCA9539 is not set
@@ -651,11 +662,11 @@ CONFIG_I2C_DEBUG_CHIP=y
651# CONFIG_THERMAL is not set 662# CONFIG_THERMAL is not set
652# CONFIG_THERMAL_HWMON is not set 663# CONFIG_THERMAL_HWMON is not set
653# CONFIG_WATCHDOG is not set 664# CONFIG_WATCHDOG is not set
665CONFIG_SSB_POSSIBLE=y
654 666
655# 667#
656# Sonics Silicon Backplane 668# Sonics Silicon Backplane
657# 669#
658CONFIG_SSB_POSSIBLE=y
659# CONFIG_SSB is not set 670# CONFIG_SSB is not set
660 671
661# 672#
@@ -664,9 +675,12 @@ CONFIG_SSB_POSSIBLE=y
664# CONFIG_MFD_CORE is not set 675# CONFIG_MFD_CORE is not set
665# CONFIG_MFD_SM501 is not set 676# CONFIG_MFD_SM501 is not set
666# CONFIG_HTC_PASIC3 is not set 677# CONFIG_HTC_PASIC3 is not set
678# CONFIG_TWL4030_CORE is not set
667# CONFIG_MFD_TMIO is not set 679# CONFIG_MFD_TMIO is not set
680# CONFIG_PMIC_DA903X is not set
668# CONFIG_MFD_WM8400 is not set 681# CONFIG_MFD_WM8400 is not set
669# CONFIG_MFD_WM8350_I2C is not set 682# CONFIG_MFD_WM8350_I2C is not set
683# CONFIG_REGULATOR is not set
670 684
671# 685#
672# Multimedia devices 686# Multimedia devices
@@ -693,15 +707,16 @@ CONFIG_FB=m
693# CONFIG_FIRMWARE_EDID is not set 707# CONFIG_FIRMWARE_EDID is not set
694# CONFIG_FB_DDC is not set 708# CONFIG_FB_DDC is not set
695# CONFIG_FB_BOOT_VESA_SUPPORT is not set 709# CONFIG_FB_BOOT_VESA_SUPPORT is not set
696CONFIG_FB_CFB_FILLRECT=m 710# CONFIG_FB_CFB_FILLRECT is not set
697CONFIG_FB_CFB_COPYAREA=m 711# CONFIG_FB_CFB_COPYAREA is not set
698CONFIG_FB_CFB_IMAGEBLIT=m 712# CONFIG_FB_CFB_IMAGEBLIT is not set
699# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 713# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
700# CONFIG_FB_SYS_FILLRECT is not set 714CONFIG_FB_SYS_FILLRECT=m
701# CONFIG_FB_SYS_COPYAREA is not set 715CONFIG_FB_SYS_COPYAREA=m
702# CONFIG_FB_SYS_IMAGEBLIT is not set 716CONFIG_FB_SYS_IMAGEBLIT=m
703# CONFIG_FB_FOREIGN_ENDIAN is not set 717# CONFIG_FB_FOREIGN_ENDIAN is not set
704# CONFIG_FB_SYS_FOPS is not set 718CONFIG_FB_SYS_FOPS=m
719CONFIG_FB_DEFERRED_IO=y
705# CONFIG_FB_SVGALIB is not set 720# CONFIG_FB_SVGALIB is not set
706# CONFIG_FB_MACMODES is not set 721# CONFIG_FB_MACMODES is not set
707# CONFIG_FB_BACKLIGHT is not set 722# CONFIG_FB_BACKLIGHT is not set
@@ -716,6 +731,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
716# CONFIG_FB_SH7760 is not set 731# CONFIG_FB_SH7760 is not set
717# CONFIG_FB_VIRTUAL is not set 732# CONFIG_FB_VIRTUAL is not set
718# CONFIG_FB_METRONOME is not set 733# CONFIG_FB_METRONOME is not set
734# CONFIG_FB_MB862XX is not set
719# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
720 736
721# 737#
@@ -737,6 +753,7 @@ CONFIG_SND_PCM=y
737# CONFIG_SND_SEQUENCER is not set 753# CONFIG_SND_SEQUENCER is not set
738# CONFIG_SND_MIXER_OSS is not set 754# CONFIG_SND_MIXER_OSS is not set
739# CONFIG_SND_PCM_OSS is not set 755# CONFIG_SND_PCM_OSS is not set
756# CONFIG_SND_HRTIMER is not set
740# CONFIG_SND_DYNAMIC_MINORS is not set 757# CONFIG_SND_DYNAMIC_MINORS is not set
741# CONFIG_SND_SUPPORT_OLD_API is not set 758# CONFIG_SND_SUPPORT_OLD_API is not set
742# CONFIG_SND_VERBOSE_PROCFS is not set 759# CONFIG_SND_VERBOSE_PROCFS is not set
@@ -753,6 +770,7 @@ CONFIG_SND_SOC=y
753# 770#
754# SoC Audio support for SuperH 771# SoC Audio support for SuperH
755# 772#
773CONFIG_SND_SOC_I2C_AND_SPI=y
756# CONFIG_SND_SOC_ALL_CODECS is not set 774# CONFIG_SND_SOC_ALL_CODECS is not set
757# CONFIG_SOUND_PRIME is not set 775# CONFIG_SOUND_PRIME is not set
758# CONFIG_HID_SUPPORT is not set 776# CONFIG_HID_SUPPORT is not set
@@ -823,10 +841,7 @@ CONFIG_TMPFS_POSIX_ACL=y
823# CONFIG_HUGETLBFS is not set 841# CONFIG_HUGETLBFS is not set
824# CONFIG_HUGETLB_PAGE is not set 842# CONFIG_HUGETLB_PAGE is not set
825# CONFIG_CONFIGFS_FS is not set 843# CONFIG_CONFIGFS_FS is not set
826 844CONFIG_MISC_FILESYSTEMS=y
827#
828# Miscellaneous filesystems
829#
830# CONFIG_ADFS_FS is not set 845# CONFIG_ADFS_FS is not set
831# CONFIG_AFFS_FS is not set 846# CONFIG_AFFS_FS is not set
832# CONFIG_HFS_FS is not set 847# CONFIG_HFS_FS is not set
@@ -950,6 +965,7 @@ CONFIG_DEBUG_INFO=y
950# CONFIG_DEBUG_MEMORY_INIT is not set 965# CONFIG_DEBUG_MEMORY_INIT is not set
951# CONFIG_DEBUG_LIST is not set 966# CONFIG_DEBUG_LIST is not set
952# CONFIG_DEBUG_SG is not set 967# CONFIG_DEBUG_SG is not set
968# CONFIG_DEBUG_NOTIFIERS is not set
953# CONFIG_FRAME_POINTER is not set 969# CONFIG_FRAME_POINTER is not set
954# CONFIG_RCU_TORTURE_TEST is not set 970# CONFIG_RCU_TORTURE_TEST is not set
955# CONFIG_RCU_CPU_STALL_DETECTOR is not set 971# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -958,17 +974,25 @@ CONFIG_DEBUG_INFO=y
958# CONFIG_FAULT_INJECTION is not set 974# CONFIG_FAULT_INJECTION is not set
959# CONFIG_LATENCYTOP is not set 975# CONFIG_LATENCYTOP is not set
960CONFIG_SYSCTL_SYSCALL_CHECK=y 976CONFIG_SYSCTL_SYSCALL_CHECK=y
961CONFIG_NOP_TRACER=y 977CONFIG_HAVE_FUNCTION_TRACER=y
962CONFIG_HAVE_FTRACE=y 978CONFIG_HAVE_DYNAMIC_FTRACE=y
963# CONFIG_FTRACE is not set 979CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
980
981#
982# Tracers
983#
984# CONFIG_FUNCTION_TRACER is not set
964# CONFIG_IRQSOFF_TRACER is not set 985# CONFIG_IRQSOFF_TRACER is not set
965# CONFIG_PREEMPT_TRACER is not set 986# CONFIG_PREEMPT_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 987# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 988# CONFIG_CONTEXT_SWITCH_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 989# CONFIG_BOOT_TRACER is not set
990# CONFIG_TRACE_BRANCH_PROFILING is not set
969# CONFIG_STACK_TRACER is not set 991# CONFIG_STACK_TRACER is not set
970# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 992# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
971# CONFIG_SAMPLES is not set 993# CONFIG_SAMPLES is not set
994CONFIG_HAVE_ARCH_KGDB=y
995# CONFIG_KGDB is not set
972# CONFIG_SH_STANDARD_BIOS is not set 996# CONFIG_SH_STANDARD_BIOS is not set
973CONFIG_EARLY_SCIF_CONSOLE=y 997CONFIG_EARLY_SCIF_CONSOLE=y
974CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 998CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
@@ -978,7 +1002,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
978# CONFIG_DEBUG_STACK_USAGE is not set 1002# CONFIG_DEBUG_STACK_USAGE is not set
979# CONFIG_4KSTACKS is not set 1003# CONFIG_4KSTACKS is not set
980# CONFIG_IRQSTACKS is not set 1004# CONFIG_IRQSTACKS is not set
981# CONFIG_SH_KGDB is not set 1005CONFIG_DUMP_CODE=y
1006# CONFIG_SH_NO_BSS_INIT is not set
1007# CONFIG_MORE_COMPILE_OPTIONS is not set
982 1008
983# 1009#
984# Security options 1010# Security options
@@ -994,7 +1020,11 @@ CONFIG_CRYPTO=y
994# 1020#
995# CONFIG_CRYPTO_FIPS is not set 1021# CONFIG_CRYPTO_FIPS is not set
996CONFIG_CRYPTO_ALGAPI=y 1022CONFIG_CRYPTO_ALGAPI=y
1023CONFIG_CRYPTO_ALGAPI2=y
1024CONFIG_CRYPTO_HASH=y
1025CONFIG_CRYPTO_HASH2=y
997# CONFIG_CRYPTO_MANAGER is not set 1026# CONFIG_CRYPTO_MANAGER is not set
1027# CONFIG_CRYPTO_MANAGER2 is not set
998# CONFIG_CRYPTO_GF128MUL is not set 1028# CONFIG_CRYPTO_GF128MUL is not set
999# CONFIG_CRYPTO_NULL is not set 1029# CONFIG_CRYPTO_NULL is not set
1000# CONFIG_CRYPTO_CRYPTD is not set 1030# CONFIG_CRYPTO_CRYPTD is not set
@@ -1077,6 +1107,7 @@ CONFIG_CRYPTO_HW=y
1077# Library routines 1107# Library routines
1078# 1108#
1079CONFIG_BITREVERSE=y 1109CONFIG_BITREVERSE=y
1110CONFIG_GENERIC_FIND_LAST_BIT=y
1080# CONFIG_CRC_CCITT is not set 1111# CONFIG_CRC_CCITT is not set
1081# CONFIG_CRC16 is not set 1112# CONFIG_CRC16 is not set
1082# CONFIG_CRC_T10DIF is not set 1113# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig
index 1032b235f080..847a25106635 100644
--- a/arch/sh/configs/hp6xx_defconfig
+++ b/arch/sh/configs/hp6xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:23:53 2008 4# Fri Jan 9 16:56:55 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,7 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_SYS_SUPPORTS_PM=y 19CONFIG_ARCH_SUSPEND_POSSIBLE=y
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
20CONFIG_SYS_SUPPORTS_APM_EMULATION=y 21CONFIG_SYS_SUPPORTS_APM_EMULATION=y
21CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -70,12 +71,10 @@ CONFIG_EVENTFD=y
70CONFIG_SHMEM=y 71CONFIG_SHMEM=y
71CONFIG_AIO=y 72CONFIG_AIO=y
72CONFIG_VM_EVENT_COUNTERS=y 73CONFIG_VM_EVENT_COUNTERS=y
73CONFIG_PCI_QUIRKS=y
74CONFIG_SLAB=y 74CONFIG_SLAB=y
75# CONFIG_SLUB is not set 75# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set 76# CONFIG_SLOB is not set
77# CONFIG_PROFILING is not set 77# CONFIG_PROFILING is not set
78# CONFIG_MARKERS is not set
79CONFIG_HAVE_OPROFILE=y 78CONFIG_HAVE_OPROFILE=y
80CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
81CONFIG_HAVE_KPROBES=y 80CONFIG_HAVE_KPROBES=y
@@ -85,13 +84,11 @@ CONFIG_HAVE_CLK=y
85CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
86CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
87CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
88# CONFIG_TINY_SHMEM is not set
89CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
90# CONFIG_MODULES is not set 88# CONFIG_MODULES is not set
91CONFIG_BLOCK=y 89CONFIG_BLOCK=y
92# CONFIG_LBD is not set 90# CONFIG_LBD is not set
93# CONFIG_BLK_DEV_IO_TRACE is not set 91# CONFIG_BLK_DEV_IO_TRACE is not set
94# CONFIG_LSF is not set
95# CONFIG_BLK_DEV_BSG is not set 92# CONFIG_BLK_DEV_BSG is not set
96# CONFIG_BLK_DEV_INTEGRITY is not set 93# CONFIG_BLK_DEV_INTEGRITY is not set
97 94
@@ -108,6 +105,10 @@ CONFIG_DEFAULT_AS=y
108# CONFIG_DEFAULT_NOOP is not set 105# CONFIG_DEFAULT_NOOP is not set
109CONFIG_DEFAULT_IOSCHED="anticipatory" 106CONFIG_DEFAULT_IOSCHED="anticipatory"
110CONFIG_CLASSIC_RCU=y 107CONFIG_CLASSIC_RCU=y
108# CONFIG_TREE_RCU is not set
109# CONFIG_PREEMPT_RCU is not set
110# CONFIG_TREE_RCU_TRACE is not set
111# CONFIG_PREEMPT_RCU_TRACE is not set
111CONFIG_FREEZER=y 112CONFIG_FREEZER=y
112 113
113# 114#
@@ -115,6 +116,7 @@ CONFIG_FREEZER=y
115# 116#
116CONFIG_CPU_SH3=y 117CONFIG_CPU_SH3=y
117# CONFIG_CPU_SUBTYPE_SH7619 is not set 118# CONFIG_CPU_SUBTYPE_SH7619 is not set
119# CONFIG_CPU_SUBTYPE_SH7201 is not set
118# CONFIG_CPU_SUBTYPE_SH7203 is not set 120# CONFIG_CPU_SUBTYPE_SH7203 is not set
119# CONFIG_CPU_SUBTYPE_SH7206 is not set 121# CONFIG_CPU_SUBTYPE_SH7206 is not set
120# CONFIG_CPU_SUBTYPE_SH7263 is not set 122# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -178,7 +180,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
178CONFIG_SPARSEMEM_STATIC=y 180CONFIG_SPARSEMEM_STATIC=y
179CONFIG_PAGEFLAGS_EXTENDED=y 181CONFIG_PAGEFLAGS_EXTENDED=y
180CONFIG_SPLIT_PTLOCK_CPUS=4 182CONFIG_SPLIT_PTLOCK_CPUS=4
181# CONFIG_RESOURCES_64BIT is not set
182# CONFIG_PHYS_ADDR_T_64BIT is not set 183# CONFIG_PHYS_ADDR_T_64BIT is not set
183CONFIG_ZONE_DMA_FLAG=0 184CONFIG_ZONE_DMA_FLAG=0
184CONFIG_NR_QUICK=2 185CONFIG_NR_QUICK=2
@@ -236,7 +237,6 @@ CONFIG_NR_ONCHIP_DMA_CHANNELS=4
236# 237#
237CONFIG_HD6446X_SERIES=y 238CONFIG_HD6446X_SERIES=y
238CONFIG_HD64461=y 239CONFIG_HD64461=y
239# CONFIG_HD64465 is not set
240CONFIG_HD64461_IRQ=36 240CONFIG_HD64461_IRQ=36
241CONFIG_HD64461_IOBASE=0xb0000000 241CONFIG_HD64461_IOBASE=0xb0000000
242CONFIG_HD64461_ENABLER=y 242CONFIG_HD64461_ENABLER=y
@@ -275,7 +275,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
275# 275#
276# Bus options 276# Bus options
277# 277#
278CONFIG_ISA=y
279# CONFIG_ARCH_SUPPORTS_MSI is not set 278# CONFIG_ARCH_SUPPORTS_MSI is not set
280CONFIG_PCCARD=y 279CONFIG_PCCARD=y
281# CONFIG_PCMCIA_DEBUG is not set 280# CONFIG_PCMCIA_DEBUG is not set
@@ -286,9 +285,6 @@ CONFIG_PCMCIA_IOCTL=y
286# 285#
287# PC-card bridges 286# PC-card bridges
288# 287#
289# CONFIG_I82365 is not set
290# CONFIG_TCIC is not set
291CONFIG_PCMCIA_PROBE=y
292 288
293# 289#
294# Executable file formats 290# Executable file formats
@@ -301,13 +297,13 @@ CONFIG_BINFMT_ELF=y
301# 297#
302# Power management options (EXPERIMENTAL) 298# Power management options (EXPERIMENTAL)
303# 299#
304CONFIG_ARCH_SUSPEND_POSSIBLE=y
305CONFIG_PM=y 300CONFIG_PM=y
306# CONFIG_PM_DEBUG is not set 301# CONFIG_PM_DEBUG is not set
307CONFIG_PM_SLEEP=y 302CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND=y 303CONFIG_SUSPEND=y
309CONFIG_SUSPEND_FREEZER=y 304CONFIG_SUSPEND_FREEZER=y
310CONFIG_APM_EMULATION=y 305CONFIG_APM_EMULATION=y
306# CONFIG_CPU_IDLE is not set
311# CONFIG_NET is not set 307# CONFIG_NET is not set
312 308
313# 309#
@@ -326,7 +322,6 @@ CONFIG_EXTRA_FIRMWARE=""
326# CONFIG_SYS_HYPERVISOR is not set 322# CONFIG_SYS_HYPERVISOR is not set
327# CONFIG_MTD is not set 323# CONFIG_MTD is not set
328# CONFIG_PARPORT is not set 324# CONFIG_PARPORT is not set
329# CONFIG_PNP is not set
330CONFIG_BLK_DEV=y 325CONFIG_BLK_DEV=y
331# CONFIG_BLK_DEV_COW_COMMON is not set 326# CONFIG_BLK_DEV_COW_COMMON is not set
332# CONFIG_BLK_DEV_LOOP is not set 327# CONFIG_BLK_DEV_LOOP is not set
@@ -336,6 +331,7 @@ CONFIG_BLK_DEV=y
336CONFIG_MISC_DEVICES=y 331CONFIG_MISC_DEVICES=y
337# CONFIG_EEPROM_93CX6 is not set 332# CONFIG_EEPROM_93CX6 is not set
338# CONFIG_ENCLOSURE_SERVICES is not set 333# CONFIG_ENCLOSURE_SERVICES is not set
334# CONFIG_C2PORT is not set
339CONFIG_HAVE_IDE=y 335CONFIG_HAVE_IDE=y
340# CONFIG_IDE is not set 336# CONFIG_IDE is not set
341 337
@@ -375,18 +371,7 @@ CONFIG_BLK_DEV_SD=y
375# CONFIG_SCSI_SAS_LIBSAS is not set 371# CONFIG_SCSI_SAS_LIBSAS is not set
376# CONFIG_SCSI_SRP_ATTRS is not set 372# CONFIG_SCSI_SRP_ATTRS is not set
377CONFIG_SCSI_LOWLEVEL=y 373CONFIG_SCSI_LOWLEVEL=y
378# CONFIG_SCSI_AHA152X is not set 374# CONFIG_LIBFC is not set
379# CONFIG_SCSI_AIC7XXX_OLD is not set
380# CONFIG_SCSI_IN2000 is not set
381# CONFIG_SCSI_DTC3280 is not set
382# CONFIG_SCSI_FUTURE_DOMAIN is not set
383# CONFIG_SCSI_GENERIC_NCR5380 is not set
384# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
385# CONFIG_SCSI_NCR53C406A is not set
386# CONFIG_SCSI_PAS16 is not set
387# CONFIG_SCSI_QLOGIC_FAS is not set
388# CONFIG_SCSI_SYM53C416 is not set
389# CONFIG_SCSI_T128 is not set
390# CONFIG_SCSI_DEBUG is not set 375# CONFIG_SCSI_DEBUG is not set
391# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 376# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
392# CONFIG_SCSI_DH is not set 377# CONFIG_SCSI_DH is not set
@@ -395,10 +380,7 @@ CONFIG_ATA=y
395CONFIG_SATA_PMP=y 380CONFIG_SATA_PMP=y
396CONFIG_ATA_SFF=y 381CONFIG_ATA_SFF=y
397# CONFIG_SATA_MV is not set 382# CONFIG_SATA_MV is not set
398# CONFIG_PATA_LEGACY is not set
399# CONFIG_PATA_PCMCIA is not set 383# CONFIG_PATA_PCMCIA is not set
400# CONFIG_PATA_QDI is not set
401# CONFIG_PATA_WINBOND_VLB is not set
402CONFIG_PATA_PLATFORM=y 384CONFIG_PATA_PLATFORM=y
403# CONFIG_MD is not set 385# CONFIG_MD is not set
404# CONFIG_PHONE is not set 386# CONFIG_PHONE is not set
@@ -438,11 +420,11 @@ CONFIG_INPUT_TOUCHSCREEN=y
438# CONFIG_TOUCHSCREEN_FUJITSU is not set 420# CONFIG_TOUCHSCREEN_FUJITSU is not set
439# CONFIG_TOUCHSCREEN_GUNZE is not set 421# CONFIG_TOUCHSCREEN_GUNZE is not set
440# CONFIG_TOUCHSCREEN_ELO is not set 422# CONFIG_TOUCHSCREEN_ELO is not set
423# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
441# CONFIG_TOUCHSCREEN_MTOUCH is not set 424# CONFIG_TOUCHSCREEN_MTOUCH is not set
442# CONFIG_TOUCHSCREEN_INEXIO is not set 425# CONFIG_TOUCHSCREEN_INEXIO is not set
443# CONFIG_TOUCHSCREEN_MK712 is not set 426# CONFIG_TOUCHSCREEN_MK712 is not set
444CONFIG_TOUCHSCREEN_HP600=y 427CONFIG_TOUCHSCREEN_HP600=y
445# CONFIG_TOUCHSCREEN_HTCPEN is not set
446# CONFIG_TOUCHSCREEN_PENMOUNT is not set 428# CONFIG_TOUCHSCREEN_PENMOUNT is not set
447# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 429# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
448# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 430# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
@@ -484,11 +466,11 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
484CONFIG_SERIAL_CORE=y 466CONFIG_SERIAL_CORE=y
485CONFIG_SERIAL_CORE_CONSOLE=y 467CONFIG_SERIAL_CORE_CONSOLE=y
486CONFIG_UNIX98_PTYS=y 468CONFIG_UNIX98_PTYS=y
469# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
487CONFIG_LEGACY_PTYS=y 470CONFIG_LEGACY_PTYS=y
488CONFIG_LEGACY_PTY_COUNT=64 471CONFIG_LEGACY_PTY_COUNT=64
489# CONFIG_IPMI_HANDLER is not set 472# CONFIG_IPMI_HANDLER is not set
490CONFIG_HW_RANDOM=y 473CONFIG_HW_RANDOM=y
491# CONFIG_DTLK is not set
492# CONFIG_R3964 is not set 474# CONFIG_R3964 is not set
493 475
494# 476#
@@ -499,7 +481,6 @@ CONFIG_HW_RANDOM=y
499# CONFIG_CARDMAN_4040 is not set 481# CONFIG_CARDMAN_4040 is not set
500# CONFIG_RAW_DRIVER is not set 482# CONFIG_RAW_DRIVER is not set
501# CONFIG_TCG_TPM is not set 483# CONFIG_TCG_TPM is not set
502CONFIG_DEVPORT=y
503# CONFIG_I2C is not set 484# CONFIG_I2C is not set
504# CONFIG_SPI is not set 485# CONFIG_SPI is not set
505# CONFIG_W1 is not set 486# CONFIG_W1 is not set
@@ -508,11 +489,11 @@ CONFIG_DEVPORT=y
508# CONFIG_THERMAL is not set 489# CONFIG_THERMAL is not set
509# CONFIG_THERMAL_HWMON is not set 490# CONFIG_THERMAL_HWMON is not set
510# CONFIG_WATCHDOG is not set 491# CONFIG_WATCHDOG is not set
492CONFIG_SSB_POSSIBLE=y
511 493
512# 494#
513# Sonics Silicon Backplane 495# Sonics Silicon Backplane
514# 496#
515CONFIG_SSB_POSSIBLE=y
516# CONFIG_SSB is not set 497# CONFIG_SSB is not set
517 498
518# 499#
@@ -522,7 +503,7 @@ CONFIG_SSB_POSSIBLE=y
522# CONFIG_MFD_SM501 is not set 503# CONFIG_MFD_SM501 is not set
523# CONFIG_HTC_PASIC3 is not set 504# CONFIG_HTC_PASIC3 is not set
524# CONFIG_MFD_TMIO is not set 505# CONFIG_MFD_TMIO is not set
525# CONFIG_MFD_WM8400 is not set 506# CONFIG_REGULATOR is not set
526 507
527# 508#
528# Multimedia devices 509# Multimedia devices
@@ -552,11 +533,12 @@ CONFIG_FB_CFB_FILLRECT=y
552CONFIG_FB_CFB_COPYAREA=y 533CONFIG_FB_CFB_COPYAREA=y
553CONFIG_FB_CFB_IMAGEBLIT=y 534CONFIG_FB_CFB_IMAGEBLIT=y
554# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 535# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
555# CONFIG_FB_SYS_FILLRECT is not set 536CONFIG_FB_SYS_FILLRECT=y
556# CONFIG_FB_SYS_COPYAREA is not set 537CONFIG_FB_SYS_COPYAREA=y
557# CONFIG_FB_SYS_IMAGEBLIT is not set 538CONFIG_FB_SYS_IMAGEBLIT=y
558# CONFIG_FB_FOREIGN_ENDIAN is not set 539# CONFIG_FB_FOREIGN_ENDIAN is not set
559# CONFIG_FB_SYS_FOPS is not set 540CONFIG_FB_SYS_FOPS=y
541CONFIG_FB_DEFERRED_IO=y
560# CONFIG_FB_SVGALIB is not set 542# CONFIG_FB_SVGALIB is not set
561# CONFIG_FB_MACMODES is not set 543# CONFIG_FB_MACMODES is not set
562# CONFIG_FB_BACKLIGHT is not set 544# CONFIG_FB_BACKLIGHT is not set
@@ -571,6 +553,7 @@ CONFIG_FB_HIT=y
571CONFIG_FB_SH_MOBILE_LCDC=y 553CONFIG_FB_SH_MOBILE_LCDC=y
572# CONFIG_FB_VIRTUAL is not set 554# CONFIG_FB_VIRTUAL is not set
573# CONFIG_FB_METRONOME is not set 555# CONFIG_FB_METRONOME is not set
556# CONFIG_FB_MB862XX is not set
574CONFIG_BACKLIGHT_LCD_SUPPORT=y 557CONFIG_BACKLIGHT_LCD_SUPPORT=y
575CONFIG_LCD_CLASS_DEVICE=y 558CONFIG_LCD_CLASS_DEVICE=y
576# CONFIG_LCD_ILI9320 is not set 559# CONFIG_LCD_ILI9320 is not set
@@ -587,7 +570,6 @@ CONFIG_BACKLIGHT_HP680=y
587# 570#
588# Console display driver support 571# Console display driver support
589# 572#
590# CONFIG_MDA_CONSOLE is not set
591CONFIG_DUMMY_CONSOLE=y 573CONFIG_DUMMY_CONSOLE=y
592CONFIG_FRAMEBUFFER_CONSOLE=y 574CONFIG_FRAMEBUFFER_CONSOLE=y
593# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 575# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
@@ -701,10 +683,7 @@ CONFIG_SYSFS=y
701# CONFIG_HUGETLBFS is not set 683# CONFIG_HUGETLBFS is not set
702# CONFIG_HUGETLB_PAGE is not set 684# CONFIG_HUGETLB_PAGE is not set
703# CONFIG_CONFIGFS_FS is not set 685# CONFIG_CONFIGFS_FS is not set
704 686CONFIG_MISC_FILESYSTEMS=y
705#
706# Miscellaneous filesystems
707#
708# CONFIG_ADFS_FS is not set 687# CONFIG_ADFS_FS is not set
709# CONFIG_AFFS_FS is not set 688# CONFIG_AFFS_FS is not set
710# CONFIG_HFS_FS is not set 689# CONFIG_HFS_FS is not set
@@ -785,13 +764,19 @@ CONFIG_FRAME_WARN=1024
785# CONFIG_DEBUG_MEMORY_INIT is not set 764# CONFIG_DEBUG_MEMORY_INIT is not set
786# CONFIG_RCU_CPU_STALL_DETECTOR is not set 765# CONFIG_RCU_CPU_STALL_DETECTOR is not set
787# CONFIG_LATENCYTOP is not set 766# CONFIG_LATENCYTOP is not set
788CONFIG_NOP_TRACER=y 767CONFIG_HAVE_FUNCTION_TRACER=y
789CONFIG_HAVE_FTRACE=y 768CONFIG_HAVE_DYNAMIC_FTRACE=y
769CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
770
771#
772# Tracers
773#
790# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 774# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
791# CONFIG_SAMPLES is not set 775# CONFIG_SAMPLES is not set
776CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_SH_STANDARD_BIOS is not set 777# CONFIG_SH_STANDARD_BIOS is not set
793# CONFIG_EARLY_SCIF_CONSOLE is not set 778# CONFIG_EARLY_SCIF_CONSOLE is not set
794# CONFIG_SH_KGDB is not set 779# CONFIG_MORE_COMPILE_OPTIONS is not set
795 780
796# 781#
797# Security options 782# Security options
@@ -807,11 +792,15 @@ CONFIG_CRYPTO=y
807# 792#
808# CONFIG_CRYPTO_FIPS is not set 793# CONFIG_CRYPTO_FIPS is not set
809CONFIG_CRYPTO_ALGAPI=y 794CONFIG_CRYPTO_ALGAPI=y
810CONFIG_CRYPTO_AEAD=y 795CONFIG_CRYPTO_ALGAPI2=y
796CONFIG_CRYPTO_AEAD2=y
811CONFIG_CRYPTO_BLKCIPHER=y 797CONFIG_CRYPTO_BLKCIPHER=y
798CONFIG_CRYPTO_BLKCIPHER2=y
812CONFIG_CRYPTO_HASH=y 799CONFIG_CRYPTO_HASH=y
813CONFIG_CRYPTO_RNG=y 800CONFIG_CRYPTO_HASH2=y
801CONFIG_CRYPTO_RNG2=y
814CONFIG_CRYPTO_MANAGER=y 802CONFIG_CRYPTO_MANAGER=y
803CONFIG_CRYPTO_MANAGER2=y
815# CONFIG_CRYPTO_GF128MUL is not set 804# CONFIG_CRYPTO_GF128MUL is not set
816# CONFIG_CRYPTO_NULL is not set 805# CONFIG_CRYPTO_NULL is not set
817# CONFIG_CRYPTO_CRYPTD is not set 806# CONFIG_CRYPTO_CRYPTD is not set
@@ -893,6 +882,7 @@ CONFIG_CRYPTO_MD5=y
893# Library routines 882# Library routines
894# 883#
895CONFIG_BITREVERSE=y 884CONFIG_BITREVERSE=y
885CONFIG_GENERIC_FIND_LAST_BIT=y
896# CONFIG_CRC_CCITT is not set 886# CONFIG_CRC_CCITT is not set
897CONFIG_CRC16=y 887CONFIG_CRC16=y
898CONFIG_CRC_T10DIF=y 888CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig
index b82dfb4da3aa..d3bbbb037716 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:25:51 2008 4# Fri Jan 9 16:58:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -285,6 +287,7 @@ CONFIG_PCI=y
285CONFIG_SH_PCIDMA_NONCOHERENT=y 287CONFIG_SH_PCIDMA_NONCOHERENT=y
286CONFIG_PCI_AUTO=y 288CONFIG_PCI_AUTO=y
287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 289CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
290# CONFIG_PCIEPORTBUS is not set
288# CONFIG_ARCH_SUPPORTS_MSI is not set 291# CONFIG_ARCH_SUPPORTS_MSI is not set
289CONFIG_PCI_LEGACY=y 292CONFIG_PCI_LEGACY=y
290CONFIG_PCCARD=y 293CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -401,6 +411,7 @@ CONFIG_ATALK=m
401# CONFIG_ECONET is not set 411# CONFIG_ECONET is not set
402# CONFIG_WAN_ROUTER is not set 412# CONFIG_WAN_ROUTER is not set
403# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
414# CONFIG_DCB is not set
404 415
405# 416#
406# Network testing 417# Network testing
@@ -416,8 +427,8 @@ CONFIG_WIRELESS=y
416# CONFIG_CFG80211 is not set 427# CONFIG_CFG80211 is not set
417# CONFIG_WIRELESS_OLD_REGULATORY is not set 428# CONFIG_WIRELESS_OLD_REGULATORY is not set
418# CONFIG_WIRELESS_EXT is not set 429# CONFIG_WIRELESS_EXT is not set
430# CONFIG_LIB80211 is not set
419# CONFIG_MAC80211 is not set 431# CONFIG_MAC80211 is not set
420# CONFIG_IEEE80211 is not set
421# CONFIG_RFKILL is not set 432# CONFIG_RFKILL is not set
422# CONFIG_NET_9P is not set 433# CONFIG_NET_9P is not set
423 434
@@ -462,6 +473,7 @@ CONFIG_MISC_DEVICES=y
462# CONFIG_TIFM_CORE is not set 473# CONFIG_TIFM_CORE is not set
463# CONFIG_ENCLOSURE_SERVICES is not set 474# CONFIG_ENCLOSURE_SERVICES is not set
464# CONFIG_HP_ILO is not set 475# CONFIG_HP_ILO is not set
476# CONFIG_C2PORT is not set
465CONFIG_HAVE_IDE=y 477CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 478CONFIG_IDE=y
467 479
@@ -478,7 +490,6 @@ CONFIG_IDE_GD_ATA=y
478CONFIG_BLK_DEV_IDECD=y 490CONFIG_BLK_DEV_IDECD=y
479CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 491CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
480# CONFIG_BLK_DEV_IDETAPE is not set 492# CONFIG_BLK_DEV_IDETAPE is not set
481CONFIG_BLK_DEV_IDESCSI=y
482# CONFIG_IDE_TASK_IOCTL is not set 493# CONFIG_IDE_TASK_IOCTL is not set
483CONFIG_IDE_PROC_FS=y 494CONFIG_IDE_PROC_FS=y
484 495
@@ -508,6 +519,7 @@ CONFIG_BLK_DEV_AEC62XX=y
508# CONFIG_BLK_DEV_JMICRON is not set 519# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 520# CONFIG_BLK_DEV_SC1200 is not set
510# CONFIG_BLK_DEV_PIIX is not set 521# CONFIG_BLK_DEV_PIIX is not set
522# CONFIG_BLK_DEV_IT8172 is not set
511# CONFIG_BLK_DEV_IT8213 is not set 523# CONFIG_BLK_DEV_IT8213 is not set
512# CONFIG_BLK_DEV_IT821X is not set 524# CONFIG_BLK_DEV_IT821X is not set
513# CONFIG_BLK_DEV_NS87415 is not set 525# CONFIG_BLK_DEV_NS87415 is not set
@@ -560,6 +572,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 572# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 573CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 574# CONFIG_ISCSI_TCP is not set
575# CONFIG_SCSI_CXGB3_ISCSI is not set
563# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 576# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
564# CONFIG_SCSI_3W_9XXX is not set 577# CONFIG_SCSI_3W_9XXX is not set
565# CONFIG_SCSI_ACARD is not set 578# CONFIG_SCSI_ACARD is not set
@@ -573,6 +586,8 @@ CONFIG_SCSI_LOWLEVEL=y
573# CONFIG_MEGARAID_LEGACY is not set 586# CONFIG_MEGARAID_LEGACY is not set
574# CONFIG_MEGARAID_SAS is not set 587# CONFIG_MEGARAID_SAS is not set
575# CONFIG_SCSI_HPTIOP is not set 588# CONFIG_SCSI_HPTIOP is not set
589# CONFIG_LIBFC is not set
590# CONFIG_FCOE is not set
576# CONFIG_SCSI_DMX3191D is not set 591# CONFIG_SCSI_DMX3191D is not set
577# CONFIG_SCSI_FUTURE_DOMAIN is not set 592# CONFIG_SCSI_FUTURE_DOMAIN is not set
578# CONFIG_SCSI_IPS is not set 593# CONFIG_SCSI_IPS is not set
@@ -634,6 +649,7 @@ CONFIG_MII=y
634# CONFIG_NET_VENDOR_3COM is not set 649# CONFIG_NET_VENDOR_3COM is not set
635# CONFIG_SMC91X is not set 650# CONFIG_SMC91X is not set
636# CONFIG_SMC911X is not set 651# CONFIG_SMC911X is not set
652# CONFIG_SMSC911X is not set
637# CONFIG_NET_TULIP is not set 653# CONFIG_NET_TULIP is not set
638# CONFIG_HP100 is not set 654# CONFIG_HP100 is not set
639# CONFIG_IBM_NEW_EMAC_ZMII is not set 655# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -649,7 +665,6 @@ CONFIG_NET_PCI=y
649# CONFIG_ADAPTEC_STARFIRE is not set 665# CONFIG_ADAPTEC_STARFIRE is not set
650# CONFIG_B44 is not set 666# CONFIG_B44 is not set
651# CONFIG_FORCEDETH is not set 667# CONFIG_FORCEDETH is not set
652# CONFIG_EEPRO100 is not set
653# CONFIG_E100 is not set 668# CONFIG_E100 is not set
654# CONFIG_FEALNX is not set 669# CONFIG_FEALNX is not set
655# CONFIG_NATSEMI is not set 670# CONFIG_NATSEMI is not set
@@ -659,6 +674,7 @@ CONFIG_8139CP=y
659# CONFIG_R6040 is not set 674# CONFIG_R6040 is not set
660# CONFIG_SIS900 is not set 675# CONFIG_SIS900 is not set
661# CONFIG_EPIC100 is not set 676# CONFIG_EPIC100 is not set
677# CONFIG_SMSC9420 is not set
662# CONFIG_SUNDANCE is not set 678# CONFIG_SUNDANCE is not set
663# CONFIG_TLAN is not set 679# CONFIG_TLAN is not set
664# CONFIG_VIA_RHINE is not set 680# CONFIG_VIA_RHINE is not set
@@ -687,6 +703,7 @@ CONFIG_NETDEV_1000=y
687# CONFIG_JME is not set 703# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 704CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 705# CONFIG_CHELSIO_T1 is not set
706CONFIG_CHELSIO_T3_DEPENDS=y
690# CONFIG_CHELSIO_T3 is not set 707# CONFIG_CHELSIO_T3 is not set
691# CONFIG_ENIC is not set 708# CONFIG_ENIC is not set
692# CONFIG_IXGBE is not set 709# CONFIG_IXGBE is not set
@@ -695,6 +712,7 @@ CONFIG_NETDEV_10000=y
695# CONFIG_MYRI10GE is not set 712# CONFIG_MYRI10GE is not set
696# CONFIG_NETXEN_NIC is not set 713# CONFIG_NETXEN_NIC is not set
697# CONFIG_NIU is not set 714# CONFIG_NIU is not set
715# CONFIG_MLX4_EN is not set
698# CONFIG_MLX4_CORE is not set 716# CONFIG_MLX4_CORE is not set
699# CONFIG_TEHUTI is not set 717# CONFIG_TEHUTI is not set
700# CONFIG_BNX2X is not set 718# CONFIG_BNX2X is not set
@@ -791,6 +809,7 @@ CONFIG_SERIAL_CORE=y
791CONFIG_SERIAL_CORE_CONSOLE=y 809CONFIG_SERIAL_CORE_CONSOLE=y
792# CONFIG_SERIAL_JSM is not set 810# CONFIG_SERIAL_JSM is not set
793CONFIG_UNIX98_PTYS=y 811CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
794CONFIG_LEGACY_PTYS=y 813CONFIG_LEGACY_PTYS=y
795CONFIG_LEGACY_PTY_COUNT=256 814CONFIG_LEGACY_PTY_COUNT=256
796# CONFIG_IPMI_HANDLER is not set 815# CONFIG_IPMI_HANDLER is not set
@@ -832,11 +851,11 @@ CONFIG_HWMON=y
832# CONFIG_THERMAL is not set 851# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set 852# CONFIG_THERMAL_HWMON is not set
834# CONFIG_WATCHDOG is not set 853# CONFIG_WATCHDOG is not set
854CONFIG_SSB_POSSIBLE=y
835 855
836# 856#
837# Sonics Silicon Backplane 857# Sonics Silicon Backplane
838# 858#
839CONFIG_SSB_POSSIBLE=y
840# CONFIG_SSB is not set 859# CONFIG_SSB is not set
841 860
842# 861#
@@ -846,7 +865,7 @@ CONFIG_SSB_POSSIBLE=y
846# CONFIG_MFD_SM501 is not set 865# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 866# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set 867# CONFIG_MFD_TMIO is not set
849# CONFIG_MFD_WM8400 is not set 868# CONFIG_REGULATOR is not set
850 869
851# 870#
852# Multimedia devices 871# Multimedia devices
@@ -952,11 +971,9 @@ CONFIG_HID_COMPAT=y
952CONFIG_HID_A4TECH=m 971CONFIG_HID_A4TECH=m
953CONFIG_HID_APPLE=m 972CONFIG_HID_APPLE=m
954CONFIG_HID_BELKIN=m 973CONFIG_HID_BELKIN=m
955CONFIG_HID_BRIGHT=m
956CONFIG_HID_CHERRY=m 974CONFIG_HID_CHERRY=m
957CONFIG_HID_CHICONY=m 975CONFIG_HID_CHICONY=m
958CONFIG_HID_CYPRESS=m 976CONFIG_HID_CYPRESS=m
959CONFIG_HID_DELL=m
960CONFIG_HID_EZKEY=m 977CONFIG_HID_EZKEY=m
961CONFIG_HID_GYRATION=m 978CONFIG_HID_GYRATION=m
962CONFIG_HID_LOGITECH=m 979CONFIG_HID_LOGITECH=m
@@ -964,12 +981,15 @@ CONFIG_HID_LOGITECH=m
964# CONFIG_LOGIRUMBLEPAD2_FF is not set 981# CONFIG_LOGIRUMBLEPAD2_FF is not set
965CONFIG_HID_MICROSOFT=m 982CONFIG_HID_MICROSOFT=m
966CONFIG_HID_MONTEREY=m 983CONFIG_HID_MONTEREY=m
984# CONFIG_HID_NTRIG is not set
967CONFIG_HID_PANTHERLORD=m 985CONFIG_HID_PANTHERLORD=m
968# CONFIG_PANTHERLORD_FF is not set 986# CONFIG_PANTHERLORD_FF is not set
969CONFIG_HID_PETALYNX=m 987CONFIG_HID_PETALYNX=m
970CONFIG_HID_SAMSUNG=m 988CONFIG_HID_SAMSUNG=m
971CONFIG_HID_SONY=m 989CONFIG_HID_SONY=m
972CONFIG_HID_SUNPLUS=m 990CONFIG_HID_SUNPLUS=m
991# CONFIG_GREENASIA_FF is not set
992# CONFIG_HID_TOPSEED is not set
973CONFIG_THRUSTMASTER_FF=m 993CONFIG_THRUSTMASTER_FF=m
974CONFIG_ZEROPLUS_FF=m 994CONFIG_ZEROPLUS_FF=m
975CONFIG_USB_SUPPORT=y 995CONFIG_USB_SUPPORT=y
@@ -990,6 +1010,8 @@ CONFIG_USB_DEVICE_CLASS=y
990# CONFIG_USB_OTG_WHITELIST is not set 1010# CONFIG_USB_OTG_WHITELIST is not set
991# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1011# CONFIG_USB_OTG_BLACKLIST_HUB is not set
992CONFIG_USB_MON=y 1012CONFIG_USB_MON=y
1013# CONFIG_USB_WUSB is not set
1014# CONFIG_USB_WUSB_CBAF is not set
993 1015
994# 1016#
995# USB Host Controller Drivers 1017# USB Host Controller Drivers
@@ -1007,6 +1029,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1007# CONFIG_USB_UHCI_HCD is not set 1029# CONFIG_USB_UHCI_HCD is not set
1008# CONFIG_USB_SL811_HCD is not set 1030# CONFIG_USB_SL811_HCD is not set
1009# CONFIG_USB_R8A66597_HCD is not set 1031# CONFIG_USB_R8A66597_HCD is not set
1032# CONFIG_USB_WHCI_HCD is not set
1033# CONFIG_USB_HWA_HCD is not set
1010 1034
1011# 1035#
1012# USB Device Class drivers 1036# USB Device Class drivers
@@ -1017,11 +1041,11 @@ CONFIG_USB_PRINTER=m
1017# CONFIG_USB_TMC is not set 1041# CONFIG_USB_TMC is not set
1018 1042
1019# 1043#
1020# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1044# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1021# 1045#
1022 1046
1023# 1047#
1024# may also be needed; see USB_STORAGE Help for more information 1048# see USB_STORAGE Help for more information
1025# 1049#
1026CONFIG_USB_STORAGE=m 1050CONFIG_USB_STORAGE=m
1027# CONFIG_USB_STORAGE_DEBUG is not set 1051# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1119,6 +1143,7 @@ CONFIG_USB_SISUSBVGA_CON=y
1119# CONFIG_USB_ISIGHTFW is not set 1143# CONFIG_USB_ISIGHTFW is not set
1120# CONFIG_USB_VST is not set 1144# CONFIG_USB_VST is not set
1121# CONFIG_USB_GADGET is not set 1145# CONFIG_USB_GADGET is not set
1146# CONFIG_UWB is not set
1122# CONFIG_MMC is not set 1147# CONFIG_MMC is not set
1123# CONFIG_MEMSTICK is not set 1148# CONFIG_MEMSTICK is not set
1124# CONFIG_NEW_LEDS is not set 1149# CONFIG_NEW_LEDS is not set
@@ -1192,10 +1217,7 @@ CONFIG_TMPFS=y
1192# CONFIG_HUGETLBFS is not set 1217# CONFIG_HUGETLBFS is not set
1193# CONFIG_HUGETLB_PAGE is not set 1218# CONFIG_HUGETLB_PAGE is not set
1194# CONFIG_CONFIGFS_FS is not set 1219# CONFIG_CONFIGFS_FS is not set
1195 1220CONFIG_MISC_FILESYSTEMS=y
1196#
1197# Miscellaneous filesystems
1198#
1199# CONFIG_ADFS_FS is not set 1221# CONFIG_ADFS_FS is not set
1200# CONFIG_AFFS_FS is not set 1222# CONFIG_AFFS_FS is not set
1201# CONFIG_HFS_FS is not set 1223# CONFIG_HFS_FS is not set
@@ -1302,14 +1324,20 @@ CONFIG_FRAME_WARN=1024
1302# CONFIG_DEBUG_MEMORY_INIT is not set 1324# CONFIG_DEBUG_MEMORY_INIT is not set
1303# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1325# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1304# CONFIG_LATENCYTOP is not set 1326# CONFIG_LATENCYTOP is not set
1305CONFIG_NOP_TRACER=y 1327CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_FTRACE=y 1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330
1331#
1332# Tracers
1333#
1307# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1334# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1308# CONFIG_SAMPLES is not set 1335# CONFIG_SAMPLES is not set
1336CONFIG_HAVE_ARCH_KGDB=y
1309CONFIG_SH_STANDARD_BIOS=y 1337CONFIG_SH_STANDARD_BIOS=y
1310# CONFIG_EARLY_SCIF_CONSOLE is not set 1338# CONFIG_EARLY_SCIF_CONSOLE is not set
1311# CONFIG_EARLY_PRINTK is not set 1339# CONFIG_EARLY_PRINTK is not set
1312# CONFIG_SH_KGDB is not set 1340# CONFIG_MORE_COMPILE_OPTIONS is not set
1313 1341
1314# 1342#
1315# Security options 1343# Security options
@@ -1325,6 +1353,7 @@ CONFIG_CRYPTO=y
1325# 1353#
1326# CONFIG_CRYPTO_FIPS is not set 1354# CONFIG_CRYPTO_FIPS is not set
1327# CONFIG_CRYPTO_MANAGER is not set 1355# CONFIG_CRYPTO_MANAGER is not set
1356# CONFIG_CRYPTO_MANAGER2 is not set
1328# CONFIG_CRYPTO_GF128MUL is not set 1357# CONFIG_CRYPTO_GF128MUL is not set
1329# CONFIG_CRYPTO_NULL is not set 1358# CONFIG_CRYPTO_NULL is not set
1330# CONFIG_CRYPTO_CRYPTD is not set 1359# CONFIG_CRYPTO_CRYPTD is not set
@@ -1408,6 +1437,7 @@ CONFIG_CRYPTO_HW=y
1408# Library routines 1437# Library routines
1409# 1438#
1410CONFIG_BITREVERSE=y 1439CONFIG_BITREVERSE=y
1440CONFIG_GENERIC_FIND_LAST_BIT=y
1411# CONFIG_CRC_CCITT is not set 1441# CONFIG_CRC_CCITT is not set
1412# CONFIG_CRC16 is not set 1442# CONFIG_CRC16 is not set
1413CONFIG_CRC_T10DIF=y 1443CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig
index c3ecedfc1bc7..d5c5a1dbaa62 100644
--- a/arch/sh/configs/lboxre2_defconfig
+++ b/arch/sh/configs/lboxre2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:29:42 2008 4# Fri Jan 9 17:02:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,7 +88,6 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
@@ -95,11 +95,9 @@ CONFIG_MODULE_UNLOAD=y
95CONFIG_MODULE_FORCE_UNLOAD=y 95CONFIG_MODULE_FORCE_UNLOAD=y
96# CONFIG_MODVERSIONS is not set 96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 98CONFIG_BLOCK=y
100# CONFIG_LBD is not set 99# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 102# CONFIG_BLK_DEV_INTEGRITY is not set
105 103
@@ -116,6 +114,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 116CONFIG_CLASSIC_RCU=y
117# CONFIG_TREE_RCU is not set
118# CONFIG_PREEMPT_RCU is not set
119# CONFIG_TREE_RCU_TRACE is not set
120# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 121# CONFIG_FREEZER is not set
120 122
121# 123#
@@ -123,6 +125,7 @@ CONFIG_CLASSIC_RCU=y
123# 125#
124CONFIG_CPU_SH4=y 126CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 127# CONFIG_CPU_SUBTYPE_SH7619 is not set
128# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 129# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 130# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 131# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -286,6 +288,7 @@ CONFIG_PCI=y
286CONFIG_SH_PCIDMA_NONCOHERENT=y 288CONFIG_SH_PCIDMA_NONCOHERENT=y
287CONFIG_PCI_AUTO=y 289CONFIG_PCI_AUTO=y
288CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 290CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
291# CONFIG_PCIEPORTBUS is not set
289# CONFIG_ARCH_SUPPORTS_MSI is not set 292# CONFIG_ARCH_SUPPORTS_MSI is not set
290CONFIG_PCI_LEGACY=y 293CONFIG_PCI_LEGACY=y
291CONFIG_PCCARD=y 294CONFIG_PCCARD=y
@@ -315,11 +318,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 318# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 319# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 320# CONFIG_BINFMT_MISC is not set
321
322#
323# Power management options (EXPERIMENTAL)
324#
325# CONFIG_PM is not set
326# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 327CONFIG_NET=y
319 328
320# 329#
321# Networking options 330# Networking options
322# 331#
332CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 333CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 334# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 335CONFIG_UNIX=y
@@ -399,6 +409,7 @@ CONFIG_NETFILTER_ADVANCED=y
399# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
400# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
401# CONFIG_NET_SCHED is not set 411# CONFIG_NET_SCHED is not set
412# CONFIG_DCB is not set
402 413
403# 414#
404# Network testing 415# Network testing
@@ -414,8 +425,8 @@ CONFIG_WIRELESS=y
414# CONFIG_CFG80211 is not set 425# CONFIG_CFG80211 is not set
415# CONFIG_WIRELESS_OLD_REGULATORY is not set 426# CONFIG_WIRELESS_OLD_REGULATORY is not set
416# CONFIG_WIRELESS_EXT is not set 427# CONFIG_WIRELESS_EXT is not set
428# CONFIG_LIB80211 is not set
417# CONFIG_MAC80211 is not set 429# CONFIG_MAC80211 is not set
418# CONFIG_IEEE80211 is not set
419# CONFIG_RFKILL is not set 430# CONFIG_RFKILL is not set
420# CONFIG_NET_9P is not set 431# CONFIG_NET_9P is not set
421 432
@@ -459,6 +470,7 @@ CONFIG_MISC_DEVICES=y
459# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_HP_ILO is not set 472# CONFIG_HP_ILO is not set
473# CONFIG_C2PORT is not set
462CONFIG_HAVE_IDE=y 474CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 475# CONFIG_IDE is not set
464 476
@@ -501,6 +513,7 @@ CONFIG_SCSI_WAIT_SCAN=m
501# CONFIG_SCSI_SRP_ATTRS is not set 513# CONFIG_SCSI_SRP_ATTRS is not set
502CONFIG_SCSI_LOWLEVEL=y 514CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_ISCSI_TCP is not set 515# CONFIG_ISCSI_TCP is not set
516# CONFIG_SCSI_CXGB3_ISCSI is not set
504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 517# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
505# CONFIG_SCSI_3W_9XXX is not set 518# CONFIG_SCSI_3W_9XXX is not set
506# CONFIG_SCSI_ACARD is not set 519# CONFIG_SCSI_ACARD is not set
@@ -514,6 +527,8 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_MEGARAID_LEGACY is not set 527# CONFIG_MEGARAID_LEGACY is not set
515# CONFIG_MEGARAID_SAS is not set 528# CONFIG_MEGARAID_SAS is not set
516# CONFIG_SCSI_HPTIOP is not set 529# CONFIG_SCSI_HPTIOP is not set
530# CONFIG_LIBFC is not set
531# CONFIG_FCOE is not set
517# CONFIG_SCSI_DMX3191D is not set 532# CONFIG_SCSI_DMX3191D is not set
518# CONFIG_SCSI_FUTURE_DOMAIN is not set 533# CONFIG_SCSI_FUTURE_DOMAIN is not set
519# CONFIG_SCSI_IPS is not set 534# CONFIG_SCSI_IPS is not set
@@ -627,6 +642,7 @@ CONFIG_MII=y
627# CONFIG_NET_VENDOR_3COM is not set 642# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_SMC91X is not set 643# CONFIG_SMC91X is not set
629# CONFIG_SMC911X is not set 644# CONFIG_SMC911X is not set
645# CONFIG_SMSC911X is not set
630# CONFIG_NET_TULIP is not set 646# CONFIG_NET_TULIP is not set
631# CONFIG_HP100 is not set 647# CONFIG_HP100 is not set
632# CONFIG_IBM_NEW_EMAC_ZMII is not set 648# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -642,7 +658,6 @@ CONFIG_NET_PCI=y
642# CONFIG_ADAPTEC_STARFIRE is not set 658# CONFIG_ADAPTEC_STARFIRE is not set
643# CONFIG_B44 is not set 659# CONFIG_B44 is not set
644# CONFIG_FORCEDETH is not set 660# CONFIG_FORCEDETH is not set
645# CONFIG_EEPRO100 is not set
646# CONFIG_E100 is not set 661# CONFIG_E100 is not set
647# CONFIG_FEALNX is not set 662# CONFIG_FEALNX is not set
648# CONFIG_NATSEMI is not set 663# CONFIG_NATSEMI is not set
@@ -656,6 +671,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
656# CONFIG_R6040 is not set 671# CONFIG_R6040 is not set
657# CONFIG_SIS900 is not set 672# CONFIG_SIS900 is not set
658# CONFIG_EPIC100 is not set 673# CONFIG_EPIC100 is not set
674# CONFIG_SMSC9420 is not set
659# CONFIG_SUNDANCE is not set 675# CONFIG_SUNDANCE is not set
660# CONFIG_TLAN is not set 676# CONFIG_TLAN is not set
661# CONFIG_VIA_RHINE is not set 677# CONFIG_VIA_RHINE is not set
@@ -684,6 +700,7 @@ CONFIG_NETDEV_1000=y
684# CONFIG_JME is not set 700# CONFIG_JME is not set
685CONFIG_NETDEV_10000=y 701CONFIG_NETDEV_10000=y
686# CONFIG_CHELSIO_T1 is not set 702# CONFIG_CHELSIO_T1 is not set
703CONFIG_CHELSIO_T3_DEPENDS=y
687# CONFIG_CHELSIO_T3 is not set 704# CONFIG_CHELSIO_T3 is not set
688# CONFIG_ENIC is not set 705# CONFIG_ENIC is not set
689# CONFIG_IXGBE is not set 706# CONFIG_IXGBE is not set
@@ -692,6 +709,7 @@ CONFIG_NETDEV_10000=y
692# CONFIG_MYRI10GE is not set 709# CONFIG_MYRI10GE is not set
693# CONFIG_NETXEN_NIC is not set 710# CONFIG_NETXEN_NIC is not set
694# CONFIG_NIU is not set 711# CONFIG_NIU is not set
712# CONFIG_MLX4_EN is not set
695# CONFIG_MLX4_CORE is not set 713# CONFIG_MLX4_CORE is not set
696# CONFIG_TEHUTI is not set 714# CONFIG_TEHUTI is not set
697# CONFIG_BNX2X is not set 715# CONFIG_BNX2X is not set
@@ -787,6 +805,7 @@ CONFIG_SERIAL_CORE=y
787CONFIG_SERIAL_CORE_CONSOLE=y 805CONFIG_SERIAL_CORE_CONSOLE=y
788# CONFIG_SERIAL_JSM is not set 806# CONFIG_SERIAL_JSM is not set
789CONFIG_UNIX98_PTYS=y 807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
790CONFIG_LEGACY_PTYS=y 809CONFIG_LEGACY_PTYS=y
791CONFIG_LEGACY_PTY_COUNT=256 810CONFIG_LEGACY_PTY_COUNT=256
792# CONFIG_IPMI_HANDLER is not set 811# CONFIG_IPMI_HANDLER is not set
@@ -828,11 +847,11 @@ CONFIG_HWMON=y
828# CONFIG_THERMAL is not set 847# CONFIG_THERMAL is not set
829# CONFIG_THERMAL_HWMON is not set 848# CONFIG_THERMAL_HWMON is not set
830# CONFIG_WATCHDOG is not set 849# CONFIG_WATCHDOG is not set
850CONFIG_SSB_POSSIBLE=y
831 851
832# 852#
833# Sonics Silicon Backplane 853# Sonics Silicon Backplane
834# 854#
835CONFIG_SSB_POSSIBLE=y
836# CONFIG_SSB is not set 855# CONFIG_SSB is not set
837 856
838# 857#
@@ -842,7 +861,7 @@ CONFIG_SSB_POSSIBLE=y
842# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
843# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
844# CONFIG_MFD_TMIO is not set 863# CONFIG_MFD_TMIO is not set
845# CONFIG_MFD_WM8400 is not set 864# CONFIG_REGULATOR is not set
846 865
847# 866#
848# Multimedia devices 867# Multimedia devices
@@ -902,9 +921,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
902# 921#
903 922
904# 923#
905# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 924# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
906# 925#
907# CONFIG_USB_GADGET is not set 926# CONFIG_USB_GADGET is not set
927# CONFIG_UWB is not set
908# CONFIG_MMC is not set 928# CONFIG_MMC is not set
909# CONFIG_MEMSTICK is not set 929# CONFIG_MEMSTICK is not set
910# CONFIG_NEW_LEDS is not set 930# CONFIG_NEW_LEDS is not set
@@ -1007,10 +1027,7 @@ CONFIG_TMPFS=y
1007# CONFIG_HUGETLBFS is not set 1027# CONFIG_HUGETLBFS is not set
1008# CONFIG_HUGETLB_PAGE is not set 1028# CONFIG_HUGETLB_PAGE is not set
1009# CONFIG_CONFIGFS_FS is not set 1029# CONFIG_CONFIGFS_FS is not set
1010 1030CONFIG_MISC_FILESYSTEMS=y
1011#
1012# Miscellaneous filesystems
1013#
1014# CONFIG_ADFS_FS is not set 1031# CONFIG_ADFS_FS is not set
1015# CONFIG_AFFS_FS is not set 1032# CONFIG_AFFS_FS is not set
1016# CONFIG_HFS_FS is not set 1033# CONFIG_HFS_FS is not set
@@ -1100,14 +1117,20 @@ CONFIG_FRAME_WARN=1024
1100# CONFIG_DEBUG_MEMORY_INIT is not set 1117# CONFIG_DEBUG_MEMORY_INIT is not set
1101# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1118# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1102# CONFIG_LATENCYTOP is not set 1119# CONFIG_LATENCYTOP is not set
1103CONFIG_NOP_TRACER=y 1120CONFIG_HAVE_FUNCTION_TRACER=y
1104CONFIG_HAVE_FTRACE=y 1121CONFIG_HAVE_DYNAMIC_FTRACE=y
1122CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1123
1124#
1125# Tracers
1126#
1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1127# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1106# CONFIG_SAMPLES is not set 1128# CONFIG_SAMPLES is not set
1129CONFIG_HAVE_ARCH_KGDB=y
1107CONFIG_SH_STANDARD_BIOS=y 1130CONFIG_SH_STANDARD_BIOS=y
1108# CONFIG_EARLY_SCIF_CONSOLE is not set 1131# CONFIG_EARLY_SCIF_CONSOLE is not set
1109# CONFIG_EARLY_PRINTK is not set 1132# CONFIG_EARLY_PRINTK is not set
1110# CONFIG_SH_KGDB is not set 1133# CONFIG_MORE_COMPILE_OPTIONS is not set
1111 1134
1112# 1135#
1113# Security options 1136# Security options
@@ -1123,6 +1146,7 @@ CONFIG_CRYPTO=y
1123# 1146#
1124# CONFIG_CRYPTO_FIPS is not set 1147# CONFIG_CRYPTO_FIPS is not set
1125# CONFIG_CRYPTO_MANAGER is not set 1148# CONFIG_CRYPTO_MANAGER is not set
1149# CONFIG_CRYPTO_MANAGER2 is not set
1126# CONFIG_CRYPTO_GF128MUL is not set 1150# CONFIG_CRYPTO_GF128MUL is not set
1127# CONFIG_CRYPTO_NULL is not set 1151# CONFIG_CRYPTO_NULL is not set
1128# CONFIG_CRYPTO_CRYPTD is not set 1152# CONFIG_CRYPTO_CRYPTD is not set
@@ -1206,6 +1230,7 @@ CONFIG_CRYPTO_HW=y
1206# Library routines 1230# Library routines
1207# 1231#
1208CONFIG_BITREVERSE=y 1232CONFIG_BITREVERSE=y
1233CONFIG_GENERIC_FIND_LAST_BIT=y
1209# CONFIG_CRC_CCITT is not set 1234# CONFIG_CRC_CCITT is not set
1210# CONFIG_CRC16 is not set 1235# CONFIG_CRC16 is not set
1211CONFIG_CRC_T10DIF=y 1236CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig
index 499ed7204385..125d8019dc2f 100644
--- a/arch/sh/configs/magicpanelr2_defconfig
+++ b/arch/sh/configs/magicpanelr2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:32:23 2008 4# Fri Jan 9 17:03:37 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -58,6 +60,7 @@ CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
60CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
63CONFIG_KALLSYMS_STRIP_GENERATED=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set 64# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y 65CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 66CONFIG_PRINTK=y
@@ -74,12 +77,10 @@ CONFIG_EVENTFD=y
74CONFIG_SHMEM=y 77CONFIG_SHMEM=y
75CONFIG_AIO=y 78CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 80CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 98# CONFIG_MODULE_FORCE_UNLOAD is not set
99CONFIG_MODVERSIONS=y 99CONFIG_MODVERSIONS=y
100CONFIG_MODULE_SRCVERSION_ALL=y 100CONFIG_MODULE_SRCVERSION_ALL=y
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -296,11 +298,18 @@ CONFIG_BINFMT_ELF=y
296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
297# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
298# CONFIG_BINFMT_MISC is not set 300# CONFIG_BINFMT_MISC is not set
301
302#
303# Power management options (EXPERIMENTAL)
304#
305# CONFIG_PM is not set
306# CONFIG_CPU_IDLE is not set
299CONFIG_NET=y 307CONFIG_NET=y
300 308
301# 309#
302# Networking options 310# Networking options
303# 311#
312CONFIG_COMPAT_NET_DEV_OPS=y
304CONFIG_PACKET=y 313CONFIG_PACKET=y
305CONFIG_PACKET_MMAP=y 314CONFIG_PACKET_MMAP=y
306CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +360,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 362# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set
354 364
355# 365#
356# Network testing 366# Network testing
@@ -366,8 +376,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 377# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 378# CONFIG_WIRELESS_EXT is not set
379# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 380# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 381# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 382# CONFIG_NET_9P is not set
373 383
@@ -483,6 +493,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
483CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
484# CONFIG_EEPROM_93CX6 is not set 494# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
486CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
487# CONFIG_IDE is not set 498# CONFIG_IDE is not set
488 499
@@ -502,13 +513,33 @@ CONFIG_NETDEVICES=y
502# CONFIG_EQUALIZER is not set 513# CONFIG_EQUALIZER is not set
503# CONFIG_TUN is not set 514# CONFIG_TUN is not set
504# CONFIG_VETH is not set 515# CONFIG_VETH is not set
505# CONFIG_PHYLIB is not set 516CONFIG_PHYLIB=y
517
518#
519# MII PHY device drivers
520#
521# CONFIG_MARVELL_PHY is not set
522# CONFIG_DAVICOM_PHY is not set
523# CONFIG_QSEMI_PHY is not set
524# CONFIG_LXT_PHY is not set
525# CONFIG_CICADA_PHY is not set
526# CONFIG_VITESSE_PHY is not set
527CONFIG_SMSC_PHY=y
528# CONFIG_BROADCOM_PHY is not set
529# CONFIG_ICPLUS_PHY is not set
530# CONFIG_REALTEK_PHY is not set
531# CONFIG_NATIONAL_PHY is not set
532# CONFIG_STE10XP is not set
533# CONFIG_LSI_ET1011C_PHY is not set
534# CONFIG_FIXED_PHY is not set
535# CONFIG_MDIO_BITBANG is not set
506CONFIG_NET_ETHERNET=y 536CONFIG_NET_ETHERNET=y
507CONFIG_MII=y 537CONFIG_MII=y
508# CONFIG_AX88796 is not set 538# CONFIG_AX88796 is not set
509# CONFIG_STNIC is not set 539# CONFIG_STNIC is not set
510# CONFIG_SMC91X is not set 540# CONFIG_SMC91X is not set
511CONFIG_SMC911X=y 541# CONFIG_SMC911X is not set
542CONFIG_SMSC911X=y
512# CONFIG_IBM_NEW_EMAC_ZMII is not set 543# CONFIG_IBM_NEW_EMAC_ZMII is not set
513# CONFIG_IBM_NEW_EMAC_RGMII is not set 544# CONFIG_IBM_NEW_EMAC_RGMII is not set
514# CONFIG_IBM_NEW_EMAC_TAH is not set 545# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -618,6 +649,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
618CONFIG_SERIAL_CORE=y 649CONFIG_SERIAL_CORE=y
619CONFIG_SERIAL_CORE_CONSOLE=y 650CONFIG_SERIAL_CORE_CONSOLE=y
620CONFIG_UNIX98_PTYS=y 651CONFIG_UNIX98_PTYS=y
652# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
621CONFIG_LEGACY_PTYS=y 653CONFIG_LEGACY_PTYS=y
622CONFIG_LEGACY_PTY_COUNT=256 654CONFIG_LEGACY_PTY_COUNT=256
623# CONFIG_IPMI_HANDLER is not set 655# CONFIG_IPMI_HANDLER is not set
@@ -627,17 +659,37 @@ CONFIG_LEGACY_PTY_COUNT=256
627# CONFIG_TCG_TPM is not set 659# CONFIG_TCG_TPM is not set
628# CONFIG_I2C is not set 660# CONFIG_I2C is not set
629# CONFIG_SPI is not set 661# CONFIG_SPI is not set
662CONFIG_ARCH_REQUIRE_GPIOLIB=y
663CONFIG_GPIOLIB=y
664# CONFIG_DEBUG_GPIO is not set
665# CONFIG_GPIO_SYSFS is not set
666
667#
668# Memory mapped GPIO expanders:
669#
670
671#
672# I2C GPIO expanders:
673#
674
675#
676# PCI GPIO expanders:
677#
678
679#
680# SPI GPIO expanders:
681#
630# CONFIG_W1 is not set 682# CONFIG_W1 is not set
631# CONFIG_POWER_SUPPLY is not set 683# CONFIG_POWER_SUPPLY is not set
632# CONFIG_HWMON is not set 684# CONFIG_HWMON is not set
633# CONFIG_THERMAL is not set 685# CONFIG_THERMAL is not set
634# CONFIG_THERMAL_HWMON is not set 686# CONFIG_THERMAL_HWMON is not set
635# CONFIG_WATCHDOG is not set 687# CONFIG_WATCHDOG is not set
688CONFIG_SSB_POSSIBLE=y
636 689
637# 690#
638# Sonics Silicon Backplane 691# Sonics Silicon Backplane
639# 692#
640CONFIG_SSB_POSSIBLE=y
641# CONFIG_SSB is not set 693# CONFIG_SSB is not set
642 694
643# 695#
@@ -647,7 +699,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set 700# CONFIG_HTC_PASIC3 is not set
649# CONFIG_MFD_TMIO is not set 701# CONFIG_MFD_TMIO is not set
650# CONFIG_MFD_WM8400 is not set 702# CONFIG_REGULATOR is not set
651 703
652# 704#
653# Multimedia devices 705# Multimedia devices
@@ -778,10 +830,7 @@ CONFIG_TMPFS=y
778# CONFIG_HUGETLBFS is not set 830# CONFIG_HUGETLBFS is not set
779# CONFIG_HUGETLB_PAGE is not set 831# CONFIG_HUGETLB_PAGE is not set
780# CONFIG_CONFIGFS_FS is not set 832# CONFIG_CONFIGFS_FS is not set
781 833CONFIG_MISC_FILESYSTEMS=y
782#
783# Miscellaneous filesystems
784#
785# CONFIG_ADFS_FS is not set 834# CONFIG_ADFS_FS is not set
786# CONFIG_AFFS_FS is not set 835# CONFIG_AFFS_FS is not set
787# CONFIG_HFS_FS is not set 836# CONFIG_HFS_FS is not set
@@ -912,6 +961,7 @@ CONFIG_DEBUG_INFO=y
912# CONFIG_DEBUG_MEMORY_INIT is not set 961# CONFIG_DEBUG_MEMORY_INIT is not set
913# CONFIG_DEBUG_LIST is not set 962# CONFIG_DEBUG_LIST is not set
914# CONFIG_DEBUG_SG is not set 963# CONFIG_DEBUG_SG is not set
964# CONFIG_DEBUG_NOTIFIERS is not set
915CONFIG_FRAME_POINTER=y 965CONFIG_FRAME_POINTER=y
916# CONFIG_RCU_TORTURE_TEST is not set 966# CONFIG_RCU_TORTURE_TEST is not set
917# CONFIG_RCU_CPU_STALL_DETECTOR is not set 967# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -920,16 +970,24 @@ CONFIG_FRAME_POINTER=y
920# CONFIG_FAULT_INJECTION is not set 970# CONFIG_FAULT_INJECTION is not set
921# CONFIG_LATENCYTOP is not set 971# CONFIG_LATENCYTOP is not set
922CONFIG_SYSCTL_SYSCALL_CHECK=y 972CONFIG_SYSCTL_SYSCALL_CHECK=y
923CONFIG_NOP_TRACER=y 973CONFIG_HAVE_FUNCTION_TRACER=y
924CONFIG_HAVE_FTRACE=y 974CONFIG_HAVE_DYNAMIC_FTRACE=y
925# CONFIG_FTRACE is not set 975CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
976
977#
978# Tracers
979#
980# CONFIG_FUNCTION_TRACER is not set
926# CONFIG_IRQSOFF_TRACER is not set 981# CONFIG_IRQSOFF_TRACER is not set
927# CONFIG_SCHED_TRACER is not set 982# CONFIG_SCHED_TRACER is not set
928# CONFIG_CONTEXT_SWITCH_TRACER is not set 983# CONFIG_CONTEXT_SWITCH_TRACER is not set
929# CONFIG_BOOT_TRACER is not set 984# CONFIG_BOOT_TRACER is not set
985# CONFIG_TRACE_BRANCH_PROFILING is not set
930# CONFIG_STACK_TRACER is not set 986# CONFIG_STACK_TRACER is not set
931# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 987# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
932# CONFIG_SAMPLES is not set 988# CONFIG_SAMPLES is not set
989CONFIG_HAVE_ARCH_KGDB=y
990# CONFIG_KGDB is not set
933# CONFIG_SH_STANDARD_BIOS is not set 991# CONFIG_SH_STANDARD_BIOS is not set
934CONFIG_EARLY_SCIF_CONSOLE=y 992CONFIG_EARLY_SCIF_CONSOLE=y
935CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000 993CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000
@@ -939,25 +997,9 @@ CONFIG_EARLY_PRINTK=y
939# CONFIG_DEBUG_STACK_USAGE is not set 997# CONFIG_DEBUG_STACK_USAGE is not set
940# CONFIG_4KSTACKS is not set 998# CONFIG_4KSTACKS is not set
941# CONFIG_IRQSTACKS is not set 999# CONFIG_IRQSTACKS is not set
942CONFIG_SH_KGDB=y 1000CONFIG_DUMP_CODE=y
943 1001# CONFIG_SH_NO_BSS_INIT is not set
944#
945# KGDB configuration options
946#
947# CONFIG_MORE_COMPILE_OPTIONS is not set 1002# CONFIG_MORE_COMPILE_OPTIONS is not set
948# CONFIG_KGDB_NMI is not set
949CONFIG_KGDB_SYSRQ=y
950
951#
952# Serial port setup
953#
954CONFIG_KGDB_DEFPORT=0
955CONFIG_KGDB_DEFBAUD=115200
956CONFIG_KGDB_DEFPARITY_N=y
957# CONFIG_KGDB_DEFPARITY_E is not set
958# CONFIG_KGDB_DEFPARITY_O is not set
959CONFIG_KGDB_DEFBITS_8=y
960# CONFIG_KGDB_DEFBITS_7 is not set
961 1003
962# 1004#
963# Security options 1005# Security options
@@ -972,6 +1014,7 @@ CONFIG_KGDB_DEFBITS_8=y
972# Library routines 1014# Library routines
973# 1015#
974CONFIG_BITREVERSE=y 1016CONFIG_BITREVERSE=y
1017CONFIG_GENERIC_FIND_LAST_BIT=y
975CONFIG_CRC_CCITT=m 1018CONFIG_CRC_CCITT=m
976CONFIG_CRC16=m 1019CONFIG_CRC16=m
977# CONFIG_CRC_T10DIF is not set 1020# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig
index b8ada8ce98d9..5a1c0485a354 100644
--- a/arch/sh/configs/microdev_defconfig
+++ b/arch/sh/configs/microdev_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:37:41 2008 4# Fri Jan 9 17:06:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
83CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -87,13 +87,11 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
92# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
93CONFIG_BLOCK=y 92CONFIG_BLOCK=y
94# CONFIG_LBD is not set 93# CONFIG_LBD is not set
95# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
99 97
@@ -110,6 +108,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
114 116
115# 117#
@@ -117,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
117# 119#
118CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +189,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 189CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 190CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 191CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 192# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 193CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 194CONFIG_NR_QUICK=2
@@ -265,7 +267,6 @@ CONFIG_HZ=250
265# CONFIG_PREEMPT_NONE is not set 267# CONFIG_PREEMPT_NONE is not set
266# CONFIG_PREEMPT_VOLUNTARY is not set 268# CONFIG_PREEMPT_VOLUNTARY is not set
267CONFIG_PREEMPT=y 269CONFIG_PREEMPT=y
268# CONFIG_PREEMPT_RCU is not set
269CONFIG_GUSA=y 270CONFIG_GUSA=y
270# CONFIG_GUSA_RB is not set 271# CONFIG_GUSA_RB is not set
271 272
@@ -292,11 +293,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 294# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 295# CONFIG_BINFMT_MISC is not set
296
297#
298# Power management options (EXPERIMENTAL)
299#
300# CONFIG_PM is not set
301# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 302CONFIG_NET=y
296 303
297# 304#
298# Networking options 305# Networking options
299# 306#
307CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 308# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 309# CONFIG_UNIX is not set
302CONFIG_XFRM=y 310CONFIG_XFRM=y
@@ -351,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_ECONET is not set 359# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 360# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
362# CONFIG_DCB is not set
354 363
355# 364#
356# Network testing 365# Network testing
@@ -366,8 +375,8 @@ CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 375# CONFIG_CFG80211 is not set
367# CONFIG_WIRELESS_OLD_REGULATORY is not set 376# CONFIG_WIRELESS_OLD_REGULATORY is not set
368# CONFIG_WIRELESS_EXT is not set 377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_LIB80211 is not set
369# CONFIG_MAC80211 is not set 379# CONFIG_MAC80211 is not set
370# CONFIG_IEEE80211 is not set
371# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 381# CONFIG_NET_9P is not set
373 382
@@ -400,12 +409,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
400CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
401# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
402# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_C2PORT is not set
403CONFIG_HAVE_IDE=y 413CONFIG_HAVE_IDE=y
404CONFIG_IDE=y 414CONFIG_IDE=y
405 415
406# 416#
407# Please see Documentation/ide/ide.txt for help/info on IDE drives 417# Please see Documentation/ide/ide.txt for help/info on IDE drives
408# 418#
419CONFIG_IDE_ATAPI=y
409# CONFIG_BLK_DEV_IDE_SATA is not set 420# CONFIG_BLK_DEV_IDE_SATA is not set
410CONFIG_IDE_GD=y 421CONFIG_IDE_GD=y
411CONFIG_IDE_GD_ATA=y 422CONFIG_IDE_GD_ATA=y
@@ -445,6 +456,7 @@ CONFIG_MII=y
445# CONFIG_STNIC is not set 456# CONFIG_STNIC is not set
446CONFIG_SMC91X=y 457CONFIG_SMC91X=y
447# CONFIG_SMC911X is not set 458# CONFIG_SMC911X is not set
459# CONFIG_SMSC911X is not set
448# CONFIG_IBM_NEW_EMAC_ZMII is not set 460# CONFIG_IBM_NEW_EMAC_ZMII is not set
449# CONFIG_IBM_NEW_EMAC_RGMII is not set 461# CONFIG_IBM_NEW_EMAC_RGMII is not set
450# CONFIG_IBM_NEW_EMAC_TAH is not set 462# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -503,6 +515,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
503CONFIG_SERIAL_CORE=y 515CONFIG_SERIAL_CORE=y
504CONFIG_SERIAL_CORE_CONSOLE=y 516CONFIG_SERIAL_CORE_CONSOLE=y
505CONFIG_UNIX98_PTYS=y 517CONFIG_UNIX98_PTYS=y
518# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
506CONFIG_LEGACY_PTYS=y 519CONFIG_LEGACY_PTYS=y
507CONFIG_LEGACY_PTY_COUNT=256 520CONFIG_LEGACY_PTY_COUNT=256
508# CONFIG_IPMI_HANDLER is not set 521# CONFIG_IPMI_HANDLER is not set
@@ -530,11 +543,11 @@ CONFIG_HWMON=y
530# CONFIG_THERMAL is not set 543# CONFIG_THERMAL is not set
531# CONFIG_THERMAL_HWMON is not set 544# CONFIG_THERMAL_HWMON is not set
532# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
546CONFIG_SSB_POSSIBLE=y
533 547
534# 548#
535# Sonics Silicon Backplane 549# Sonics Silicon Backplane
536# 550#
537CONFIG_SSB_POSSIBLE=y
538# CONFIG_SSB is not set 551# CONFIG_SSB is not set
539 552
540# 553#
@@ -544,7 +557,7 @@ CONFIG_SSB_POSSIBLE=y
544# CONFIG_MFD_SM501 is not set 557# CONFIG_MFD_SM501 is not set
545# CONFIG_HTC_PASIC3 is not set 558# CONFIG_HTC_PASIC3 is not set
546# CONFIG_MFD_TMIO is not set 559# CONFIG_MFD_TMIO is not set
547# CONFIG_MFD_WM8400 is not set 560# CONFIG_REGULATOR is not set
548 561
549# 562#
550# Multimedia devices 563# Multimedia devices
@@ -588,7 +601,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
588# 601#
589 602
590# 603#
591# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 604# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
592# 605#
593# CONFIG_USB_GADGET is not set 606# CONFIG_USB_GADGET is not set
594# CONFIG_MMC is not set 607# CONFIG_MMC is not set
@@ -656,10 +669,7 @@ CONFIG_TMPFS=y
656CONFIG_HUGETLBFS=y 669CONFIG_HUGETLBFS=y
657CONFIG_HUGETLB_PAGE=y 670CONFIG_HUGETLB_PAGE=y
658# CONFIG_CONFIGFS_FS is not set 671# CONFIG_CONFIGFS_FS is not set
659 672CONFIG_MISC_FILESYSTEMS=y
660#
661# Miscellaneous filesystems
662#
663# CONFIG_ADFS_FS is not set 673# CONFIG_ADFS_FS is not set
664# CONFIG_AFFS_FS is not set 674# CONFIG_AFFS_FS is not set
665# CONFIG_HFS_FS is not set 675# CONFIG_HFS_FS is not set
@@ -761,13 +771,19 @@ CONFIG_FRAME_WARN=1024
761# CONFIG_DEBUG_MEMORY_INIT is not set 771# CONFIG_DEBUG_MEMORY_INIT is not set
762# CONFIG_RCU_CPU_STALL_DETECTOR is not set 772# CONFIG_RCU_CPU_STALL_DETECTOR is not set
763# CONFIG_LATENCYTOP is not set 773# CONFIG_LATENCYTOP is not set
764CONFIG_NOP_TRACER=y 774CONFIG_HAVE_FUNCTION_TRACER=y
765CONFIG_HAVE_FTRACE=y 775CONFIG_HAVE_DYNAMIC_FTRACE=y
776CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
777
778#
779# Tracers
780#
766# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 781# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
767# CONFIG_SAMPLES is not set 782# CONFIG_SAMPLES is not set
783CONFIG_HAVE_ARCH_KGDB=y
768# CONFIG_SH_STANDARD_BIOS is not set 784# CONFIG_SH_STANDARD_BIOS is not set
769# CONFIG_EARLY_SCIF_CONSOLE is not set 785# CONFIG_EARLY_SCIF_CONSOLE is not set
770# CONFIG_SH_KGDB is not set 786# CONFIG_MORE_COMPILE_OPTIONS is not set
771 787
772# 788#
773# Security options 789# Security options
@@ -783,11 +799,15 @@ CONFIG_CRYPTO=y
783# 799#
784# CONFIG_CRYPTO_FIPS is not set 800# CONFIG_CRYPTO_FIPS is not set
785CONFIG_CRYPTO_ALGAPI=y 801CONFIG_CRYPTO_ALGAPI=y
786CONFIG_CRYPTO_AEAD=y 802CONFIG_CRYPTO_ALGAPI2=y
803CONFIG_CRYPTO_AEAD2=y
787CONFIG_CRYPTO_BLKCIPHER=y 804CONFIG_CRYPTO_BLKCIPHER=y
805CONFIG_CRYPTO_BLKCIPHER2=y
788CONFIG_CRYPTO_HASH=y 806CONFIG_CRYPTO_HASH=y
789CONFIG_CRYPTO_RNG=y 807CONFIG_CRYPTO_HASH2=y
808CONFIG_CRYPTO_RNG2=y
790CONFIG_CRYPTO_MANAGER=y 809CONFIG_CRYPTO_MANAGER=y
810CONFIG_CRYPTO_MANAGER2=y
791# CONFIG_CRYPTO_GF128MUL is not set 811# CONFIG_CRYPTO_GF128MUL is not set
792# CONFIG_CRYPTO_NULL is not set 812# CONFIG_CRYPTO_NULL is not set
793# CONFIG_CRYPTO_CRYPTD is not set 813# CONFIG_CRYPTO_CRYPTD is not set
@@ -869,6 +889,7 @@ CONFIG_CRYPTO_HW=y
869# Library routines 889# Library routines
870# 890#
871CONFIG_BITREVERSE=y 891CONFIG_BITREVERSE=y
892CONFIG_GENERIC_FIND_LAST_BIT=y
872# CONFIG_CRC_CCITT is not set 893# CONFIG_CRC_CCITT is not set
873# CONFIG_CRC16 is not set 894# CONFIG_CRC16 is not set
874# CONFIG_CRC_T10DIF is not set 895# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 30cac42f25e7..7758263514bc 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.28-rc2 3# Linux kernel version: 2.6.28
4# Fri Oct 31 15:58:06 2008 4# Fri Jan 9 17:09:35 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -127,6 +131,7 @@ CONFIG_CPU_SH4A=y
127CONFIG_CPU_SH4AL_DSP=y 131CONFIG_CPU_SH4AL_DSP=y
128CONFIG_CPU_SHX2=y 132CONFIG_CPU_SHX2=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 133# CONFIG_CPU_SUBTYPE_SH7619 is not set
134# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 135# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 136# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 137# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -196,7 +201,6 @@ CONFIG_SPARSEMEM_STATIC=y
196# CONFIG_MEMORY_HOTPLUG is not set 201# CONFIG_MEMORY_HOTPLUG is not set
197CONFIG_SPLIT_PTLOCK_CPUS=4 202CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_MIGRATION is not set 203# CONFIG_MIGRATION is not set
199# CONFIG_RESOURCES_64BIT is not set
200# CONFIG_PHYS_ADDR_T_64BIT is not set 204# CONFIG_PHYS_ADDR_T_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=0 205CONFIG_ZONE_DMA_FLAG=0
202CONFIG_NR_QUICK=2 206CONFIG_NR_QUICK=2
@@ -299,11 +303,18 @@ CONFIG_BINFMT_ELF=y
299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 303# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
300# CONFIG_HAVE_AOUT is not set 304# CONFIG_HAVE_AOUT is not set
301# CONFIG_BINFMT_MISC is not set 305# CONFIG_BINFMT_MISC is not set
306
307#
308# Power management options (EXPERIMENTAL)
309#
310# CONFIG_PM is not set
311# CONFIG_CPU_IDLE is not set
302CONFIG_NET=y 312CONFIG_NET=y
303 313
304# 314#
305# Networking options 315# Networking options
306# 316#
317CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 318CONFIG_PACKET=y
308# CONFIG_PACKET_MMAP is not set 319# CONFIG_PACKET_MMAP is not set
309CONFIG_UNIX=y 320CONFIG_UNIX=y
@@ -359,6 +370,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_ECONET is not set 370# CONFIG_ECONET is not set
360# CONFIG_WAN_ROUTER is not set 371# CONFIG_WAN_ROUTER is not set
361# CONFIG_NET_SCHED is not set 372# CONFIG_NET_SCHED is not set
373# CONFIG_DCB is not set
362 374
363# 375#
364# Network testing 376# Network testing
@@ -375,8 +387,8 @@ CONFIG_WIRELESS=y
375# CONFIG_WIRELESS_OLD_REGULATORY is not set 387# CONFIG_WIRELESS_OLD_REGULATORY is not set
376CONFIG_WIRELESS_EXT=y 388CONFIG_WIRELESS_EXT=y
377CONFIG_WIRELESS_EXT_SYSFS=y 389CONFIG_WIRELESS_EXT_SYSFS=y
390# CONFIG_LIB80211 is not set
378# CONFIG_MAC80211 is not set 391# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set
380# CONFIG_RFKILL is not set 392# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set 393# CONFIG_NET_9P is not set
382 394
@@ -493,7 +505,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
493# CONFIG_BLK_DEV_HD is not set 505# CONFIG_BLK_DEV_HD is not set
494CONFIG_MISC_DEVICES=y 506CONFIG_MISC_DEVICES=y
495# CONFIG_EEPROM_93CX6 is not set 507# CONFIG_EEPROM_93CX6 is not set
508# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 509# CONFIG_ENCLOSURE_SERVICES is not set
510# CONFIG_C2PORT is not set
497CONFIG_HAVE_IDE=y 511CONFIG_HAVE_IDE=y
498# CONFIG_IDE is not set 512# CONFIG_IDE is not set
499 513
@@ -536,6 +550,7 @@ CONFIG_SCSI_WAIT_SCAN=m
536# CONFIG_SCSI_SRP_ATTRS is not set 550# CONFIG_SCSI_SRP_ATTRS is not set
537CONFIG_SCSI_LOWLEVEL=y 551CONFIG_SCSI_LOWLEVEL=y
538# CONFIG_ISCSI_TCP is not set 552# CONFIG_ISCSI_TCP is not set
553# CONFIG_LIBFC is not set
539# CONFIG_SCSI_DEBUG is not set 554# CONFIG_SCSI_DEBUG is not set
540# CONFIG_SCSI_DH is not set 555# CONFIG_SCSI_DH is not set
541# CONFIG_ATA is not set 556# CONFIG_ATA is not set
@@ -554,6 +569,7 @@ CONFIG_MII=y
554# CONFIG_STNIC is not set 569# CONFIG_STNIC is not set
555CONFIG_SMC91X=y 570CONFIG_SMC91X=y
556# CONFIG_SMC911X is not set 571# CONFIG_SMC911X is not set
572# CONFIG_SMSC911X is not set
557# CONFIG_IBM_NEW_EMAC_ZMII is not set 573# CONFIG_IBM_NEW_EMAC_ZMII is not set
558# CONFIG_IBM_NEW_EMAC_RGMII is not set 574# CONFIG_IBM_NEW_EMAC_RGMII is not set
559# CONFIG_IBM_NEW_EMAC_TAH is not set 575# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -644,6 +660,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
644CONFIG_SERIAL_CORE=y 660CONFIG_SERIAL_CORE=y
645CONFIG_SERIAL_CORE_CONSOLE=y 661CONFIG_SERIAL_CORE_CONSOLE=y
646CONFIG_UNIX98_PTYS=y 662CONFIG_UNIX98_PTYS=y
663# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
647CONFIG_LEGACY_PTYS=y 664CONFIG_LEGACY_PTYS=y
648CONFIG_LEGACY_PTY_COUNT=256 665CONFIG_LEGACY_PTY_COUNT=256
649# CONFIG_IPMI_HANDLER is not set 666# CONFIG_IPMI_HANDLER is not set
@@ -684,8 +701,8 @@ CONFIG_I2C_SH_MOBILE=y
684# Miscellaneous I2C Chip support 701# Miscellaneous I2C Chip support
685# 702#
686# CONFIG_DS1682 is not set 703# CONFIG_DS1682 is not set
687# CONFIG_AT24 is not set 704# CONFIG_EEPROM_AT24 is not set
688# CONFIG_SENSORS_EEPROM is not set 705# CONFIG_EEPROM_LEGACY is not set
689# CONFIG_SENSORS_PCF8574 is not set 706# CONFIG_SENSORS_PCF8574 is not set
690# CONFIG_PCF8575 is not set 707# CONFIG_PCF8575 is not set
691# CONFIG_SENSORS_PCA9539 is not set 708# CONFIG_SENSORS_PCA9539 is not set
@@ -697,17 +714,39 @@ CONFIG_I2C_SH_MOBILE=y
697# CONFIG_I2C_DEBUG_BUS is not set 714# CONFIG_I2C_DEBUG_BUS is not set
698# CONFIG_I2C_DEBUG_CHIP is not set 715# CONFIG_I2C_DEBUG_CHIP is not set
699# CONFIG_SPI is not set 716# CONFIG_SPI is not set
717CONFIG_ARCH_REQUIRE_GPIOLIB=y
718CONFIG_GPIOLIB=y
719# CONFIG_GPIO_SYSFS is not set
720
721#
722# Memory mapped GPIO expanders:
723#
724
725#
726# I2C GPIO expanders:
727#
728# CONFIG_GPIO_MAX732X is not set
729# CONFIG_GPIO_PCA953X is not set
730# CONFIG_GPIO_PCF857X is not set
731
732#
733# PCI GPIO expanders:
734#
735
736#
737# SPI GPIO expanders:
738#
700# CONFIG_W1 is not set 739# CONFIG_W1 is not set
701# CONFIG_POWER_SUPPLY is not set 740# CONFIG_POWER_SUPPLY is not set
702# CONFIG_HWMON is not set 741# CONFIG_HWMON is not set
703# CONFIG_THERMAL is not set 742# CONFIG_THERMAL is not set
704# CONFIG_THERMAL_HWMON is not set 743# CONFIG_THERMAL_HWMON is not set
705# CONFIG_WATCHDOG is not set 744# CONFIG_WATCHDOG is not set
745CONFIG_SSB_POSSIBLE=y
706 746
707# 747#
708# Sonics Silicon Backplane 748# Sonics Silicon Backplane
709# 749#
710CONFIG_SSB_POSSIBLE=y
711# CONFIG_SSB is not set 750# CONFIG_SSB is not set
712 751
713# 752#
@@ -716,10 +755,13 @@ CONFIG_SSB_POSSIBLE=y
716# CONFIG_MFD_CORE is not set 755# CONFIG_MFD_CORE is not set
717# CONFIG_MFD_SM501 is not set 756# CONFIG_MFD_SM501 is not set
718# CONFIG_HTC_PASIC3 is not set 757# CONFIG_HTC_PASIC3 is not set
758# CONFIG_TPS65010 is not set
759# CONFIG_TWL4030_CORE is not set
719# CONFIG_MFD_TMIO is not set 760# CONFIG_MFD_TMIO is not set
720# CONFIG_PMIC_DA903X is not set 761# CONFIG_PMIC_DA903X is not set
721# CONFIG_MFD_WM8400 is not set 762# CONFIG_MFD_WM8400 is not set
722# CONFIG_MFD_WM8350_I2C is not set 763# CONFIG_MFD_WM8350_I2C is not set
764# CONFIG_REGULATOR is not set
723 765
724# 766#
725# Multimedia devices 767# Multimedia devices
@@ -762,8 +804,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
762CONFIG_SOC_CAMERA=y 804CONFIG_SOC_CAMERA=y
763# CONFIG_SOC_CAMERA_MT9M001 is not set 805# CONFIG_SOC_CAMERA_MT9M001 is not set
764# CONFIG_SOC_CAMERA_MT9M111 is not set 806# CONFIG_SOC_CAMERA_MT9M111 is not set
807# CONFIG_SOC_CAMERA_MT9T031 is not set
765# CONFIG_SOC_CAMERA_MT9V022 is not set 808# CONFIG_SOC_CAMERA_MT9V022 is not set
809# CONFIG_SOC_CAMERA_TW9910 is not set
766CONFIG_SOC_CAMERA_PLATFORM=y 810CONFIG_SOC_CAMERA_PLATFORM=y
811# CONFIG_SOC_CAMERA_OV772X is not set
767CONFIG_VIDEO_SH_MOBILE_CEU=y 812CONFIG_VIDEO_SH_MOBILE_CEU=y
768# CONFIG_RADIO_ADAPTERS is not set 813# CONFIG_RADIO_ADAPTERS is not set
769# CONFIG_DAB is not set 814# CONFIG_DAB is not set
@@ -806,7 +851,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
806# CONFIG_USB_GADGET_MUSB_HDRC is not set 851# CONFIG_USB_GADGET_MUSB_HDRC is not set
807 852
808# 853#
809# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 854# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
810# 855#
811CONFIG_USB_GADGET=y 856CONFIG_USB_GADGET=y
812# CONFIG_USB_GADGET_DEBUG_FILES is not set 857# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -872,6 +917,7 @@ CONFIG_RTC_DRV_RS5C372=y
872# CONFIG_RTC_DRV_M41T80 is not set 917# CONFIG_RTC_DRV_M41T80 is not set
873# CONFIG_RTC_DRV_S35390A is not set 918# CONFIG_RTC_DRV_S35390A is not set
874# CONFIG_RTC_DRV_FM3130 is not set 919# CONFIG_RTC_DRV_FM3130 is not set
920# CONFIG_RTC_DRV_RX8581 is not set
875 921
876# 922#
877# SPI RTC drivers 923# SPI RTC drivers
@@ -948,10 +994,7 @@ CONFIG_TMPFS=y
948# CONFIG_HUGETLBFS is not set 994# CONFIG_HUGETLBFS is not set
949# CONFIG_HUGETLB_PAGE is not set 995# CONFIG_HUGETLB_PAGE is not set
950# CONFIG_CONFIGFS_FS is not set 996# CONFIG_CONFIGFS_FS is not set
951 997CONFIG_MISC_FILESYSTEMS=y
952#
953# Miscellaneous filesystems
954#
955# CONFIG_ADFS_FS is not set 998# CONFIG_ADFS_FS is not set
956# CONFIG_AFFS_FS is not set 999# CONFIG_AFFS_FS is not set
957# CONFIG_HFS_FS is not set 1000# CONFIG_HFS_FS is not set
@@ -1008,19 +1051,29 @@ CONFIG_FRAME_WARN=1024
1008CONFIG_DEBUG_FS=y 1051CONFIG_DEBUG_FS=y
1009# CONFIG_HEADERS_CHECK is not set 1052# CONFIG_HEADERS_CHECK is not set
1010# CONFIG_DEBUG_KERNEL is not set 1053# CONFIG_DEBUG_KERNEL is not set
1054CONFIG_STACKTRACE=y
1011# CONFIG_DEBUG_BUGVERBOSE is not set 1055# CONFIG_DEBUG_BUGVERBOSE is not set
1012# CONFIG_DEBUG_MEMORY_INIT is not set 1056# CONFIG_DEBUG_MEMORY_INIT is not set
1013# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1057# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1014# CONFIG_LATENCYTOP is not set 1058# CONFIG_LATENCYTOP is not set
1015CONFIG_NOP_TRACER=y 1059CONFIG_NOP_TRACER=y
1016CONFIG_HAVE_FTRACE=y 1060CONFIG_HAVE_FUNCTION_TRACER=y
1061CONFIG_HAVE_DYNAMIC_FTRACE=y
1062CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1063CONFIG_RING_BUFFER=y
1064CONFIG_TRACING=y
1065
1066#
1067# Tracers
1068#
1017# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1069# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1018# CONFIG_SAMPLES is not set 1070# CONFIG_SAMPLES is not set
1071CONFIG_HAVE_ARCH_KGDB=y
1019# CONFIG_SH_STANDARD_BIOS is not set 1072# CONFIG_SH_STANDARD_BIOS is not set
1020CONFIG_EARLY_SCIF_CONSOLE=y 1073CONFIG_EARLY_SCIF_CONSOLE=y
1021CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1074CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1022CONFIG_EARLY_PRINTK=y 1075CONFIG_EARLY_PRINTK=y
1023# CONFIG_SH_KGDB is not set 1076# CONFIG_MORE_COMPILE_OPTIONS is not set
1024 1077
1025# 1078#
1026# Security options 1079# Security options
@@ -1035,12 +1088,13 @@ CONFIG_CRYPTO=y
1035# Crypto core or helper 1088# Crypto core or helper
1036# 1089#
1037# CONFIG_CRYPTO_FIPS is not set 1090# CONFIG_CRYPTO_FIPS is not set
1038CONFIG_CRYPTO_ALGAPI=y 1091CONFIG_CRYPTO_ALGAPI2=y
1039CONFIG_CRYPTO_AEAD=y 1092CONFIG_CRYPTO_AEAD2=y
1040CONFIG_CRYPTO_BLKCIPHER=y 1093CONFIG_CRYPTO_BLKCIPHER2=y
1041CONFIG_CRYPTO_HASH=y 1094CONFIG_CRYPTO_HASH2=y
1042CONFIG_CRYPTO_RNG=y 1095CONFIG_CRYPTO_RNG2=y
1043CONFIG_CRYPTO_MANAGER=y 1096CONFIG_CRYPTO_MANAGER=y
1097CONFIG_CRYPTO_MANAGER2=y
1044# CONFIG_CRYPTO_GF128MUL is not set 1098# CONFIG_CRYPTO_GF128MUL is not set
1045# CONFIG_CRYPTO_NULL is not set 1099# CONFIG_CRYPTO_NULL is not set
1046# CONFIG_CRYPTO_CRYPTD is not set 1100# CONFIG_CRYPTO_CRYPTD is not set
@@ -1123,6 +1177,7 @@ CONFIG_CRYPTO_MANAGER=y
1123# Library routines 1177# Library routines
1124# 1178#
1125CONFIG_BITREVERSE=y 1179CONFIG_BITREVERSE=y
1180CONFIG_GENERIC_FIND_LAST_BIT=y
1126# CONFIG_CRC_CCITT is not set 1181# CONFIG_CRC_CCITT is not set
1127# CONFIG_CRC16 is not set 1182# CONFIG_CRC16 is not set
1128CONFIG_CRC_T10DIF=y 1183CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig
index 2e65149e9502..65b01a9e5934 100644
--- a/arch/sh/configs/r7780mp_defconfig
+++ b/arch/sh/configs/r7780mp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 20:03:46 2008 4# Fri Jan 9 17:10:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -85,6 +87,7 @@ CONFIG_SLAB=y
85# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
86# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
87CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
88# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
89CONFIG_OPROFILE=m 92CONFIG_OPROFILE=m
90CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -96,7 +99,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
96CONFIG_HAVE_CLK=y 99CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 100CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 101CONFIG_SLABINFO=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 103CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -104,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
104# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
105# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
106# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
107CONFIG_KMOD=y
108CONFIG_BLOCK=y 109CONFIG_BLOCK=y
109# CONFIG_LBD is not set 110# CONFIG_LBD is not set
110# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
111# CONFIG_LSF is not set
112# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
114 114
@@ -125,6 +125,10 @@ CONFIG_IOSCHED_NOOP=y
125CONFIG_DEFAULT_NOOP=y 125CONFIG_DEFAULT_NOOP=y
126CONFIG_DEFAULT_IOSCHED="noop" 126CONFIG_DEFAULT_IOSCHED="noop"
127CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
128# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
129 133
130# 134#
@@ -133,6 +137,7 @@ CONFIG_CLASSIC_RCU=y
133CONFIG_CPU_SH4=y 137CONFIG_CPU_SH4=y
134CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
135# CONFIG_CPU_SUBTYPE_SH7619 is not set 139# CONFIG_CPU_SUBTYPE_SH7619 is not set
140# CONFIG_CPU_SUBTYPE_SH7201 is not set
136# CONFIG_CPU_SUBTYPE_SH7203 is not set 141# CONFIG_CPU_SUBTYPE_SH7203 is not set
137# CONFIG_CPU_SUBTYPE_SH7206 is not set 142# CONFIG_CPU_SUBTYPE_SH7206 is not set
138# CONFIG_CPU_SUBTYPE_SH7263 is not set 143# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -203,7 +208,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
203CONFIG_SPARSEMEM_STATIC=y 208CONFIG_SPARSEMEM_STATIC=y
204CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
205CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
206# CONFIG_RESOURCES_64BIT is not set
207# CONFIG_PHYS_ADDR_T_64BIT is not set 211# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 212CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 213CONFIG_NR_QUICK=2
@@ -284,7 +288,6 @@ CONFIG_KEXEC=y
284# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
285# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
286CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
287# CONFIG_PREEMPT_RCU is not set
288CONFIG_GUSA=y 291CONFIG_GUSA=y
289 292
290# 293#
@@ -302,6 +305,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 305CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 306CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 307CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
308# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 309# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 310CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
@@ -315,11 +319,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 319# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 320# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 321# CONFIG_BINFMT_MISC is not set
322
323#
324# Power management options (EXPERIMENTAL)
325#
326# CONFIG_PM is not set
327# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 328CONFIG_NET=y
319 329
320# 330#
321# Networking options 331# Networking options
322# 332#
333CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 334CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 335# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 336CONFIG_UNIX=y
@@ -382,6 +393,7 @@ CONFIG_LLC=m
382# CONFIG_ECONET is not set 393# CONFIG_ECONET is not set
383# CONFIG_WAN_ROUTER is not set 394# CONFIG_WAN_ROUTER is not set
384# CONFIG_NET_SCHED is not set 395# CONFIG_NET_SCHED is not set
396# CONFIG_DCB is not set
385 397
386# 398#
387# Network testing 399# Network testing
@@ -398,8 +410,8 @@ CONFIG_WIRELESS=y
398# CONFIG_WIRELESS_OLD_REGULATORY is not set 410# CONFIG_WIRELESS_OLD_REGULATORY is not set
399CONFIG_WIRELESS_EXT=y 411CONFIG_WIRELESS_EXT=y
400CONFIG_WIRELESS_EXT_SYSFS=y 412CONFIG_WIRELESS_EXT_SYSFS=y
413# CONFIG_LIB80211 is not set
401# CONFIG_MAC80211 is not set 414# CONFIG_MAC80211 is not set
402# CONFIG_IEEE80211 is not set
403# CONFIG_RFKILL is not set 415# CONFIG_RFKILL is not set
404# CONFIG_NET_9P is not set 416# CONFIG_NET_9P is not set
405 417
@@ -442,8 +454,10 @@ CONFIG_MISC_DEVICES=y
442CONFIG_EEPROM_93CX6=y 454CONFIG_EEPROM_93CX6=y
443# CONFIG_SGI_IOC4 is not set 455# CONFIG_SGI_IOC4 is not set
444# CONFIG_TIFM_CORE is not set 456# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_HP_ILO is not set 459# CONFIG_HP_ILO is not set
460# CONFIG_C2PORT is not set
447CONFIG_HAVE_IDE=y 461CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 462# CONFIG_IDE is not set
449 463
@@ -486,6 +500,7 @@ CONFIG_SCSI_WAIT_SCAN=m
486# CONFIG_SCSI_SRP_ATTRS is not set 500# CONFIG_SCSI_SRP_ATTRS is not set
487CONFIG_SCSI_LOWLEVEL=y 501CONFIG_SCSI_LOWLEVEL=y
488# CONFIG_ISCSI_TCP is not set 502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
489# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
490# CONFIG_SCSI_3W_9XXX is not set 505# CONFIG_SCSI_3W_9XXX is not set
491# CONFIG_SCSI_ACARD is not set 506# CONFIG_SCSI_ACARD is not set
@@ -499,6 +514,8 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_MEGARAID_LEGACY is not set 514# CONFIG_MEGARAID_LEGACY is not set
500# CONFIG_MEGARAID_SAS is not set 515# CONFIG_MEGARAID_SAS is not set
501# CONFIG_SCSI_HPTIOP is not set 516# CONFIG_SCSI_HPTIOP is not set
517# CONFIG_LIBFC is not set
518# CONFIG_FCOE is not set
502# CONFIG_SCSI_DMX3191D is not set 519# CONFIG_SCSI_DMX3191D is not set
503# CONFIG_SCSI_FUTURE_DOMAIN is not set 520# CONFIG_SCSI_FUTURE_DOMAIN is not set
504# CONFIG_SCSI_IPS is not set 521# CONFIG_SCSI_IPS is not set
@@ -611,6 +628,7 @@ CONFIG_AX88796_93CX6=y
611# CONFIG_NET_VENDOR_3COM is not set 628# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_SMC91X is not set 629# CONFIG_SMC91X is not set
613# CONFIG_SMC911X is not set 630# CONFIG_SMC911X is not set
631# CONFIG_SMSC911X is not set
614# CONFIG_NET_TULIP is not set 632# CONFIG_NET_TULIP is not set
615# CONFIG_HP100 is not set 633# CONFIG_HP100 is not set
616# CONFIG_IBM_NEW_EMAC_ZMII is not set 634# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -626,7 +644,6 @@ CONFIG_PCNET32=m
626# CONFIG_ADAPTEC_STARFIRE is not set 644# CONFIG_ADAPTEC_STARFIRE is not set
627# CONFIG_B44 is not set 645# CONFIG_B44 is not set
628# CONFIG_FORCEDETH is not set 646# CONFIG_FORCEDETH is not set
629# CONFIG_EEPRO100 is not set
630# CONFIG_E100 is not set 647# CONFIG_E100 is not set
631# CONFIG_FEALNX is not set 648# CONFIG_FEALNX is not set
632# CONFIG_NATSEMI is not set 649# CONFIG_NATSEMI is not set
@@ -640,6 +657,7 @@ CONFIG_8139TOO_8129=y
640# CONFIG_R6040 is not set 657# CONFIG_R6040 is not set
641# CONFIG_SIS900 is not set 658# CONFIG_SIS900 is not set
642# CONFIG_EPIC100 is not set 659# CONFIG_EPIC100 is not set
660# CONFIG_SMSC9420 is not set
643# CONFIG_SUNDANCE is not set 661# CONFIG_SUNDANCE is not set
644# CONFIG_TLAN is not set 662# CONFIG_TLAN is not set
645CONFIG_VIA_RHINE=m 663CONFIG_VIA_RHINE=m
@@ -669,6 +687,7 @@ CONFIG_R8169=y
669# CONFIG_JME is not set 687# CONFIG_JME is not set
670CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
690CONFIG_CHELSIO_T3_DEPENDS=y
672# CONFIG_CHELSIO_T3 is not set 691# CONFIG_CHELSIO_T3 is not set
673# CONFIG_ENIC is not set 692# CONFIG_ENIC is not set
674# CONFIG_IXGBE is not set 693# CONFIG_IXGBE is not set
@@ -677,6 +696,7 @@ CONFIG_NETDEV_10000=y
677# CONFIG_MYRI10GE is not set 696# CONFIG_MYRI10GE is not set
678# CONFIG_NETXEN_NIC is not set 697# CONFIG_NETXEN_NIC is not set
679# CONFIG_NIU is not set 698# CONFIG_NIU is not set
699# CONFIG_MLX4_EN is not set
680# CONFIG_MLX4_CORE is not set 700# CONFIG_MLX4_CORE is not set
681# CONFIG_TEHUTI is not set 701# CONFIG_TEHUTI is not set
682# CONFIG_BNX2X is not set 702# CONFIG_BNX2X is not set
@@ -771,6 +791,7 @@ CONFIG_SERIAL_CORE=y
771CONFIG_SERIAL_CORE_CONSOLE=y 791CONFIG_SERIAL_CORE_CONSOLE=y
772# CONFIG_SERIAL_JSM is not set 792# CONFIG_SERIAL_JSM is not set
773CONFIG_UNIX98_PTYS=y 793CONFIG_UNIX98_PTYS=y
794# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
774CONFIG_LEGACY_PTYS=y 795CONFIG_LEGACY_PTYS=y
775CONFIG_LEGACY_PTY_COUNT=256 796CONFIG_LEGACY_PTY_COUNT=256
776# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
@@ -836,8 +857,8 @@ CONFIG_I2C_HIGHLANDER=y
836# Miscellaneous I2C Chip support 857# Miscellaneous I2C Chip support
837# 858#
838# CONFIG_DS1682 is not set 859# CONFIG_DS1682 is not set
839# CONFIG_AT24 is not set 860# CONFIG_EEPROM_AT24 is not set
840# CONFIG_SENSORS_EEPROM is not set 861# CONFIG_EEPROM_LEGACY is not set
841# CONFIG_SENSORS_PCF8574 is not set 862# CONFIG_SENSORS_PCF8574 is not set
842# CONFIG_PCF8575 is not set 863# CONFIG_PCF8575 is not set
843# CONFIG_SENSORS_PCA9539 is not set 864# CONFIG_SENSORS_PCA9539 is not set
@@ -861,6 +882,7 @@ CONFIG_HWMON=y
861# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
862# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
863# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7462 is not set
864# CONFIG_SENSORS_ADT7470 is not set 886# CONFIG_SENSORS_ADT7470 is not set
865# CONFIG_SENSORS_ADT7473 is not set 887# CONFIG_SENSORS_ADT7473 is not set
866# CONFIG_SENSORS_ATXP1 is not set 888# CONFIG_SENSORS_ATXP1 is not set
@@ -909,11 +931,11 @@ CONFIG_HWMON=y
909CONFIG_THERMAL=y 931CONFIG_THERMAL=y
910# CONFIG_THERMAL_HWMON is not set 932# CONFIG_THERMAL_HWMON is not set
911# CONFIG_WATCHDOG is not set 933# CONFIG_WATCHDOG is not set
934CONFIG_SSB_POSSIBLE=y
912 935
913# 936#
914# Sonics Silicon Backplane 937# Sonics Silicon Backplane
915# 938#
916CONFIG_SSB_POSSIBLE=y
917# CONFIG_SSB is not set 939# CONFIG_SSB is not set
918 940
919# 941#
@@ -922,9 +944,12 @@ CONFIG_SSB_POSSIBLE=y
922# CONFIG_MFD_CORE is not set 944# CONFIG_MFD_CORE is not set
923# CONFIG_MFD_SM501 is not set 945# CONFIG_MFD_SM501 is not set
924# CONFIG_HTC_PASIC3 is not set 946# CONFIG_HTC_PASIC3 is not set
947# CONFIG_TWL4030_CORE is not set
925# CONFIG_MFD_TMIO is not set 948# CONFIG_MFD_TMIO is not set
949# CONFIG_PMIC_DA903X is not set
926# CONFIG_MFD_WM8400 is not set 950# CONFIG_MFD_WM8400 is not set
927# CONFIG_MFD_WM8350_I2C is not set 951# CONFIG_MFD_WM8350_I2C is not set
952# CONFIG_REGULATOR is not set
928 953
929# 954#
930# Multimedia devices 955# Multimedia devices
@@ -982,9 +1007,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
982# 1007#
983 1008
984# 1009#
985# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1010# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
986# 1011#
987# CONFIG_USB_GADGET is not set 1012# CONFIG_USB_GADGET is not set
1013# CONFIG_UWB is not set
988# CONFIG_MMC is not set 1014# CONFIG_MMC is not set
989# CONFIG_MEMSTICK is not set 1015# CONFIG_MEMSTICK is not set
990# CONFIG_NEW_LEDS is not set 1016# CONFIG_NEW_LEDS is not set
@@ -1020,6 +1046,7 @@ CONFIG_RTC_DRV_RS5C372=y
1020# CONFIG_RTC_DRV_M41T80 is not set 1046# CONFIG_RTC_DRV_M41T80 is not set
1021# CONFIG_RTC_DRV_S35390A is not set 1047# CONFIG_RTC_DRV_S35390A is not set
1022# CONFIG_RTC_DRV_FM3130 is not set 1048# CONFIG_RTC_DRV_FM3130 is not set
1049# CONFIG_RTC_DRV_RX8581 is not set
1023 1050
1024# 1051#
1025# SPI RTC drivers 1052# SPI RTC drivers
@@ -1106,10 +1133,7 @@ CONFIG_TMPFS=y
1106CONFIG_HUGETLBFS=y 1133CONFIG_HUGETLBFS=y
1107CONFIG_HUGETLB_PAGE=y 1134CONFIG_HUGETLB_PAGE=y
1108CONFIG_CONFIGFS_FS=m 1135CONFIG_CONFIGFS_FS=m
1109 1136CONFIG_MISC_FILESYSTEMS=y
1110#
1111# Miscellaneous filesystems
1112#
1113# CONFIG_ADFS_FS is not set 1137# CONFIG_ADFS_FS is not set
1114# CONFIG_AFFS_FS is not set 1138# CONFIG_AFFS_FS is not set
1115# CONFIG_HFS_FS is not set 1139# CONFIG_HFS_FS is not set
@@ -1228,6 +1252,7 @@ CONFIG_SCHED_DEBUG=y
1228# CONFIG_LOCK_STAT is not set 1252# CONFIG_LOCK_STAT is not set
1229# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1253# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1230# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1254# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1255CONFIG_STACKTRACE=y
1231# CONFIG_DEBUG_KOBJECT is not set 1256# CONFIG_DEBUG_KOBJECT is not set
1232CONFIG_DEBUG_BUGVERBOSE=y 1257CONFIG_DEBUG_BUGVERBOSE=y
1233CONFIG_DEBUG_INFO=y 1258CONFIG_DEBUG_INFO=y
@@ -1236,6 +1261,7 @@ CONFIG_DEBUG_INFO=y
1236# CONFIG_DEBUG_MEMORY_INIT is not set 1261# CONFIG_DEBUG_MEMORY_INIT is not set
1237# CONFIG_DEBUG_LIST is not set 1262# CONFIG_DEBUG_LIST is not set
1238# CONFIG_DEBUG_SG is not set 1263# CONFIG_DEBUG_SG is not set
1264# CONFIG_DEBUG_NOTIFIERS is not set
1239# CONFIG_FRAME_POINTER is not set 1265# CONFIG_FRAME_POINTER is not set
1240# CONFIG_RCU_TORTURE_TEST is not set 1266# CONFIG_RCU_TORTURE_TEST is not set
1241# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1267# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1244,16 +1270,28 @@ CONFIG_DEBUG_INFO=y
1244# CONFIG_FAULT_INJECTION is not set 1270# CONFIG_FAULT_INJECTION is not set
1245# CONFIG_LATENCYTOP is not set 1271# CONFIG_LATENCYTOP is not set
1246CONFIG_NOP_TRACER=y 1272CONFIG_NOP_TRACER=y
1247CONFIG_HAVE_FTRACE=y 1273CONFIG_HAVE_FUNCTION_TRACER=y
1248# CONFIG_FTRACE is not set 1274CONFIG_HAVE_DYNAMIC_FTRACE=y
1275CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1276CONFIG_RING_BUFFER=y
1277CONFIG_TRACING=y
1278
1279#
1280# Tracers
1281#
1282# CONFIG_FUNCTION_TRACER is not set
1249# CONFIG_IRQSOFF_TRACER is not set 1283# CONFIG_IRQSOFF_TRACER is not set
1250# CONFIG_PREEMPT_TRACER is not set 1284# CONFIG_PREEMPT_TRACER is not set
1251# CONFIG_SCHED_TRACER is not set 1285# CONFIG_SCHED_TRACER is not set
1252# CONFIG_CONTEXT_SWITCH_TRACER is not set 1286# CONFIG_CONTEXT_SWITCH_TRACER is not set
1253# CONFIG_BOOT_TRACER is not set 1287# CONFIG_BOOT_TRACER is not set
1288# CONFIG_TRACE_BRANCH_PROFILING is not set
1254# CONFIG_STACK_TRACER is not set 1289# CONFIG_STACK_TRACER is not set
1290# CONFIG_FTRACE_STARTUP_TEST is not set
1255# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1291# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1256# CONFIG_SAMPLES is not set 1292# CONFIG_SAMPLES is not set
1293CONFIG_HAVE_ARCH_KGDB=y
1294# CONFIG_KGDB is not set
1257CONFIG_SH_STANDARD_BIOS=y 1295CONFIG_SH_STANDARD_BIOS=y
1258# CONFIG_EARLY_SCIF_CONSOLE is not set 1296# CONFIG_EARLY_SCIF_CONSOLE is not set
1259CONFIG_EARLY_PRINTK=y 1297CONFIG_EARLY_PRINTK=y
@@ -1262,7 +1300,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1262# CONFIG_DEBUG_STACK_USAGE is not set 1300# CONFIG_DEBUG_STACK_USAGE is not set
1263# CONFIG_4KSTACKS is not set 1301# CONFIG_4KSTACKS is not set
1264# CONFIG_IRQSTACKS is not set 1302# CONFIG_IRQSTACKS is not set
1265# CONFIG_SH_KGDB is not set 1303CONFIG_DUMP_CODE=y
1304# CONFIG_SH_NO_BSS_INIT is not set
1305# CONFIG_MORE_COMPILE_OPTIONS is not set
1266 1306
1267# 1307#
1268# Security options 1308# Security options
@@ -1278,11 +1318,15 @@ CONFIG_CRYPTO=y
1278# 1318#
1279# CONFIG_CRYPTO_FIPS is not set 1319# CONFIG_CRYPTO_FIPS is not set
1280CONFIG_CRYPTO_ALGAPI=y 1320CONFIG_CRYPTO_ALGAPI=y
1281CONFIG_CRYPTO_AEAD=y 1321CONFIG_CRYPTO_ALGAPI2=y
1322CONFIG_CRYPTO_AEAD2=y
1282CONFIG_CRYPTO_BLKCIPHER=y 1323CONFIG_CRYPTO_BLKCIPHER=y
1324CONFIG_CRYPTO_BLKCIPHER2=y
1283CONFIG_CRYPTO_HASH=y 1325CONFIG_CRYPTO_HASH=y
1284CONFIG_CRYPTO_RNG=y 1326CONFIG_CRYPTO_HASH2=y
1327CONFIG_CRYPTO_RNG2=y
1285CONFIG_CRYPTO_MANAGER=y 1328CONFIG_CRYPTO_MANAGER=y
1329CONFIG_CRYPTO_MANAGER2=y
1286# CONFIG_CRYPTO_GF128MUL is not set 1330# CONFIG_CRYPTO_GF128MUL is not set
1287# CONFIG_CRYPTO_NULL is not set 1331# CONFIG_CRYPTO_NULL is not set
1288# CONFIG_CRYPTO_CRYPTD is not set 1332# CONFIG_CRYPTO_CRYPTD is not set
@@ -1366,6 +1410,7 @@ CONFIG_CRYPTO_HW=y
1366# Library routines 1410# Library routines
1367# 1411#
1368CONFIG_BITREVERSE=y 1412CONFIG_BITREVERSE=y
1413CONFIG_GENERIC_FIND_LAST_BIT=y
1369# CONFIG_CRC_CCITT is not set 1414# CONFIG_CRC_CCITT is not set
1370# CONFIG_CRC16 is not set 1415# CONFIG_CRC16 is not set
1371CONFIG_CRC_T10DIF=y 1416CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
index 043a8a509e09..8defaa5f13b9 100644
--- a/arch/sh/configs/r7785rp_defconfig
+++ b/arch/sh/configs/r7785rp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 16:25:30 2008 4# Fri Jan 9 17:14:41 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -13,9 +13,11 @@ CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16CONFIG_GENERIC_GPIO=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -63,6 +65,7 @@ CONFIG_UID16=y
63# CONFIG_SYSCTL_SYSCALL is not set 65# CONFIG_SYSCTL_SYSCALL is not set
64CONFIG_KALLSYMS=y 66CONFIG_KALLSYMS=y
65CONFIG_KALLSYMS_ALL=y 67CONFIG_KALLSYMS_ALL=y
68CONFIG_KALLSYMS_STRIP_GENERATED=y
66# CONFIG_KALLSYMS_EXTRA_PASS is not set 69# CONFIG_KALLSYMS_EXTRA_PASS is not set
67CONFIG_HOTPLUG=y 70CONFIG_HOTPLUG=y
68CONFIG_PRINTK=y 71CONFIG_PRINTK=y
@@ -84,6 +87,7 @@ CONFIG_SLAB=y
84# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 89CONFIG_PROFILING=y
90CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 91# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 92CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
@@ -97,7 +101,6 @@ CONFIG_HAVE_CLK=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
99CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
100# CONFIG_TINY_SHMEM is not set
101CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
102CONFIG_MODULES=y 105CONFIG_MODULES=y
103# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -105,11 +108,9 @@ CONFIG_MODULE_UNLOAD=y
105# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
106# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
107# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
108CONFIG_KMOD=y
109CONFIG_BLOCK=y 111CONFIG_BLOCK=y
110# CONFIG_LBD is not set 112# CONFIG_LBD is not set
111# CONFIG_BLK_DEV_IO_TRACE is not set 113# CONFIG_BLK_DEV_IO_TRACE is not set
112# CONFIG_LSF is not set
113# CONFIG_BLK_DEV_BSG is not set 114# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set 115# CONFIG_BLK_DEV_INTEGRITY is not set
115 116
@@ -126,6 +127,11 @@ CONFIG_IOSCHED_NOOP=y
126CONFIG_DEFAULT_NOOP=y 127CONFIG_DEFAULT_NOOP=y
127CONFIG_DEFAULT_IOSCHED="noop" 128CONFIG_DEFAULT_IOSCHED="noop"
128# CONFIG_CLASSIC_RCU is not set 129# CONFIG_CLASSIC_RCU is not set
130# CONFIG_TREE_RCU is not set
131CONFIG_PREEMPT_RCU=y
132CONFIG_RCU_TRACE=y
133# CONFIG_TREE_RCU_TRACE is not set
134CONFIG_PREEMPT_RCU_TRACE=y
129# CONFIG_FREEZER is not set 135# CONFIG_FREEZER is not set
130 136
131# 137#
@@ -135,6 +141,7 @@ CONFIG_CPU_SH4=y
135CONFIG_CPU_SH4A=y 141CONFIG_CPU_SH4A=y
136CONFIG_CPU_SHX2=y 142CONFIG_CPU_SHX2=y
137# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
138# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
139# CONFIG_CPU_SUBTYPE_SH7206 is not set 146# CONFIG_CPU_SUBTYPE_SH7206 is not set
140# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -211,7 +218,6 @@ CONFIG_SPARSEMEM_STATIC=y
211CONFIG_PAGEFLAGS_EXTENDED=y 218CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
213CONFIG_MIGRATION=y 220CONFIG_MIGRATION=y
214# CONFIG_RESOURCES_64BIT is not set
215# CONFIG_PHYS_ADDR_T_64BIT is not set 221# CONFIG_PHYS_ADDR_T_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=0 222CONFIG_ZONE_DMA_FLAG=0
217CONFIG_NR_QUICK=2 223CONFIG_NR_QUICK=2
@@ -307,8 +313,6 @@ CONFIG_KEXEC=y
307# CONFIG_PREEMPT_NONE is not set 313# CONFIG_PREEMPT_NONE is not set
308# CONFIG_PREEMPT_VOLUNTARY is not set 314# CONFIG_PREEMPT_VOLUNTARY is not set
309CONFIG_PREEMPT=y 315CONFIG_PREEMPT=y
310CONFIG_PREEMPT_RCU=y
311CONFIG_RCU_TRACE=y
312CONFIG_GUSA=y 316CONFIG_GUSA=y
313 317
314# 318#
@@ -326,6 +330,7 @@ CONFIG_PCI=y
326CONFIG_SH_PCIDMA_NONCOHERENT=y 330CONFIG_SH_PCIDMA_NONCOHERENT=y
327CONFIG_PCI_AUTO=y 331CONFIG_PCI_AUTO=y
328CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 332CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
333# CONFIG_PCIEPORTBUS is not set
329# CONFIG_ARCH_SUPPORTS_MSI is not set 334# CONFIG_ARCH_SUPPORTS_MSI is not set
330# CONFIG_PCI_LEGACY is not set 335# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 336# CONFIG_PCI_DEBUG is not set
@@ -339,11 +344,18 @@ CONFIG_BINFMT_ELF=y
339# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 344# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
340# CONFIG_HAVE_AOUT is not set 345# CONFIG_HAVE_AOUT is not set
341CONFIG_BINFMT_MISC=m 346CONFIG_BINFMT_MISC=m
347
348#
349# Power management options (EXPERIMENTAL)
350#
351# CONFIG_PM is not set
352# CONFIG_CPU_IDLE is not set
342CONFIG_NET=y 353CONFIG_NET=y
343 354
344# 355#
345# Networking options 356# Networking options
346# 357#
358CONFIG_COMPAT_NET_DEV_OPS=y
347CONFIG_PACKET=y 359CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set 360# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 361CONFIG_UNIX=y
@@ -406,6 +418,7 @@ CONFIG_LLC=m
406# CONFIG_ECONET is not set 418# CONFIG_ECONET is not set
407# CONFIG_WAN_ROUTER is not set 419# CONFIG_WAN_ROUTER is not set
408# CONFIG_NET_SCHED is not set 420# CONFIG_NET_SCHED is not set
421# CONFIG_DCB is not set
409 422
410# 423#
411# Network testing 424# Network testing
@@ -423,8 +436,8 @@ CONFIG_WIRELESS=y
423# CONFIG_WIRELESS_OLD_REGULATORY is not set 436# CONFIG_WIRELESS_OLD_REGULATORY is not set
424CONFIG_WIRELESS_EXT=y 437CONFIG_WIRELESS_EXT=y
425CONFIG_WIRELESS_EXT_SYSFS=y 438CONFIG_WIRELESS_EXT_SYSFS=y
439# CONFIG_LIB80211 is not set
426# CONFIG_MAC80211 is not set 440# CONFIG_MAC80211 is not set
427# CONFIG_IEEE80211 is not set
428# CONFIG_RFKILL is not set 441# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set 442# CONFIG_NET_9P is not set
430 443
@@ -467,8 +480,10 @@ CONFIG_MISC_DEVICES=y
467CONFIG_EEPROM_93CX6=y 480CONFIG_EEPROM_93CX6=y
468# CONFIG_SGI_IOC4 is not set 481# CONFIG_SGI_IOC4 is not set
469# CONFIG_TIFM_CORE is not set 482# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set
470# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set 485# CONFIG_HP_ILO is not set
486# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 487CONFIG_HAVE_IDE=y
473# CONFIG_IDE is not set 488# CONFIG_IDE is not set
474 489
@@ -511,6 +526,7 @@ CONFIG_SCSI_WAIT_SCAN=m
511# CONFIG_SCSI_SRP_ATTRS is not set 526# CONFIG_SCSI_SRP_ATTRS is not set
512CONFIG_SCSI_LOWLEVEL=y 527CONFIG_SCSI_LOWLEVEL=y
513# CONFIG_ISCSI_TCP is not set 528# CONFIG_ISCSI_TCP is not set
529# CONFIG_SCSI_CXGB3_ISCSI is not set
514# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 530# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
515# CONFIG_SCSI_3W_9XXX is not set 531# CONFIG_SCSI_3W_9XXX is not set
516# CONFIG_SCSI_ACARD is not set 532# CONFIG_SCSI_ACARD is not set
@@ -524,6 +540,8 @@ CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_MEGARAID_LEGACY is not set 540# CONFIG_MEGARAID_LEGACY is not set
525# CONFIG_MEGARAID_SAS is not set 541# CONFIG_MEGARAID_SAS is not set
526# CONFIG_SCSI_HPTIOP is not set 542# CONFIG_SCSI_HPTIOP is not set
543# CONFIG_LIBFC is not set
544# CONFIG_FCOE is not set
527# CONFIG_SCSI_DMX3191D is not set 545# CONFIG_SCSI_DMX3191D is not set
528# CONFIG_SCSI_FUTURE_DOMAIN is not set 546# CONFIG_SCSI_FUTURE_DOMAIN is not set
529# CONFIG_SCSI_IPS is not set 547# CONFIG_SCSI_IPS is not set
@@ -636,6 +654,7 @@ CONFIG_AX88796_93CX6=y
636# CONFIG_NET_VENDOR_3COM is not set 654# CONFIG_NET_VENDOR_3COM is not set
637# CONFIG_SMC91X is not set 655# CONFIG_SMC91X is not set
638# CONFIG_SMC911X is not set 656# CONFIG_SMC911X is not set
657# CONFIG_SMSC911X is not set
639# CONFIG_NET_TULIP is not set 658# CONFIG_NET_TULIP is not set
640# CONFIG_HP100 is not set 659# CONFIG_HP100 is not set
641# CONFIG_IBM_NEW_EMAC_ZMII is not set 660# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -671,6 +690,7 @@ CONFIG_R8169=y
671# CONFIG_JME is not set 690# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 691CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 692# CONFIG_CHELSIO_T1 is not set
693CONFIG_CHELSIO_T3_DEPENDS=y
674# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set 695# CONFIG_ENIC is not set
676# CONFIG_IXGBE is not set 696# CONFIG_IXGBE is not set
@@ -679,6 +699,7 @@ CONFIG_NETDEV_10000=y
679# CONFIG_MYRI10GE is not set 699# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 700# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 701# CONFIG_NIU is not set
702# CONFIG_MLX4_EN is not set
682# CONFIG_MLX4_CORE is not set 703# CONFIG_MLX4_CORE is not set
683# CONFIG_TEHUTI is not set 704# CONFIG_TEHUTI is not set
684# CONFIG_BNX2X is not set 705# CONFIG_BNX2X is not set
@@ -732,6 +753,7 @@ CONFIG_KEYBOARD_ATKBD=y
732# CONFIG_KEYBOARD_XTKBD is not set 753# CONFIG_KEYBOARD_XTKBD is not set
733# CONFIG_KEYBOARD_NEWTON is not set 754# CONFIG_KEYBOARD_NEWTON is not set
734# CONFIG_KEYBOARD_STOWAWAY is not set 755# CONFIG_KEYBOARD_STOWAWAY is not set
756# CONFIG_KEYBOARD_GPIO is not set
735# CONFIG_KEYBOARD_SH_KEYSC is not set 757# CONFIG_KEYBOARD_SH_KEYSC is not set
736# CONFIG_INPUT_MOUSE is not set 758# CONFIG_INPUT_MOUSE is not set
737# CONFIG_INPUT_JOYSTICK is not set 759# CONFIG_INPUT_JOYSTICK is not set
@@ -773,6 +795,7 @@ CONFIG_SERIAL_CORE=y
773CONFIG_SERIAL_CORE_CONSOLE=y 795CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 796# CONFIG_SERIAL_JSM is not set
775CONFIG_UNIX98_PTYS=y 797CONFIG_UNIX98_PTYS=y
798# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
776CONFIG_LEGACY_PTYS=y 799CONFIG_LEGACY_PTYS=y
777CONFIG_LEGACY_PTY_COUNT=256 800CONFIG_LEGACY_PTY_COUNT=256
778# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
@@ -812,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
812# 835#
813# I2C system bus drivers (mostly embedded / system-on-chip) 836# I2C system bus drivers (mostly embedded / system-on-chip)
814# 837#
838# CONFIG_I2C_GPIO is not set
815CONFIG_I2C_HIGHLANDER=y 839CONFIG_I2C_HIGHLANDER=y
816# CONFIG_I2C_OCORES is not set 840# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SH_MOBILE is not set 841# CONFIG_I2C_SH_MOBILE is not set
@@ -838,8 +862,8 @@ CONFIG_I2C_HIGHLANDER=y
838# Miscellaneous I2C Chip support 862# Miscellaneous I2C Chip support
839# 863#
840# CONFIG_DS1682 is not set 864# CONFIG_DS1682 is not set
841# CONFIG_AT24 is not set 865# CONFIG_EEPROM_AT24 is not set
842# CONFIG_SENSORS_EEPROM is not set 866# CONFIG_EEPROM_LEGACY is not set
843# CONFIG_SENSORS_PCF8574 is not set 867# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 868# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set 869# CONFIG_SENSORS_PCA9539 is not set
@@ -851,6 +875,30 @@ CONFIG_I2C_HIGHLANDER=y
851# CONFIG_I2C_DEBUG_BUS is not set 875# CONFIG_I2C_DEBUG_BUS is not set
852# CONFIG_I2C_DEBUG_CHIP is not set 876# CONFIG_I2C_DEBUG_CHIP is not set
853# CONFIG_SPI is not set 877# CONFIG_SPI is not set
878CONFIG_ARCH_REQUIRE_GPIOLIB=y
879CONFIG_GPIOLIB=y
880# CONFIG_DEBUG_GPIO is not set
881# CONFIG_GPIO_SYSFS is not set
882
883#
884# Memory mapped GPIO expanders:
885#
886
887#
888# I2C GPIO expanders:
889#
890# CONFIG_GPIO_MAX732X is not set
891# CONFIG_GPIO_PCA953X is not set
892# CONFIG_GPIO_PCF857X is not set
893
894#
895# PCI GPIO expanders:
896#
897# CONFIG_GPIO_BT8XX is not set
898
899#
900# SPI GPIO expanders:
901#
854# CONFIG_W1 is not set 902# CONFIG_W1 is not set
855# CONFIG_POWER_SUPPLY is not set 903# CONFIG_POWER_SUPPLY is not set
856CONFIG_HWMON=y 904CONFIG_HWMON=y
@@ -863,6 +911,7 @@ CONFIG_HWMON=y
863# CONFIG_SENSORS_ADM1029 is not set 911# CONFIG_SENSORS_ADM1029 is not set
864# CONFIG_SENSORS_ADM1031 is not set 912# CONFIG_SENSORS_ADM1031 is not set
865# CONFIG_SENSORS_ADM9240 is not set 913# CONFIG_SENSORS_ADM9240 is not set
914# CONFIG_SENSORS_ADT7462 is not set
866# CONFIG_SENSORS_ADT7470 is not set 915# CONFIG_SENSORS_ADT7470 is not set
867# CONFIG_SENSORS_ADT7473 is not set 916# CONFIG_SENSORS_ADT7473 is not set
868# CONFIG_SENSORS_ATXP1 is not set 917# CONFIG_SENSORS_ATXP1 is not set
@@ -911,11 +960,11 @@ CONFIG_HWMON=y
911# CONFIG_THERMAL is not set 960# CONFIG_THERMAL is not set
912# CONFIG_THERMAL_HWMON is not set 961# CONFIG_THERMAL_HWMON is not set
913# CONFIG_WATCHDOG is not set 962# CONFIG_WATCHDOG is not set
963CONFIG_SSB_POSSIBLE=y
914 964
915# 965#
916# Sonics Silicon Backplane 966# Sonics Silicon Backplane
917# 967#
918CONFIG_SSB_POSSIBLE=y
919# CONFIG_SSB is not set 968# CONFIG_SSB is not set
920 969
921# 970#
@@ -924,9 +973,13 @@ CONFIG_SSB_POSSIBLE=y
924# CONFIG_MFD_CORE is not set 973# CONFIG_MFD_CORE is not set
925# CONFIG_MFD_SM501 is not set 974# CONFIG_MFD_SM501 is not set
926# CONFIG_HTC_PASIC3 is not set 975# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TPS65010 is not set
977# CONFIG_TWL4030_CORE is not set
927# CONFIG_MFD_TMIO is not set 978# CONFIG_MFD_TMIO is not set
979# CONFIG_PMIC_DA903X is not set
928# CONFIG_MFD_WM8400 is not set 980# CONFIG_MFD_WM8400 is not set
929# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_REGULATOR is not set
930 983
931# 984#
932# Multimedia devices 985# Multimedia devices
@@ -954,15 +1007,16 @@ CONFIG_FB=y
954# CONFIG_FIRMWARE_EDID is not set 1007# CONFIG_FIRMWARE_EDID is not set
955# CONFIG_FB_DDC is not set 1008# CONFIG_FB_DDC is not set
956# CONFIG_FB_BOOT_VESA_SUPPORT is not set 1009# CONFIG_FB_BOOT_VESA_SUPPORT is not set
957CONFIG_FB_CFB_FILLRECT=m 1010# CONFIG_FB_CFB_FILLRECT is not set
958CONFIG_FB_CFB_COPYAREA=m 1011# CONFIG_FB_CFB_COPYAREA is not set
959CONFIG_FB_CFB_IMAGEBLIT=m 1012# CONFIG_FB_CFB_IMAGEBLIT is not set
960# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 1013# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
961# CONFIG_FB_SYS_FILLRECT is not set 1014CONFIG_FB_SYS_FILLRECT=m
962# CONFIG_FB_SYS_COPYAREA is not set 1015CONFIG_FB_SYS_COPYAREA=m
963# CONFIG_FB_SYS_IMAGEBLIT is not set 1016CONFIG_FB_SYS_IMAGEBLIT=m
964# CONFIG_FB_FOREIGN_ENDIAN is not set 1017# CONFIG_FB_FOREIGN_ENDIAN is not set
965# CONFIG_FB_SYS_FOPS is not set 1018CONFIG_FB_SYS_FOPS=m
1019CONFIG_FB_DEFERRED_IO=y
966# CONFIG_FB_SVGALIB is not set 1020# CONFIG_FB_SVGALIB is not set
967# CONFIG_FB_MACMODES is not set 1021# CONFIG_FB_MACMODES is not set
968# CONFIG_FB_BACKLIGHT is not set 1022# CONFIG_FB_BACKLIGHT is not set
@@ -1000,6 +1054,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1000CONFIG_FB_SH_MOBILE_LCDC=m 1054CONFIG_FB_SH_MOBILE_LCDC=m
1001# CONFIG_FB_VIRTUAL is not set 1055# CONFIG_FB_VIRTUAL is not set
1002# CONFIG_FB_METRONOME is not set 1056# CONFIG_FB_METRONOME is not set
1057# CONFIG_FB_MB862XX is not set
1003# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1058# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1004 1059
1005# 1060#
@@ -1034,9 +1089,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1034# 1089#
1035 1090
1036# 1091#
1037# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1038# 1093#
1039# CONFIG_USB_GADGET is not set 1094# CONFIG_USB_GADGET is not set
1095# CONFIG_UWB is not set
1040# CONFIG_MMC is not set 1096# CONFIG_MMC is not set
1041# CONFIG_MEMSTICK is not set 1097# CONFIG_MEMSTICK is not set
1042# CONFIG_NEW_LEDS is not set 1098# CONFIG_NEW_LEDS is not set
@@ -1072,6 +1128,7 @@ CONFIG_RTC_DRV_RS5C372=y
1072# CONFIG_RTC_DRV_M41T80 is not set 1128# CONFIG_RTC_DRV_M41T80 is not set
1073# CONFIG_RTC_DRV_S35390A is not set 1129# CONFIG_RTC_DRV_S35390A is not set
1074# CONFIG_RTC_DRV_FM3130 is not set 1130# CONFIG_RTC_DRV_FM3130 is not set
1131# CONFIG_RTC_DRV_RX8581 is not set
1075 1132
1076# 1133#
1077# SPI RTC drivers 1134# SPI RTC drivers
@@ -1158,10 +1215,7 @@ CONFIG_TMPFS=y
1158CONFIG_HUGETLBFS=y 1215CONFIG_HUGETLBFS=y
1159CONFIG_HUGETLB_PAGE=y 1216CONFIG_HUGETLB_PAGE=y
1160CONFIG_CONFIGFS_FS=m 1217CONFIG_CONFIGFS_FS=m
1161 1218CONFIG_MISC_FILESYSTEMS=y
1162#
1163# Miscellaneous filesystems
1164#
1165# CONFIG_ADFS_FS is not set 1219# CONFIG_ADFS_FS is not set
1166# CONFIG_AFFS_FS is not set 1220# CONFIG_AFFS_FS is not set
1167# CONFIG_HFS_FS is not set 1221# CONFIG_HFS_FS is not set
@@ -1291,6 +1345,7 @@ CONFIG_DEBUG_INFO=y
1291# CONFIG_DEBUG_MEMORY_INIT is not set 1345# CONFIG_DEBUG_MEMORY_INIT is not set
1292# CONFIG_DEBUG_LIST is not set 1346# CONFIG_DEBUG_LIST is not set
1293# CONFIG_DEBUG_SG is not set 1347# CONFIG_DEBUG_SG is not set
1348# CONFIG_DEBUG_NOTIFIERS is not set
1294CONFIG_FRAME_POINTER=y 1349CONFIG_FRAME_POINTER=y
1295# CONFIG_RCU_TORTURE_TEST is not set 1350# CONFIG_RCU_TORTURE_TEST is not set
1296# CONFIG_KPROBES_SANITY_TEST is not set 1351# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1300,16 +1355,28 @@ CONFIG_FRAME_POINTER=y
1300# CONFIG_FAULT_INJECTION is not set 1355# CONFIG_FAULT_INJECTION is not set
1301# CONFIG_LATENCYTOP is not set 1356# CONFIG_LATENCYTOP is not set
1302CONFIG_NOP_TRACER=y 1357CONFIG_NOP_TRACER=y
1303CONFIG_HAVE_FTRACE=y 1358CONFIG_HAVE_FUNCTION_TRACER=y
1304# CONFIG_FTRACE is not set 1359CONFIG_HAVE_DYNAMIC_FTRACE=y
1360CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1361CONFIG_RING_BUFFER=y
1362CONFIG_TRACING=y
1363
1364#
1365# Tracers
1366#
1367# CONFIG_FUNCTION_TRACER is not set
1305# CONFIG_IRQSOFF_TRACER is not set 1368# CONFIG_IRQSOFF_TRACER is not set
1306# CONFIG_PREEMPT_TRACER is not set 1369# CONFIG_PREEMPT_TRACER is not set
1307# CONFIG_SCHED_TRACER is not set 1370# CONFIG_SCHED_TRACER is not set
1308# CONFIG_CONTEXT_SWITCH_TRACER is not set 1371# CONFIG_CONTEXT_SWITCH_TRACER is not set
1309# CONFIG_BOOT_TRACER is not set 1372# CONFIG_BOOT_TRACER is not set
1373# CONFIG_TRACE_BRANCH_PROFILING is not set
1310# CONFIG_STACK_TRACER is not set 1374# CONFIG_STACK_TRACER is not set
1375# CONFIG_FTRACE_STARTUP_TEST is not set
1311# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1376# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1312# CONFIG_SAMPLES is not set 1377# CONFIG_SAMPLES is not set
1378CONFIG_HAVE_ARCH_KGDB=y
1379# CONFIG_KGDB is not set
1313CONFIG_SH_STANDARD_BIOS=y 1380CONFIG_SH_STANDARD_BIOS=y
1314# CONFIG_EARLY_SCIF_CONSOLE is not set 1381# CONFIG_EARLY_SCIF_CONSOLE is not set
1315CONFIG_EARLY_PRINTK=y 1382CONFIG_EARLY_PRINTK=y
@@ -1318,7 +1385,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1318CONFIG_DEBUG_STACK_USAGE=y 1385CONFIG_DEBUG_STACK_USAGE=y
1319CONFIG_4KSTACKS=y 1386CONFIG_4KSTACKS=y
1320# CONFIG_IRQSTACKS is not set 1387# CONFIG_IRQSTACKS is not set
1321# CONFIG_SH_KGDB is not set 1388CONFIG_DUMP_CODE=y
1389# CONFIG_SH_NO_BSS_INIT is not set
1390# CONFIG_MORE_COMPILE_OPTIONS is not set
1322 1391
1323# 1392#
1324# Security options 1393# Security options
@@ -1334,11 +1403,15 @@ CONFIG_CRYPTO=y
1334# 1403#
1335# CONFIG_CRYPTO_FIPS is not set 1404# CONFIG_CRYPTO_FIPS is not set
1336CONFIG_CRYPTO_ALGAPI=y 1405CONFIG_CRYPTO_ALGAPI=y
1337CONFIG_CRYPTO_AEAD=y 1406CONFIG_CRYPTO_ALGAPI2=y
1407CONFIG_CRYPTO_AEAD2=y
1338CONFIG_CRYPTO_BLKCIPHER=y 1408CONFIG_CRYPTO_BLKCIPHER=y
1409CONFIG_CRYPTO_BLKCIPHER2=y
1339CONFIG_CRYPTO_HASH=y 1410CONFIG_CRYPTO_HASH=y
1340CONFIG_CRYPTO_RNG=y 1411CONFIG_CRYPTO_HASH2=y
1412CONFIG_CRYPTO_RNG2=y
1341CONFIG_CRYPTO_MANAGER=y 1413CONFIG_CRYPTO_MANAGER=y
1414CONFIG_CRYPTO_MANAGER2=y
1342# CONFIG_CRYPTO_GF128MUL is not set 1415# CONFIG_CRYPTO_GF128MUL is not set
1343# CONFIG_CRYPTO_NULL is not set 1416# CONFIG_CRYPTO_NULL is not set
1344# CONFIG_CRYPTO_CRYPTD is not set 1417# CONFIG_CRYPTO_CRYPTD is not set
@@ -1422,6 +1495,7 @@ CONFIG_CRYPTO_HW=y
1422# Library routines 1495# Library routines
1423# 1496#
1424CONFIG_BITREVERSE=y 1497CONFIG_BITREVERSE=y
1498CONFIG_GENERIC_FIND_LAST_BIT=y
1425# CONFIG_CRC_CCITT is not set 1499# CONFIG_CRC_CCITT is not set
1426# CONFIG_CRC16 is not set 1500# CONFIG_CRC16 is not set
1427CONFIG_CRC_T10DIF=y 1501CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig
index 014c18cbf46a..64ee69eef47c 100644
--- a/arch/sh/configs/rsk7201_defconfig
+++ b/arch/sh/configs/rsk7201_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:48:02 2008 4# Fri Jan 9 17:19:04 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -77,6 +77,7 @@ CONFIG_VM_EVENT_COUNTERS=y
77# CONFIG_SLUB is not set 77# CONFIG_SLUB is not set
78CONFIG_SLOB=y 78CONFIG_SLOB=y
79CONFIG_PROFILING=y 79CONFIG_PROFILING=y
80CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 81# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 82CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
87CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 89CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -185,7 +187,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 187CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 190# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 191CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 192CONFIG_NR_QUICK=2
@@ -563,7 +564,6 @@ CONFIG_RTC_DRV_SH=y
563# CONFIG_DMADEVICES is not set 564# CONFIG_DMADEVICES is not set
564# CONFIG_UIO is not set 565# CONFIG_UIO is not set
565# CONFIG_STAGING is not set 566# CONFIG_STAGING is not set
566CONFIG_STAGING_EXCLUDE_BUILD=y
567 567
568# 568#
569# File systems 569# File systems
@@ -606,10 +606,7 @@ CONFIG_SYSFS=y
606# CONFIG_TMPFS is not set 606# CONFIG_TMPFS is not set
607# CONFIG_HUGETLB_PAGE is not set 607# CONFIG_HUGETLB_PAGE is not set
608# CONFIG_CONFIGFS_FS is not set 608# CONFIG_CONFIGFS_FS is not set
609 609CONFIG_MISC_FILESYSTEMS=y
610#
611# Miscellaneous filesystems
612#
613# CONFIG_ADFS_FS is not set 610# CONFIG_ADFS_FS is not set
614# CONFIG_AFFS_FS is not set 611# CONFIG_AFFS_FS is not set
615# CONFIG_HFS_FS is not set 612# CONFIG_HFS_FS is not set
@@ -658,22 +655,28 @@ CONFIG_MAGIC_SYSRQ=y
658CONFIG_DEBUG_FS=y 655CONFIG_DEBUG_FS=y
659# CONFIG_HEADERS_CHECK is not set 656# CONFIG_HEADERS_CHECK is not set
660# CONFIG_DEBUG_KERNEL is not set 657# CONFIG_DEBUG_KERNEL is not set
658CONFIG_STACKTRACE=y
661# CONFIG_DEBUG_BUGVERBOSE is not set 659# CONFIG_DEBUG_BUGVERBOSE is not set
662# CONFIG_DEBUG_MEMORY_INIT is not set 660# CONFIG_DEBUG_MEMORY_INIT is not set
663# CONFIG_RCU_CPU_STALL_DETECTOR is not set 661# CONFIG_RCU_CPU_STALL_DETECTOR is not set
664# CONFIG_LATENCYTOP is not set 662# CONFIG_LATENCYTOP is not set
665CONFIG_SYSCTL_SYSCALL_CHECK=y 663CONFIG_SYSCTL_SYSCALL_CHECK=y
664CONFIG_NOP_TRACER=y
666CONFIG_HAVE_FUNCTION_TRACER=y 665CONFIG_HAVE_FUNCTION_TRACER=y
667CONFIG_HAVE_DYNAMIC_FTRACE=y 666CONFIG_HAVE_DYNAMIC_FTRACE=y
668CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 667CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
668CONFIG_RING_BUFFER=y
669CONFIG_TRACING=y
669 670
670# 671#
671# Tracers 672# Tracers
672# 673#
673# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
674# CONFIG_SAMPLES is not set 675# CONFIG_SAMPLES is not set
676CONFIG_HAVE_ARCH_KGDB=y
675# CONFIG_SH_STANDARD_BIOS is not set 677# CONFIG_SH_STANDARD_BIOS is not set
676# CONFIG_EARLY_SCIF_CONSOLE is not set 678# CONFIG_EARLY_SCIF_CONSOLE is not set
679# CONFIG_MORE_COMPILE_OPTIONS is not set
677 680
678# 681#
679# Security options 682# Security options
@@ -688,6 +691,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
688# Library routines 691# Library routines
689# 692#
690CONFIG_BITREVERSE=y 693CONFIG_BITREVERSE=y
694CONFIG_GENERIC_FIND_LAST_BIT=y
691# CONFIG_CRC_CCITT is not set 695# CONFIG_CRC_CCITT is not set
692# CONFIG_CRC16 is not set 696# CONFIG_CRC16 is not set
693# CONFIG_CRC_T10DIF is not set 697# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig
index dcdef31cf19b..8d7a5972a86a 100644
--- a/arch/sh/configs/rsk7203_defconfig
+++ b/arch/sh/configs/rsk7203_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc6 3# Linux kernel version: 2.6.28
4# Mon Dec 8 14:35:03 2008 4# Fri Jan 9 17:20:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -62,6 +62,7 @@ CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y 62CONFIG_SYSCTL_SYSCALL=y
63CONFIG_KALLSYMS=y 63CONFIG_KALLSYMS=y
64CONFIG_KALLSYMS_ALL=y 64CONFIG_KALLSYMS_ALL=y
65CONFIG_KALLSYMS_STRIP_GENERATED=y
65# CONFIG_KALLSYMS_EXTRA_PASS is not set 66# CONFIG_KALLSYMS_EXTRA_PASS is not set
66CONFIG_HOTPLUG=y 67CONFIG_HOTPLUG=y
67CONFIG_PRINTK=y 68CONFIG_PRINTK=y
@@ -81,6 +82,7 @@ CONFIG_VM_EVENT_COUNTERS=y
81# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
82CONFIG_SLOB=y 83CONFIG_SLOB=y
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
85CONFIG_TRACEPOINTS=y
84# CONFIG_MARKERS is not set 86# CONFIG_MARKERS is not set
85CONFIG_OPROFILE=y 87CONFIG_OPROFILE=y
86CONFIG_HAVE_OPROFILE=y 88CONFIG_HAVE_OPROFILE=y
@@ -91,18 +93,15 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
91CONFIG_HAVE_CLK=y 93CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 97CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 99# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 102CONFIG_BLOCK=y
103# CONFIG_LBD is not set 103# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 104# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 105# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 106# CONFIG_BLK_DEV_INTEGRITY is not set
108 107
@@ -119,6 +118,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 118CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 119CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 120CONFIG_CLASSIC_RCU=y
121# CONFIG_TREE_RCU is not set
122# CONFIG_PREEMPT_RCU is not set
123# CONFIG_TREE_RCU_TRACE is not set
124# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 125# CONFIG_FREEZER is not set
123 126
124# 127#
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -313,6 +315,8 @@ CONFIG_NET=y
313# 315#
314# Networking options 316# Networking options
315# 317#
318# CONFIG_NET_NS is not set
319CONFIG_COMPAT_NET_DEV_OPS=y
316# CONFIG_PACKET is not set 320# CONFIG_PACKET is not set
317# CONFIG_UNIX is not set 321# CONFIG_UNIX is not set
318# CONFIG_NET_KEY is not set 322# CONFIG_NET_KEY is not set
@@ -361,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
362# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
363# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set
364 369
365# 370#
366# Network testing 371# Network testing
@@ -376,8 +381,8 @@ CONFIG_WIRELESS=y
376# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_OLD_REGULATORY is not set 382# CONFIG_WIRELESS_OLD_REGULATORY is not set
378# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
379# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
380# CONFIG_IEEE80211 is not set
381# CONFIG_RFKILL is not set 386# CONFIG_RFKILL is not set
382# CONFIG_NET_9P is not set 387# CONFIG_NET_9P is not set
383 388
@@ -509,13 +514,33 @@ CONFIG_NETDEVICES=y
509# CONFIG_EQUALIZER is not set 514# CONFIG_EQUALIZER is not set
510# CONFIG_TUN is not set 515# CONFIG_TUN is not set
511# CONFIG_VETH is not set 516# CONFIG_VETH is not set
512# CONFIG_PHYLIB is not set 517CONFIG_PHYLIB=y
518
519#
520# MII PHY device drivers
521#
522# CONFIG_MARVELL_PHY is not set
523# CONFIG_DAVICOM_PHY is not set
524# CONFIG_QSEMI_PHY is not set
525# CONFIG_LXT_PHY is not set
526# CONFIG_CICADA_PHY is not set
527# CONFIG_VITESSE_PHY is not set
528CONFIG_SMSC_PHY=y
529# CONFIG_BROADCOM_PHY is not set
530# CONFIG_ICPLUS_PHY is not set
531# CONFIG_REALTEK_PHY is not set
532# CONFIG_NATIONAL_PHY is not set
533# CONFIG_STE10XP is not set
534# CONFIG_LSI_ET1011C_PHY is not set
535# CONFIG_FIXED_PHY is not set
536# CONFIG_MDIO_BITBANG is not set
513CONFIG_NET_ETHERNET=y 537CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 538CONFIG_MII=y
515# CONFIG_AX88796 is not set 539# CONFIG_AX88796 is not set
516# CONFIG_STNIC is not set 540# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 541# CONFIG_SMC91X is not set
518CONFIG_SMC911X=y 542# CONFIG_SMC911X is not set
543CONFIG_SMSC911X=y
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 544# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 545# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 546# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -611,6 +636,26 @@ CONFIG_SERIAL_CORE_CONSOLE=y
611# CONFIG_TCG_TPM is not set 636# CONFIG_TCG_TPM is not set
612# CONFIG_I2C is not set 637# CONFIG_I2C is not set
613# CONFIG_SPI is not set 638# CONFIG_SPI is not set
639CONFIG_ARCH_REQUIRE_GPIOLIB=y
640CONFIG_GPIOLIB=y
641# CONFIG_DEBUG_GPIO is not set
642# CONFIG_GPIO_SYSFS is not set
643
644#
645# Memory mapped GPIO expanders:
646#
647
648#
649# I2C GPIO expanders:
650#
651
652#
653# PCI GPIO expanders:
654#
655
656#
657# SPI GPIO expanders:
658#
614# CONFIG_W1 is not set 659# CONFIG_W1 is not set
615# CONFIG_POWER_SUPPLY is not set 660# CONFIG_POWER_SUPPLY is not set
616# CONFIG_HWMON is not set 661# CONFIG_HWMON is not set
@@ -685,11 +730,9 @@ CONFIG_HID_COMPAT=y
685CONFIG_HID_A4TECH=y 730CONFIG_HID_A4TECH=y
686CONFIG_HID_APPLE=y 731CONFIG_HID_APPLE=y
687CONFIG_HID_BELKIN=y 732CONFIG_HID_BELKIN=y
688CONFIG_HID_BRIGHT=y
689CONFIG_HID_CHERRY=y 733CONFIG_HID_CHERRY=y
690CONFIG_HID_CHICONY=y 734CONFIG_HID_CHICONY=y
691CONFIG_HID_CYPRESS=y 735CONFIG_HID_CYPRESS=y
692CONFIG_HID_DELL=y
693CONFIG_HID_EZKEY=y 736CONFIG_HID_EZKEY=y
694CONFIG_HID_GYRATION=y 737CONFIG_HID_GYRATION=y
695CONFIG_HID_LOGITECH=y 738CONFIG_HID_LOGITECH=y
@@ -697,12 +740,15 @@ CONFIG_HID_LOGITECH=y
697# CONFIG_LOGIRUMBLEPAD2_FF is not set 740# CONFIG_LOGIRUMBLEPAD2_FF is not set
698CONFIG_HID_MICROSOFT=y 741CONFIG_HID_MICROSOFT=y
699CONFIG_HID_MONTEREY=y 742CONFIG_HID_MONTEREY=y
743# CONFIG_HID_NTRIG is not set
700CONFIG_HID_PANTHERLORD=y 744CONFIG_HID_PANTHERLORD=y
701# CONFIG_PANTHERLORD_FF is not set 745# CONFIG_PANTHERLORD_FF is not set
702CONFIG_HID_PETALYNX=y 746CONFIG_HID_PETALYNX=y
703CONFIG_HID_SAMSUNG=y 747CONFIG_HID_SAMSUNG=y
704CONFIG_HID_SONY=y 748CONFIG_HID_SONY=y
705CONFIG_HID_SUNPLUS=y 749CONFIG_HID_SUNPLUS=y
750# CONFIG_GREENASIA_FF is not set
751# CONFIG_HID_TOPSEED is not set
706CONFIG_THRUSTMASTER_FF=m 752CONFIG_THRUSTMASTER_FF=m
707CONFIG_ZEROPLUS_FF=m 753CONFIG_ZEROPLUS_FF=m
708CONFIG_USB_SUPPORT=y 754CONFIG_USB_SUPPORT=y
@@ -847,7 +893,6 @@ CONFIG_RTC_DRV_SH=y
847# CONFIG_DMADEVICES is not set 893# CONFIG_DMADEVICES is not set
848# CONFIG_UIO is not set 894# CONFIG_UIO is not set
849# CONFIG_STAGING is not set 895# CONFIG_STAGING is not set
850CONFIG_STAGING_EXCLUDE_BUILD=y
851 896
852# 897#
853# File systems 898# File systems
@@ -890,10 +935,7 @@ CONFIG_SYSFS=y
890# CONFIG_TMPFS is not set 935# CONFIG_TMPFS is not set
891# CONFIG_HUGETLB_PAGE is not set 936# CONFIG_HUGETLB_PAGE is not set
892# CONFIG_CONFIGFS_FS is not set 937# CONFIG_CONFIGFS_FS is not set
893 938CONFIG_MISC_FILESYSTEMS=y
894#
895# Miscellaneous filesystems
896#
897# CONFIG_ADFS_FS is not set 939# CONFIG_ADFS_FS is not set
898# CONFIG_AFFS_FS is not set 940# CONFIG_AFFS_FS is not set
899# CONFIG_HFS_FS is not set 941# CONFIG_HFS_FS is not set
@@ -961,6 +1003,7 @@ CONFIG_DEBUG_OBJECTS=y
961# CONFIG_DEBUG_OBJECTS_SELFTEST is not set 1003# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
962# CONFIG_DEBUG_OBJECTS_FREE is not set 1004# CONFIG_DEBUG_OBJECTS_FREE is not set
963# CONFIG_DEBUG_OBJECTS_TIMERS is not set 1005# CONFIG_DEBUG_OBJECTS_TIMERS is not set
1006CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
964# CONFIG_DEBUG_RT_MUTEXES is not set 1007# CONFIG_DEBUG_RT_MUTEXES is not set
965# CONFIG_RT_MUTEX_TESTER is not set 1008# CONFIG_RT_MUTEX_TESTER is not set
966# CONFIG_DEBUG_SPINLOCK is not set 1009# CONFIG_DEBUG_SPINLOCK is not set
@@ -970,6 +1013,7 @@ CONFIG_DEBUG_MUTEXES=y
970# CONFIG_LOCK_STAT is not set 1013# CONFIG_LOCK_STAT is not set
971CONFIG_DEBUG_SPINLOCK_SLEEP=y 1014CONFIG_DEBUG_SPINLOCK_SLEEP=y
972# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1016CONFIG_STACKTRACE=y
973# CONFIG_DEBUG_KOBJECT is not set 1017# CONFIG_DEBUG_KOBJECT is not set
974CONFIG_DEBUG_BUGVERBOSE=y 1018CONFIG_DEBUG_BUGVERBOSE=y
975CONFIG_DEBUG_INFO=y 1019CONFIG_DEBUG_INFO=y
@@ -978,6 +1022,7 @@ CONFIG_DEBUG_WRITECOUNT=y
978# CONFIG_DEBUG_MEMORY_INIT is not set 1022# CONFIG_DEBUG_MEMORY_INIT is not set
979CONFIG_DEBUG_LIST=y 1023CONFIG_DEBUG_LIST=y
980CONFIG_DEBUG_SG=y 1024CONFIG_DEBUG_SG=y
1025# CONFIG_DEBUG_NOTIFIERS is not set
981CONFIG_FRAME_POINTER=y 1026CONFIG_FRAME_POINTER=y
982# CONFIG_RCU_TORTURE_TEST is not set 1027# CONFIG_RCU_TORTURE_TEST is not set
983# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1028# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -986,9 +1031,12 @@ CONFIG_FRAME_POINTER=y
986# CONFIG_FAULT_INJECTION is not set 1031# CONFIG_FAULT_INJECTION is not set
987# CONFIG_LATENCYTOP is not set 1032# CONFIG_LATENCYTOP is not set
988CONFIG_SYSCTL_SYSCALL_CHECK=y 1033CONFIG_SYSCTL_SYSCALL_CHECK=y
1034CONFIG_NOP_TRACER=y
989CONFIG_HAVE_FUNCTION_TRACER=y 1035CONFIG_HAVE_FUNCTION_TRACER=y
990CONFIG_HAVE_DYNAMIC_FTRACE=y 1036CONFIG_HAVE_DYNAMIC_FTRACE=y
991CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1037CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1038CONFIG_RING_BUFFER=y
1039CONFIG_TRACING=y
992 1040
993# 1041#
994# Tracers 1042# Tracers
@@ -997,9 +1045,13 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
997# CONFIG_SCHED_TRACER is not set 1045# CONFIG_SCHED_TRACER is not set
998# CONFIG_CONTEXT_SWITCH_TRACER is not set 1046# CONFIG_CONTEXT_SWITCH_TRACER is not set
999# CONFIG_BOOT_TRACER is not set 1047# CONFIG_BOOT_TRACER is not set
1048# CONFIG_TRACE_BRANCH_PROFILING is not set
1000# CONFIG_STACK_TRACER is not set 1049# CONFIG_STACK_TRACER is not set
1050# CONFIG_FTRACE_STARTUP_TEST is not set
1001# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1002# CONFIG_SAMPLES is not set 1052# CONFIG_SAMPLES is not set
1053CONFIG_HAVE_ARCH_KGDB=y
1054# CONFIG_KGDB is not set
1003# CONFIG_SH_STANDARD_BIOS is not set 1055# CONFIG_SH_STANDARD_BIOS is not set
1004CONFIG_EARLY_SCIF_CONSOLE=y 1056CONFIG_EARLY_SCIF_CONSOLE=y
1005CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000 1057CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000
@@ -1008,6 +1060,9 @@ CONFIG_DEBUG_BOOTMEM=y
1008CONFIG_DEBUG_STACKOVERFLOW=y 1060CONFIG_DEBUG_STACKOVERFLOW=y
1009CONFIG_DEBUG_STACK_USAGE=y 1061CONFIG_DEBUG_STACK_USAGE=y
1010# CONFIG_IRQSTACKS is not set 1062# CONFIG_IRQSTACKS is not set
1063CONFIG_DUMP_CODE=y
1064# CONFIG_SH_NO_BSS_INIT is not set
1065# CONFIG_MORE_COMPILE_OPTIONS is not set
1011 1066
1012# 1067#
1013# Security options 1068# Security options
@@ -1022,6 +1077,7 @@ CONFIG_DEBUG_STACK_USAGE=y
1022# Library routines 1077# Library routines
1023# 1078#
1024CONFIG_BITREVERSE=y 1079CONFIG_BITREVERSE=y
1080CONFIG_GENERIC_FIND_LAST_BIT=y
1025# CONFIG_CRC_CCITT is not set 1081# CONFIG_CRC_CCITT is not set
1026# CONFIG_CRC16 is not set 1082# CONFIG_CRC16 is not set
1027# CONFIG_CRC_T10DIF is not set 1083# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index 7d2a9e88838b..d6680f4382c2 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:44:36 2008 4# Fri Jan 9 17:23:15 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index f680d3eecdfb..3fca10e24833 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:47:39 2008 4# Fri Jan 9 17:26:10 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -77,6 +79,7 @@ CONFIG_SLAB=y
77# CONFIG_SLUB is not set 79# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 80# CONFIG_SLOB is not set
79CONFIG_PROFILING=y 81CONFIG_PROFILING=y
82CONFIG_TRACEPOINTS=y
80# CONFIG_MARKERS is not set 83# CONFIG_MARKERS is not set
81CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
82CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
@@ -89,18 +92,15 @@ CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 96CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
96# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
97# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 101CONFIG_BLOCK=y
101# CONFIG_LBD is not set 102# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
106 106
@@ -117,6 +117,10 @@ CONFIG_DEFAULT_AS=y
117# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
119CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
121 125
122# 126#
@@ -124,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
124# 128#
125CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
126# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
127# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
128# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
129# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -187,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
188CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_RESOURCES_64BIT is not set
191# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
193CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +297,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 297CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 298CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 299CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
300# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 302CONFIG_PCI_LEGACY=y
298# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
@@ -308,11 +313,18 @@ CONFIG_BINFMT_ELF=y
308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 313# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
309# CONFIG_HAVE_AOUT is not set 314# CONFIG_HAVE_AOUT is not set
310# CONFIG_BINFMT_MISC is not set 315# CONFIG_BINFMT_MISC is not set
316
317#
318# Power management options (EXPERIMENTAL)
319#
320# CONFIG_PM is not set
321# CONFIG_CPU_IDLE is not set
311CONFIG_NET=y 322CONFIG_NET=y
312 323
313# 324#
314# Networking options 325# Networking options
315# 326#
327CONFIG_COMPAT_NET_DEV_OPS=y
316CONFIG_PACKET=y 328CONFIG_PACKET=y
317# CONFIG_PACKET_MMAP is not set 329# CONFIG_PACKET_MMAP is not set
318CONFIG_UNIX=y 330CONFIG_UNIX=y
@@ -365,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
365# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
367# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
368 381
369# 382#
370# Network testing 383# Network testing
@@ -381,8 +394,8 @@ CONFIG_WIRELESS=y
381# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
382CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
383CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397# CONFIG_LIB80211 is not set
384# CONFIG_MAC80211 is not set 398# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set 399# CONFIG_RFKILL is not set
387# CONFIG_NET_9P is not set 400# CONFIG_NET_9P is not set
388 401
@@ -426,6 +439,7 @@ CONFIG_MISC_DEVICES=y
426# CONFIG_TIFM_CORE is not set 439# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 440# CONFIG_ENCLOSURE_SERVICES is not set
428# CONFIG_HP_ILO is not set 441# CONFIG_HP_ILO is not set
442# CONFIG_C2PORT is not set
429CONFIG_HAVE_IDE=y 443CONFIG_HAVE_IDE=y
430# CONFIG_IDE is not set 444# CONFIG_IDE is not set
431 445
@@ -468,6 +482,7 @@ CONFIG_SCSI_WAIT_SCAN=m
468# CONFIG_SCSI_SRP_ATTRS is not set 482# CONFIG_SCSI_SRP_ATTRS is not set
469CONFIG_SCSI_LOWLEVEL=y 483CONFIG_SCSI_LOWLEVEL=y
470# CONFIG_ISCSI_TCP is not set 484# CONFIG_ISCSI_TCP is not set
485# CONFIG_SCSI_CXGB3_ISCSI is not set
471# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 486# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
472# CONFIG_SCSI_3W_9XXX is not set 487# CONFIG_SCSI_3W_9XXX is not set
473# CONFIG_SCSI_ACARD is not set 488# CONFIG_SCSI_ACARD is not set
@@ -481,6 +496,8 @@ CONFIG_SCSI_LOWLEVEL=y
481# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
482# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
483# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
486# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -593,6 +610,7 @@ CONFIG_MII=y
593# CONFIG_SMC91X is not set 610# CONFIG_SMC91X is not set
594# CONFIG_ENC28J60 is not set 611# CONFIG_ENC28J60 is not set
595# CONFIG_SMC911X is not set 612# CONFIG_SMC911X is not set
613# CONFIG_SMSC911X is not set
596# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
597# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
598# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -608,7 +626,6 @@ CONFIG_NET_PCI=y
608# CONFIG_ADAPTEC_STARFIRE is not set 626# CONFIG_ADAPTEC_STARFIRE is not set
609# CONFIG_B44 is not set 627# CONFIG_B44 is not set
610# CONFIG_FORCEDETH is not set 628# CONFIG_FORCEDETH is not set
611# CONFIG_EEPRO100 is not set
612# CONFIG_E100 is not set 629# CONFIG_E100 is not set
613# CONFIG_FEALNX is not set 630# CONFIG_FEALNX is not set
614# CONFIG_NATSEMI is not set 631# CONFIG_NATSEMI is not set
@@ -622,6 +639,7 @@ CONFIG_8139TOO=y
622# CONFIG_R6040 is not set 639# CONFIG_R6040 is not set
623# CONFIG_SIS900 is not set 640# CONFIG_SIS900 is not set
624# CONFIG_EPIC100 is not set 641# CONFIG_EPIC100 is not set
642# CONFIG_SMSC9420 is not set
625# CONFIG_SUNDANCE is not set 643# CONFIG_SUNDANCE is not set
626# CONFIG_TLAN is not set 644# CONFIG_TLAN is not set
627# CONFIG_VIA_RHINE is not set 645# CONFIG_VIA_RHINE is not set
@@ -650,6 +668,7 @@ CONFIG_NETDEV_1000=y
650# CONFIG_JME is not set 668# CONFIG_JME is not set
651CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
652# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
671CONFIG_CHELSIO_T3_DEPENDS=y
653# CONFIG_CHELSIO_T3 is not set 672# CONFIG_CHELSIO_T3 is not set
654# CONFIG_ENIC is not set 673# CONFIG_ENIC is not set
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
@@ -658,6 +677,7 @@ CONFIG_NETDEV_10000=y
658# CONFIG_MYRI10GE is not set 677# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 678# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 679# CONFIG_NIU is not set
680# CONFIG_MLX4_EN is not set
661# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
@@ -755,6 +775,7 @@ CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 775CONFIG_SERIAL_CORE_CONSOLE=y
756# CONFIG_SERIAL_JSM is not set 776# CONFIG_SERIAL_JSM is not set
757CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
758CONFIG_LEGACY_PTYS=y 779CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 780CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
@@ -777,7 +798,7 @@ CONFIG_SPI_SH_SCI=y
777# 798#
778# SPI Protocol Masters 799# SPI Protocol Masters
779# 800#
780# CONFIG_SPI_AT25 is not set 801# CONFIG_EEPROM_AT25 is not set
781# CONFIG_SPI_SPIDEV is not set 802# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set 803# CONFIG_SPI_TLE62X0 is not set
783# CONFIG_W1 is not set 804# CONFIG_W1 is not set
@@ -805,11 +826,11 @@ CONFIG_HWMON=y
805# CONFIG_THERMAL is not set 826# CONFIG_THERMAL is not set
806# CONFIG_THERMAL_HWMON is not set 827# CONFIG_THERMAL_HWMON is not set
807# CONFIG_WATCHDOG is not set 828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
808 830
809# 831#
810# Sonics Silicon Backplane 832# Sonics Silicon Backplane
811# 833#
812CONFIG_SSB_POSSIBLE=y
813# CONFIG_SSB is not set 834# CONFIG_SSB is not set
814 835
815# 836#
@@ -819,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
819CONFIG_MFD_SM501=y 840CONFIG_MFD_SM501=y
820# CONFIG_HTC_PASIC3 is not set 841# CONFIG_HTC_PASIC3 is not set
821# CONFIG_MFD_TMIO is not set 842# CONFIG_MFD_TMIO is not set
822# CONFIG_MFD_WM8400 is not set 843# CONFIG_REGULATOR is not set
823 844
824# 845#
825# Multimedia devices 846# Multimedia devices
@@ -852,11 +873,12 @@ CONFIG_FB_CFB_FILLRECT=y
852CONFIG_FB_CFB_COPYAREA=y 873CONFIG_FB_CFB_COPYAREA=y
853CONFIG_FB_CFB_IMAGEBLIT=y 874CONFIG_FB_CFB_IMAGEBLIT=y
854# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 875# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
855# CONFIG_FB_SYS_FILLRECT is not set 876CONFIG_FB_SYS_FILLRECT=m
856# CONFIG_FB_SYS_COPYAREA is not set 877CONFIG_FB_SYS_COPYAREA=m
857# CONFIG_FB_SYS_IMAGEBLIT is not set 878CONFIG_FB_SYS_IMAGEBLIT=m
858# CONFIG_FB_FOREIGN_ENDIAN is not set 879# CONFIG_FB_FOREIGN_ENDIAN is not set
859# CONFIG_FB_SYS_FOPS is not set 880CONFIG_FB_SYS_FOPS=m
881CONFIG_FB_DEFERRED_IO=y
860# CONFIG_FB_SVGALIB is not set 882# CONFIG_FB_SVGALIB is not set
861# CONFIG_FB_MACMODES is not set 883# CONFIG_FB_MACMODES is not set
862# CONFIG_FB_BACKLIGHT is not set 884# CONFIG_FB_BACKLIGHT is not set
@@ -895,6 +917,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
895CONFIG_FB_SM501=y 917CONFIG_FB_SM501=y
896# CONFIG_FB_VIRTUAL is not set 918# CONFIG_FB_VIRTUAL is not set
897# CONFIG_FB_METRONOME is not set 919# CONFIG_FB_METRONOME is not set
920# CONFIG_FB_MB862XX is not set
898# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 921# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
899 922
900# 923#
@@ -1031,11 +1054,9 @@ CONFIG_HID_COMPAT=y
1031CONFIG_HID_A4TECH=y 1054CONFIG_HID_A4TECH=y
1032CONFIG_HID_APPLE=y 1055CONFIG_HID_APPLE=y
1033CONFIG_HID_BELKIN=y 1056CONFIG_HID_BELKIN=y
1034CONFIG_HID_BRIGHT=y
1035CONFIG_HID_CHERRY=y 1057CONFIG_HID_CHERRY=y
1036CONFIG_HID_CHICONY=y 1058CONFIG_HID_CHICONY=y
1037CONFIG_HID_CYPRESS=y 1059CONFIG_HID_CYPRESS=y
1038CONFIG_HID_DELL=y
1039CONFIG_HID_EZKEY=y 1060CONFIG_HID_EZKEY=y
1040CONFIG_HID_GYRATION=y 1061CONFIG_HID_GYRATION=y
1041CONFIG_HID_LOGITECH=y 1062CONFIG_HID_LOGITECH=y
@@ -1043,12 +1064,15 @@ CONFIG_HID_LOGITECH=y
1043# CONFIG_LOGIRUMBLEPAD2_FF is not set 1064# CONFIG_LOGIRUMBLEPAD2_FF is not set
1044CONFIG_HID_MICROSOFT=y 1065CONFIG_HID_MICROSOFT=y
1045CONFIG_HID_MONTEREY=y 1066CONFIG_HID_MONTEREY=y
1067# CONFIG_HID_NTRIG is not set
1046CONFIG_HID_PANTHERLORD=y 1068CONFIG_HID_PANTHERLORD=y
1047# CONFIG_PANTHERLORD_FF is not set 1069# CONFIG_PANTHERLORD_FF is not set
1048CONFIG_HID_PETALYNX=y 1070CONFIG_HID_PETALYNX=y
1049CONFIG_HID_SAMSUNG=y 1071CONFIG_HID_SAMSUNG=y
1050CONFIG_HID_SONY=y 1072CONFIG_HID_SONY=y
1051CONFIG_HID_SUNPLUS=y 1073CONFIG_HID_SUNPLUS=y
1074# CONFIG_GREENASIA_FF is not set
1075# CONFIG_HID_TOPSEED is not set
1052CONFIG_THRUSTMASTER_FF=m 1076CONFIG_THRUSTMASTER_FF=m
1053CONFIG_ZEROPLUS_FF=m 1077CONFIG_ZEROPLUS_FF=m
1054CONFIG_USB_SUPPORT=y 1078CONFIG_USB_SUPPORT=y
@@ -1069,6 +1093,8 @@ CONFIG_USB_DEVICE_CLASS=y
1069# CONFIG_USB_OTG_WHITELIST is not set 1093# CONFIG_USB_OTG_WHITELIST is not set
1070# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1094# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1071# CONFIG_USB_MON is not set 1095# CONFIG_USB_MON is not set
1096# CONFIG_USB_WUSB is not set
1097# CONFIG_USB_WUSB_CBAF is not set
1072 1098
1073# 1099#
1074# USB Host Controller Drivers 1100# USB Host Controller Drivers
@@ -1084,6 +1110,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1084# CONFIG_USB_UHCI_HCD is not set 1110# CONFIG_USB_UHCI_HCD is not set
1085# CONFIG_USB_SL811_HCD is not set 1111# CONFIG_USB_SL811_HCD is not set
1086# CONFIG_USB_R8A66597_HCD is not set 1112# CONFIG_USB_R8A66597_HCD is not set
1113# CONFIG_USB_WHCI_HCD is not set
1114# CONFIG_USB_HWA_HCD is not set
1087 1115
1088# 1116#
1089# USB Device Class drivers 1117# USB Device Class drivers
@@ -1094,11 +1122,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1094# CONFIG_USB_TMC is not set 1122# CONFIG_USB_TMC is not set
1095 1123
1096# 1124#
1097# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1125# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1098# 1126#
1099 1127
1100# 1128#
1101# may also be needed; see USB_STORAGE Help for more information 1129# see USB_STORAGE Help for more information
1102# 1130#
1103CONFIG_USB_STORAGE=y 1131CONFIG_USB_STORAGE=y
1104# CONFIG_USB_STORAGE_DEBUG is not set 1132# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1151,6 +1179,7 @@ CONFIG_USB_LIBUSUAL=y
1151# CONFIG_USB_ISIGHTFW is not set 1179# CONFIG_USB_ISIGHTFW is not set
1152# CONFIG_USB_VST is not set 1180# CONFIG_USB_VST is not set
1153# CONFIG_USB_GADGET is not set 1181# CONFIG_USB_GADGET is not set
1182# CONFIG_UWB is not set
1154# CONFIG_MMC is not set 1183# CONFIG_MMC is not set
1155# CONFIG_MEMSTICK is not set 1184# CONFIG_MEMSTICK is not set
1156# CONFIG_NEW_LEDS is not set 1185# CONFIG_NEW_LEDS is not set
@@ -1176,6 +1205,7 @@ CONFIG_RTC_INTF_DEV=y
1176# 1205#
1177# CONFIG_RTC_DRV_M41T94 is not set 1206# CONFIG_RTC_DRV_M41T94 is not set
1178# CONFIG_RTC_DRV_DS1305 is not set 1207# CONFIG_RTC_DRV_DS1305 is not set
1208# CONFIG_RTC_DRV_DS1390 is not set
1179# CONFIG_RTC_DRV_MAX6902 is not set 1209# CONFIG_RTC_DRV_MAX6902 is not set
1180CONFIG_RTC_DRV_R9701=y 1210CONFIG_RTC_DRV_R9701=y
1181# CONFIG_RTC_DRV_RS5C348 is not set 1211# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1254,10 +1284,7 @@ CONFIG_TMPFS=y
1254# CONFIG_HUGETLBFS is not set 1284# CONFIG_HUGETLBFS is not set
1255# CONFIG_HUGETLB_PAGE is not set 1285# CONFIG_HUGETLB_PAGE is not set
1256# CONFIG_CONFIGFS_FS is not set 1286# CONFIG_CONFIGFS_FS is not set
1257 1287CONFIG_MISC_FILESYSTEMS=y
1258#
1259# Miscellaneous filesystems
1260#
1261# CONFIG_ADFS_FS is not set 1288# CONFIG_ADFS_FS is not set
1262# CONFIG_AFFS_FS is not set 1289# CONFIG_AFFS_FS is not set
1263# CONFIG_HFS_FS is not set 1290# CONFIG_HFS_FS is not set
@@ -1343,19 +1370,29 @@ CONFIG_FRAME_WARN=1024
1343CONFIG_DEBUG_FS=y 1370CONFIG_DEBUG_FS=y
1344# CONFIG_HEADERS_CHECK is not set 1371# CONFIG_HEADERS_CHECK is not set
1345# CONFIG_DEBUG_KERNEL is not set 1372# CONFIG_DEBUG_KERNEL is not set
1373CONFIG_STACKTRACE=y
1346# CONFIG_DEBUG_BUGVERBOSE is not set 1374# CONFIG_DEBUG_BUGVERBOSE is not set
1347# CONFIG_DEBUG_MEMORY_INIT is not set 1375# CONFIG_DEBUG_MEMORY_INIT is not set
1348# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1349# CONFIG_LATENCYTOP is not set 1377# CONFIG_LATENCYTOP is not set
1350CONFIG_NOP_TRACER=y 1378CONFIG_NOP_TRACER=y
1351CONFIG_HAVE_FTRACE=y 1379CONFIG_HAVE_FUNCTION_TRACER=y
1380CONFIG_HAVE_DYNAMIC_FTRACE=y
1381CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1382CONFIG_RING_BUFFER=y
1383CONFIG_TRACING=y
1384
1385#
1386# Tracers
1387#
1352# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1388# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1353# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1390CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_SH_STANDARD_BIOS is not set 1391# CONFIG_SH_STANDARD_BIOS is not set
1355CONFIG_EARLY_SCIF_CONSOLE=y 1392CONFIG_EARLY_SCIF_CONSOLE=y
1356CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1393CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1357CONFIG_EARLY_PRINTK=y 1394CONFIG_EARLY_PRINTK=y
1358# CONFIG_SH_KGDB is not set 1395# CONFIG_MORE_COMPILE_OPTIONS is not set
1359 1396
1360# 1397#
1361# Security options 1398# Security options
@@ -1371,6 +1408,7 @@ CONFIG_CRYPTO=y
1371# 1408#
1372# CONFIG_CRYPTO_FIPS is not set 1409# CONFIG_CRYPTO_FIPS is not set
1373# CONFIG_CRYPTO_MANAGER is not set 1410# CONFIG_CRYPTO_MANAGER is not set
1411# CONFIG_CRYPTO_MANAGER2 is not set
1374# CONFIG_CRYPTO_GF128MUL is not set 1412# CONFIG_CRYPTO_GF128MUL is not set
1375# CONFIG_CRYPTO_NULL is not set 1413# CONFIG_CRYPTO_NULL is not set
1376# CONFIG_CRYPTO_CRYPTD is not set 1414# CONFIG_CRYPTO_CRYPTD is not set
@@ -1454,6 +1492,7 @@ CONFIG_CRYPTO_HW=y
1454# Library routines 1492# Library routines
1455# 1493#
1456CONFIG_BITREVERSE=y 1494CONFIG_BITREVERSE=y
1495CONFIG_GENERIC_FIND_LAST_BIT=y
1457# CONFIG_CRC_CCITT is not set 1496# CONFIG_CRC_CCITT is not set
1458# CONFIG_CRC16 is not set 1497# CONFIG_CRC16 is not set
1459CONFIG_CRC_T10DIF=y 1498CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig
index 543287b97a6a..5d6b06755ae7 100644
--- a/arch/sh/configs/sdk7780_defconfig
+++ b/arch/sh/configs/sdk7780_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:53:22 2008 4# Fri Jan 9 17:26:40 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -81,7 +84,6 @@ CONFIG_SLUB_DEBUG=y
81CONFIG_SLUB=y 84CONFIG_SLUB=y
82# CONFIG_SLOB is not set 85# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set 86# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 88# CONFIG_KPROBES is not set
87CONFIG_HAVE_IOREMAP_PROT=y 89CONFIG_HAVE_IOREMAP_PROT=y
@@ -92,7 +94,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 98CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
101# CONFIG_MODVERSIONS is not set 102# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 104CONFIG_BLOCK=y
105CONFIG_LBD=y 105CONFIG_LBD=y
106# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
110 109
@@ -121,6 +120,10 @@ CONFIG_DEFAULT_AS=y
121# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
123CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
125 128
126# 129#
@@ -129,6 +132,7 @@ CONFIG_CLASSIC_RCU=y
129CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
130CONFIG_CPU_SH4A=y 133CONFIG_CPU_SH4A=y
131# CONFIG_CPU_SUBTYPE_SH7619 is not set 134# CONFIG_CPU_SUBTYPE_SH7619 is not set
135# CONFIG_CPU_SUBTYPE_SH7201 is not set
132# CONFIG_CPU_SUBTYPE_SH7203 is not set 136# CONFIG_CPU_SUBTYPE_SH7203 is not set
133# CONFIG_CPU_SUBTYPE_SH7206 is not set 137# CONFIG_CPU_SUBTYPE_SH7206 is not set
134# CONFIG_CPU_SUBTYPE_SH7263 is not set 138# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
200CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
202CONFIG_RESOURCES_64BIT=y
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -282,7 +285,6 @@ CONFIG_SCHED_HRTICK=y
282# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
283# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
284CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
285# CONFIG_PREEMPT_RCU is not set
286CONFIG_GUSA=y 288CONFIG_GUSA=y
287 289
288# 290#
@@ -300,6 +302,7 @@ CONFIG_PCI=y
300CONFIG_SH_PCIDMA_NONCOHERENT=y 302CONFIG_SH_PCIDMA_NONCOHERENT=y
301CONFIG_PCI_AUTO=y 303CONFIG_PCI_AUTO=y
302CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
305# CONFIG_PCIEPORTBUS is not set
303# CONFIG_ARCH_SUPPORTS_MSI is not set 306# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCI_LEGACY is not set 307# CONFIG_PCI_LEGACY is not set
305CONFIG_PCI_DEBUG=y 308CONFIG_PCI_DEBUG=y
@@ -334,11 +337,18 @@ CONFIG_BINFMT_ELF=y
334# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 337# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
335# CONFIG_HAVE_AOUT is not set 338# CONFIG_HAVE_AOUT is not set
336# CONFIG_BINFMT_MISC is not set 339# CONFIG_BINFMT_MISC is not set
340
341#
342# Power management options (EXPERIMENTAL)
343#
344# CONFIG_PM is not set
345# CONFIG_CPU_IDLE is not set
337CONFIG_NET=y 346CONFIG_NET=y
338 347
339# 348#
340# Networking options 349# Networking options
341# 350#
351CONFIG_COMPAT_NET_DEV_OPS=y
342CONFIG_PACKET=y 352CONFIG_PACKET=y
343# CONFIG_PACKET_MMAP is not set 353# CONFIG_PACKET_MMAP is not set
344CONFIG_UNIX=y 354CONFIG_UNIX=y
@@ -434,6 +444,7 @@ CONFIG_NET_SCHED=y
434# CONFIG_NET_SCH_GRED is not set 444# CONFIG_NET_SCH_GRED is not set
435# CONFIG_NET_SCH_DSMARK is not set 445# CONFIG_NET_SCH_DSMARK is not set
436# CONFIG_NET_SCH_NETEM is not set 446# CONFIG_NET_SCH_NETEM is not set
447# CONFIG_NET_SCH_DRR is not set
437 448
438# 449#
439# Classification 450# Classification
@@ -449,6 +460,7 @@ CONFIG_NET_SCHED=y
449# CONFIG_NET_EMATCH is not set 460# CONFIG_NET_EMATCH is not set
450# CONFIG_NET_CLS_ACT is not set 461# CONFIG_NET_CLS_ACT is not set
451CONFIG_NET_SCH_FIFO=y 462CONFIG_NET_SCH_FIFO=y
463# CONFIG_DCB is not set
452 464
453# 465#
454# Network testing 466# Network testing
@@ -464,8 +476,8 @@ CONFIG_WIRELESS=y
464# CONFIG_CFG80211 is not set 476# CONFIG_CFG80211 is not set
465# CONFIG_WIRELESS_OLD_REGULATORY is not set 477# CONFIG_WIRELESS_OLD_REGULATORY is not set
466# CONFIG_WIRELESS_EXT is not set 478# CONFIG_WIRELESS_EXT is not set
479# CONFIG_LIB80211 is not set
467# CONFIG_MAC80211 is not set 480# CONFIG_MAC80211 is not set
468# CONFIG_IEEE80211 is not set
469# CONFIG_RFKILL is not set 481# CONFIG_RFKILL is not set
470# CONFIG_NET_9P is not set 482# CONFIG_NET_9P is not set
471 483
@@ -516,6 +528,7 @@ CONFIG_IDE=y
516# 528#
517# Please see Documentation/ide/ide.txt for help/info on IDE drives 529# Please see Documentation/ide/ide.txt for help/info on IDE drives
518# 530#
531CONFIG_IDE_ATAPI=y
519# CONFIG_BLK_DEV_IDE_SATA is not set 532# CONFIG_BLK_DEV_IDE_SATA is not set
520CONFIG_IDE_GD=y 533CONFIG_IDE_GD=y
521CONFIG_IDE_GD_ATA=y 534CONFIG_IDE_GD_ATA=y
@@ -525,7 +538,6 @@ CONFIG_IDE_GD_ATA=y
525CONFIG_BLK_DEV_IDECD=y 538CONFIG_BLK_DEV_IDECD=y
526CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 539CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
527# CONFIG_BLK_DEV_IDETAPE is not set 540# CONFIG_BLK_DEV_IDETAPE is not set
528# CONFIG_BLK_DEV_IDESCSI is not set
529# CONFIG_IDE_TASK_IOCTL is not set 541# CONFIG_IDE_TASK_IOCTL is not set
530CONFIG_IDE_PROC_FS=y 542CONFIG_IDE_PROC_FS=y
531 543
@@ -553,6 +565,7 @@ CONFIG_BLK_DEV_GENERIC=y
553# CONFIG_BLK_DEV_JMICRON is not set 565# CONFIG_BLK_DEV_JMICRON is not set
554# CONFIG_BLK_DEV_SC1200 is not set 566# CONFIG_BLK_DEV_SC1200 is not set
555# CONFIG_BLK_DEV_PIIX is not set 567# CONFIG_BLK_DEV_PIIX is not set
568# CONFIG_BLK_DEV_IT8172 is not set
556# CONFIG_BLK_DEV_IT8213 is not set 569# CONFIG_BLK_DEV_IT8213 is not set
557# CONFIG_BLK_DEV_IT821X is not set 570# CONFIG_BLK_DEV_IT821X is not set
558# CONFIG_BLK_DEV_NS87415 is not set 571# CONFIG_BLK_DEV_NS87415 is not set
@@ -619,6 +632,8 @@ CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_MEGARAID_LEGACY is not set 632# CONFIG_MEGARAID_LEGACY is not set
620# CONFIG_MEGARAID_SAS is not set 633# CONFIG_MEGARAID_SAS is not set
621# CONFIG_SCSI_HPTIOP is not set 634# CONFIG_SCSI_HPTIOP is not set
635# CONFIG_LIBFC is not set
636# CONFIG_FCOE is not set
622# CONFIG_SCSI_DMX3191D is not set 637# CONFIG_SCSI_DMX3191D is not set
623# CONFIG_SCSI_FUTURE_DOMAIN is not set 638# CONFIG_SCSI_FUTURE_DOMAIN is not set
624# CONFIG_SCSI_IPS is not set 639# CONFIG_SCSI_IPS is not set
@@ -742,6 +757,7 @@ CONFIG_MII=y
742# CONFIG_NET_VENDOR_3COM is not set 757# CONFIG_NET_VENDOR_3COM is not set
743CONFIG_SMC91X=y 758CONFIG_SMC91X=y
744# CONFIG_SMC911X is not set 759# CONFIG_SMC911X is not set
760# CONFIG_SMSC911X is not set
745# CONFIG_NET_TULIP is not set 761# CONFIG_NET_TULIP is not set
746# CONFIG_HP100 is not set 762# CONFIG_HP100 is not set
747# CONFIG_IBM_NEW_EMAC_ZMII is not set 763# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -826,6 +842,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
826CONFIG_MOUSE_PS2_SYNAPTICS=y 842CONFIG_MOUSE_PS2_SYNAPTICS=y
827CONFIG_MOUSE_PS2_LIFEBOOK=y 843CONFIG_MOUSE_PS2_LIFEBOOK=y
828CONFIG_MOUSE_PS2_TRACKPOINT=y 844CONFIG_MOUSE_PS2_TRACKPOINT=y
845# CONFIG_MOUSE_PS2_ELANTECH is not set
829# CONFIG_MOUSE_PS2_TOUCHKIT is not set 846# CONFIG_MOUSE_PS2_TOUCHKIT is not set
830# CONFIG_MOUSE_SERIAL is not set 847# CONFIG_MOUSE_SERIAL is not set
831# CONFIG_MOUSE_APPLETOUCH is not set 848# CONFIG_MOUSE_APPLETOUCH is not set
@@ -875,6 +892,7 @@ CONFIG_SERIAL_CORE=y
875CONFIG_SERIAL_CORE_CONSOLE=y 892CONFIG_SERIAL_CORE_CONSOLE=y
876# CONFIG_SERIAL_JSM is not set 893# CONFIG_SERIAL_JSM is not set
877CONFIG_UNIX98_PTYS=y 894CONFIG_UNIX98_PTYS=y
895# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
878CONFIG_LEGACY_PTYS=y 896CONFIG_LEGACY_PTYS=y
879CONFIG_LEGACY_PTY_COUNT=256 897CONFIG_LEGACY_PTY_COUNT=256
880# CONFIG_PRINTER is not set 898# CONFIG_PRINTER is not set
@@ -905,11 +923,11 @@ CONFIG_POWER_SUPPLY=y
905# CONFIG_THERMAL is not set 923# CONFIG_THERMAL is not set
906# CONFIG_THERMAL_HWMON is not set 924# CONFIG_THERMAL_HWMON is not set
907# CONFIG_WATCHDOG is not set 925# CONFIG_WATCHDOG is not set
926CONFIG_SSB_POSSIBLE=y
908 927
909# 928#
910# Sonics Silicon Backplane 929# Sonics Silicon Backplane
911# 930#
912CONFIG_SSB_POSSIBLE=y
913CONFIG_SSB=y 931CONFIG_SSB=y
914CONFIG_SSB_SPROM=y 932CONFIG_SSB_SPROM=y
915CONFIG_SSB_PCIHOST_POSSIBLE=y 933CONFIG_SSB_PCIHOST_POSSIBLE=y
@@ -929,7 +947,7 @@ CONFIG_SSB_DRIVER_PCICORE=y
929# CONFIG_MFD_SM501 is not set 947# CONFIG_MFD_SM501 is not set
930# CONFIG_HTC_PASIC3 is not set 948# CONFIG_HTC_PASIC3 is not set
931# CONFIG_MFD_TMIO is not set 949# CONFIG_MFD_TMIO is not set
932# CONFIG_MFD_WM8400 is not set 950# CONFIG_REGULATOR is not set
933 951
934# 952#
935# Multimedia devices 953# Multimedia devices
@@ -957,15 +975,16 @@ CONFIG_FB=y
957# CONFIG_FIRMWARE_EDID is not set 975# CONFIG_FIRMWARE_EDID is not set
958# CONFIG_FB_DDC is not set 976# CONFIG_FB_DDC is not set
959# CONFIG_FB_BOOT_VESA_SUPPORT is not set 977# CONFIG_FB_BOOT_VESA_SUPPORT is not set
960CONFIG_FB_CFB_FILLRECT=m 978# CONFIG_FB_CFB_FILLRECT is not set
961CONFIG_FB_CFB_COPYAREA=m 979# CONFIG_FB_CFB_COPYAREA is not set
962CONFIG_FB_CFB_IMAGEBLIT=m 980# CONFIG_FB_CFB_IMAGEBLIT is not set
963# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 981# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
964# CONFIG_FB_SYS_FILLRECT is not set 982CONFIG_FB_SYS_FILLRECT=m
965# CONFIG_FB_SYS_COPYAREA is not set 983CONFIG_FB_SYS_COPYAREA=m
966# CONFIG_FB_SYS_IMAGEBLIT is not set 984CONFIG_FB_SYS_IMAGEBLIT=m
967# CONFIG_FB_FOREIGN_ENDIAN is not set 985# CONFIG_FB_FOREIGN_ENDIAN is not set
968# CONFIG_FB_SYS_FOPS is not set 986CONFIG_FB_SYS_FOPS=m
987CONFIG_FB_DEFERRED_IO=y
969# CONFIG_FB_SVGALIB is not set 988# CONFIG_FB_SVGALIB is not set
970# CONFIG_FB_MACMODES is not set 989# CONFIG_FB_MACMODES is not set
971# CONFIG_FB_BACKLIGHT is not set 990# CONFIG_FB_BACKLIGHT is not set
@@ -1003,6 +1022,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
1003CONFIG_FB_SH_MOBILE_LCDC=m 1022CONFIG_FB_SH_MOBILE_LCDC=m
1004# CONFIG_FB_VIRTUAL is not set 1023# CONFIG_FB_VIRTUAL is not set
1005# CONFIG_FB_METRONOME is not set 1024# CONFIG_FB_METRONOME is not set
1025# CONFIG_FB_MB862XX is not set
1006# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1026# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1007 1027
1008# 1028#
@@ -1054,11 +1074,9 @@ CONFIG_HID_COMPAT=y
1054CONFIG_HID_A4TECH=y 1074CONFIG_HID_A4TECH=y
1055CONFIG_HID_APPLE=y 1075CONFIG_HID_APPLE=y
1056CONFIG_HID_BELKIN=y 1076CONFIG_HID_BELKIN=y
1057CONFIG_HID_BRIGHT=y
1058CONFIG_HID_CHERRY=y 1077CONFIG_HID_CHERRY=y
1059CONFIG_HID_CHICONY=y 1078CONFIG_HID_CHICONY=y
1060CONFIG_HID_CYPRESS=y 1079CONFIG_HID_CYPRESS=y
1061CONFIG_HID_DELL=y
1062CONFIG_HID_EZKEY=y 1080CONFIG_HID_EZKEY=y
1063CONFIG_HID_GYRATION=y 1081CONFIG_HID_GYRATION=y
1064CONFIG_HID_LOGITECH=y 1082CONFIG_HID_LOGITECH=y
@@ -1066,12 +1084,15 @@ CONFIG_HID_LOGITECH=y
1066# CONFIG_LOGIRUMBLEPAD2_FF is not set 1084# CONFIG_LOGIRUMBLEPAD2_FF is not set
1067CONFIG_HID_MICROSOFT=y 1085CONFIG_HID_MICROSOFT=y
1068CONFIG_HID_MONTEREY=y 1086CONFIG_HID_MONTEREY=y
1087# CONFIG_HID_NTRIG is not set
1069CONFIG_HID_PANTHERLORD=y 1088CONFIG_HID_PANTHERLORD=y
1070# CONFIG_PANTHERLORD_FF is not set 1089# CONFIG_PANTHERLORD_FF is not set
1071CONFIG_HID_PETALYNX=y 1090CONFIG_HID_PETALYNX=y
1072CONFIG_HID_SAMSUNG=y 1091CONFIG_HID_SAMSUNG=y
1073CONFIG_HID_SONY=y 1092CONFIG_HID_SONY=y
1074CONFIG_HID_SUNPLUS=y 1093CONFIG_HID_SUNPLUS=y
1094# CONFIG_GREENASIA_FF is not set
1095# CONFIG_HID_TOPSEED is not set
1075CONFIG_THRUSTMASTER_FF=m 1096CONFIG_THRUSTMASTER_FF=m
1076CONFIG_ZEROPLUS_FF=m 1097CONFIG_ZEROPLUS_FF=m
1077CONFIG_USB_SUPPORT=y 1098CONFIG_USB_SUPPORT=y
@@ -1092,6 +1113,8 @@ CONFIG_USB_DEVICEFS=y
1092# CONFIG_USB_OTG_WHITELIST is not set 1113# CONFIG_USB_OTG_WHITELIST is not set
1093# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1114# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1094CONFIG_USB_MON=y 1115CONFIG_USB_MON=y
1116# CONFIG_USB_WUSB is not set
1117# CONFIG_USB_WUSB_CBAF is not set
1095 1118
1096# 1119#
1097# USB Host Controller Drivers 1120# USB Host Controller Drivers
@@ -1106,6 +1129,8 @@ CONFIG_USB_EHCI_HCD=y
1106# CONFIG_USB_UHCI_HCD is not set 1129# CONFIG_USB_UHCI_HCD is not set
1107# CONFIG_USB_SL811_HCD is not set 1130# CONFIG_USB_SL811_HCD is not set
1108# CONFIG_USB_R8A66597_HCD is not set 1131# CONFIG_USB_R8A66597_HCD is not set
1132# CONFIG_USB_WHCI_HCD is not set
1133# CONFIG_USB_HWA_HCD is not set
1109 1134
1110# 1135#
1111# USB Device Class drivers 1136# USB Device Class drivers
@@ -1116,11 +1141,11 @@ CONFIG_USB_PRINTER=y
1116# CONFIG_USB_TMC is not set 1141# CONFIG_USB_TMC is not set
1117 1142
1118# 1143#
1119# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1144# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1120# 1145#
1121 1146
1122# 1147#
1123# may also be needed; see USB_STORAGE Help for more information 1148# see USB_STORAGE Help for more information
1124# 1149#
1125CONFIG_USB_STORAGE=y 1150CONFIG_USB_STORAGE=y
1126# CONFIG_USB_STORAGE_DEBUG is not set 1151# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1176,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1176# CONFIG_USB_ISIGHTFW is not set 1201# CONFIG_USB_ISIGHTFW is not set
1177# CONFIG_USB_VST is not set 1202# CONFIG_USB_VST is not set
1178# CONFIG_USB_GADGET is not set 1203# CONFIG_USB_GADGET is not set
1204# CONFIG_UWB is not set
1179# CONFIG_MMC is not set 1205# CONFIG_MMC is not set
1180# CONFIG_MEMSTICK is not set 1206# CONFIG_MEMSTICK is not set
1181CONFIG_NEW_LEDS=y 1207CONFIG_NEW_LEDS=y
@@ -1260,10 +1286,7 @@ CONFIG_TMPFS_POSIX_ACL=y
1260CONFIG_HUGETLBFS=y 1286CONFIG_HUGETLBFS=y
1261CONFIG_HUGETLB_PAGE=y 1287CONFIG_HUGETLB_PAGE=y
1262# CONFIG_CONFIGFS_FS is not set 1288# CONFIG_CONFIGFS_FS is not set
1263 1289CONFIG_MISC_FILESYSTEMS=y
1264#
1265# Miscellaneous filesystems
1266#
1267# CONFIG_ADFS_FS is not set 1290# CONFIG_ADFS_FS is not set
1268# CONFIG_AFFS_FS is not set 1291# CONFIG_AFFS_FS is not set
1269# CONFIG_HFS_FS is not set 1292# CONFIG_HFS_FS is not set
@@ -1392,6 +1415,7 @@ CONFIG_DEBUG_INFO=y
1392# CONFIG_DEBUG_MEMORY_INIT is not set 1415# CONFIG_DEBUG_MEMORY_INIT is not set
1393# CONFIG_DEBUG_LIST is not set 1416# CONFIG_DEBUG_LIST is not set
1394# CONFIG_DEBUG_SG is not set 1417# CONFIG_DEBUG_SG is not set
1418# CONFIG_DEBUG_NOTIFIERS is not set
1395# CONFIG_FRAME_POINTER is not set 1419# CONFIG_FRAME_POINTER is not set
1396# CONFIG_RCU_TORTURE_TEST is not set 1420# CONFIG_RCU_TORTURE_TEST is not set
1397# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1421# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1400,17 +1424,25 @@ CONFIG_DEBUG_INFO=y
1400# CONFIG_FAULT_INJECTION is not set 1424# CONFIG_FAULT_INJECTION is not set
1401# CONFIG_LATENCYTOP is not set 1425# CONFIG_LATENCYTOP is not set
1402CONFIG_SYSCTL_SYSCALL_CHECK=y 1426CONFIG_SYSCTL_SYSCALL_CHECK=y
1403CONFIG_NOP_TRACER=y 1427CONFIG_HAVE_FUNCTION_TRACER=y
1404CONFIG_HAVE_FTRACE=y 1428CONFIG_HAVE_DYNAMIC_FTRACE=y
1405# CONFIG_FTRACE is not set 1429CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1430
1431#
1432# Tracers
1433#
1434# CONFIG_FUNCTION_TRACER is not set
1406# CONFIG_IRQSOFF_TRACER is not set 1435# CONFIG_IRQSOFF_TRACER is not set
1407# CONFIG_PREEMPT_TRACER is not set 1436# CONFIG_PREEMPT_TRACER is not set
1408# CONFIG_SCHED_TRACER is not set 1437# CONFIG_SCHED_TRACER is not set
1409# CONFIG_CONTEXT_SWITCH_TRACER is not set 1438# CONFIG_CONTEXT_SWITCH_TRACER is not set
1410# CONFIG_BOOT_TRACER is not set 1439# CONFIG_BOOT_TRACER is not set
1440# CONFIG_TRACE_BRANCH_PROFILING is not set
1411# CONFIG_STACK_TRACER is not set 1441# CONFIG_STACK_TRACER is not set
1412# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1442# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1413# CONFIG_SAMPLES is not set 1443# CONFIG_SAMPLES is not set
1444CONFIG_HAVE_ARCH_KGDB=y
1445# CONFIG_KGDB is not set
1414CONFIG_SH_STANDARD_BIOS=y 1446CONFIG_SH_STANDARD_BIOS=y
1415# CONFIG_EARLY_SCIF_CONSOLE is not set 1447# CONFIG_EARLY_SCIF_CONSOLE is not set
1416# CONFIG_EARLY_PRINTK is not set 1448# CONFIG_EARLY_PRINTK is not set
@@ -1419,7 +1451,9 @@ CONFIG_DEBUG_STACKOVERFLOW=y
1419# CONFIG_DEBUG_STACK_USAGE is not set 1451# CONFIG_DEBUG_STACK_USAGE is not set
1420# CONFIG_4KSTACKS is not set 1452# CONFIG_4KSTACKS is not set
1421# CONFIG_IRQSTACKS is not set 1453# CONFIG_IRQSTACKS is not set
1422# CONFIG_SH_KGDB is not set 1454CONFIG_DUMP_CODE=y
1455# CONFIG_SH_NO_BSS_INIT is not set
1456# CONFIG_MORE_COMPILE_OPTIONS is not set
1423 1457
1424# 1458#
1425# Security options 1459# Security options
@@ -1435,7 +1469,11 @@ CONFIG_CRYPTO=y
1435# 1469#
1436# CONFIG_CRYPTO_FIPS is not set 1470# CONFIG_CRYPTO_FIPS is not set
1437CONFIG_CRYPTO_ALGAPI=y 1471CONFIG_CRYPTO_ALGAPI=y
1472CONFIG_CRYPTO_ALGAPI2=y
1473CONFIG_CRYPTO_HASH=y
1474CONFIG_CRYPTO_HASH2=y
1438# CONFIG_CRYPTO_MANAGER is not set 1475# CONFIG_CRYPTO_MANAGER is not set
1476# CONFIG_CRYPTO_MANAGER2 is not set
1439# CONFIG_CRYPTO_GF128MUL is not set 1477# CONFIG_CRYPTO_GF128MUL is not set
1440# CONFIG_CRYPTO_NULL is not set 1478# CONFIG_CRYPTO_NULL is not set
1441# CONFIG_CRYPTO_CRYPTD is not set 1479# CONFIG_CRYPTO_CRYPTD is not set
@@ -1519,6 +1557,7 @@ CONFIG_CRYPTO_HW=y
1519# Library routines 1557# Library routines
1520# 1558#
1521CONFIG_BITREVERSE=y 1559CONFIG_BITREVERSE=y
1560CONFIG_GENERIC_FIND_LAST_BIT=y
1522# CONFIG_CRC_CCITT is not set 1561# CONFIG_CRC_CCITT is not set
1523# CONFIG_CRC16 is not set 1562# CONFIG_CRC16 is not set
1524CONFIG_CRC_T10DIF=y 1563CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig
index 25717ff26ca9..e5b55b6f002d 100644
--- a/arch/sh/configs/se7206_defconfig
+++ b/arch/sh/configs/se7206_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 18:57:39 2008 4# Fri Jan 9 17:31:27 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -69,6 +71,7 @@ CONFIG_EMBEDDED=y
69# CONFIG_SYSCTL_SYSCALL is not set 71# CONFIG_SYSCTL_SYSCALL is not set
70CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
71CONFIG_KALLSYMS_ALL=y 73CONFIG_KALLSYMS_ALL=y
74CONFIG_KALLSYMS_STRIP_GENERATED=y
72# CONFIG_KALLSYMS_EXTRA_PASS is not set 75# CONFIG_KALLSYMS_EXTRA_PASS is not set
73CONFIG_HOTPLUG=y 76CONFIG_HOTPLUG=y
74CONFIG_PRINTK=y 77CONFIG_PRINTK=y
@@ -84,11 +87,11 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 87CONFIG_EVENTFD=y
85CONFIG_AIO=y 88CONFIG_AIO=y
86CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
87CONFIG_PCI_QUIRKS=y
88# CONFIG_SLAB is not set 90# CONFIG_SLAB is not set
89# CONFIG_SLUB is not set 91# CONFIG_SLUB is not set
90CONFIG_SLOB=y 92CONFIG_SLOB=y
91CONFIG_PROFILING=y 93CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y
92# CONFIG_MARKERS is not set 95# CONFIG_MARKERS is not set
93CONFIG_OPROFILE=y 96CONFIG_OPROFILE=y
94CONFIG_HAVE_OPROFILE=y 97CONFIG_HAVE_OPROFILE=y
@@ -99,7 +102,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
99CONFIG_HAVE_CLK=y 102CONFIG_HAVE_CLK=y
100CONFIG_HAVE_GENERIC_DMA_COHERENT=y 103CONFIG_HAVE_GENERIC_DMA_COHERENT=y
101CONFIG_RT_MUTEXES=y 104CONFIG_RT_MUTEXES=y
102CONFIG_TINY_SHMEM=y
103CONFIG_BASE_SMALL=0 105CONFIG_BASE_SMALL=0
104CONFIG_MODULES=y 106CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set 107# CONFIG_MODULE_FORCE_LOAD is not set
@@ -107,11 +109,9 @@ CONFIG_MODULE_UNLOAD=y
107# CONFIG_MODULE_FORCE_UNLOAD is not set 109# CONFIG_MODULE_FORCE_UNLOAD is not set
108# CONFIG_MODVERSIONS is not set 110# CONFIG_MODVERSIONS is not set
109# CONFIG_MODULE_SRCVERSION_ALL is not set 111# CONFIG_MODULE_SRCVERSION_ALL is not set
110CONFIG_KMOD=y
111CONFIG_BLOCK=y 112CONFIG_BLOCK=y
112# CONFIG_LBD is not set 113# CONFIG_LBD is not set
113# CONFIG_BLK_DEV_IO_TRACE is not set 114# CONFIG_BLK_DEV_IO_TRACE is not set
114# CONFIG_LSF is not set
115# CONFIG_BLK_DEV_BSG is not set 115# CONFIG_BLK_DEV_BSG is not set
116# CONFIG_BLK_DEV_INTEGRITY is not set 116# CONFIG_BLK_DEV_INTEGRITY is not set
117 117
@@ -128,6 +128,11 @@ CONFIG_IOSCHED_NOOP=y
128CONFIG_DEFAULT_NOOP=y 128CONFIG_DEFAULT_NOOP=y
129CONFIG_DEFAULT_IOSCHED="noop" 129CONFIG_DEFAULT_IOSCHED="noop"
130# CONFIG_CLASSIC_RCU is not set 130# CONFIG_CLASSIC_RCU is not set
131# CONFIG_TREE_RCU is not set
132CONFIG_PREEMPT_RCU=y
133CONFIG_RCU_TRACE=y
134# CONFIG_TREE_RCU_TRACE is not set
135CONFIG_PREEMPT_RCU_TRACE=y
131# CONFIG_FREEZER is not set 136# CONFIG_FREEZER is not set
132 137
133# 138#
@@ -136,6 +141,7 @@ CONFIG_DEFAULT_IOSCHED="noop"
136CONFIG_CPU_SH2=y 141CONFIG_CPU_SH2=y
137CONFIG_CPU_SH2A=y 142CONFIG_CPU_SH2A=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 143# CONFIG_CPU_SUBTYPE_SH7619 is not set
144# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 145# CONFIG_CPU_SUBTYPE_SH7203 is not set
140CONFIG_CPU_SUBTYPE_SH7206=y 146CONFIG_CPU_SUBTYPE_SH7206=y
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 147# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -197,7 +203,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
197CONFIG_SPARSEMEM_STATIC=y 203CONFIG_SPARSEMEM_STATIC=y
198CONFIG_PAGEFLAGS_EXTENDED=y 204CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 205CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set
201# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -281,8 +286,6 @@ CONFIG_KEXEC=y
281# CONFIG_PREEMPT_NONE is not set 286# CONFIG_PREEMPT_NONE is not set
282# CONFIG_PREEMPT_VOLUNTARY is not set 287# CONFIG_PREEMPT_VOLUNTARY is not set
283CONFIG_PREEMPT=y 288CONFIG_PREEMPT=y
284CONFIG_PREEMPT_RCU=y
285CONFIG_RCU_TRACE=y
286CONFIG_GUSA=y 289CONFIG_GUSA=y
287 290
288# 291#
@@ -296,10 +299,6 @@ CONFIG_CMDLINE="console=ttySC3,115200 ignore_loglevel earlyprintk=serial"
296# 299#
297# Bus options 300# Bus options
298# 301#
299CONFIG_CF_ENABLER=y
300# CONFIG_CF_AREA5 is not set
301CONFIG_CF_AREA6=y
302CONFIG_CF_BASE_ADDR=0xb8000000
303# CONFIG_ARCH_SUPPORTS_MSI is not set 302# CONFIG_ARCH_SUPPORTS_MSI is not set
304# CONFIG_PCCARD is not set 303# CONFIG_PCCARD is not set
305 304
@@ -312,11 +311,19 @@ CONFIG_BINFMT_ZFLAT=y
312CONFIG_BINFMT_SHARED_FLAT=y 311CONFIG_BINFMT_SHARED_FLAT=y
313# CONFIG_HAVE_AOUT is not set 312# CONFIG_HAVE_AOUT is not set
314CONFIG_BINFMT_MISC=y 313CONFIG_BINFMT_MISC=y
314
315#
316# Power management options (EXPERIMENTAL)
317#
318# CONFIG_PM is not set
319# CONFIG_CPU_IDLE is not set
315CONFIG_NET=y 320CONFIG_NET=y
316 321
317# 322#
318# Networking options 323# Networking options
319# 324#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
320CONFIG_PACKET=y 327CONFIG_PACKET=y
321# CONFIG_PACKET_MMAP is not set 328# CONFIG_PACKET_MMAP is not set
322CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -372,6 +379,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
372# CONFIG_ECONET is not set 379# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set 380# CONFIG_WAN_ROUTER is not set
374# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
382# CONFIG_DCB is not set
375 383
376# 384#
377# Network testing 385# Network testing
@@ -387,8 +395,8 @@ CONFIG_WIRELESS=y
387# CONFIG_CFG80211 is not set 395# CONFIG_CFG80211 is not set
388# CONFIG_WIRELESS_OLD_REGULATORY is not set 396# CONFIG_WIRELESS_OLD_REGULATORY is not set
389# CONFIG_WIRELESS_EXT is not set 397# CONFIG_WIRELESS_EXT is not set
398# CONFIG_LIB80211 is not set
390# CONFIG_MAC80211 is not set 399# CONFIG_MAC80211 is not set
391# CONFIG_IEEE80211 is not set
392# CONFIG_RFKILL is not set 400# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set 401# CONFIG_NET_9P is not set
394 402
@@ -500,6 +508,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
500CONFIG_MISC_DEVICES=y 508CONFIG_MISC_DEVICES=y
501CONFIG_EEPROM_93CX6=y 509CONFIG_EEPROM_93CX6=y
502# CONFIG_ENCLOSURE_SERVICES is not set 510# CONFIG_ENCLOSURE_SERVICES is not set
511# CONFIG_C2PORT is not set
503CONFIG_HAVE_IDE=y 512CONFIG_HAVE_IDE=y
504# CONFIG_IDE is not set 513# CONFIG_IDE is not set
505 514
@@ -526,6 +535,7 @@ CONFIG_MII=y
526# CONFIG_STNIC is not set 535# CONFIG_STNIC is not set
527CONFIG_SMC91X=y 536CONFIG_SMC91X=y
528# CONFIG_SMC911X is not set 537# CONFIG_SMC911X is not set
538# CONFIG_SMSC911X is not set
529# CONFIG_IBM_NEW_EMAC_ZMII is not set 539# CONFIG_IBM_NEW_EMAC_ZMII is not set
530# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
531# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -598,11 +608,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
598# CONFIG_THERMAL is not set 608# CONFIG_THERMAL is not set
599# CONFIG_THERMAL_HWMON is not set 609# CONFIG_THERMAL_HWMON is not set
600# CONFIG_WATCHDOG is not set 610# CONFIG_WATCHDOG is not set
611CONFIG_SSB_POSSIBLE=y
601 612
602# 613#
603# Sonics Silicon Backplane 614# Sonics Silicon Backplane
604# 615#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set 616# CONFIG_SSB is not set
607 617
608# 618#
@@ -612,7 +622,7 @@ CONFIG_SSB_POSSIBLE=y
612# CONFIG_MFD_SM501 is not set 622# CONFIG_MFD_SM501 is not set
613# CONFIG_HTC_PASIC3 is not set 623# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set 624# CONFIG_MFD_TMIO is not set
615# CONFIG_MFD_WM8400 is not set 625# CONFIG_REGULATOR is not set
616 626
617# 627#
618# Multimedia devices 628# Multimedia devices
@@ -732,10 +742,7 @@ CONFIG_TMPFS=y
732# CONFIG_TMPFS_POSIX_ACL is not set 742# CONFIG_TMPFS_POSIX_ACL is not set
733# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
734CONFIG_CONFIGFS_FS=y 744CONFIG_CONFIGFS_FS=y
735 745CONFIG_MISC_FILESYSTEMS=y
736#
737# Miscellaneous filesystems
738#
739# CONFIG_ADFS_FS is not set 746# CONFIG_ADFS_FS is not set
740# CONFIG_AFFS_FS is not set 747# CONFIG_AFFS_FS is not set
741# CONFIG_HFS_FS is not set 748# CONFIG_HFS_FS is not set
@@ -812,6 +819,7 @@ CONFIG_DEBUG_PREEMPT=y
812# CONFIG_LOCK_STAT is not set 819# CONFIG_LOCK_STAT is not set
813CONFIG_DEBUG_SPINLOCK_SLEEP=y 820CONFIG_DEBUG_SPINLOCK_SLEEP=y
814# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 821# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
822CONFIG_STACKTRACE=y
815# CONFIG_DEBUG_KOBJECT is not set 823# CONFIG_DEBUG_KOBJECT is not set
816CONFIG_DEBUG_BUGVERBOSE=y 824CONFIG_DEBUG_BUGVERBOSE=y
817# CONFIG_DEBUG_INFO is not set 825# CONFIG_DEBUG_INFO is not set
@@ -820,6 +828,7 @@ CONFIG_DEBUG_VM=y
820# CONFIG_DEBUG_MEMORY_INIT is not set 828# CONFIG_DEBUG_MEMORY_INIT is not set
821CONFIG_DEBUG_LIST=y 829CONFIG_DEBUG_LIST=y
822# CONFIG_DEBUG_SG is not set 830# CONFIG_DEBUG_SG is not set
831# CONFIG_DEBUG_NOTIFIERS is not set
823CONFIG_FRAME_POINTER=y 832CONFIG_FRAME_POINTER=y
824# CONFIG_RCU_TORTURE_TEST is not set 833# CONFIG_RCU_TORTURE_TEST is not set
825# CONFIG_BACKTRACE_SELF_TEST is not set 834# CONFIG_BACKTRACE_SELF_TEST is not set
@@ -827,20 +836,35 @@ CONFIG_FRAME_POINTER=y
827# CONFIG_FAULT_INJECTION is not set 836# CONFIG_FAULT_INJECTION is not set
828# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
829CONFIG_NOP_TRACER=y 838CONFIG_NOP_TRACER=y
830CONFIG_HAVE_FTRACE=y 839CONFIG_HAVE_FUNCTION_TRACER=y
831# CONFIG_FTRACE is not set 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842CONFIG_RING_BUFFER=y
843CONFIG_TRACING=y
844
845#
846# Tracers
847#
848# CONFIG_FUNCTION_TRACER is not set
832# CONFIG_SCHED_TRACER is not set 849# CONFIG_SCHED_TRACER is not set
833# CONFIG_CONTEXT_SWITCH_TRACER is not set 850# CONFIG_CONTEXT_SWITCH_TRACER is not set
834# CONFIG_BOOT_TRACER is not set 851# CONFIG_BOOT_TRACER is not set
852# CONFIG_TRACE_BRANCH_PROFILING is not set
835# CONFIG_STACK_TRACER is not set 853# CONFIG_STACK_TRACER is not set
854# CONFIG_FTRACE_STARTUP_TEST is not set
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 855# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 856# CONFIG_SAMPLES is not set
857CONFIG_HAVE_ARCH_KGDB=y
858# CONFIG_KGDB is not set
838# CONFIG_SH_STANDARD_BIOS is not set 859# CONFIG_SH_STANDARD_BIOS is not set
839# CONFIG_EARLY_SCIF_CONSOLE is not set 860# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_DEBUG_BOOTMEM is not set 861# CONFIG_DEBUG_BOOTMEM is not set
841CONFIG_DEBUG_STACKOVERFLOW=y 862CONFIG_DEBUG_STACKOVERFLOW=y
842CONFIG_DEBUG_STACK_USAGE=y 863CONFIG_DEBUG_STACK_USAGE=y
843# CONFIG_IRQSTACKS is not set 864# CONFIG_IRQSTACKS is not set
865CONFIG_DUMP_CODE=y
866# CONFIG_SH_NO_BSS_INIT is not set
867# CONFIG_MORE_COMPILE_OPTIONS is not set
844 868
845# 869#
846# Security options 870# Security options
@@ -856,7 +880,11 @@ CONFIG_CRYPTO=y
856# 880#
857# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
858CONFIG_CRYPTO_ALGAPI=y 882CONFIG_CRYPTO_ALGAPI=y
883CONFIG_CRYPTO_ALGAPI2=y
884CONFIG_CRYPTO_HASH=y
885CONFIG_CRYPTO_HASH2=y
859# CONFIG_CRYPTO_MANAGER is not set 886# CONFIG_CRYPTO_MANAGER is not set
887# CONFIG_CRYPTO_MANAGER2 is not set
860# CONFIG_CRYPTO_GF128MUL is not set 888# CONFIG_CRYPTO_GF128MUL is not set
861# CONFIG_CRYPTO_NULL is not set 889# CONFIG_CRYPTO_NULL is not set
862# CONFIG_CRYPTO_CRYPTD is not set 890# CONFIG_CRYPTO_CRYPTD is not set
@@ -890,7 +918,7 @@ CONFIG_CRYPTO_ALGAPI=y
890# 918#
891# Digest 919# Digest
892# 920#
893# CONFIG_CRYPTO_CRC32C is not set 921CONFIG_CRYPTO_CRC32C=y
894# CONFIG_CRYPTO_MD4 is not set 922# CONFIG_CRYPTO_MD4 is not set
895# CONFIG_CRYPTO_MD5 is not set 923# CONFIG_CRYPTO_MD5 is not set
896# CONFIG_CRYPTO_MICHAEL_MIC is not set 924# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -939,6 +967,7 @@ CONFIG_CRYPTO_LZO=y
939# Library routines 967# Library routines
940# 968#
941CONFIG_BITREVERSE=y 969CONFIG_BITREVERSE=y
970CONFIG_GENERIC_FIND_LAST_BIT=y
942CONFIG_CRC_CCITT=y 971CONFIG_CRC_CCITT=y
943CONFIG_CRC16=y 972CONFIG_CRC16=y
944# CONFIG_CRC_T10DIF is not set 973# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig
index be246f381507..390052577031 100644
--- a/arch/sh/configs/se7343_defconfig
+++ b/arch/sh/configs/se7343_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc6 3# Linux kernel version: 2.6.28
4# Thu Dec 4 16:40:25 2008 4# Fri Jan 9 17:33:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -78,7 +80,6 @@ CONFIG_SLAB=y
78# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
80# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
81# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
83# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
84CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
88CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
89CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_TINY_SHMEM=y
92CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 93CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -96,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
96CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
97# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
98# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
99CONFIG_KMOD=y
100CONFIG_BLOCK=y 99CONFIG_BLOCK=y
101# CONFIG_LBD is not set 100# CONFIG_LBD is not set
102# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
103# CONFIG_LSF is not set
104# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
106 104
@@ -117,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
117# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
119CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
120# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
121 123
122# 124#
@@ -190,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC0,115200"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 285# CONFIG_PCCARD is not set
286 286
@@ -291,11 +291,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 292# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 293# CONFIG_BINFMT_MISC is not set
294
295#
296# Power management options (EXPERIMENTAL)
297#
298# CONFIG_PM is not set
299# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 300CONFIG_NET=y
295 301
296# 302#
297# Networking options 303# Networking options
298# 304#
305CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 306CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 307CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 308CONFIG_UNIX=y
@@ -347,6 +354,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
348# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
349# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set
350 358
351# 359#
352# Network testing 360# Network testing
@@ -362,8 +370,8 @@ CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set 370# CONFIG_CFG80211 is not set
363# CONFIG_WIRELESS_OLD_REGULATORY is not set 371# CONFIG_WIRELESS_OLD_REGULATORY is not set
364# CONFIG_WIRELESS_EXT is not set 372# CONFIG_WIRELESS_EXT is not set
373# CONFIG_LIB80211 is not set
365# CONFIG_MAC80211 is not set 374# CONFIG_MAC80211 is not set
366# CONFIG_IEEE80211 is not set
367# CONFIG_RFKILL is not set 375# CONFIG_RFKILL is not set
368# CONFIG_NET_9P is not set 376# CONFIG_NET_9P is not set
369 377
@@ -661,8 +669,8 @@ CONFIG_I2C_SH_MOBILE=y
661# Miscellaneous I2C Chip support 669# Miscellaneous I2C Chip support
662# 670#
663# CONFIG_DS1682 is not set 671# CONFIG_DS1682 is not set
664# CONFIG_AT24 is not set 672# CONFIG_EEPROM_AT24 is not set
665# CONFIG_SENSORS_EEPROM is not set 673# CONFIG_EEPROM_LEGACY is not set
666# CONFIG_SENSORS_PCF8574 is not set 674# CONFIG_SENSORS_PCF8574 is not set
667# CONFIG_PCF8575 is not set 675# CONFIG_PCF8575 is not set
668# CONFIG_SENSORS_PCA9539 is not set 676# CONFIG_SENSORS_PCA9539 is not set
@@ -693,6 +701,7 @@ CONFIG_SSB_POSSIBLE=y
693# CONFIG_MFD_CORE is not set 701# CONFIG_MFD_CORE is not set
694# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
704# CONFIG_TWL4030_CORE is not set
696# CONFIG_MFD_TMIO is not set 705# CONFIG_MFD_TMIO is not set
697# CONFIG_PMIC_DA903X is not set 706# CONFIG_PMIC_DA903X is not set
698# CONFIG_MFD_WM8400 is not set 707# CONFIG_MFD_WM8400 is not set
@@ -743,11 +752,13 @@ CONFIG_V4L_USB_DRIVERS=y
743# CONFIG_USB_VIDEO_CLASS is not set 752# CONFIG_USB_VIDEO_CLASS is not set
744CONFIG_USB_GSPCA=m 753CONFIG_USB_GSPCA=m
745# CONFIG_USB_M5602 is not set 754# CONFIG_USB_M5602 is not set
755# CONFIG_USB_STV06XX is not set
746# CONFIG_USB_GSPCA_CONEX is not set 756# CONFIG_USB_GSPCA_CONEX is not set
747# CONFIG_USB_GSPCA_ETOMS is not set 757# CONFIG_USB_GSPCA_ETOMS is not set
748# CONFIG_USB_GSPCA_FINEPIX is not set 758# CONFIG_USB_GSPCA_FINEPIX is not set
749# CONFIG_USB_GSPCA_MARS is not set 759# CONFIG_USB_GSPCA_MARS is not set
750# CONFIG_USB_GSPCA_OV519 is not set 760# CONFIG_USB_GSPCA_OV519 is not set
761# CONFIG_USB_GSPCA_OV534 is not set
751# CONFIG_USB_GSPCA_PAC207 is not set 762# CONFIG_USB_GSPCA_PAC207 is not set
752# CONFIG_USB_GSPCA_PAC7311 is not set 763# CONFIG_USB_GSPCA_PAC7311 is not set
753# CONFIG_USB_GSPCA_SONIXB is not set 764# CONFIG_USB_GSPCA_SONIXB is not set
@@ -786,6 +797,7 @@ CONFIG_RADIO_ADAPTERS=y
786# CONFIG_USB_DSBR is not set 797# CONFIG_USB_DSBR is not set
787# CONFIG_USB_SI470X is not set 798# CONFIG_USB_SI470X is not set
788# CONFIG_USB_MR800 is not set 799# CONFIG_USB_MR800 is not set
800# CONFIG_RADIO_TEA5764 is not set
789# CONFIG_DAB is not set 801# CONFIG_DAB is not set
790 802
791# 803#
@@ -797,15 +809,16 @@ CONFIG_FB=y
797CONFIG_FIRMWARE_EDID=y 809CONFIG_FIRMWARE_EDID=y
798# CONFIG_FB_DDC is not set 810# CONFIG_FB_DDC is not set
799# CONFIG_FB_BOOT_VESA_SUPPORT is not set 811# CONFIG_FB_BOOT_VESA_SUPPORT is not set
800CONFIG_FB_CFB_FILLRECT=m 812# CONFIG_FB_CFB_FILLRECT is not set
801CONFIG_FB_CFB_COPYAREA=m 813# CONFIG_FB_CFB_COPYAREA is not set
802CONFIG_FB_CFB_IMAGEBLIT=m 814# CONFIG_FB_CFB_IMAGEBLIT is not set
803# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 815# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
804# CONFIG_FB_SYS_FILLRECT is not set 816CONFIG_FB_SYS_FILLRECT=m
805# CONFIG_FB_SYS_COPYAREA is not set 817CONFIG_FB_SYS_COPYAREA=m
806# CONFIG_FB_SYS_IMAGEBLIT is not set 818CONFIG_FB_SYS_IMAGEBLIT=m
807# CONFIG_FB_FOREIGN_ENDIAN is not set 819# CONFIG_FB_FOREIGN_ENDIAN is not set
808# CONFIG_FB_SYS_FOPS is not set 820CONFIG_FB_SYS_FOPS=m
821CONFIG_FB_DEFERRED_IO=y
809# CONFIG_FB_SVGALIB is not set 822# CONFIG_FB_SVGALIB is not set
810# CONFIG_FB_MACMODES is not set 823# CONFIG_FB_MACMODES is not set
811# CONFIG_FB_BACKLIGHT is not set 824# CONFIG_FB_BACKLIGHT is not set
@@ -881,11 +894,9 @@ CONFIG_HID_COMPAT=y
881CONFIG_HID_A4TECH=y 894CONFIG_HID_A4TECH=y
882CONFIG_HID_APPLE=y 895CONFIG_HID_APPLE=y
883CONFIG_HID_BELKIN=y 896CONFIG_HID_BELKIN=y
884CONFIG_HID_BRIGHT=y
885CONFIG_HID_CHERRY=y 897CONFIG_HID_CHERRY=y
886CONFIG_HID_CHICONY=y 898CONFIG_HID_CHICONY=y
887CONFIG_HID_CYPRESS=y 899CONFIG_HID_CYPRESS=y
888CONFIG_HID_DELL=y
889CONFIG_HID_EZKEY=y 900CONFIG_HID_EZKEY=y
890CONFIG_HID_GYRATION=y 901CONFIG_HID_GYRATION=y
891CONFIG_HID_LOGITECH=y 902CONFIG_HID_LOGITECH=y
@@ -893,12 +904,15 @@ CONFIG_HID_LOGITECH=y
893# CONFIG_LOGIRUMBLEPAD2_FF is not set 904# CONFIG_LOGIRUMBLEPAD2_FF is not set
894CONFIG_HID_MICROSOFT=y 905CONFIG_HID_MICROSOFT=y
895CONFIG_HID_MONTEREY=y 906CONFIG_HID_MONTEREY=y
907# CONFIG_HID_NTRIG is not set
896CONFIG_HID_PANTHERLORD=y 908CONFIG_HID_PANTHERLORD=y
897# CONFIG_PANTHERLORD_FF is not set 909# CONFIG_PANTHERLORD_FF is not set
898CONFIG_HID_PETALYNX=y 910CONFIG_HID_PETALYNX=y
899CONFIG_HID_SAMSUNG=y 911CONFIG_HID_SAMSUNG=y
900CONFIG_HID_SONY=y 912CONFIG_HID_SONY=y
901CONFIG_HID_SUNPLUS=y 913CONFIG_HID_SUNPLUS=y
914# CONFIG_GREENASIA_FF is not set
915# CONFIG_HID_TOPSEED is not set
902# CONFIG_THRUSTMASTER_FF is not set 916# CONFIG_THRUSTMASTER_FF is not set
903# CONFIG_ZEROPLUS_FF is not set 917# CONFIG_ZEROPLUS_FF is not set
904CONFIG_USB_SUPPORT=y 918CONFIG_USB_SUPPORT=y
@@ -997,7 +1011,6 @@ CONFIG_UIO=y
997# CONFIG_UIO_SMX is not set 1011# CONFIG_UIO_SMX is not set
998# CONFIG_UIO_SERCOS3 is not set 1012# CONFIG_UIO_SERCOS3 is not set
999# CONFIG_STAGING is not set 1013# CONFIG_STAGING is not set
1000CONFIG_STAGING_EXCLUDE_BUILD=y
1001 1014
1002# 1015#
1003# File systems 1016# File systems
@@ -1051,10 +1064,7 @@ CONFIG_TMPFS=y
1051# CONFIG_HUGETLBFS is not set 1064# CONFIG_HUGETLBFS is not set
1052# CONFIG_HUGETLB_PAGE is not set 1065# CONFIG_HUGETLB_PAGE is not set
1053# CONFIG_CONFIGFS_FS is not set 1066# CONFIG_CONFIGFS_FS is not set
1054 1067CONFIG_MISC_FILESYSTEMS=y
1055#
1056# Miscellaneous filesystems
1057#
1058# CONFIG_ADFS_FS is not set 1068# CONFIG_ADFS_FS is not set
1059# CONFIG_AFFS_FS is not set 1069# CONFIG_AFFS_FS is not set
1060# CONFIG_HFS_FS is not set 1070# CONFIG_HFS_FS is not set
@@ -1138,11 +1148,12 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1138# 1148#
1139# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1149# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1140# CONFIG_SAMPLES is not set 1150# CONFIG_SAMPLES is not set
1151CONFIG_HAVE_ARCH_KGDB=y
1141# CONFIG_SH_STANDARD_BIOS is not set 1152# CONFIG_SH_STANDARD_BIOS is not set
1142CONFIG_EARLY_SCIF_CONSOLE=y 1153CONFIG_EARLY_SCIF_CONSOLE=y
1143CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 1154CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1144CONFIG_EARLY_PRINTK=y 1155CONFIG_EARLY_PRINTK=y
1145# CONFIG_SH_KGDB is not set 1156# CONFIG_MORE_COMPILE_OPTIONS is not set
1146 1157
1147# 1158#
1148# Security options 1159# Security options
@@ -1158,6 +1169,7 @@ CONFIG_CRYPTO=y
1158# 1169#
1159# CONFIG_CRYPTO_FIPS is not set 1170# CONFIG_CRYPTO_FIPS is not set
1160# CONFIG_CRYPTO_MANAGER is not set 1171# CONFIG_CRYPTO_MANAGER is not set
1172# CONFIG_CRYPTO_MANAGER2 is not set
1161# CONFIG_CRYPTO_GF128MUL is not set 1173# CONFIG_CRYPTO_GF128MUL is not set
1162# CONFIG_CRYPTO_NULL is not set 1174# CONFIG_CRYPTO_NULL is not set
1163# CONFIG_CRYPTO_CRYPTD is not set 1175# CONFIG_CRYPTO_CRYPTD is not set
@@ -1240,6 +1252,7 @@ CONFIG_CRYPTO_HW=y
1240# Library routines 1252# Library routines
1241# 1253#
1242CONFIG_BITREVERSE=y 1254CONFIG_BITREVERSE=y
1255CONFIG_GENERIC_FIND_LAST_BIT=y
1243# CONFIG_CRC_CCITT is not set 1256# CONFIG_CRC_CCITT is not set
1244# CONFIG_CRC16 is not set 1257# CONFIG_CRC16 is not set
1245# CONFIG_CRC_T10DIF is not set 1258# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig
index db9cacd7c4e7..932b0235b1de 100644
--- a/arch/sh/configs/se7619_defconfig
+++ b/arch/sh/configs/se7619_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:03:29 2008 4# Fri Jan 9 17:36:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17# CONFIG_GENERIC_TIME is not set 17# CONFIG_GENERIC_TIME is not set
18# CONFIG_GENERIC_CLOCKEVENTS is not set 18# CONFIG_GENERIC_CLOCKEVENTS is not set
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -61,12 +63,10 @@ CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 63CONFIG_EVENTFD=y
62CONFIG_AIO=y 64CONFIG_AIO=y
63# CONFIG_VM_EVENT_COUNTERS is not set 65# CONFIG_VM_EVENT_COUNTERS is not set
64CONFIG_PCI_QUIRKS=y
65CONFIG_SLAB=y 66CONFIG_SLAB=y
66# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
67# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
68# CONFIG_PROFILING is not set 69# CONFIG_PROFILING is not set
69# CONFIG_MARKERS is not set
70CONFIG_HAVE_OPROFILE=y 70CONFIG_HAVE_OPROFILE=y
71CONFIG_HAVE_KPROBES=y 71CONFIG_HAVE_KPROBES=y
72CONFIG_HAVE_KRETPROBES=y 72CONFIG_HAVE_KRETPROBES=y
@@ -74,12 +74,10 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
74CONFIG_HAVE_CLK=y 74CONFIG_HAVE_CLK=y
75CONFIG_HAVE_GENERIC_DMA_COHERENT=y 75CONFIG_HAVE_GENERIC_DMA_COHERENT=y
76CONFIG_SLABINFO=y 76CONFIG_SLABINFO=y
77CONFIG_TINY_SHMEM=y
78CONFIG_BASE_SMALL=1 77CONFIG_BASE_SMALL=1
79# CONFIG_MODULES is not set 78# CONFIG_MODULES is not set
80CONFIG_BLOCK=y 79CONFIG_BLOCK=y
81# CONFIG_LBD is not set 80# CONFIG_LBD is not set
82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set 81# CONFIG_BLK_DEV_BSG is not set
84# CONFIG_BLK_DEV_INTEGRITY is not set 82# CONFIG_BLK_DEV_INTEGRITY is not set
85 83
@@ -96,6 +94,10 @@ CONFIG_IOSCHED_NOOP=y
96CONFIG_DEFAULT_NOOP=y 94CONFIG_DEFAULT_NOOP=y
97CONFIG_DEFAULT_IOSCHED="noop" 95CONFIG_DEFAULT_IOSCHED="noop"
98CONFIG_CLASSIC_RCU=y 96CONFIG_CLASSIC_RCU=y
97# CONFIG_TREE_RCU is not set
98# CONFIG_PREEMPT_RCU is not set
99# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_PREEMPT_RCU_TRACE is not set
99# CONFIG_FREEZER is not set 101# CONFIG_FREEZER is not set
100 102
101# 103#
@@ -103,6 +105,7 @@ CONFIG_CLASSIC_RCU=y
103# 105#
104CONFIG_CPU_SH2=y 106CONFIG_CPU_SH2=y
105CONFIG_CPU_SUBTYPE_SH7619=y 107CONFIG_CPU_SUBTYPE_SH7619=y
108# CONFIG_CPU_SUBTYPE_SH7201 is not set
106# CONFIG_CPU_SUBTYPE_SH7203 is not set 109# CONFIG_CPU_SUBTYPE_SH7203 is not set
107# CONFIG_CPU_SUBTYPE_SH7206 is not set 110# CONFIG_CPU_SUBTYPE_SH7206 is not set
108# CONFIG_CPU_SUBTYPE_SH7263 is not set 111# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -164,7 +167,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
164CONFIG_SPARSEMEM_STATIC=y 167CONFIG_SPARSEMEM_STATIC=y
165CONFIG_PAGEFLAGS_EXTENDED=y 168CONFIG_PAGEFLAGS_EXTENDED=y
166CONFIG_SPLIT_PTLOCK_CPUS=4 169CONFIG_SPLIT_PTLOCK_CPUS=4
167# CONFIG_RESOURCES_64BIT is not set
168# CONFIG_PHYS_ADDR_T_64BIT is not set 170# CONFIG_PHYS_ADDR_T_64BIT is not set
169CONFIG_ZONE_DMA_FLAG=0 171CONFIG_ZONE_DMA_FLAG=0
170CONFIG_NR_QUICK=2 172CONFIG_NR_QUICK=2
@@ -244,7 +246,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
244# 246#
245# Bus options 247# Bus options
246# 248#
247# CONFIG_CF_ENABLER is not set
248# CONFIG_ARCH_SUPPORTS_MSI is not set 249# CONFIG_ARCH_SUPPORTS_MSI is not set
249 250
250# 251#
@@ -256,6 +257,12 @@ CONFIG_BINFMT_ZFLAT=y
256# CONFIG_BINFMT_SHARED_FLAT is not set 257# CONFIG_BINFMT_SHARED_FLAT is not set
257# CONFIG_HAVE_AOUT is not set 258# CONFIG_HAVE_AOUT is not set
258# CONFIG_BINFMT_MISC is not set 259# CONFIG_BINFMT_MISC is not set
260
261#
262# Power management options (EXPERIMENTAL)
263#
264# CONFIG_PM is not set
265# CONFIG_CPU_IDLE is not set
259# CONFIG_NET is not set 266# CONFIG_NET is not set
260 267
261# 268#
@@ -359,6 +366,7 @@ CONFIG_BLK_DEV=y
359CONFIG_MISC_DEVICES=y 366CONFIG_MISC_DEVICES=y
360# CONFIG_EEPROM_93CX6 is not set 367# CONFIG_EEPROM_93CX6 is not set
361# CONFIG_ENCLOSURE_SERVICES is not set 368# CONFIG_ENCLOSURE_SERVICES is not set
369# CONFIG_C2PORT is not set
362CONFIG_HAVE_IDE=y 370CONFIG_HAVE_IDE=y
363# CONFIG_IDE is not set 371# CONFIG_IDE is not set
364 372
@@ -439,11 +447,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y
439# CONFIG_THERMAL is not set 447# CONFIG_THERMAL is not set
440# CONFIG_THERMAL_HWMON is not set 448# CONFIG_THERMAL_HWMON is not set
441# CONFIG_WATCHDOG is not set 449# CONFIG_WATCHDOG is not set
450CONFIG_SSB_POSSIBLE=y
442 451
443# 452#
444# Sonics Silicon Backplane 453# Sonics Silicon Backplane
445# 454#
446CONFIG_SSB_POSSIBLE=y
447# CONFIG_SSB is not set 455# CONFIG_SSB is not set
448 456
449# 457#
@@ -453,7 +461,7 @@ CONFIG_SSB_POSSIBLE=y
453# CONFIG_MFD_SM501 is not set 461# CONFIG_MFD_SM501 is not set
454# CONFIG_HTC_PASIC3 is not set 462# CONFIG_HTC_PASIC3 is not set
455# CONFIG_MFD_TMIO is not set 463# CONFIG_MFD_TMIO is not set
456# CONFIG_MFD_WM8400 is not set 464# CONFIG_REGULATOR is not set
457 465
458# 466#
459# Multimedia devices 467# Multimedia devices
@@ -506,7 +514,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
506# 514#
507 515
508# 516#
509# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 517# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
510# 518#
511# CONFIG_USB_GADGET is not set 519# CONFIG_USB_GADGET is not set
512# CONFIG_MMC is not set 520# CONFIG_MMC is not set
@@ -557,10 +565,7 @@ CONFIG_PROC_SYSCTL=y
557# CONFIG_SYSFS is not set 565# CONFIG_SYSFS is not set
558# CONFIG_TMPFS is not set 566# CONFIG_TMPFS is not set
559# CONFIG_HUGETLB_PAGE is not set 567# CONFIG_HUGETLB_PAGE is not set
560 568CONFIG_MISC_FILESYSTEMS=y
561#
562# Miscellaneous filesystems
563#
564# CONFIG_ADFS_FS is not set 569# CONFIG_ADFS_FS is not set
565# CONFIG_AFFS_FS is not set 570# CONFIG_AFFS_FS is not set
566# CONFIG_HFS_FS is not set 571# CONFIG_HFS_FS is not set
@@ -602,12 +607,19 @@ CONFIG_FRAME_WARN=1024
602# CONFIG_DEBUG_MEMORY_INIT is not set 607# CONFIG_DEBUG_MEMORY_INIT is not set
603# CONFIG_RCU_CPU_STALL_DETECTOR is not set 608# CONFIG_RCU_CPU_STALL_DETECTOR is not set
604# CONFIG_LATENCYTOP is not set 609# CONFIG_LATENCYTOP is not set
605CONFIG_NOP_TRACER=y 610CONFIG_HAVE_FUNCTION_TRACER=y
606CONFIG_HAVE_FTRACE=y 611CONFIG_HAVE_DYNAMIC_FTRACE=y
612CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
613
614#
615# Tracers
616#
607# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 617# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
608# CONFIG_SAMPLES is not set 618# CONFIG_SAMPLES is not set
619CONFIG_HAVE_ARCH_KGDB=y
609# CONFIG_SH_STANDARD_BIOS is not set 620# CONFIG_SH_STANDARD_BIOS is not set
610# CONFIG_EARLY_SCIF_CONSOLE is not set 621# CONFIG_EARLY_SCIF_CONSOLE is not set
622# CONFIG_MORE_COMPILE_OPTIONS is not set
611 623
612# 624#
613# Security options 625# Security options
@@ -621,6 +633,7 @@ CONFIG_HAVE_FTRACE=y
621# Library routines 633# Library routines
622# 634#
623CONFIG_BITREVERSE=y 635CONFIG_BITREVERSE=y
636CONFIG_GENERIC_FIND_LAST_BIT=y
624# CONFIG_CRC_CCITT is not set 637# CONFIG_CRC_CCITT is not set
625# CONFIG_CRC16 is not set 638# CONFIG_CRC16 is not set
626# CONFIG_CRC_T10DIF is not set 639# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig
index d88190fdd7c1..8574d6eb00a3 100644
--- a/arch/sh/configs/se7705_defconfig
+++ b/arch/sh/configs/se7705_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:04:52 2008 4# Fri Jan 9 17:37:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78CONFIG_HAVE_IOREMAP_PROT=y 78CONFIG_HAVE_IOREMAP_PROT=y
79CONFIG_HAVE_KPROBES=y 79CONFIG_HAVE_KPROBES=y
@@ -83,17 +83,14 @@ CONFIG_HAVE_CLK=y
83CONFIG_HAVE_GENERIC_DMA_COHERENT=y 83CONFIG_HAVE_GENERIC_DMA_COHERENT=y
84CONFIG_SLABINFO=y 84CONFIG_SLABINFO=y
85CONFIG_RT_MUTEXES=y 85CONFIG_RT_MUTEXES=y
86# CONFIG_TINY_SHMEM is not set
87CONFIG_BASE_SMALL=0 86CONFIG_BASE_SMALL=0
88CONFIG_MODULES=y 87CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set 88# CONFIG_MODULE_FORCE_LOAD is not set
90# CONFIG_MODULE_UNLOAD is not set 89# CONFIG_MODULE_UNLOAD is not set
91# CONFIG_MODVERSIONS is not set 90# CONFIG_MODVERSIONS is not set
92# CONFIG_MODULE_SRCVERSION_ALL is not set 91# CONFIG_MODULE_SRCVERSION_ALL is not set
93CONFIG_KMOD=y
94CONFIG_BLOCK=y 92CONFIG_BLOCK=y
95# CONFIG_LBD is not set 93# CONFIG_LBD is not set
96# CONFIG_LSF is not set
97# CONFIG_BLK_DEV_BSG is not set 94# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 95# CONFIG_BLK_DEV_INTEGRITY is not set
99 96
@@ -110,6 +107,10 @@ CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_NOOP is not set 107# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="anticipatory" 108CONFIG_DEFAULT_IOSCHED="anticipatory"
112CONFIG_CLASSIC_RCU=y 109CONFIG_CLASSIC_RCU=y
110# CONFIG_TREE_RCU is not set
111# CONFIG_PREEMPT_RCU is not set
112# CONFIG_TREE_RCU_TRACE is not set
113# CONFIG_PREEMPT_RCU_TRACE is not set
113# CONFIG_FREEZER is not set 114# CONFIG_FREEZER is not set
114 115
115# 116#
@@ -117,6 +118,7 @@ CONFIG_CLASSIC_RCU=y
117# 118#
118CONFIG_CPU_SH3=y 119CONFIG_CPU_SH3=y
119# CONFIG_CPU_SUBTYPE_SH7619 is not set 120# CONFIG_CPU_SUBTYPE_SH7619 is not set
121# CONFIG_CPU_SUBTYPE_SH7201 is not set
120# CONFIG_CPU_SUBTYPE_SH7203 is not set 122# CONFIG_CPU_SUBTYPE_SH7203 is not set
121# CONFIG_CPU_SUBTYPE_SH7206 is not set 123# CONFIG_CPU_SUBTYPE_SH7206 is not set
122# CONFIG_CPU_SUBTYPE_SH7263 is not set 124# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -180,7 +182,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
180CONFIG_SPARSEMEM_STATIC=y 182CONFIG_SPARSEMEM_STATIC=y
181CONFIG_PAGEFLAGS_EXTENDED=y 183CONFIG_PAGEFLAGS_EXTENDED=y
182CONFIG_SPLIT_PTLOCK_CPUS=4 184CONFIG_SPLIT_PTLOCK_CPUS=4
183# CONFIG_RESOURCES_64BIT is not set
184# CONFIG_PHYS_ADDR_T_64BIT is not set 185# CONFIG_PHYS_ADDR_T_64BIT is not set
185CONFIG_ZONE_DMA_FLAG=0 186CONFIG_ZONE_DMA_FLAG=0
186CONFIG_NR_QUICK=2 187CONFIG_NR_QUICK=2
@@ -258,7 +259,6 @@ CONFIG_HZ=250
258# CONFIG_PREEMPT_NONE is not set 259# CONFIG_PREEMPT_NONE is not set
259# CONFIG_PREEMPT_VOLUNTARY is not set 260# CONFIG_PREEMPT_VOLUNTARY is not set
260CONFIG_PREEMPT=y 261CONFIG_PREEMPT=y
261# CONFIG_PREEMPT_RCU is not set
262CONFIG_GUSA=y 262CONFIG_GUSA=y
263# CONFIG_GUSA_RB is not set 263# CONFIG_GUSA_RB is not set
264 264
@@ -272,10 +272,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
272# 272#
273# Bus options 273# Bus options
274# 274#
275CONFIG_CF_ENABLER=y
276# CONFIG_CF_AREA5 is not set
277CONFIG_CF_AREA6=y
278CONFIG_CF_BASE_ADDR=0xb8000000
279# CONFIG_ARCH_SUPPORTS_MSI is not set 275# CONFIG_ARCH_SUPPORTS_MSI is not set
280 276
281# 277#
@@ -285,11 +281,18 @@ CONFIG_BINFMT_ELF=y
285# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 281# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
286# CONFIG_HAVE_AOUT is not set 282# CONFIG_HAVE_AOUT is not set
287# CONFIG_BINFMT_MISC is not set 283# CONFIG_BINFMT_MISC is not set
284
285#
286# Power management options (EXPERIMENTAL)
287#
288# CONFIG_PM is not set
289# CONFIG_CPU_IDLE is not set
288CONFIG_NET=y 290CONFIG_NET=y
289 291
290# 292#
291# Networking options 293# Networking options
292# 294#
295CONFIG_COMPAT_NET_DEV_OPS=y
293CONFIG_PACKET=y 296CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set 297# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y 298CONFIG_UNIX=y
@@ -345,6 +348,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set 350# CONFIG_NET_SCHED is not set
351# CONFIG_DCB is not set
348 352
349# 353#
350# Network testing 354# Network testing
@@ -360,8 +364,8 @@ CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
361# CONFIG_WIRELESS_OLD_REGULATORY is not set 365# CONFIG_WIRELESS_OLD_REGULATORY is not set
362# CONFIG_WIRELESS_EXT is not set 366# CONFIG_WIRELESS_EXT is not set
367# CONFIG_LIB80211 is not set
363# CONFIG_MAC80211 is not set 368# CONFIG_MAC80211 is not set
364# CONFIG_IEEE80211 is not set
365# CONFIG_RFKILL is not set 369# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 370# CONFIG_NET_9P is not set
367 371
@@ -465,6 +469,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
465CONFIG_MISC_DEVICES=y 469CONFIG_MISC_DEVICES=y
466# CONFIG_EEPROM_93CX6 is not set 470# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set
468CONFIG_HAVE_IDE=y 473CONFIG_HAVE_IDE=y
469# CONFIG_IDE is not set 474# CONFIG_IDE is not set
470 475
@@ -491,6 +496,7 @@ CONFIG_NET_ETHERNET=y
491CONFIG_STNIC=y 496CONFIG_STNIC=y
492# CONFIG_SMC91X is not set 497# CONFIG_SMC91X is not set
493# CONFIG_SMC911X is not set 498# CONFIG_SMC911X is not set
499# CONFIG_SMSC911X is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 500# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 501# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 502# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -583,6 +589,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
583CONFIG_SERIAL_CORE=y 589CONFIG_SERIAL_CORE=y
584CONFIG_SERIAL_CORE_CONSOLE=y 590CONFIG_SERIAL_CORE_CONSOLE=y
585CONFIG_UNIX98_PTYS=y 591CONFIG_UNIX98_PTYS=y
592# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
586# CONFIG_LEGACY_PTYS is not set 593# CONFIG_LEGACY_PTYS is not set
587# CONFIG_IPMI_HANDLER is not set 594# CONFIG_IPMI_HANDLER is not set
588CONFIG_HW_RANDOM=y 595CONFIG_HW_RANDOM=y
@@ -609,11 +616,11 @@ CONFIG_HWMON=y
609# CONFIG_THERMAL is not set 616# CONFIG_THERMAL is not set
610# CONFIG_THERMAL_HWMON is not set 617# CONFIG_THERMAL_HWMON is not set
611# CONFIG_WATCHDOG is not set 618# CONFIG_WATCHDOG is not set
619CONFIG_SSB_POSSIBLE=y
612 620
613# 621#
614# Sonics Silicon Backplane 622# Sonics Silicon Backplane
615# 623#
616CONFIG_SSB_POSSIBLE=y
617# CONFIG_SSB is not set 624# CONFIG_SSB is not set
618 625
619# 626#
@@ -623,7 +630,7 @@ CONFIG_SSB_POSSIBLE=y
623# CONFIG_MFD_SM501 is not set 630# CONFIG_MFD_SM501 is not set
624# CONFIG_HTC_PASIC3 is not set 631# CONFIG_HTC_PASIC3 is not set
625# CONFIG_MFD_TMIO is not set 632# CONFIG_MFD_TMIO is not set
626# CONFIG_MFD_WM8400 is not set 633# CONFIG_REGULATOR is not set
627 634
628# 635#
629# Multimedia devices 636# Multimedia devices
@@ -677,7 +684,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
677# 684#
678 685
679# 686#
680# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 687# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
681# 688#
682# CONFIG_USB_GADGET is not set 689# CONFIG_USB_GADGET is not set
683# CONFIG_MMC is not set 690# CONFIG_MMC is not set
@@ -734,10 +741,7 @@ CONFIG_PROC_PAGE_MONITOR=y
734# CONFIG_TMPFS is not set 741# CONFIG_TMPFS is not set
735# CONFIG_HUGETLBFS is not set 742# CONFIG_HUGETLBFS is not set
736# CONFIG_HUGETLB_PAGE is not set 743# CONFIG_HUGETLB_PAGE is not set
737 744CONFIG_MISC_FILESYSTEMS=y
738#
739# Miscellaneous filesystems
740#
741# CONFIG_ADFS_FS is not set 745# CONFIG_ADFS_FS is not set
742# CONFIG_AFFS_FS is not set 746# CONFIG_AFFS_FS is not set
743# CONFIG_HFS_FS is not set 747# CONFIG_HFS_FS is not set
@@ -806,13 +810,19 @@ CONFIG_FRAME_WARN=1024
806# CONFIG_DEBUG_MEMORY_INIT is not set 810# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_RCU_CPU_STALL_DETECTOR is not set 811# CONFIG_RCU_CPU_STALL_DETECTOR is not set
808# CONFIG_LATENCYTOP is not set 812# CONFIG_LATENCYTOP is not set
809CONFIG_NOP_TRACER=y 813CONFIG_HAVE_FUNCTION_TRACER=y
810CONFIG_HAVE_FTRACE=y 814CONFIG_HAVE_DYNAMIC_FTRACE=y
815CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
816
817#
818# Tracers
819#
811# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 820# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
812# CONFIG_SAMPLES is not set 821# CONFIG_SAMPLES is not set
822CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_SH_STANDARD_BIOS is not set 823# CONFIG_SH_STANDARD_BIOS is not set
814# CONFIG_EARLY_SCIF_CONSOLE is not set 824# CONFIG_EARLY_SCIF_CONSOLE is not set
815# CONFIG_SH_KGDB is not set 825# CONFIG_MORE_COMPILE_OPTIONS is not set
816 826
817# 827#
818# Security options 828# Security options
@@ -827,6 +837,7 @@ CONFIG_CRYPTO=y
827# 837#
828# CONFIG_CRYPTO_FIPS is not set 838# CONFIG_CRYPTO_FIPS is not set
829# CONFIG_CRYPTO_MANAGER is not set 839# CONFIG_CRYPTO_MANAGER is not set
840# CONFIG_CRYPTO_MANAGER2 is not set
830# CONFIG_CRYPTO_GF128MUL is not set 841# CONFIG_CRYPTO_GF128MUL is not set
831# CONFIG_CRYPTO_NULL is not set 842# CONFIG_CRYPTO_NULL is not set
832# CONFIG_CRYPTO_CRYPTD is not set 843# CONFIG_CRYPTO_CRYPTD is not set
@@ -909,6 +920,7 @@ CONFIG_CRYPTO_HW=y
909# Library routines 920# Library routines
910# 921#
911CONFIG_BITREVERSE=y 922CONFIG_BITREVERSE=y
923CONFIG_GENERIC_FIND_LAST_BIT=y
912CONFIG_CRC_CCITT=y 924CONFIG_CRC_CCITT=y
913# CONFIG_CRC16 is not set 925# CONFIG_CRC16 is not set
914# CONFIG_CRC_T10DIF is not set 926# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig
index 869ab1737deb..e31ea84f116d 100644
--- a/arch/sh/configs/se7712_defconfig
+++ b/arch/sh/configs/se7712_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:08:12 2008 4# Fri Jan 9 17:40:12 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -55,6 +57,7 @@ CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y 57CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y 58CONFIG_KALLSYMS=y
57CONFIG_KALLSYMS_ALL=y 59CONFIG_KALLSYMS_ALL=y
60CONFIG_KALLSYMS_STRIP_GENERATED=y
58# CONFIG_KALLSYMS_EXTRA_PASS is not set 61# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -71,12 +74,10 @@ CONFIG_EVENTFD=y
71# CONFIG_SHMEM is not set 74# CONFIG_SHMEM is not set
72CONFIG_AIO=y 75CONFIG_AIO=y
73CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_PCI_QUIRKS=y
75CONFIG_SLAB=y 77CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
82CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -87,18 +88,15 @@ CONFIG_HAVE_CLK=y
87CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
88CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
90CONFIG_TINY_SHMEM=y
91CONFIG_BASE_SMALL=1 91CONFIG_BASE_SMALL=1
92CONFIG_MODULES=y 92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
94# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
95# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
96# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
97CONFIG_KMOD=y
98CONFIG_BLOCK=y 97CONFIG_BLOCK=y
99# CONFIG_LBD is not set 98# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
103# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
104 102
@@ -115,6 +113,10 @@ CONFIG_IOSCHED_NOOP=y
115CONFIG_DEFAULT_NOOP=y 113CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop" 114CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
118# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
119 121
120# 122#
@@ -122,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
122# 124#
123CONFIG_CPU_SH3=y 125CONFIG_CPU_SH3=y
124# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
125# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
126# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
127# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
185CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
186CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
187CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -277,10 +279,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
277# 279#
278# Bus options 280# Bus options
279# 281#
280CONFIG_CF_ENABLER=y
281# CONFIG_CF_AREA5 is not set
282CONFIG_CF_AREA6=y
283CONFIG_CF_BASE_ADDR=0xb8000000
284# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
285# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
286 284
@@ -291,11 +289,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 289# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 290# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 291# CONFIG_BINFMT_MISC is not set
292
293#
294# Power management options (EXPERIMENTAL)
295#
296# CONFIG_PM is not set
297# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 298CONFIG_NET=y
295 299
296# 300#
297# Networking options 301# Networking options
298# 302#
303CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 304CONFIG_PACKET=y
300CONFIG_PACKET_MMAP=y 305CONFIG_PACKET_MMAP=y
301CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -376,6 +381,7 @@ CONFIG_NET_SCH_TBF=y
376CONFIG_NET_SCH_GRED=y 381CONFIG_NET_SCH_GRED=y
377CONFIG_NET_SCH_DSMARK=y 382CONFIG_NET_SCH_DSMARK=y
378CONFIG_NET_SCH_NETEM=y 383CONFIG_NET_SCH_NETEM=y
384# CONFIG_NET_SCH_DRR is not set
379 385
380# 386#
381# Classification 387# Classification
@@ -394,6 +400,7 @@ CONFIG_NET_CLS_FW=y
394# CONFIG_NET_CLS_ACT is not set 400# CONFIG_NET_CLS_ACT is not set
395CONFIG_NET_CLS_IND=y 401CONFIG_NET_CLS_IND=y
396CONFIG_NET_SCH_FIFO=y 402CONFIG_NET_SCH_FIFO=y
403# CONFIG_DCB is not set
397 404
398# 405#
399# Network testing 406# Network testing
@@ -410,8 +417,8 @@ CONFIG_WIRELESS=y
410# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
411# CONFIG_WIRELESS_OLD_REGULATORY is not set 418# CONFIG_WIRELESS_OLD_REGULATORY is not set
412# CONFIG_WIRELESS_EXT is not set 419# CONFIG_WIRELESS_EXT is not set
420# CONFIG_LIB80211 is not set
413# CONFIG_MAC80211 is not set 421# CONFIG_MAC80211 is not set
414# CONFIG_IEEE80211 is not set
415# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
416# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
417 424
@@ -518,6 +525,7 @@ CONFIG_BLK_DEV=y
518CONFIG_MISC_DEVICES=y 525CONFIG_MISC_DEVICES=y
519# CONFIG_EEPROM_93CX6 is not set 526# CONFIG_EEPROM_93CX6 is not set
520# CONFIG_ENCLOSURE_SERVICES is not set 527# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_C2PORT is not set
521CONFIG_HAVE_IDE=y 529CONFIG_HAVE_IDE=y
522# CONFIG_IDE is not set 530# CONFIG_IDE is not set
523 531
@@ -560,6 +568,7 @@ CONFIG_SCSI_WAIT_SCAN=m
560# CONFIG_SCSI_SRP_ATTRS is not set 568# CONFIG_SCSI_SRP_ATTRS is not set
561CONFIG_SCSI_LOWLEVEL=y 569CONFIG_SCSI_LOWLEVEL=y
562# CONFIG_ISCSI_TCP is not set 570# CONFIG_ISCSI_TCP is not set
571# CONFIG_LIBFC is not set
563# CONFIG_SCSI_DEBUG is not set 572# CONFIG_SCSI_DEBUG is not set
564# CONFIG_SCSI_DH is not set 573# CONFIG_SCSI_DH is not set
565CONFIG_ATA=y 574CONFIG_ATA=y
@@ -591,6 +600,9 @@ CONFIG_PHYLIB=y
591# CONFIG_BROADCOM_PHY is not set 600# CONFIG_BROADCOM_PHY is not set
592# CONFIG_ICPLUS_PHY is not set 601# CONFIG_ICPLUS_PHY is not set
593# CONFIG_REALTEK_PHY is not set 602# CONFIG_REALTEK_PHY is not set
603# CONFIG_NATIONAL_PHY is not set
604# CONFIG_STE10XP is not set
605# CONFIG_LSI_ET1011C_PHY is not set
594# CONFIG_FIXED_PHY is not set 606# CONFIG_FIXED_PHY is not set
595CONFIG_MDIO_BITBANG=y 607CONFIG_MDIO_BITBANG=y
596CONFIG_NET_ETHERNET=y 608CONFIG_NET_ETHERNET=y
@@ -600,6 +612,7 @@ CONFIG_MII=y
600CONFIG_SH_ETH=y 612CONFIG_SH_ETH=y
601# CONFIG_SMC91X is not set 613# CONFIG_SMC91X is not set
602# CONFIG_SMC911X is not set 614# CONFIG_SMC911X is not set
615# CONFIG_SMSC911X is not set
603# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
604# CONFIG_IBM_NEW_EMAC_RGMII is not set 617# CONFIG_IBM_NEW_EMAC_RGMII is not set
605# CONFIG_IBM_NEW_EMAC_TAH is not set 618# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -658,6 +671,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
658CONFIG_SERIAL_CORE=y 671CONFIG_SERIAL_CORE=y
659CONFIG_SERIAL_CORE_CONSOLE=y 672CONFIG_SERIAL_CORE_CONSOLE=y
660CONFIG_UNIX98_PTYS=y 673CONFIG_UNIX98_PTYS=y
674# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
661# CONFIG_LEGACY_PTYS is not set 675# CONFIG_LEGACY_PTYS is not set
662# CONFIG_IPMI_HANDLER is not set 676# CONFIG_IPMI_HANDLER is not set
663CONFIG_HW_RANDOM=m 677CONFIG_HW_RANDOM=m
@@ -672,11 +686,11 @@ CONFIG_HW_RANDOM=m
672# CONFIG_THERMAL is not set 686# CONFIG_THERMAL is not set
673# CONFIG_THERMAL_HWMON is not set 687# CONFIG_THERMAL_HWMON is not set
674# CONFIG_WATCHDOG is not set 688# CONFIG_WATCHDOG is not set
689CONFIG_SSB_POSSIBLE=y
675 690
676# 691#
677# Sonics Silicon Backplane 692# Sonics Silicon Backplane
678# 693#
679CONFIG_SSB_POSSIBLE=y
680# CONFIG_SSB is not set 694# CONFIG_SSB is not set
681 695
682# 696#
@@ -686,7 +700,7 @@ CONFIG_SSB_POSSIBLE=y
686# CONFIG_MFD_SM501 is not set 700# CONFIG_MFD_SM501 is not set
687# CONFIG_HTC_PASIC3 is not set 701# CONFIG_HTC_PASIC3 is not set
688# CONFIG_MFD_TMIO is not set 702# CONFIG_MFD_TMIO is not set
689# CONFIG_MFD_WM8400 is not set 703# CONFIG_REGULATOR is not set
690 704
691# 705#
692# Multimedia devices 706# Multimedia devices
@@ -730,7 +744,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
730# 744#
731 745
732# 746#
733# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 747# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
734# 748#
735# CONFIG_USB_GADGET is not set 749# CONFIG_USB_GADGET is not set
736# CONFIG_MMC is not set 750# CONFIG_MMC is not set
@@ -748,6 +762,7 @@ CONFIG_LEDS_CLASS=y
748CONFIG_LEDS_TRIGGERS=y 762CONFIG_LEDS_TRIGGERS=y
749# CONFIG_LEDS_TRIGGER_TIMER is not set 763# CONFIG_LEDS_TRIGGER_TIMER is not set
750# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 764# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
765# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
751# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 766# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
752# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
753# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
@@ -809,10 +824,7 @@ CONFIG_TMPFS=y
809# CONFIG_HUGETLBFS is not set 824# CONFIG_HUGETLBFS is not set
810# CONFIG_HUGETLB_PAGE is not set 825# CONFIG_HUGETLB_PAGE is not set
811# CONFIG_CONFIGFS_FS is not set 826# CONFIG_CONFIGFS_FS is not set
812 827CONFIG_MISC_FILESYSTEMS=y
813#
814# Miscellaneous filesystems
815#
816# CONFIG_ADFS_FS is not set 828# CONFIG_ADFS_FS is not set
817# CONFIG_AFFS_FS is not set 829# CONFIG_AFFS_FS is not set
818# CONFIG_HFS_FS is not set 830# CONFIG_HFS_FS is not set
@@ -902,6 +914,7 @@ CONFIG_DEBUG_INFO=y
902# CONFIG_DEBUG_MEMORY_INIT is not set 914# CONFIG_DEBUG_MEMORY_INIT is not set
903# CONFIG_DEBUG_LIST is not set 915# CONFIG_DEBUG_LIST is not set
904# CONFIG_DEBUG_SG is not set 916# CONFIG_DEBUG_SG is not set
917# CONFIG_DEBUG_NOTIFIERS is not set
905CONFIG_FRAME_POINTER=y 918CONFIG_FRAME_POINTER=y
906# CONFIG_RCU_TORTURE_TEST is not set 919# CONFIG_RCU_TORTURE_TEST is not set
907# CONFIG_RCU_CPU_STALL_DETECTOR is not set 920# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -910,16 +923,24 @@ CONFIG_FRAME_POINTER=y
910# CONFIG_FAULT_INJECTION is not set 923# CONFIG_FAULT_INJECTION is not set
911# CONFIG_LATENCYTOP is not set 924# CONFIG_LATENCYTOP is not set
912CONFIG_SYSCTL_SYSCALL_CHECK=y 925CONFIG_SYSCTL_SYSCALL_CHECK=y
913CONFIG_NOP_TRACER=y 926CONFIG_HAVE_FUNCTION_TRACER=y
914CONFIG_HAVE_FTRACE=y 927CONFIG_HAVE_DYNAMIC_FTRACE=y
915# CONFIG_FTRACE is not set 928CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
929
930#
931# Tracers
932#
933# CONFIG_FUNCTION_TRACER is not set
916# CONFIG_IRQSOFF_TRACER is not set 934# CONFIG_IRQSOFF_TRACER is not set
917# CONFIG_SCHED_TRACER is not set 935# CONFIG_SCHED_TRACER is not set
918# CONFIG_CONTEXT_SWITCH_TRACER is not set 936# CONFIG_CONTEXT_SWITCH_TRACER is not set
919# CONFIG_BOOT_TRACER is not set 937# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set
920# CONFIG_STACK_TRACER is not set 939# CONFIG_STACK_TRACER is not set
921# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
922# CONFIG_SAMPLES is not set 941# CONFIG_SAMPLES is not set
942CONFIG_HAVE_ARCH_KGDB=y
943# CONFIG_KGDB is not set
923# CONFIG_SH_STANDARD_BIOS is not set 944# CONFIG_SH_STANDARD_BIOS is not set
924# CONFIG_EARLY_SCIF_CONSOLE is not set 945# CONFIG_EARLY_SCIF_CONSOLE is not set
925# CONFIG_DEBUG_BOOTMEM is not set 946# CONFIG_DEBUG_BOOTMEM is not set
@@ -927,7 +948,9 @@ CONFIG_HAVE_FTRACE=y
927# CONFIG_DEBUG_STACK_USAGE is not set 948# CONFIG_DEBUG_STACK_USAGE is not set
928# CONFIG_4KSTACKS is not set 949# CONFIG_4KSTACKS is not set
929# CONFIG_IRQSTACKS is not set 950# CONFIG_IRQSTACKS is not set
930# CONFIG_SH_KGDB is not set 951# CONFIG_DUMP_CODE is not set
952# CONFIG_SH_NO_BSS_INIT is not set
953# CONFIG_MORE_COMPILE_OPTIONS is not set
931 954
932# 955#
933# Security options 956# Security options
@@ -943,11 +966,16 @@ CONFIG_CRYPTO=y
943# 966#
944# CONFIG_CRYPTO_FIPS is not set 967# CONFIG_CRYPTO_FIPS is not set
945CONFIG_CRYPTO_ALGAPI=y 968CONFIG_CRYPTO_ALGAPI=y
969CONFIG_CRYPTO_ALGAPI2=y
946CONFIG_CRYPTO_AEAD=y 970CONFIG_CRYPTO_AEAD=y
971CONFIG_CRYPTO_AEAD2=y
947CONFIG_CRYPTO_BLKCIPHER=y 972CONFIG_CRYPTO_BLKCIPHER=y
973CONFIG_CRYPTO_BLKCIPHER2=y
948CONFIG_CRYPTO_HASH=y 974CONFIG_CRYPTO_HASH=y
949CONFIG_CRYPTO_RNG=y 975CONFIG_CRYPTO_HASH2=y
976CONFIG_CRYPTO_RNG2=y
950CONFIG_CRYPTO_MANAGER=y 977CONFIG_CRYPTO_MANAGER=y
978CONFIG_CRYPTO_MANAGER2=y
951# CONFIG_CRYPTO_GF128MUL is not set 979# CONFIG_CRYPTO_GF128MUL is not set
952# CONFIG_CRYPTO_NULL is not set 980# CONFIG_CRYPTO_NULL is not set
953# CONFIG_CRYPTO_CRYPTD is not set 981# CONFIG_CRYPTO_CRYPTD is not set
@@ -1030,6 +1058,7 @@ CONFIG_CRYPTO_HW=y
1030# Library routines 1058# Library routines
1031# 1059#
1032CONFIG_BITREVERSE=y 1060CONFIG_BITREVERSE=y
1061CONFIG_GENERIC_FIND_LAST_BIT=y
1033CONFIG_CRC_CCITT=y 1062CONFIG_CRC_CCITT=y
1034# CONFIG_CRC16 is not set 1063# CONFIG_CRC16 is not set
1035# CONFIG_CRC_T10DIF is not set 1064# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig
index b52be14074d8..ad1bace3ad46 100644
--- a/arch/sh/configs/se7721_defconfig
+++ b/arch/sh/configs/se7721_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:12:06 2008 4# Fri Jan 9 17:43:33 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -59,6 +61,7 @@ CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 61CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y 62CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 63CONFIG_KALLSYMS_ALL=y
64CONFIG_KALLSYMS_STRIP_GENERATED=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 65# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y 66CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 67CONFIG_PRINTK=y
@@ -75,12 +78,10 @@ CONFIG_EVENTFD=y
75# CONFIG_SHMEM is not set 78# CONFIG_SHMEM is not set
76CONFIG_AIO=y 79CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 80CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLAB=y 81CONFIG_SLAB=y
80# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set 84# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
85# CONFIG_KPROBES is not set 86# CONFIG_KPROBES is not set
86CONFIG_HAVE_IOREMAP_PROT=y 87CONFIG_HAVE_IOREMAP_PROT=y
@@ -91,18 +92,15 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 92CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
94CONFIG_TINY_SHMEM=y
95CONFIG_BASE_SMALL=1 95CONFIG_BASE_SMALL=1
96CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
98# CONFIG_MODULE_UNLOAD is not set 98# CONFIG_MODULE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_IOSCHED_NOOP=y
119CONFIG_DEFAULT_NOOP=y 117CONFIG_DEFAULT_NOOP=y
120CONFIG_DEFAULT_IOSCHED="noop" 118CONFIG_DEFAULT_IOSCHED="noop"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH3=y 129CONFIG_CPU_SH3=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -280,10 +282,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda2"
280# 282#
281# Bus options 283# Bus options
282# 284#
283CONFIG_CF_ENABLER=y
284# CONFIG_CF_AREA5 is not set
285CONFIG_CF_AREA6=y
286CONFIG_CF_BASE_ADDR=0xb8000000
287# CONFIG_ARCH_SUPPORTS_MSI is not set 285# CONFIG_ARCH_SUPPORTS_MSI is not set
288# CONFIG_PCCARD is not set 286# CONFIG_PCCARD is not set
289 287
@@ -294,11 +292,18 @@ CONFIG_BINFMT_ELF=y
294# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
295# CONFIG_HAVE_AOUT is not set 293# CONFIG_HAVE_AOUT is not set
296# CONFIG_BINFMT_MISC is not set 294# CONFIG_BINFMT_MISC is not set
295
296#
297# Power management options (EXPERIMENTAL)
298#
299# CONFIG_PM is not set
300# CONFIG_CPU_IDLE is not set
297CONFIG_NET=y 301CONFIG_NET=y
298 302
299# 303#
300# Networking options 304# Networking options
301# 305#
306CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 307CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 308CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -379,6 +384,7 @@ CONFIG_NET_SCH_TBF=y
379CONFIG_NET_SCH_GRED=y 384CONFIG_NET_SCH_GRED=y
380CONFIG_NET_SCH_DSMARK=y 385CONFIG_NET_SCH_DSMARK=y
381CONFIG_NET_SCH_NETEM=y 386CONFIG_NET_SCH_NETEM=y
387# CONFIG_NET_SCH_DRR is not set
382 388
383# 389#
384# Classification 390# Classification
@@ -397,6 +403,7 @@ CONFIG_NET_CLS_FW=y
397# CONFIG_NET_CLS_ACT is not set 403# CONFIG_NET_CLS_ACT is not set
398CONFIG_NET_CLS_IND=y 404CONFIG_NET_CLS_IND=y
399CONFIG_NET_SCH_FIFO=y 405CONFIG_NET_SCH_FIFO=y
406# CONFIG_DCB is not set
400 407
401# 408#
402# Network testing 409# Network testing
@@ -413,8 +420,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 420# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 421# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 422# CONFIG_WIRELESS_EXT is not set
423# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 424# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 425# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 426# CONFIG_NET_9P is not set
420 427
@@ -522,6 +529,7 @@ CONFIG_BLK_DEV=y
522CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
523# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
524# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
525CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
526# CONFIG_IDE is not set 534# CONFIG_IDE is not set
527 535
@@ -673,6 +681,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
673CONFIG_SERIAL_CORE=y 681CONFIG_SERIAL_CORE=y
674CONFIG_SERIAL_CORE_CONSOLE=y 682CONFIG_SERIAL_CORE_CONSOLE=y
675CONFIG_UNIX98_PTYS=y 683CONFIG_UNIX98_PTYS=y
684# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
676# CONFIG_LEGACY_PTYS is not set 685# CONFIG_LEGACY_PTYS is not set
677# CONFIG_IPMI_HANDLER is not set 686# CONFIG_IPMI_HANDLER is not set
678# CONFIG_HW_RANDOM is not set 687# CONFIG_HW_RANDOM is not set
@@ -686,11 +695,11 @@ CONFIG_UNIX98_PTYS=y
686# CONFIG_HWMON is not set 695# CONFIG_HWMON is not set
687CONFIG_THERMAL=y 696CONFIG_THERMAL=y
688# CONFIG_WATCHDOG is not set 697# CONFIG_WATCHDOG is not set
698CONFIG_SSB_POSSIBLE=y
689 699
690# 700#
691# Sonics Silicon Backplane 701# Sonics Silicon Backplane
692# 702#
693CONFIG_SSB_POSSIBLE=y
694# CONFIG_SSB is not set 703# CONFIG_SSB is not set
695 704
696# 705#
@@ -700,7 +709,7 @@ CONFIG_SSB_POSSIBLE=y
700# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
701# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
702# CONFIG_MFD_TMIO is not set 711# CONFIG_MFD_TMIO is not set
703# CONFIG_MFD_WM8400 is not set 712# CONFIG_REGULATOR is not set
704 713
705# 714#
706# Multimedia devices 715# Multimedia devices
@@ -750,11 +759,9 @@ CONFIG_HID_COMPAT=y
750CONFIG_HID_A4TECH=y 759CONFIG_HID_A4TECH=y
751CONFIG_HID_APPLE=y 760CONFIG_HID_APPLE=y
752CONFIG_HID_BELKIN=y 761CONFIG_HID_BELKIN=y
753CONFIG_HID_BRIGHT=y
754CONFIG_HID_CHERRY=y 762CONFIG_HID_CHERRY=y
755CONFIG_HID_CHICONY=y 763CONFIG_HID_CHICONY=y
756CONFIG_HID_CYPRESS=y 764CONFIG_HID_CYPRESS=y
757CONFIG_HID_DELL=y
758CONFIG_HID_EZKEY=y 765CONFIG_HID_EZKEY=y
759CONFIG_HID_GYRATION=y 766CONFIG_HID_GYRATION=y
760CONFIG_HID_LOGITECH=y 767CONFIG_HID_LOGITECH=y
@@ -762,12 +769,15 @@ CONFIG_HID_LOGITECH=y
762# CONFIG_LOGIRUMBLEPAD2_FF is not set 769# CONFIG_LOGIRUMBLEPAD2_FF is not set
763CONFIG_HID_MICROSOFT=y 770CONFIG_HID_MICROSOFT=y
764CONFIG_HID_MONTEREY=y 771CONFIG_HID_MONTEREY=y
772# CONFIG_HID_NTRIG is not set
765CONFIG_HID_PANTHERLORD=y 773CONFIG_HID_PANTHERLORD=y
766# CONFIG_PANTHERLORD_FF is not set 774# CONFIG_PANTHERLORD_FF is not set
767CONFIG_HID_PETALYNX=y 775CONFIG_HID_PETALYNX=y
768CONFIG_HID_SAMSUNG=y 776CONFIG_HID_SAMSUNG=y
769CONFIG_HID_SONY=y 777CONFIG_HID_SONY=y
770CONFIG_HID_SUNPLUS=y 778CONFIG_HID_SUNPLUS=y
779# CONFIG_GREENASIA_FF is not set
780# CONFIG_HID_TOPSEED is not set
771CONFIG_THRUSTMASTER_FF=m 781CONFIG_THRUSTMASTER_FF=m
772CONFIG_ZEROPLUS_FF=m 782CONFIG_ZEROPLUS_FF=m
773CONFIG_USB_SUPPORT=y 783CONFIG_USB_SUPPORT=y
@@ -788,19 +798,21 @@ CONFIG_USB_DEVICE_CLASS=y
788# CONFIG_USB_OTG_WHITELIST is not set 798# CONFIG_USB_OTG_WHITELIST is not set
789# CONFIG_USB_OTG_BLACKLIST_HUB is not set 799# CONFIG_USB_OTG_BLACKLIST_HUB is not set
790CONFIG_USB_MON=y 800CONFIG_USB_MON=y
801# CONFIG_USB_WUSB is not set
802# CONFIG_USB_WUSB_CBAF is not set
791 803
792# 804#
793# USB Host Controller Drivers 805# USB Host Controller Drivers
794# 806#
795# CONFIG_USB_C67X00_HCD is not set 807# CONFIG_USB_C67X00_HCD is not set
796# CONFIG_USB_ISP116X_HCD is not set 808# CONFIG_USB_ISP116X_HCD is not set
797# CONFIG_USB_ISP1760_HCD is not set
798CONFIG_USB_OHCI_HCD=y 809CONFIG_USB_OHCI_HCD=y
799# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 810# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
800# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 811# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
801CONFIG_USB_OHCI_LITTLE_ENDIAN=y 812CONFIG_USB_OHCI_LITTLE_ENDIAN=y
802# CONFIG_USB_SL811_HCD is not set 813# CONFIG_USB_SL811_HCD is not set
803# CONFIG_USB_R8A66597_HCD is not set 814# CONFIG_USB_R8A66597_HCD is not set
815# CONFIG_USB_HWA_HCD is not set
804 816
805# 817#
806# USB Device Class drivers 818# USB Device Class drivers
@@ -811,11 +823,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
811# CONFIG_USB_TMC is not set 823# CONFIG_USB_TMC is not set
812 824
813# 825#
814# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 826# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
815# 827#
816 828
817# 829#
818# may also be needed; see USB_STORAGE Help for more information 830# see USB_STORAGE Help for more information
819# 831#
820CONFIG_USB_STORAGE=y 832CONFIG_USB_STORAGE=y
821# CONFIG_USB_STORAGE_DEBUG is not set 833# CONFIG_USB_STORAGE_DEBUG is not set
@@ -883,6 +895,7 @@ CONFIG_LEDS_CLASS=y
883CONFIG_LEDS_TRIGGERS=y 895CONFIG_LEDS_TRIGGERS=y
884# CONFIG_LEDS_TRIGGER_TIMER is not set 896# CONFIG_LEDS_TRIGGER_TIMER is not set
885# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 897# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
898# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
886# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 899# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
887# CONFIG_ACCESSIBILITY is not set 900# CONFIG_ACCESSIBILITY is not set
888# CONFIG_RTC_CLASS is not set 901# CONFIG_RTC_CLASS is not set
@@ -947,10 +960,7 @@ CONFIG_TMPFS=y
947# CONFIG_HUGETLBFS is not set 960# CONFIG_HUGETLBFS is not set
948# CONFIG_HUGETLB_PAGE is not set 961# CONFIG_HUGETLB_PAGE is not set
949# CONFIG_CONFIGFS_FS is not set 962# CONFIG_CONFIGFS_FS is not set
950 963CONFIG_MISC_FILESYSTEMS=y
951#
952# Miscellaneous filesystems
953#
954# CONFIG_ADFS_FS is not set 964# CONFIG_ADFS_FS is not set
955# CONFIG_AFFS_FS is not set 965# CONFIG_AFFS_FS is not set
956# CONFIG_HFS_FS is not set 966# CONFIG_HFS_FS is not set
@@ -1063,6 +1073,7 @@ CONFIG_DEBUG_INFO=y
1063# CONFIG_DEBUG_MEMORY_INIT is not set 1073# CONFIG_DEBUG_MEMORY_INIT is not set
1064# CONFIG_DEBUG_LIST is not set 1074# CONFIG_DEBUG_LIST is not set
1065# CONFIG_DEBUG_SG is not set 1075# CONFIG_DEBUG_SG is not set
1076# CONFIG_DEBUG_NOTIFIERS is not set
1066CONFIG_FRAME_POINTER=y 1077CONFIG_FRAME_POINTER=y
1067# CONFIG_RCU_TORTURE_TEST is not set 1078# CONFIG_RCU_TORTURE_TEST is not set
1068# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1079# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1071,16 +1082,24 @@ CONFIG_FRAME_POINTER=y
1071# CONFIG_FAULT_INJECTION is not set 1082# CONFIG_FAULT_INJECTION is not set
1072# CONFIG_LATENCYTOP is not set 1083# CONFIG_LATENCYTOP is not set
1073# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1084# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1074CONFIG_NOP_TRACER=y 1085CONFIG_HAVE_FUNCTION_TRACER=y
1075CONFIG_HAVE_FTRACE=y 1086CONFIG_HAVE_DYNAMIC_FTRACE=y
1076# CONFIG_FTRACE is not set 1087CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1088
1089#
1090# Tracers
1091#
1092# CONFIG_FUNCTION_TRACER is not set
1077# CONFIG_IRQSOFF_TRACER is not set 1093# CONFIG_IRQSOFF_TRACER is not set
1078# CONFIG_SCHED_TRACER is not set 1094# CONFIG_SCHED_TRACER is not set
1079# CONFIG_CONTEXT_SWITCH_TRACER is not set 1095# CONFIG_CONTEXT_SWITCH_TRACER is not set
1080# CONFIG_BOOT_TRACER is not set 1096# CONFIG_BOOT_TRACER is not set
1097# CONFIG_TRACE_BRANCH_PROFILING is not set
1081# CONFIG_STACK_TRACER is not set 1098# CONFIG_STACK_TRACER is not set
1082# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1099# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1083# CONFIG_SAMPLES is not set 1100# CONFIG_SAMPLES is not set
1101CONFIG_HAVE_ARCH_KGDB=y
1102# CONFIG_KGDB is not set
1084# CONFIG_SH_STANDARD_BIOS is not set 1103# CONFIG_SH_STANDARD_BIOS is not set
1085# CONFIG_EARLY_SCIF_CONSOLE is not set 1104# CONFIG_EARLY_SCIF_CONSOLE is not set
1086# CONFIG_DEBUG_BOOTMEM is not set 1105# CONFIG_DEBUG_BOOTMEM is not set
@@ -1088,7 +1107,9 @@ CONFIG_HAVE_FTRACE=y
1088# CONFIG_DEBUG_STACK_USAGE is not set 1107# CONFIG_DEBUG_STACK_USAGE is not set
1089# CONFIG_4KSTACKS is not set 1108# CONFIG_4KSTACKS is not set
1090# CONFIG_IRQSTACKS is not set 1109# CONFIG_IRQSTACKS is not set
1091# CONFIG_SH_KGDB is not set 1110# CONFIG_DUMP_CODE is not set
1111# CONFIG_SH_NO_BSS_INIT is not set
1112# CONFIG_MORE_COMPILE_OPTIONS is not set
1092 1113
1093# 1114#
1094# Security options 1115# Security options
@@ -1104,11 +1125,16 @@ CONFIG_CRYPTO=y
1104# 1125#
1105# CONFIG_CRYPTO_FIPS is not set 1126# CONFIG_CRYPTO_FIPS is not set
1106CONFIG_CRYPTO_ALGAPI=y 1127CONFIG_CRYPTO_ALGAPI=y
1128CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD=y 1129CONFIG_CRYPTO_AEAD=y
1130CONFIG_CRYPTO_AEAD2=y
1108CONFIG_CRYPTO_BLKCIPHER=y 1131CONFIG_CRYPTO_BLKCIPHER=y
1132CONFIG_CRYPTO_BLKCIPHER2=y
1109CONFIG_CRYPTO_HASH=y 1133CONFIG_CRYPTO_HASH=y
1110CONFIG_CRYPTO_RNG=y 1134CONFIG_CRYPTO_HASH2=y
1135CONFIG_CRYPTO_RNG2=y
1111CONFIG_CRYPTO_MANAGER=y 1136CONFIG_CRYPTO_MANAGER=y
1137CONFIG_CRYPTO_MANAGER2=y
1112# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1113# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1114# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1191,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1191# Library routines 1217# Library routines
1192# 1218#
1193CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1194CONFIG_CRC_CCITT=y 1221CONFIG_CRC_CCITT=y
1195# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1196# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig
index e6df51f098f0..abb189a1d314 100644
--- a/arch/sh/configs/se7722_defconfig
+++ b/arch/sh/configs/se7722_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:15:10 2008 4# Fri Jan 9 17:46:59 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -75,13 +77,11 @@ CONFIG_EVENTFD=y
75CONFIG_SHMEM=y 77CONFIG_SHMEM=y
76CONFIG_AIO=y 78CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 79CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_PCI_QUIRKS=y
79CONFIG_SLUB_DEBUG=y 80CONFIG_SLUB_DEBUG=y
80# CONFIG_SLAB is not set 81# CONFIG_SLAB is not set
81CONFIG_SLUB=y 82CONFIG_SLUB=y
82# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
83CONFIG_PROFILING=y 84CONFIG_PROFILING=y
84# CONFIG_MARKERS is not set
85# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
86CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
87# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -93,7 +93,6 @@ CONFIG_HAVE_CLK=y
93CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
94CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
95CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
96# CONFIG_TINY_SHMEM is not set
97CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
98CONFIG_MODULES=y 97CONFIG_MODULES=y
99# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -101,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
101# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
102# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
103# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
104CONFIG_KMOD=y
105CONFIG_BLOCK=y 103CONFIG_BLOCK=y
106# CONFIG_LBD is not set 104# CONFIG_LBD is not set
107# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
110# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
111 108
@@ -122,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
122CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
123CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
124CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
125# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
126 127
127# 128#
@@ -132,6 +133,7 @@ CONFIG_CPU_SH4A=y
132CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
133CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -207,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
207# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
209CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
210# CONFIG_RESOURCES_64BIT is not set
211# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
213CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -287,7 +288,6 @@ CONFIG_KEXEC=y
287# CONFIG_PREEMPT_NONE is not set 288# CONFIG_PREEMPT_NONE is not set
288# CONFIG_PREEMPT_VOLUNTARY is not set 289# CONFIG_PREEMPT_VOLUNTARY is not set
289CONFIG_PREEMPT=y 290CONFIG_PREEMPT=y
290# CONFIG_PREEMPT_RCU is not set
291CONFIG_GUSA=y 291CONFIG_GUSA=y
292 292
293# 293#
@@ -300,10 +300,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
300# 300#
301# Bus options 301# Bus options
302# 302#
303CONFIG_CF_ENABLER=y
304# CONFIG_CF_AREA5 is not set
305CONFIG_CF_AREA6=y
306CONFIG_CF_BASE_ADDR=0xb8000000
307# CONFIG_ARCH_SUPPORTS_MSI is not set 303# CONFIG_ARCH_SUPPORTS_MSI is not set
308# CONFIG_PCCARD is not set 304# CONFIG_PCCARD is not set
309 305
@@ -314,11 +310,18 @@ CONFIG_BINFMT_ELF=y
314# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 310# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
315# CONFIG_HAVE_AOUT is not set 311# CONFIG_HAVE_AOUT is not set
316# CONFIG_BINFMT_MISC is not set 312# CONFIG_BINFMT_MISC is not set
313
314#
315# Power management options (EXPERIMENTAL)
316#
317# CONFIG_PM is not set
318# CONFIG_CPU_IDLE is not set
317CONFIG_NET=y 319CONFIG_NET=y
318 320
319# 321#
320# Networking options 322# Networking options
321# 323#
324CONFIG_COMPAT_NET_DEV_OPS=y
322CONFIG_PACKET=y 325CONFIG_PACKET=y
323CONFIG_PACKET_MMAP=y 326CONFIG_PACKET_MMAP=y
324CONFIG_UNIX=y 327CONFIG_UNIX=y
@@ -371,6 +374,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
373# CONFIG_NET_SCHED is not set 376# CONFIG_NET_SCHED is not set
377# CONFIG_DCB is not set
374 378
375# 379#
376# Network testing 380# Network testing
@@ -386,8 +390,8 @@ CONFIG_WIRELESS=y
386# CONFIG_CFG80211 is not set 390# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_OLD_REGULATORY is not set 391# CONFIG_WIRELESS_OLD_REGULATORY is not set
388# CONFIG_WIRELESS_EXT is not set 392# CONFIG_WIRELESS_EXT is not set
393# CONFIG_LIB80211 is not set
389# CONFIG_MAC80211 is not set 394# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set
391# CONFIG_RFKILL is not set 395# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set 396# CONFIG_NET_9P is not set
393 397
@@ -420,6 +424,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
420CONFIG_MISC_DEVICES=y 424CONFIG_MISC_DEVICES=y
421# CONFIG_EEPROM_93CX6 is not set 425# CONFIG_EEPROM_93CX6 is not set
422# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
427# CONFIG_C2PORT is not set
423CONFIG_HAVE_IDE=y 428CONFIG_HAVE_IDE=y
424# CONFIG_IDE is not set 429# CONFIG_IDE is not set
425 430
@@ -462,6 +467,7 @@ CONFIG_SCSI_WAIT_SCAN=m
462# CONFIG_SCSI_SRP_ATTRS is not set 467# CONFIG_SCSI_SRP_ATTRS is not set
463CONFIG_SCSI_LOWLEVEL=y 468CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_ISCSI_TCP is not set 469# CONFIG_ISCSI_TCP is not set
470# CONFIG_LIBFC is not set
465# CONFIG_SCSI_DEBUG is not set 471# CONFIG_SCSI_DEBUG is not set
466# CONFIG_SCSI_DH is not set 472# CONFIG_SCSI_DH is not set
467CONFIG_ATA=y 473CONFIG_ATA=y
@@ -485,6 +491,7 @@ CONFIG_MII=y
485# CONFIG_STNIC is not set 491# CONFIG_STNIC is not set
486CONFIG_SMC91X=y 492CONFIG_SMC91X=y
487# CONFIG_SMC911X is not set 493# CONFIG_SMC911X is not set
494# CONFIG_SMSC911X is not set
488# CONFIG_IBM_NEW_EMAC_ZMII is not set 495# CONFIG_IBM_NEW_EMAC_ZMII is not set
489# CONFIG_IBM_NEW_EMAC_RGMII is not set 496# CONFIG_IBM_NEW_EMAC_RGMII is not set
490# CONFIG_IBM_NEW_EMAC_TAH is not set 497# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -577,6 +584,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
577CONFIG_SERIAL_CORE=y 584CONFIG_SERIAL_CORE=y
578CONFIG_SERIAL_CORE_CONSOLE=y 585CONFIG_SERIAL_CORE_CONSOLE=y
579CONFIG_UNIX98_PTYS=y 586CONFIG_UNIX98_PTYS=y
587# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
580CONFIG_LEGACY_PTYS=y 588CONFIG_LEGACY_PTYS=y
581CONFIG_LEGACY_PTY_COUNT=256 589CONFIG_LEGACY_PTY_COUNT=256
582# CONFIG_IPMI_HANDLER is not set 590# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +612,11 @@ CONFIG_HWMON=y
604# CONFIG_THERMAL is not set 612# CONFIG_THERMAL is not set
605# CONFIG_THERMAL_HWMON is not set 613# CONFIG_THERMAL_HWMON is not set
606# CONFIG_WATCHDOG is not set 614# CONFIG_WATCHDOG is not set
615CONFIG_SSB_POSSIBLE=y
607 616
608# 617#
609# Sonics Silicon Backplane 618# Sonics Silicon Backplane
610# 619#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 620# CONFIG_SSB is not set
613 621
614# 622#
@@ -618,7 +626,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 626# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 627# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 628# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 629# CONFIG_REGULATOR is not set
622 630
623# 631#
624# Multimedia devices 632# Multimedia devices
@@ -672,7 +680,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
672# 680#
673 681
674# 682#
675# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 683# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
676# 684#
677# CONFIG_USB_GADGET is not set 685# CONFIG_USB_GADGET is not set
678# CONFIG_MMC is not set 686# CONFIG_MMC is not set
@@ -774,10 +782,7 @@ CONFIG_TMPFS=y
774CONFIG_HUGETLBFS=y 782CONFIG_HUGETLBFS=y
775CONFIG_HUGETLB_PAGE=y 783CONFIG_HUGETLB_PAGE=y
776# CONFIG_CONFIGFS_FS is not set 784# CONFIG_CONFIGFS_FS is not set
777 785CONFIG_MISC_FILESYSTEMS=y
778#
779# Miscellaneous filesystems
780#
781# CONFIG_ADFS_FS is not set 786# CONFIG_ADFS_FS is not set
782# CONFIG_AFFS_FS is not set 787# CONFIG_AFFS_FS is not set
783# CONFIG_HFS_FS is not set 788# CONFIG_HFS_FS is not set
@@ -831,14 +836,20 @@ CONFIG_DEBUG_FS=y
831# CONFIG_RCU_CPU_STALL_DETECTOR is not set 836# CONFIG_RCU_CPU_STALL_DETECTOR is not set
832# CONFIG_LATENCYTOP is not set 837# CONFIG_LATENCYTOP is not set
833# CONFIG_SYSCTL_SYSCALL_CHECK is not set 838# CONFIG_SYSCTL_SYSCALL_CHECK is not set
834CONFIG_NOP_TRACER=y 839CONFIG_HAVE_FUNCTION_TRACER=y
835CONFIG_HAVE_FTRACE=y 840CONFIG_HAVE_DYNAMIC_FTRACE=y
841CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
842
843#
844# Tracers
845#
836# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 846# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
837# CONFIG_SAMPLES is not set 847# CONFIG_SAMPLES is not set
848CONFIG_HAVE_ARCH_KGDB=y
838CONFIG_SH_STANDARD_BIOS=y 849CONFIG_SH_STANDARD_BIOS=y
839# CONFIG_EARLY_SCIF_CONSOLE is not set 850# CONFIG_EARLY_SCIF_CONSOLE is not set
840# CONFIG_EARLY_PRINTK is not set 851# CONFIG_EARLY_PRINTK is not set
841# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
842 853
843# 854#
844# Security options 855# Security options
@@ -854,6 +865,7 @@ CONFIG_CRYPTO=y
854# 865#
855# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
856# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
857# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
858# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
859# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -936,6 +948,7 @@ CONFIG_CRYPTO_HW=y
936# Library routines 948# Library routines
937# 949#
938CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
939# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
940# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig
index a577099c3247..ac874f63a625 100644
--- a/arch/sh/configs/se7750_defconfig
+++ b/arch/sh/configs/se7750_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:17:29 2008 4# Fri Jan 9 17:49:22 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -278,10 +279,6 @@ CONFIG_BOOT_LINK_OFFSET=0x00800000
278# 279#
279# Bus options 280# Bus options
280# 281#
281CONFIG_CF_ENABLER=y
282# CONFIG_CF_AREA5 is not set
283CONFIG_CF_AREA6=y
284CONFIG_CF_BASE_ADDR=0xb8000000
285# CONFIG_ARCH_SUPPORTS_MSI is not set 282# CONFIG_ARCH_SUPPORTS_MSI is not set
286 283
287# 284#
@@ -291,11 +288,18 @@ CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
293# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
294CONFIG_NET=y 297CONFIG_NET=y
295 298
296# 299#
297# Networking options 300# Networking options
298# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 303CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -352,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
352# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
354# CONFIG_NET_SCHED is not set 358# CONFIG_NET_SCHED is not set
359# CONFIG_DCB is not set
355 360
356# 361#
357# Network testing 362# Network testing
@@ -367,8 +372,8 @@ CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
368# CONFIG_WIRELESS_OLD_REGULATORY is not set 373# CONFIG_WIRELESS_OLD_REGULATORY is not set
369# CONFIG_WIRELESS_EXT is not set 374# CONFIG_WIRELESS_EXT is not set
375# CONFIG_LIB80211 is not set
370# CONFIG_MAC80211 is not set 376# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set
372# CONFIG_RFKILL is not set 377# CONFIG_RFKILL is not set
373# CONFIG_NET_9P is not set 378# CONFIG_NET_9P is not set
374 379
@@ -469,6 +474,7 @@ CONFIG_BLK_DEV=y
469CONFIG_MISC_DEVICES=y 474CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set 475# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 476# CONFIG_ENCLOSURE_SERVICES is not set
477# CONFIG_C2PORT is not set
472CONFIG_HAVE_IDE=y 478CONFIG_HAVE_IDE=y
473CONFIG_IDE=y 479CONFIG_IDE=y
474 480
@@ -481,7 +487,6 @@ CONFIG_IDE_GD_ATA=y
481# CONFIG_IDE_GD_ATAPI is not set 487# CONFIG_IDE_GD_ATAPI is not set
482# CONFIG_BLK_DEV_IDECD is not set 488# CONFIG_BLK_DEV_IDECD is not set
483# CONFIG_BLK_DEV_IDETAPE is not set 489# CONFIG_BLK_DEV_IDETAPE is not set
484# CONFIG_BLK_DEV_IDESCSI is not set
485# CONFIG_IDE_TASK_IOCTL is not set 490# CONFIG_IDE_TASK_IOCTL is not set
486CONFIG_IDE_PROC_FS=y 491CONFIG_IDE_PROC_FS=y
487 492
@@ -530,6 +535,7 @@ CONFIG_SCSI_WAIT_SCAN=m
530# CONFIG_SCSI_SRP_ATTRS is not set 535# CONFIG_SCSI_SRP_ATTRS is not set
531CONFIG_SCSI_LOWLEVEL=y 536CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_ISCSI_TCP is not set 537# CONFIG_ISCSI_TCP is not set
538# CONFIG_LIBFC is not set
533# CONFIG_SCSI_DEBUG is not set 539# CONFIG_SCSI_DEBUG is not set
534# CONFIG_SCSI_DH is not set 540# CONFIG_SCSI_DH is not set
535# CONFIG_ATA is not set 541# CONFIG_ATA is not set
@@ -548,6 +554,7 @@ CONFIG_NET_ETHERNET=y
548CONFIG_STNIC=y 554CONFIG_STNIC=y
549# CONFIG_SMC91X is not set 555# CONFIG_SMC91X is not set
550# CONFIG_SMC911X is not set 556# CONFIG_SMC911X is not set
557# CONFIG_SMSC911X is not set
551# CONFIG_IBM_NEW_EMAC_ZMII is not set 558# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set 559# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set 560# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -610,6 +617,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
610CONFIG_SERIAL_CORE=y 617CONFIG_SERIAL_CORE=y
611CONFIG_SERIAL_CORE_CONSOLE=y 618CONFIG_SERIAL_CORE_CONSOLE=y
612CONFIG_UNIX98_PTYS=y 619CONFIG_UNIX98_PTYS=y
620# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
613CONFIG_LEGACY_PTYS=y 621CONFIG_LEGACY_PTYS=y
614CONFIG_LEGACY_PTY_COUNT=256 622CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_IPMI_HANDLER is not set 623# CONFIG_IPMI_HANDLER is not set
@@ -645,11 +653,11 @@ CONFIG_WATCHDOG=y
645# CONFIG_SOFT_WATCHDOG is not set 653# CONFIG_SOFT_WATCHDOG is not set
646CONFIG_SH_WDT=y 654CONFIG_SH_WDT=y
647# CONFIG_SH_WDT_MMAP is not set 655# CONFIG_SH_WDT_MMAP is not set
656CONFIG_SSB_POSSIBLE=y
648 657
649# 658#
650# Sonics Silicon Backplane 659# Sonics Silicon Backplane
651# 660#
652CONFIG_SSB_POSSIBLE=y
653# CONFIG_SSB is not set 661# CONFIG_SSB is not set
654 662
655# 663#
@@ -659,7 +667,7 @@ CONFIG_SSB_POSSIBLE=y
659# CONFIG_MFD_SM501 is not set 667# CONFIG_MFD_SM501 is not set
660# CONFIG_HTC_PASIC3 is not set 668# CONFIG_HTC_PASIC3 is not set
661# CONFIG_MFD_TMIO is not set 669# CONFIG_MFD_TMIO is not set
662# CONFIG_MFD_WM8400 is not set 670# CONFIG_REGULATOR is not set
663 671
664# 672#
665# Multimedia devices 673# Multimedia devices
@@ -703,7 +711,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
703# 711#
704 712
705# 713#
706# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 714# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
707# 715#
708# CONFIG_USB_GADGET is not set 716# CONFIG_USB_GADGET is not set
709# CONFIG_MMC is not set 717# CONFIG_MMC is not set
@@ -761,10 +769,7 @@ CONFIG_TMPFS=y
761# CONFIG_HUGETLBFS is not set 769# CONFIG_HUGETLBFS is not set
762# CONFIG_HUGETLB_PAGE is not set 770# CONFIG_HUGETLB_PAGE is not set
763# CONFIG_CONFIGFS_FS is not set 771# CONFIG_CONFIGFS_FS is not set
764 772CONFIG_MISC_FILESYSTEMS=y
765#
766# Miscellaneous filesystems
767#
768# CONFIG_ADFS_FS is not set 773# CONFIG_ADFS_FS is not set
769# CONFIG_AFFS_FS is not set 774# CONFIG_AFFS_FS is not set
770# CONFIG_HFS_FS is not set 775# CONFIG_HFS_FS is not set
@@ -847,13 +852,19 @@ CONFIG_FRAME_WARN=1024
847# CONFIG_DEBUG_MEMORY_INIT is not set 852# CONFIG_DEBUG_MEMORY_INIT is not set
848# CONFIG_RCU_CPU_STALL_DETECTOR is not set 853# CONFIG_RCU_CPU_STALL_DETECTOR is not set
849# CONFIG_LATENCYTOP is not set 854# CONFIG_LATENCYTOP is not set
850CONFIG_NOP_TRACER=y 855CONFIG_HAVE_FUNCTION_TRACER=y
851CONFIG_HAVE_FTRACE=y 856CONFIG_HAVE_DYNAMIC_FTRACE=y
857CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
858
859#
860# Tracers
861#
852# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 862# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
853# CONFIG_SAMPLES is not set 863# CONFIG_SAMPLES is not set
864CONFIG_HAVE_ARCH_KGDB=y
854# CONFIG_SH_STANDARD_BIOS is not set 865# CONFIG_SH_STANDARD_BIOS is not set
855# CONFIG_EARLY_SCIF_CONSOLE is not set 866# CONFIG_EARLY_SCIF_CONSOLE is not set
856# CONFIG_SH_KGDB is not set 867# CONFIG_MORE_COMPILE_OPTIONS is not set
857 868
858# 869#
859# Security options 870# Security options
@@ -869,6 +880,7 @@ CONFIG_CRYPTO=y
869# 880#
870# CONFIG_CRYPTO_FIPS is not set 881# CONFIG_CRYPTO_FIPS is not set
871# CONFIG_CRYPTO_MANAGER is not set 882# CONFIG_CRYPTO_MANAGER is not set
883# CONFIG_CRYPTO_MANAGER2 is not set
872# CONFIG_CRYPTO_GF128MUL is not set 884# CONFIG_CRYPTO_GF128MUL is not set
873# CONFIG_CRYPTO_NULL is not set 885# CONFIG_CRYPTO_NULL is not set
874# CONFIG_CRYPTO_CRYPTD is not set 886# CONFIG_CRYPTO_CRYPTD is not set
@@ -951,6 +963,7 @@ CONFIG_CRYPTO_HW=y
951# Library routines 963# Library routines
952# 964#
953CONFIG_BITREVERSE=y 965CONFIG_BITREVERSE=y
966CONFIG_GENERIC_FIND_LAST_BIT=y
954# CONFIG_CRC_CCITT is not set 967# CONFIG_CRC_CCITT is not set
955# CONFIG_CRC16 is not set 968# CONFIG_CRC16 is not set
956# CONFIG_CRC_T10DIF is not set 969# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig
index d99a6bdf410f..f54ae056f177 100644
--- a/arch/sh/configs/se7751_defconfig
+++ b/arch/sh/configs/se7751_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:21:12 2008 4# Fri Jan 9 17:51:47 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -72,12 +74,10 @@ CONFIG_EVENTFD=y
72CONFIG_SHMEM=y 74CONFIG_SHMEM=y
73CONFIG_AIO=y 75CONFIG_AIO=y
74CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_PCI_QUIRKS=y
76CONFIG_SLAB=y 77CONFIG_SLAB=y
77# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
79# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
80# CONFIG_MARKERS is not set
81CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
82# CONFIG_KPROBES is not set 82# CONFIG_KPROBES is not set
83CONFIG_HAVE_IOREMAP_PROT=y 83CONFIG_HAVE_IOREMAP_PROT=y
@@ -88,18 +88,15 @@ CONFIG_HAVE_CLK=y
88CONFIG_HAVE_GENERIC_DMA_COHERENT=y 88CONFIG_HAVE_GENERIC_DMA_COHERENT=y
89CONFIG_SLABINFO=y 89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y 90CONFIG_RT_MUTEXES=y
91# CONFIG_TINY_SHMEM is not set
92CONFIG_BASE_SMALL=0 91CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y 92CONFIG_MODULES=y
94# CONFIG_MODULE_FORCE_LOAD is not set 93# CONFIG_MODULE_FORCE_LOAD is not set
95# CONFIG_MODULE_UNLOAD is not set 94# CONFIG_MODULE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y 97CONFIG_BLOCK=y
100# CONFIG_LBD is not set 98# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set 99# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set 100# CONFIG_BLK_DEV_BSG is not set
104# CONFIG_BLK_DEV_INTEGRITY is not set 101# CONFIG_BLK_DEV_INTEGRITY is not set
105 102
@@ -116,6 +113,10 @@ CONFIG_DEFAULT_AS=y
116# CONFIG_DEFAULT_NOOP is not set 113# CONFIG_DEFAULT_NOOP is not set
117CONFIG_DEFAULT_IOSCHED="anticipatory" 114CONFIG_DEFAULT_IOSCHED="anticipatory"
118CONFIG_CLASSIC_RCU=y 115CONFIG_CLASSIC_RCU=y
116# CONFIG_TREE_RCU is not set
117# CONFIG_PREEMPT_RCU is not set
118# CONFIG_TREE_RCU_TRACE is not set
119# CONFIG_PREEMPT_RCU_TRACE is not set
119# CONFIG_FREEZER is not set 120# CONFIG_FREEZER is not set
120 121
121# 122#
@@ -123,6 +124,7 @@ CONFIG_CLASSIC_RCU=y
123# 124#
124CONFIG_CPU_SH4=y 125CONFIG_CPU_SH4=y
125# CONFIG_CPU_SUBTYPE_SH7619 is not set 126# CONFIG_CPU_SUBTYPE_SH7619 is not set
127# CONFIG_CPU_SUBTYPE_SH7201 is not set
126# CONFIG_CPU_SUBTYPE_SH7203 is not set 128# CONFIG_CPU_SUBTYPE_SH7203 is not set
127# CONFIG_CPU_SUBTYPE_SH7206 is not set 129# CONFIG_CPU_SUBTYPE_SH7206 is not set
128# CONFIG_CPU_SUBTYPE_SH7263 is not set 130# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -186,7 +188,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
186CONFIG_SPARSEMEM_STATIC=y 188CONFIG_SPARSEMEM_STATIC=y
187CONFIG_PAGEFLAGS_EXTENDED=y 189CONFIG_PAGEFLAGS_EXTENDED=y
188CONFIG_SPLIT_PTLOCK_CPUS=4 190CONFIG_SPLIT_PTLOCK_CPUS=4
189# CONFIG_RESOURCES_64BIT is not set
190# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
191CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
192CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -280,7 +281,6 @@ CONFIG_CMDLINE="console=ttySC1,38400"
280# 281#
281# Bus options 282# Bus options
282# 283#
283# CONFIG_CF_ENABLER is not set
284# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
285 285
286# 286#
@@ -290,11 +290,18 @@ CONFIG_BINFMT_ELF=y
290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 290# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
291# CONFIG_HAVE_AOUT is not set 291# CONFIG_HAVE_AOUT is not set
292# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
293
294#
295# Power management options (EXPERIMENTAL)
296#
297# CONFIG_PM is not set
298# CONFIG_CPU_IDLE is not set
293CONFIG_NET=y 299CONFIG_NET=y
294 300
295# 301#
296# Networking options 302# Networking options
297# 303#
304CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 305CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -370,6 +377,7 @@ CONFIG_IP_NF_QUEUE=y
370# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
372# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
380# CONFIG_DCB is not set
373 381
374# 382#
375# Network testing 383# Network testing
@@ -385,8 +393,8 @@ CONFIG_WIRELESS=y
385# CONFIG_CFG80211 is not set 393# CONFIG_CFG80211 is not set
386# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
387# CONFIG_WIRELESS_EXT is not set 395# CONFIG_WIRELESS_EXT is not set
396# CONFIG_LIB80211 is not set
388# CONFIG_MAC80211 is not set 397# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set 398# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set 399# CONFIG_NET_9P is not set
392 400
@@ -490,6 +498,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
490CONFIG_MISC_DEVICES=y 498CONFIG_MISC_DEVICES=y
491# CONFIG_EEPROM_93CX6 is not set 499# CONFIG_EEPROM_93CX6 is not set
492# CONFIG_ENCLOSURE_SERVICES is not set 500# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_C2PORT is not set
493CONFIG_HAVE_IDE=y 502CONFIG_HAVE_IDE=y
494# CONFIG_IDE is not set 503# CONFIG_IDE is not set
495 504
@@ -516,6 +525,7 @@ CONFIG_MII=y
516# CONFIG_STNIC is not set 525# CONFIG_STNIC is not set
517# CONFIG_SMC91X is not set 526# CONFIG_SMC91X is not set
518# CONFIG_SMC911X is not set 527# CONFIG_SMC911X is not set
528# CONFIG_SMSC911X is not set
519# CONFIG_IBM_NEW_EMAC_ZMII is not set 529# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set 530# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set 531# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -570,6 +580,7 @@ CONFIG_DEVKMEM=y
570# 580#
571# CONFIG_SERIAL_SH_SCI is not set 581# CONFIG_SERIAL_SH_SCI is not set
572CONFIG_UNIX98_PTYS=y 582CONFIG_UNIX98_PTYS=y
583# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
573CONFIG_LEGACY_PTYS=y 584CONFIG_LEGACY_PTYS=y
574CONFIG_LEGACY_PTY_COUNT=256 585CONFIG_LEGACY_PTY_COUNT=256
575# CONFIG_IPMI_HANDLER is not set 586# CONFIG_IPMI_HANDLER is not set
@@ -604,11 +615,11 @@ CONFIG_WATCHDOG=y
604# 615#
605# CONFIG_SOFT_WATCHDOG is not set 616# CONFIG_SOFT_WATCHDOG is not set
606# CONFIG_SH_WDT is not set 617# CONFIG_SH_WDT is not set
618CONFIG_SSB_POSSIBLE=y
607 619
608# 620#
609# Sonics Silicon Backplane 621# Sonics Silicon Backplane
610# 622#
611CONFIG_SSB_POSSIBLE=y
612# CONFIG_SSB is not set 623# CONFIG_SSB is not set
613 624
614# 625#
@@ -618,7 +629,7 @@ CONFIG_SSB_POSSIBLE=y
618# CONFIG_MFD_SM501 is not set 629# CONFIG_MFD_SM501 is not set
619# CONFIG_HTC_PASIC3 is not set 630# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 631# CONFIG_MFD_TMIO is not set
621# CONFIG_MFD_WM8400 is not set 632# CONFIG_REGULATOR is not set
622 633
623# 634#
624# Multimedia devices 635# Multimedia devices
@@ -662,7 +673,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
662# 673#
663 674
664# 675#
665# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 676# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
666# 677#
667# CONFIG_USB_GADGET is not set 678# CONFIG_USB_GADGET is not set
668# CONFIG_MMC is not set 679# CONFIG_MMC is not set
@@ -722,10 +733,7 @@ CONFIG_TMPFS=y
722# CONFIG_HUGETLBFS is not set 733# CONFIG_HUGETLBFS is not set
723# CONFIG_HUGETLB_PAGE is not set 734# CONFIG_HUGETLB_PAGE is not set
724# CONFIG_CONFIGFS_FS is not set 735# CONFIG_CONFIGFS_FS is not set
725 736CONFIG_MISC_FILESYSTEMS=y
726#
727# Miscellaneous filesystems
728#
729# CONFIG_ADFS_FS is not set 737# CONFIG_ADFS_FS is not set
730# CONFIG_AFFS_FS is not set 738# CONFIG_AFFS_FS is not set
731# CONFIG_HFS_FS is not set 739# CONFIG_HFS_FS is not set
@@ -787,13 +795,19 @@ CONFIG_FRAME_WARN=1024
787# CONFIG_DEBUG_MEMORY_INIT is not set 795# CONFIG_DEBUG_MEMORY_INIT is not set
788# CONFIG_RCU_CPU_STALL_DETECTOR is not set 796# CONFIG_RCU_CPU_STALL_DETECTOR is not set
789# CONFIG_LATENCYTOP is not set 797# CONFIG_LATENCYTOP is not set
790CONFIG_NOP_TRACER=y 798CONFIG_HAVE_FUNCTION_TRACER=y
791CONFIG_HAVE_FTRACE=y 799CONFIG_HAVE_DYNAMIC_FTRACE=y
800CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
801
802#
803# Tracers
804#
792# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 805# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
793# CONFIG_SAMPLES is not set 806# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y
794# CONFIG_SH_STANDARD_BIOS is not set 808# CONFIG_SH_STANDARD_BIOS is not set
795# CONFIG_EARLY_SCIF_CONSOLE is not set 809# CONFIG_EARLY_SCIF_CONSOLE is not set
796# CONFIG_SH_KGDB is not set 810# CONFIG_MORE_COMPILE_OPTIONS is not set
797 811
798# 812#
799# Security options 813# Security options
@@ -809,6 +823,7 @@ CONFIG_CRYPTO=y
809# 823#
810# CONFIG_CRYPTO_FIPS is not set 824# CONFIG_CRYPTO_FIPS is not set
811# CONFIG_CRYPTO_MANAGER is not set 825# CONFIG_CRYPTO_MANAGER is not set
826# CONFIG_CRYPTO_MANAGER2 is not set
812# CONFIG_CRYPTO_GF128MUL is not set 827# CONFIG_CRYPTO_GF128MUL is not set
813# CONFIG_CRYPTO_NULL is not set 828# CONFIG_CRYPTO_NULL is not set
814# CONFIG_CRYPTO_CRYPTD is not set 829# CONFIG_CRYPTO_CRYPTD is not set
@@ -891,6 +906,7 @@ CONFIG_CRYPTO_HW=y
891# Library routines 906# Library routines
892# 907#
893CONFIG_BITREVERSE=y 908CONFIG_BITREVERSE=y
909CONFIG_GENERIC_FIND_LAST_BIT=y
894# CONFIG_CRC_CCITT is not set 910# CONFIG_CRC_CCITT is not set
895# CONFIG_CRC16 is not set 911# CONFIG_CRC16 is not set
896# CONFIG_CRC_T10DIF is not set 912# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index ad95b80bb198..7504978e8747 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:27:30 2008 4# Fri Jan 9 17:53:50 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -74,7 +76,6 @@ CONFIG_SLAB=y
74# CONFIG_SLUB is not set 76# CONFIG_SLUB is not set
75# CONFIG_SLOB is not set 77# CONFIG_SLOB is not set
76# CONFIG_PROFILING is not set 78# CONFIG_PROFILING is not set
77# CONFIG_MARKERS is not set
78CONFIG_HAVE_OPROFILE=y 79CONFIG_HAVE_OPROFILE=y
79CONFIG_HAVE_IOREMAP_PROT=y 80CONFIG_HAVE_IOREMAP_PROT=y
80CONFIG_HAVE_KPROBES=y 81CONFIG_HAVE_KPROBES=y
@@ -84,18 +85,15 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 85CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 86CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 87CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 88CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 89CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 90# CONFIG_MODULE_FORCE_LOAD is not set
91CONFIG_MODULE_UNLOAD=y 91CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
93# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
94CONFIG_KMOD=y
95CONFIG_BLOCK=y 94CONFIG_BLOCK=y
96# CONFIG_LBD is not set 95# CONFIG_LBD is not set
97# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
98# CONFIG_LSF is not set
99# CONFIG_BLK_DEV_INTEGRITY is not set 97# CONFIG_BLK_DEV_INTEGRITY is not set
100 98
101# 99#
@@ -111,6 +109,10 @@ CONFIG_DEFAULT_DEADLINE=y
111# CONFIG_DEFAULT_NOOP is not set 109# CONFIG_DEFAULT_NOOP is not set
112CONFIG_DEFAULT_IOSCHED="deadline" 110CONFIG_DEFAULT_IOSCHED="deadline"
113CONFIG_CLASSIC_RCU=y 111CONFIG_CLASSIC_RCU=y
112# CONFIG_TREE_RCU is not set
113# CONFIG_PREEMPT_RCU is not set
114# CONFIG_TREE_RCU_TRACE is not set
115# CONFIG_PREEMPT_RCU_TRACE is not set
114# CONFIG_FREEZER is not set 116# CONFIG_FREEZER is not set
115 117
116# 118#
@@ -119,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
119CONFIG_CPU_SH4=y 121CONFIG_CPU_SH4=y
120CONFIG_CPU_SH4A=y 122CONFIG_CPU_SH4A=y
121# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
122# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
123# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
124# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -185,7 +188,6 @@ CONFIG_SPARSEMEM_STATIC=y
185CONFIG_PAGEFLAGS_EXTENDED=y 188CONFIG_PAGEFLAGS_EXTENDED=y
186CONFIG_SPLIT_PTLOCK_CPUS=4 189CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_MIGRATION=y 190CONFIG_MIGRATION=y
188# CONFIG_RESOURCES_64BIT is not set
189# CONFIG_PHYS_ADDR_T_64BIT is not set 191# CONFIG_PHYS_ADDR_T_64BIT is not set
190CONFIG_ZONE_DMA_FLAG=0 192CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=2 193CONFIG_NR_QUICK=2
@@ -274,11 +276,11 @@ CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1"
274# 276#
275# Bus options 277# Bus options
276# 278#
277# CONFIG_CF_ENABLER is not set
278CONFIG_PCI=y 279CONFIG_PCI=y
279CONFIG_SH_PCIDMA_NONCOHERENT=y 280CONFIG_SH_PCIDMA_NONCOHERENT=y
280CONFIG_PCI_AUTO=y 281CONFIG_PCI_AUTO=y
281CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 282CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
283# CONFIG_PCIEPORTBUS is not set
282# CONFIG_ARCH_SUPPORTS_MSI is not set 284# CONFIG_ARCH_SUPPORTS_MSI is not set
283CONFIG_PCI_LEGACY=y 285CONFIG_PCI_LEGACY=y
284 286
@@ -294,6 +296,7 @@ CONFIG_NET=y
294# 296#
295# Networking options 297# Networking options
296# 298#
299CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 300CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -349,6 +352,7 @@ CONFIG_IPV6=y
349# CONFIG_IPX is not set 352# CONFIG_IPX is not set
350# CONFIG_ATALK is not set 353# CONFIG_ATALK is not set
351# CONFIG_NET_SCHED is not set 354# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set
352 356
353# 357#
354# Network testing 358# Network testing
@@ -363,8 +367,8 @@ CONFIG_WIRELESS=y
363# CONFIG_CFG80211 is not set 367# CONFIG_CFG80211 is not set
364# CONFIG_WIRELESS_OLD_REGULATORY is not set 368# CONFIG_WIRELESS_OLD_REGULATORY is not set
365# CONFIG_WIRELESS_EXT is not set 369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
367# CONFIG_IEEE80211 is not set
368# CONFIG_RFKILL is not set 372# CONFIG_RFKILL is not set
369 373
370# 374#
@@ -533,6 +537,8 @@ CONFIG_SCSI_LOWLEVEL=y
533# CONFIG_MEGARAID_LEGACY is not set 537# CONFIG_MEGARAID_LEGACY is not set
534# CONFIG_MEGARAID_SAS is not set 538# CONFIG_MEGARAID_SAS is not set
535# CONFIG_SCSI_HPTIOP is not set 539# CONFIG_SCSI_HPTIOP is not set
540# CONFIG_LIBFC is not set
541# CONFIG_FCOE is not set
536# CONFIG_SCSI_DMX3191D is not set 542# CONFIG_SCSI_DMX3191D is not set
537# CONFIG_SCSI_FUTURE_DOMAIN is not set 543# CONFIG_SCSI_FUTURE_DOMAIN is not set
538# CONFIG_SCSI_IPS is not set 544# CONFIG_SCSI_IPS is not set
@@ -569,11 +575,13 @@ CONFIG_SATA_SIL=y
569# CONFIG_SATA_VIA is not set 575# CONFIG_SATA_VIA is not set
570# CONFIG_SATA_VITESSE is not set 576# CONFIG_SATA_VITESSE is not set
571# CONFIG_SATA_INIC162X is not set 577# CONFIG_SATA_INIC162X is not set
578# CONFIG_PATA_ALI is not set
572# CONFIG_PATA_AMD is not set 579# CONFIG_PATA_AMD is not set
573# CONFIG_PATA_ARTOP is not set 580# CONFIG_PATA_ARTOP is not set
574# CONFIG_PATA_ATIIXP is not set 581# CONFIG_PATA_ATIIXP is not set
575# CONFIG_PATA_CMD64X is not set 582# CONFIG_PATA_CMD64X is not set
576# CONFIG_PATA_CS5520 is not set 583# CONFIG_PATA_CS5520 is not set
584# CONFIG_PATA_CS5530 is not set
577# CONFIG_PATA_EFAR is not set 585# CONFIG_PATA_EFAR is not set
578# CONFIG_ATA_GENERIC is not set 586# CONFIG_ATA_GENERIC is not set
579# CONFIG_PATA_HPT366 is not set 587# CONFIG_PATA_HPT366 is not set
@@ -585,10 +593,15 @@ CONFIG_SATA_SIL=y
585# CONFIG_PATA_MPIIX is not set 593# CONFIG_PATA_MPIIX is not set
586# CONFIG_PATA_OLDPIIX is not set 594# CONFIG_PATA_OLDPIIX is not set
587# CONFIG_PATA_NETCELL is not set 595# CONFIG_PATA_NETCELL is not set
596# CONFIG_PATA_NS87410 is not set
597# CONFIG_PATA_NS87415 is not set
598# CONFIG_PATA_PDC_OLD is not set
588# CONFIG_PATA_RZ1000 is not set 599# CONFIG_PATA_RZ1000 is not set
600# CONFIG_PATA_SC1200 is not set
589# CONFIG_PATA_SERVERWORKS is not set 601# CONFIG_PATA_SERVERWORKS is not set
590# CONFIG_PATA_PDC2027X is not set 602# CONFIG_PATA_PDC2027X is not set
591# CONFIG_PATA_SIL680 is not set 603# CONFIG_PATA_SIL680 is not set
604# CONFIG_PATA_SIS is not set
592# CONFIG_PATA_VIA is not set 605# CONFIG_PATA_VIA is not set
593# CONFIG_PATA_WINBOND is not set 606# CONFIG_PATA_WINBOND is not set
594# CONFIG_PATA_PLATFORM is not set 607# CONFIG_PATA_PLATFORM is not set
@@ -627,6 +640,9 @@ CONFIG_SMSC_PHY=y
627# CONFIG_BROADCOM_PHY is not set 640# CONFIG_BROADCOM_PHY is not set
628# CONFIG_ICPLUS_PHY is not set 641# CONFIG_ICPLUS_PHY is not set
629# CONFIG_REALTEK_PHY is not set 642# CONFIG_REALTEK_PHY is not set
643# CONFIG_NATIONAL_PHY is not set
644# CONFIG_STE10XP is not set
645# CONFIG_LSI_ET1011C_PHY is not set
630# CONFIG_FIXED_PHY is not set 646# CONFIG_FIXED_PHY is not set
631# CONFIG_MDIO_BITBANG is not set 647# CONFIG_MDIO_BITBANG is not set
632CONFIG_NET_ETHERNET=y 648CONFIG_NET_ETHERNET=y
@@ -639,6 +655,7 @@ CONFIG_MII=y
639# CONFIG_NET_VENDOR_3COM is not set 655# CONFIG_NET_VENDOR_3COM is not set
640CONFIG_SMC91X=y 656CONFIG_SMC91X=y
641# CONFIG_SMC911X is not set 657# CONFIG_SMC911X is not set
658# CONFIG_SMSC911X is not set
642# CONFIG_NET_TULIP is not set 659# CONFIG_NET_TULIP is not set
643# CONFIG_HP100 is not set 660# CONFIG_HP100 is not set
644# CONFIG_IBM_NEW_EMAC_ZMII is not set 661# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -654,7 +671,6 @@ CONFIG_NET_PCI=y
654# CONFIG_ADAPTEC_STARFIRE is not set 671# CONFIG_ADAPTEC_STARFIRE is not set
655# CONFIG_B44 is not set 672# CONFIG_B44 is not set
656# CONFIG_FORCEDETH is not set 673# CONFIG_FORCEDETH is not set
657# CONFIG_EEPRO100 is not set
658# CONFIG_E100 is not set 674# CONFIG_E100 is not set
659# CONFIG_FEALNX is not set 675# CONFIG_FEALNX is not set
660# CONFIG_NATSEMI is not set 676# CONFIG_NATSEMI is not set
@@ -663,6 +679,7 @@ CONFIG_NET_PCI=y
663# CONFIG_R6040 is not set 679# CONFIG_R6040 is not set
664# CONFIG_SIS900 is not set 680# CONFIG_SIS900 is not set
665# CONFIG_EPIC100 is not set 681# CONFIG_EPIC100 is not set
682# CONFIG_SMSC9420 is not set
666# CONFIG_SUNDANCE is not set 683# CONFIG_SUNDANCE is not set
667# CONFIG_TLAN is not set 684# CONFIG_TLAN is not set
668# CONFIG_VIA_RHINE is not set 685# CONFIG_VIA_RHINE is not set
@@ -754,6 +771,7 @@ CONFIG_SERIAL_CORE=y
754CONFIG_SERIAL_CORE_CONSOLE=y 771CONFIG_SERIAL_CORE_CONSOLE=y
755# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
756CONFIG_UNIX98_PTYS=y 773CONFIG_UNIX98_PTYS=y
774# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
757# CONFIG_LEGACY_PTYS is not set 775# CONFIG_LEGACY_PTYS is not set
758# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
759# CONFIG_HW_RANDOM is not set 777# CONFIG_HW_RANDOM is not set
@@ -779,11 +797,11 @@ CONFIG_HWMON=y
779CONFIG_THERMAL=y 797CONFIG_THERMAL=y
780# CONFIG_THERMAL_HWMON is not set 798# CONFIG_THERMAL_HWMON is not set
781# CONFIG_WATCHDOG is not set 799# CONFIG_WATCHDOG is not set
800CONFIG_SSB_POSSIBLE=y
782 801
783# 802#
784# Sonics Silicon Backplane 803# Sonics Silicon Backplane
785# 804#
786CONFIG_SSB_POSSIBLE=y
787# CONFIG_SSB is not set 805# CONFIG_SSB is not set
788 806
789# 807#
@@ -793,7 +811,7 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 811# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 812# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 813# CONFIG_MFD_TMIO is not set
796# CONFIG_MFD_WM8400 is not set 814# CONFIG_REGULATOR is not set
797 815
798# 816#
799# Multimedia devices 817# Multimedia devices
@@ -821,15 +839,16 @@ CONFIG_FB=y
821CONFIG_FIRMWARE_EDID=y 839CONFIG_FIRMWARE_EDID=y
822# CONFIG_FB_DDC is not set 840# CONFIG_FB_DDC is not set
823# CONFIG_FB_BOOT_VESA_SUPPORT is not set 841# CONFIG_FB_BOOT_VESA_SUPPORT is not set
824CONFIG_FB_CFB_FILLRECT=m 842# CONFIG_FB_CFB_FILLRECT is not set
825CONFIG_FB_CFB_COPYAREA=m 843# CONFIG_FB_CFB_COPYAREA is not set
826CONFIG_FB_CFB_IMAGEBLIT=m 844# CONFIG_FB_CFB_IMAGEBLIT is not set
827# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 845# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
828# CONFIG_FB_SYS_FILLRECT is not set 846CONFIG_FB_SYS_FILLRECT=m
829# CONFIG_FB_SYS_COPYAREA is not set 847CONFIG_FB_SYS_COPYAREA=m
830# CONFIG_FB_SYS_IMAGEBLIT is not set 848CONFIG_FB_SYS_IMAGEBLIT=m
831# CONFIG_FB_FOREIGN_ENDIAN is not set 849# CONFIG_FB_FOREIGN_ENDIAN is not set
832# CONFIG_FB_SYS_FOPS is not set 850CONFIG_FB_SYS_FOPS=m
851CONFIG_FB_DEFERRED_IO=y
833# CONFIG_FB_SVGALIB is not set 852# CONFIG_FB_SVGALIB is not set
834# CONFIG_FB_MACMODES is not set 853# CONFIG_FB_MACMODES is not set
835# CONFIG_FB_BACKLIGHT is not set 854# CONFIG_FB_BACKLIGHT is not set
@@ -865,6 +884,7 @@ CONFIG_FB_CFB_IMAGEBLIT=m
865CONFIG_FB_SH_MOBILE_LCDC=m 884CONFIG_FB_SH_MOBILE_LCDC=m
866# CONFIG_FB_VIRTUAL is not set 885# CONFIG_FB_VIRTUAL is not set
867# CONFIG_FB_METRONOME is not set 886# CONFIG_FB_METRONOME is not set
887# CONFIG_FB_MB862XX is not set
868# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 888# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
869 889
870# 890#
@@ -912,11 +932,9 @@ CONFIG_HID_COMPAT=y
912CONFIG_HID_A4TECH=y 932CONFIG_HID_A4TECH=y
913CONFIG_HID_APPLE=y 933CONFIG_HID_APPLE=y
914CONFIG_HID_BELKIN=y 934CONFIG_HID_BELKIN=y
915CONFIG_HID_BRIGHT=y
916CONFIG_HID_CHERRY=y 935CONFIG_HID_CHERRY=y
917CONFIG_HID_CHICONY=y 936CONFIG_HID_CHICONY=y
918CONFIG_HID_CYPRESS=y 937CONFIG_HID_CYPRESS=y
919CONFIG_HID_DELL=y
920CONFIG_HID_EZKEY=y 938CONFIG_HID_EZKEY=y
921CONFIG_HID_GYRATION=y 939CONFIG_HID_GYRATION=y
922CONFIG_HID_LOGITECH=y 940CONFIG_HID_LOGITECH=y
@@ -924,12 +942,15 @@ CONFIG_HID_LOGITECH=y
924# CONFIG_LOGIRUMBLEPAD2_FF is not set 942# CONFIG_LOGIRUMBLEPAD2_FF is not set
925CONFIG_HID_MICROSOFT=y 943CONFIG_HID_MICROSOFT=y
926CONFIG_HID_MONTEREY=y 944CONFIG_HID_MONTEREY=y
945# CONFIG_HID_NTRIG is not set
927CONFIG_HID_PANTHERLORD=y 946CONFIG_HID_PANTHERLORD=y
928# CONFIG_PANTHERLORD_FF is not set 947# CONFIG_PANTHERLORD_FF is not set
929CONFIG_HID_PETALYNX=y 948CONFIG_HID_PETALYNX=y
930CONFIG_HID_SAMSUNG=y 949CONFIG_HID_SAMSUNG=y
931CONFIG_HID_SONY=y 950CONFIG_HID_SONY=y
932CONFIG_HID_SUNPLUS=y 951CONFIG_HID_SUNPLUS=y
952# CONFIG_GREENASIA_FF is not set
953# CONFIG_HID_TOPSEED is not set
933CONFIG_THRUSTMASTER_FF=m 954CONFIG_THRUSTMASTER_FF=m
934CONFIG_ZEROPLUS_FF=m 955CONFIG_ZEROPLUS_FF=m
935CONFIG_USB_SUPPORT=y 956CONFIG_USB_SUPPORT=y
@@ -949,6 +970,7 @@ CONFIG_USB_DEVICEFS=y
949# CONFIG_USB_OTG_WHITELIST is not set 970# CONFIG_USB_OTG_WHITELIST is not set
950# CONFIG_USB_OTG_BLACKLIST_HUB is not set 971# CONFIG_USB_OTG_BLACKLIST_HUB is not set
951CONFIG_USB_MON=y 972CONFIG_USB_MON=y
973# CONFIG_USB_WUSB_CBAF is not set
952 974
953# 975#
954# USB Host Controller Drivers 976# USB Host Controller Drivers
@@ -974,11 +996,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
974# CONFIG_USB_TMC is not set 996# CONFIG_USB_TMC is not set
975 997
976# 998#
977# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 999# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
978# 1000#
979 1001
980# 1002#
981# may also be needed; see USB_STORAGE Help for more information 1003# see USB_STORAGE Help for more information
982# 1004#
983CONFIG_USB_STORAGE=y 1005CONFIG_USB_STORAGE=y
984# CONFIG_USB_STORAGE_DEBUG is not set 1006# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1094,10 +1116,7 @@ CONFIG_TMPFS=y
1094# CONFIG_HUGETLBFS is not set 1116# CONFIG_HUGETLBFS is not set
1095# CONFIG_HUGETLB_PAGE is not set 1117# CONFIG_HUGETLB_PAGE is not set
1096# CONFIG_CONFIGFS_FS is not set 1118# CONFIG_CONFIGFS_FS is not set
1097 1119CONFIG_MISC_FILESYSTEMS=y
1098#
1099# Miscellaneous filesystems
1100#
1101# CONFIG_HFSPLUS_FS is not set 1120# CONFIG_HFSPLUS_FS is not set
1102# CONFIG_JFFS2_FS is not set 1121# CONFIG_JFFS2_FS is not set
1103CONFIG_CRAMFS=y 1122CONFIG_CRAMFS=y
@@ -1188,13 +1207,19 @@ CONFIG_DEBUG_FS=y
1188# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1207# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1189# CONFIG_LATENCYTOP is not set 1208# CONFIG_LATENCYTOP is not set
1190# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1209# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1191CONFIG_NOP_TRACER=y 1210CONFIG_HAVE_FUNCTION_TRACER=y
1192CONFIG_HAVE_FTRACE=y 1211CONFIG_HAVE_DYNAMIC_FTRACE=y
1212CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1213
1214#
1215# Tracers
1216#
1193# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1217# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1194# CONFIG_SAMPLES is not set 1218# CONFIG_SAMPLES is not set
1219CONFIG_HAVE_ARCH_KGDB=y
1195# CONFIG_SH_STANDARD_BIOS is not set 1220# CONFIG_SH_STANDARD_BIOS is not set
1196# CONFIG_EARLY_SCIF_CONSOLE is not set 1221# CONFIG_EARLY_SCIF_CONSOLE is not set
1197# CONFIG_SH_KGDB is not set 1222# CONFIG_MORE_COMPILE_OPTIONS is not set
1198 1223
1199# 1224#
1200# Security options 1225# Security options
@@ -1210,6 +1235,7 @@ CONFIG_CRYPTO=y
1210# 1235#
1211# CONFIG_CRYPTO_FIPS is not set 1236# CONFIG_CRYPTO_FIPS is not set
1212# CONFIG_CRYPTO_MANAGER is not set 1237# CONFIG_CRYPTO_MANAGER is not set
1238# CONFIG_CRYPTO_MANAGER2 is not set
1213# CONFIG_CRYPTO_NULL is not set 1239# CONFIG_CRYPTO_NULL is not set
1214# CONFIG_CRYPTO_CRYPTD is not set 1240# CONFIG_CRYPTO_CRYPTD is not set
1215# CONFIG_CRYPTO_AUTHENC is not set 1241# CONFIG_CRYPTO_AUTHENC is not set
@@ -1288,6 +1314,7 @@ CONFIG_CRYPTO_HW=y
1288# Library routines 1314# Library routines
1289# 1315#
1290CONFIG_BITREVERSE=y 1316CONFIG_BITREVERSE=y
1317CONFIG_GENERIC_FIND_LAST_BIT=y
1291# CONFIG_CRC_CCITT is not set 1318# CONFIG_CRC_CCITT is not set
1292# CONFIG_CRC16 is not set 1319# CONFIG_CRC16 is not set
1293# CONFIG_CRC_T10DIF is not set 1320# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig
index 95f0f5d5b631..04bde1e96965 100644
--- a/arch/sh/configs/sh03_defconfig
+++ b/arch/sh/configs/sh03_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:31:54 2008 4# Fri Jan 9 17:56:46 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81CONFIG_PROFILING=y 83CONFIG_PROFILING=y
84CONFIG_TRACEPOINTS=y
82# CONFIG_MARKERS is not set 85# CONFIG_MARKERS is not set
83CONFIG_OPROFILE=m 86CONFIG_OPROFILE=m
84CONFIG_HAVE_OPROFILE=y 87CONFIG_HAVE_OPROFILE=y
@@ -91,7 +94,6 @@ CONFIG_HAVE_CLK=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y 94CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 95CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 96CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set
95CONFIG_BASE_SMALL=0 97CONFIG_BASE_SMALL=0
96CONFIG_MODULES=y 98CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set 99# CONFIG_MODULE_FORCE_LOAD is not set
@@ -99,11 +101,9 @@ CONFIG_MODULE_UNLOAD=y
99CONFIG_MODULE_FORCE_UNLOAD=y 101CONFIG_MODULE_FORCE_UNLOAD=y
100CONFIG_MODVERSIONS=y 102CONFIG_MODVERSIONS=y
101# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
102CONFIG_KMOD=y
103CONFIG_BLOCK=y 104CONFIG_BLOCK=y
104# CONFIG_LBD is not set 105# CONFIG_LBD is not set
105# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
106# CONFIG_LSF is not set
107# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set 108# CONFIG_BLK_DEV_INTEGRITY is not set
109 109
@@ -120,6 +120,10 @@ CONFIG_DEFAULT_AS=y
120# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
121CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122CONFIG_CLASSIC_RCU=y 122CONFIG_CLASSIC_RCU=y
123# CONFIG_TREE_RCU is not set
124# CONFIG_PREEMPT_RCU is not set
125# CONFIG_TREE_RCU_TRACE is not set
126# CONFIG_PREEMPT_RCU_TRACE is not set
123# CONFIG_FREEZER is not set 127# CONFIG_FREEZER is not set
124 128
125# 129#
@@ -127,6 +131,7 @@ CONFIG_CLASSIC_RCU=y
127# 131#
128CONFIG_CPU_SH4=y 132CONFIG_CPU_SH4=y
129# CONFIG_CPU_SUBTYPE_SH7619 is not set 133# CONFIG_CPU_SUBTYPE_SH7619 is not set
134# CONFIG_CPU_SUBTYPE_SH7201 is not set
130# CONFIG_CPU_SUBTYPE_SH7203 is not set 135# CONFIG_CPU_SUBTYPE_SH7203 is not set
131# CONFIG_CPU_SUBTYPE_SH7206 is not set 136# CONFIG_CPU_SUBTYPE_SH7206 is not set
132# CONFIG_CPU_SUBTYPE_SH7263 is not set 137# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -190,7 +195,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
190CONFIG_SPARSEMEM_STATIC=y 195CONFIG_SPARSEMEM_STATIC=y
191CONFIG_PAGEFLAGS_EXTENDED=y 196CONFIG_PAGEFLAGS_EXTENDED=y
192CONFIG_SPLIT_PTLOCK_CPUS=4 197CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_RESOURCES_64BIT is not set
194# CONFIG_PHYS_ADDR_T_64BIT is not set 198# CONFIG_PHYS_ADDR_T_64BIT is not set
195CONFIG_ZONE_DMA_FLAG=0 199CONFIG_ZONE_DMA_FLAG=0
196CONFIG_NR_QUICK=2 200CONFIG_NR_QUICK=2
@@ -268,7 +272,6 @@ CONFIG_HZ=250
268# CONFIG_PREEMPT_NONE is not set 272# CONFIG_PREEMPT_NONE is not set
269# CONFIG_PREEMPT_VOLUNTARY is not set 273# CONFIG_PREEMPT_VOLUNTARY is not set
270CONFIG_PREEMPT=y 274CONFIG_PREEMPT=y
271# CONFIG_PREEMPT_RCU is not set
272CONFIG_GUSA=y 275CONFIG_GUSA=y
273# CONFIG_GUSA_RB is not set 276# CONFIG_GUSA_RB is not set
274 277
@@ -284,14 +287,11 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
284# 287#
285# Bus options 288# Bus options
286# 289#
287CONFIG_CF_ENABLER=y
288CONFIG_CF_AREA5=y
289# CONFIG_CF_AREA6 is not set
290CONFIG_CF_BASE_ADDR=0xb4000000
291CONFIG_PCI=y 290CONFIG_PCI=y
292CONFIG_SH_PCIDMA_NONCOHERENT=y 291CONFIG_SH_PCIDMA_NONCOHERENT=y
293CONFIG_PCI_AUTO=y 292CONFIG_PCI_AUTO=y
294CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 293CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
294# CONFIG_PCIEPORTBUS is not set
295# CONFIG_ARCH_SUPPORTS_MSI is not set 295# CONFIG_ARCH_SUPPORTS_MSI is not set
296CONFIG_PCI_LEGACY=y 296CONFIG_PCI_LEGACY=y
297# CONFIG_PCCARD is not set 297# CONFIG_PCCARD is not set
@@ -307,11 +307,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 308# CONFIG_HAVE_AOUT is not set
309CONFIG_BINFMT_MISC=y 309CONFIG_BINFMT_MISC=y
310
311#
312# Power management options (EXPERIMENTAL)
313#
314# CONFIG_PM is not set
315# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 316CONFIG_NET=y
311 317
312# 318#
313# Networking options 319# Networking options
314# 320#
321CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 322CONFIG_PACKET=y
316# CONFIG_PACKET_MMAP is not set 323# CONFIG_PACKET_MMAP is not set
317CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -369,6 +376,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
369# CONFIG_ECONET is not set 376# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set 377# CONFIG_WAN_ROUTER is not set
371# CONFIG_NET_SCHED is not set 378# CONFIG_NET_SCHED is not set
379# CONFIG_DCB is not set
372 380
373# 381#
374# Network testing 382# Network testing
@@ -384,8 +392,8 @@ CONFIG_WIRELESS=y
384# CONFIG_CFG80211 is not set 392# CONFIG_CFG80211 is not set
385# CONFIG_WIRELESS_OLD_REGULATORY is not set 393# CONFIG_WIRELESS_OLD_REGULATORY is not set
386# CONFIG_WIRELESS_EXT is not set 394# CONFIG_WIRELESS_EXT is not set
395# CONFIG_LIB80211 is not set
387# CONFIG_MAC80211 is not set 396# CONFIG_MAC80211 is not set
388# CONFIG_IEEE80211 is not set
389# CONFIG_RFKILL is not set 397# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set 398# CONFIG_NET_9P is not set
391 399
@@ -427,6 +435,7 @@ CONFIG_MISC_DEVICES=y
427# CONFIG_TIFM_CORE is not set 435# CONFIG_TIFM_CORE is not set
428# CONFIG_ENCLOSURE_SERVICES is not set 436# CONFIG_ENCLOSURE_SERVICES is not set
429# CONFIG_HP_ILO is not set 437# CONFIG_HP_ILO is not set
438# CONFIG_C2PORT is not set
430CONFIG_HAVE_IDE=y 439CONFIG_HAVE_IDE=y
431CONFIG_IDE=y 440CONFIG_IDE=y
432 441
@@ -441,7 +450,6 @@ CONFIG_IDE_GD_ATA=y
441CONFIG_BLK_DEV_IDECD=m 450CONFIG_BLK_DEV_IDECD=m
442CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 451CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
443CONFIG_BLK_DEV_IDETAPE=m 452CONFIG_BLK_DEV_IDETAPE=m
444# CONFIG_BLK_DEV_IDESCSI is not set
445# CONFIG_IDE_TASK_IOCTL is not set 453# CONFIG_IDE_TASK_IOCTL is not set
446CONFIG_IDE_PROC_FS=y 454CONFIG_IDE_PROC_FS=y
447 455
@@ -466,6 +474,7 @@ CONFIG_IDE_PROC_FS=y
466# CONFIG_BLK_DEV_JMICRON is not set 474# CONFIG_BLK_DEV_JMICRON is not set
467# CONFIG_BLK_DEV_SC1200 is not set 475# CONFIG_BLK_DEV_SC1200 is not set
468# CONFIG_BLK_DEV_PIIX is not set 476# CONFIG_BLK_DEV_PIIX is not set
477# CONFIG_BLK_DEV_IT8172 is not set
469# CONFIG_BLK_DEV_IT8213 is not set 478# CONFIG_BLK_DEV_IT8213 is not set
470# CONFIG_BLK_DEV_IT821X is not set 479# CONFIG_BLK_DEV_IT821X is not set
471# CONFIG_BLK_DEV_NS87415 is not set 480# CONFIG_BLK_DEV_NS87415 is not set
@@ -519,6 +528,7 @@ CONFIG_SCSI_WAIT_SCAN=m
519# CONFIG_SCSI_SRP_ATTRS is not set 528# CONFIG_SCSI_SRP_ATTRS is not set
520CONFIG_SCSI_LOWLEVEL=y 529CONFIG_SCSI_LOWLEVEL=y
521# CONFIG_ISCSI_TCP is not set 530# CONFIG_ISCSI_TCP is not set
531# CONFIG_SCSI_CXGB3_ISCSI is not set
522# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 532# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
523# CONFIG_SCSI_3W_9XXX is not set 533# CONFIG_SCSI_3W_9XXX is not set
524# CONFIG_SCSI_ACARD is not set 534# CONFIG_SCSI_ACARD is not set
@@ -532,6 +542,8 @@ CONFIG_SCSI_LOWLEVEL=y
532# CONFIG_MEGARAID_LEGACY is not set 542# CONFIG_MEGARAID_LEGACY is not set
533# CONFIG_MEGARAID_SAS is not set 543# CONFIG_MEGARAID_SAS is not set
534# CONFIG_SCSI_HPTIOP is not set 544# CONFIG_SCSI_HPTIOP is not set
545# CONFIG_LIBFC is not set
546# CONFIG_FCOE is not set
535# CONFIG_SCSI_DMX3191D is not set 547# CONFIG_SCSI_DMX3191D is not set
536# CONFIG_SCSI_FUTURE_DOMAIN is not set 548# CONFIG_SCSI_FUTURE_DOMAIN is not set
537# CONFIG_SCSI_IPS is not set 549# CONFIG_SCSI_IPS is not set
@@ -583,6 +595,7 @@ CONFIG_MII=y
583# CONFIG_NET_VENDOR_3COM is not set 595# CONFIG_NET_VENDOR_3COM is not set
584# CONFIG_SMC91X is not set 596# CONFIG_SMC91X is not set
585# CONFIG_SMC911X is not set 597# CONFIG_SMC911X is not set
598# CONFIG_SMSC911X is not set
586# CONFIG_NET_TULIP is not set 599# CONFIG_NET_TULIP is not set
587# CONFIG_HP100 is not set 600# CONFIG_HP100 is not set
588# CONFIG_IBM_NEW_EMAC_ZMII is not set 601# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -598,7 +611,6 @@ CONFIG_NET_PCI=y
598# CONFIG_ADAPTEC_STARFIRE is not set 611# CONFIG_ADAPTEC_STARFIRE is not set
599# CONFIG_B44 is not set 612# CONFIG_B44 is not set
600# CONFIG_FORCEDETH is not set 613# CONFIG_FORCEDETH is not set
601# CONFIG_EEPRO100 is not set
602# CONFIG_E100 is not set 614# CONFIG_E100 is not set
603# CONFIG_FEALNX is not set 615# CONFIG_FEALNX is not set
604# CONFIG_NATSEMI is not set 616# CONFIG_NATSEMI is not set
@@ -608,6 +620,7 @@ CONFIG_8139CP=y
608# CONFIG_R6040 is not set 620# CONFIG_R6040 is not set
609# CONFIG_SIS900 is not set 621# CONFIG_SIS900 is not set
610# CONFIG_EPIC100 is not set 622# CONFIG_EPIC100 is not set
623# CONFIG_SMSC9420 is not set
611# CONFIG_SUNDANCE is not set 624# CONFIG_SUNDANCE is not set
612# CONFIG_TLAN is not set 625# CONFIG_TLAN is not set
613# CONFIG_VIA_RHINE is not set 626# CONFIG_VIA_RHINE is not set
@@ -636,6 +649,7 @@ CONFIG_NETDEV_1000=y
636# CONFIG_JME is not set 649# CONFIG_JME is not set
637CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
638# CONFIG_CHELSIO_T1 is not set 651# CONFIG_CHELSIO_T1 is not set
652CONFIG_CHELSIO_T3_DEPENDS=y
639# CONFIG_CHELSIO_T3 is not set 653# CONFIG_CHELSIO_T3 is not set
640# CONFIG_ENIC is not set 654# CONFIG_ENIC is not set
641# CONFIG_IXGBE is not set 655# CONFIG_IXGBE is not set
@@ -644,6 +658,7 @@ CONFIG_NETDEV_10000=y
644# CONFIG_MYRI10GE is not set 658# CONFIG_MYRI10GE is not set
645# CONFIG_NETXEN_NIC is not set 659# CONFIG_NETXEN_NIC is not set
646# CONFIG_NIU is not set 660# CONFIG_NIU is not set
661# CONFIG_MLX4_EN is not set
647# CONFIG_MLX4_CORE is not set 662# CONFIG_MLX4_CORE is not set
648# CONFIG_TEHUTI is not set 663# CONFIG_TEHUTI is not set
649# CONFIG_BNX2X is not set 664# CONFIG_BNX2X is not set
@@ -734,6 +749,7 @@ CONFIG_SERIAL_CORE=y
734CONFIG_SERIAL_CORE_CONSOLE=y 749CONFIG_SERIAL_CORE_CONSOLE=y
735# CONFIG_SERIAL_JSM is not set 750# CONFIG_SERIAL_JSM is not set
736CONFIG_UNIX98_PTYS=y 751CONFIG_UNIX98_PTYS=y
752# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
737CONFIG_LEGACY_PTYS=y 753CONFIG_LEGACY_PTYS=y
738CONFIG_LEGACY_PTY_COUNT=256 754CONFIG_LEGACY_PTY_COUNT=256
739# CONFIG_IPMI_HANDLER is not set 755# CONFIG_IPMI_HANDLER is not set
@@ -782,11 +798,11 @@ CONFIG_SH_WDT=m
782# 798#
783# CONFIG_PCIPCWATCHDOG is not set 799# CONFIG_PCIPCWATCHDOG is not set
784# CONFIG_WDTPCI is not set 800# CONFIG_WDTPCI is not set
801CONFIG_SSB_POSSIBLE=y
785 802
786# 803#
787# Sonics Silicon Backplane 804# Sonics Silicon Backplane
788# 805#
789CONFIG_SSB_POSSIBLE=y
790# CONFIG_SSB is not set 806# CONFIG_SSB is not set
791 807
792# 808#
@@ -796,7 +812,7 @@ CONFIG_SSB_POSSIBLE=y
796# CONFIG_MFD_SM501 is not set 812# CONFIG_MFD_SM501 is not set
797# CONFIG_HTC_PASIC3 is not set 813# CONFIG_HTC_PASIC3 is not set
798# CONFIG_MFD_TMIO is not set 814# CONFIG_MFD_TMIO is not set
799# CONFIG_MFD_WM8400 is not set 815# CONFIG_REGULATOR is not set
800 816
801# 817#
802# Multimedia devices 818# Multimedia devices
@@ -856,9 +872,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
856# 872#
857 873
858# 874#
859# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 875# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
860# 876#
861# CONFIG_USB_GADGET is not set 877# CONFIG_USB_GADGET is not set
878# CONFIG_UWB is not set
862# CONFIG_MMC is not set 879# CONFIG_MMC is not set
863# CONFIG_MEMSTICK is not set 880# CONFIG_MEMSTICK is not set
864# CONFIG_NEW_LEDS is not set 881# CONFIG_NEW_LEDS is not set
@@ -883,6 +900,7 @@ CONFIG_EXT3_FS_POSIX_ACL=y
883# CONFIG_EXT3_FS_SECURITY is not set 900# CONFIG_EXT3_FS_SECURITY is not set
884# CONFIG_EXT4_FS is not set 901# CONFIG_EXT4_FS is not set
885CONFIG_JBD=y 902CONFIG_JBD=y
903# CONFIG_JBD_DEBUG is not set
886CONFIG_FS_MBCACHE=y 904CONFIG_FS_MBCACHE=y
887# CONFIG_REISERFS_FS is not set 905# CONFIG_REISERFS_FS is not set
888# CONFIG_JFS_FS is not set 906# CONFIG_JFS_FS is not set
@@ -930,10 +948,7 @@ CONFIG_TMPFS=y
930# CONFIG_HUGETLBFS is not set 948# CONFIG_HUGETLBFS is not set
931# CONFIG_HUGETLB_PAGE is not set 949# CONFIG_HUGETLB_PAGE is not set
932# CONFIG_CONFIGFS_FS is not set 950# CONFIG_CONFIGFS_FS is not set
933 951CONFIG_MISC_FILESYSTEMS=y
934#
935# Miscellaneous filesystems
936#
937# CONFIG_ADFS_FS is not set 952# CONFIG_ADFS_FS is not set
938# CONFIG_AFFS_FS is not set 953# CONFIG_AFFS_FS is not set
939# CONFIG_HFS_FS is not set 954# CONFIG_HFS_FS is not set
@@ -1048,21 +1063,31 @@ CONFIG_ENABLE_MUST_CHECK=y
1048CONFIG_FRAME_WARN=1024 1063CONFIG_FRAME_WARN=1024
1049# CONFIG_MAGIC_SYSRQ is not set 1064# CONFIG_MAGIC_SYSRQ is not set
1050# CONFIG_UNUSED_SYMBOLS is not set 1065# CONFIG_UNUSED_SYMBOLS is not set
1051# CONFIG_DEBUG_FS is not set 1066CONFIG_DEBUG_FS=y
1052# CONFIG_HEADERS_CHECK is not set 1067# CONFIG_HEADERS_CHECK is not set
1053# CONFIG_DEBUG_KERNEL is not set 1068# CONFIG_DEBUG_KERNEL is not set
1069CONFIG_STACKTRACE=y
1054# CONFIG_DEBUG_BUGVERBOSE is not set 1070# CONFIG_DEBUG_BUGVERBOSE is not set
1055# CONFIG_DEBUG_MEMORY_INIT is not set 1071# CONFIG_DEBUG_MEMORY_INIT is not set
1056# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1072# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1057# CONFIG_LATENCYTOP is not set 1073# CONFIG_LATENCYTOP is not set
1058CONFIG_NOP_TRACER=y 1074CONFIG_NOP_TRACER=y
1059CONFIG_HAVE_FTRACE=y 1075CONFIG_HAVE_FUNCTION_TRACER=y
1076CONFIG_HAVE_DYNAMIC_FTRACE=y
1077CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1078CONFIG_RING_BUFFER=y
1079CONFIG_TRACING=y
1080
1081#
1082# Tracers
1083#
1060# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1084# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1061# CONFIG_SAMPLES is not set 1085# CONFIG_SAMPLES is not set
1086CONFIG_HAVE_ARCH_KGDB=y
1062CONFIG_SH_STANDARD_BIOS=y 1087CONFIG_SH_STANDARD_BIOS=y
1063# CONFIG_EARLY_SCIF_CONSOLE is not set 1088# CONFIG_EARLY_SCIF_CONSOLE is not set
1064# CONFIG_EARLY_PRINTK is not set 1089# CONFIG_EARLY_PRINTK is not set
1065# CONFIG_SH_KGDB is not set 1090# CONFIG_MORE_COMPILE_OPTIONS is not set
1066 1091
1067# 1092#
1068# Security options 1093# Security options
@@ -1078,11 +1103,15 @@ CONFIG_CRYPTO=y
1078# 1103#
1079# CONFIG_CRYPTO_FIPS is not set 1104# CONFIG_CRYPTO_FIPS is not set
1080CONFIG_CRYPTO_ALGAPI=y 1105CONFIG_CRYPTO_ALGAPI=y
1081CONFIG_CRYPTO_AEAD=y 1106CONFIG_CRYPTO_ALGAPI2=y
1107CONFIG_CRYPTO_AEAD2=y
1082CONFIG_CRYPTO_BLKCIPHER=y 1108CONFIG_CRYPTO_BLKCIPHER=y
1109CONFIG_CRYPTO_BLKCIPHER2=y
1083CONFIG_CRYPTO_HASH=y 1110CONFIG_CRYPTO_HASH=y
1084CONFIG_CRYPTO_RNG=y 1111CONFIG_CRYPTO_HASH2=y
1112CONFIG_CRYPTO_RNG2=y
1085CONFIG_CRYPTO_MANAGER=y 1113CONFIG_CRYPTO_MANAGER=y
1114CONFIG_CRYPTO_MANAGER2=y
1086# CONFIG_CRYPTO_GF128MUL is not set 1115# CONFIG_CRYPTO_GF128MUL is not set
1087# CONFIG_CRYPTO_NULL is not set 1116# CONFIG_CRYPTO_NULL is not set
1088# CONFIG_CRYPTO_CRYPTD is not set 1117# CONFIG_CRYPTO_CRYPTD is not set
@@ -1166,6 +1195,7 @@ CONFIG_CRYPTO_HW=y
1166# Library routines 1195# Library routines
1167# 1196#
1168CONFIG_BITREVERSE=y 1197CONFIG_BITREVERSE=y
1198CONFIG_GENERIC_FIND_LAST_BIT=y
1169CONFIG_CRC_CCITT=y 1199CONFIG_CRC_CCITT=y
1170# CONFIG_CRC16 is not set 1200# CONFIG_CRC16 is not set
1171# CONFIG_CRC_T10DIF is not set 1201# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig
index 9a768b28adcb..1b869f452ad1 100644
--- a/arch/sh/configs/sh7710voipgw_defconfig
+++ b/arch/sh/configs/sh7710voipgw_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:35:18 2008 4# Fri Jan 9 18:00:31 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -74,12 +76,10 @@ CONFIG_EVENTFD=y
74# CONFIG_SHMEM is not set 76# CONFIG_SHMEM is not set
75CONFIG_AIO=y 77CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 78CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_SLAB=y 79CONFIG_SLAB=y
79# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 82# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 83CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 84# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 85CONFIG_HAVE_IOREMAP_PROT=y
@@ -89,7 +89,6 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
89CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
92CONFIG_TINY_SHMEM=y
93CONFIG_BASE_SMALL=0 92CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 93CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 94# CONFIG_MODULE_FORCE_LOAD is not set
@@ -97,11 +96,9 @@ CONFIG_MODULE_UNLOAD=y
97CONFIG_MODULE_FORCE_UNLOAD=y 96CONFIG_MODULE_FORCE_UNLOAD=y
98# CONFIG_MODVERSIONS is not set 97# CONFIG_MODVERSIONS is not set
99# CONFIG_MODULE_SRCVERSION_ALL is not set 98# CONFIG_MODULE_SRCVERSION_ALL is not set
100CONFIG_KMOD=y
101CONFIG_BLOCK=y 99CONFIG_BLOCK=y
102# CONFIG_LBD is not set 100# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set 101# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 102# CONFIG_BLK_DEV_BSG is not set
106# CONFIG_BLK_DEV_INTEGRITY is not set 103# CONFIG_BLK_DEV_INTEGRITY is not set
107 104
@@ -118,6 +115,10 @@ CONFIG_DEFAULT_DEADLINE=y
118# CONFIG_DEFAULT_NOOP is not set 115# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="deadline" 116CONFIG_DEFAULT_IOSCHED="deadline"
120CONFIG_CLASSIC_RCU=y 117CONFIG_CLASSIC_RCU=y
118# CONFIG_TREE_RCU is not set
119# CONFIG_PREEMPT_RCU is not set
120# CONFIG_TREE_RCU_TRACE is not set
121# CONFIG_PREEMPT_RCU_TRACE is not set
121# CONFIG_FREEZER is not set 122# CONFIG_FREEZER is not set
122 123
123# 124#
@@ -125,6 +126,7 @@ CONFIG_CLASSIC_RCU=y
125# 126#
126CONFIG_CPU_SH3=y 127CONFIG_CPU_SH3=y
127# CONFIG_CPU_SUBTYPE_SH7619 is not set 128# CONFIG_CPU_SUBTYPE_SH7619 is not set
129# CONFIG_CPU_SUBTYPE_SH7201 is not set
128# CONFIG_CPU_SUBTYPE_SH7203 is not set 130# CONFIG_CPU_SUBTYPE_SH7203 is not set
129# CONFIG_CPU_SUBTYPE_SH7206 is not set 131# CONFIG_CPU_SUBTYPE_SH7206 is not set
130# CONFIG_CPU_SUBTYPE_SH7263 is not set 132# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -188,7 +190,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
188CONFIG_SPARSEMEM_STATIC=y 190CONFIG_SPARSEMEM_STATIC=y
189CONFIG_PAGEFLAGS_EXTENDED=y 191CONFIG_PAGEFLAGS_EXTENDED=y
190CONFIG_SPLIT_PTLOCK_CPUS=4 192CONFIG_SPLIT_PTLOCK_CPUS=4
191# CONFIG_RESOURCES_64BIT is not set
192# CONFIG_PHYS_ADDR_T_64BIT is not set 193# CONFIG_PHYS_ADDR_T_64BIT is not set
193CONFIG_ZONE_DMA_FLAG=0 194CONFIG_ZONE_DMA_FLAG=0
194CONFIG_NR_QUICK=2 195CONFIG_NR_QUICK=2
@@ -287,11 +288,18 @@ CONFIG_BINFMT_ELF=y
287# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
288# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
289# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
290CONFIG_NET=y 297CONFIG_NET=y
291 298
292# 299#
293# Networking options 300# Networking options
294# 301#
302CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 303CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -378,6 +386,7 @@ CONFIG_NET_SCH_CBQ=y
378# CONFIG_NET_SCH_GRED is not set 386# CONFIG_NET_SCH_GRED is not set
379# CONFIG_NET_SCH_DSMARK is not set 387# CONFIG_NET_SCH_DSMARK is not set
380# CONFIG_NET_SCH_NETEM is not set 388# CONFIG_NET_SCH_NETEM is not set
389# CONFIG_NET_SCH_DRR is not set
381 390
382# 391#
383# Classification 392# Classification
@@ -398,6 +407,7 @@ CONFIG_NET_CLS_U32=y
398# CONFIG_NET_CLS_ACT is not set 407# CONFIG_NET_CLS_ACT is not set
399# CONFIG_NET_CLS_IND is not set 408# CONFIG_NET_CLS_IND is not set
400CONFIG_NET_SCH_FIFO=y 409CONFIG_NET_SCH_FIFO=y
410# CONFIG_DCB is not set
401 411
402# 412#
403# Network testing 413# Network testing
@@ -413,8 +423,8 @@ CONFIG_WIRELESS=y
413# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
414# CONFIG_WIRELESS_OLD_REGULATORY is not set 424# CONFIG_WIRELESS_OLD_REGULATORY is not set
415# CONFIG_WIRELESS_EXT is not set 425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set
416# CONFIG_MAC80211 is not set 427# CONFIG_MAC80211 is not set
417# CONFIG_IEEE80211 is not set
418# CONFIG_RFKILL is not set 428# CONFIG_RFKILL is not set
419# CONFIG_NET_9P is not set 429# CONFIG_NET_9P is not set
420 430
@@ -519,6 +529,7 @@ CONFIG_BLK_DEV=y
519CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
520# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
521# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
532# CONFIG_C2PORT is not set
522CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 534# CONFIG_IDE is not set
524 535
@@ -546,6 +557,7 @@ CONFIG_NET_ETHERNET=y
546# CONFIG_SH_ETH is not set 557# CONFIG_SH_ETH is not set
547# CONFIG_SMC91X is not set 558# CONFIG_SMC91X is not set
548# CONFIG_SMC911X is not set 559# CONFIG_SMC911X is not set
560# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 561# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 562# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 563# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -638,11 +650,11 @@ CONFIG_HW_RANDOM=y
638# CONFIG_HWMON is not set 650# CONFIG_HWMON is not set
639CONFIG_THERMAL=y 651CONFIG_THERMAL=y
640# CONFIG_WATCHDOG is not set 652# CONFIG_WATCHDOG is not set
653CONFIG_SSB_POSSIBLE=y
641 654
642# 655#
643# Sonics Silicon Backplane 656# Sonics Silicon Backplane
644# 657#
645CONFIG_SSB_POSSIBLE=y
646# CONFIG_SSB is not set 658# CONFIG_SSB is not set
647 659
648# 660#
@@ -652,7 +664,7 @@ CONFIG_SSB_POSSIBLE=y
652# CONFIG_MFD_SM501 is not set 664# CONFIG_MFD_SM501 is not set
653# CONFIG_HTC_PASIC3 is not set 665# CONFIG_HTC_PASIC3 is not set
654# CONFIG_MFD_TMIO is not set 666# CONFIG_MFD_TMIO is not set
655# CONFIG_MFD_WM8400 is not set 667# CONFIG_REGULATOR is not set
656 668
657# 669#
658# Multimedia devices 670# Multimedia devices
@@ -706,7 +718,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
706# 718#
707 719
708# 720#
709# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 721# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
710# 722#
711# CONFIG_USB_GADGET is not set 723# CONFIG_USB_GADGET is not set
712# CONFIG_MMC is not set 724# CONFIG_MMC is not set
@@ -763,10 +775,7 @@ CONFIG_TMPFS=y
763# CONFIG_HUGETLBFS is not set 775# CONFIG_HUGETLBFS is not set
764# CONFIG_HUGETLB_PAGE is not set 776# CONFIG_HUGETLB_PAGE is not set
765# CONFIG_CONFIGFS_FS is not set 777# CONFIG_CONFIGFS_FS is not set
766 778CONFIG_MISC_FILESYSTEMS=y
767#
768# Miscellaneous filesystems
769#
770# CONFIG_ADFS_FS is not set 779# CONFIG_ADFS_FS is not set
771# CONFIG_AFFS_FS is not set 780# CONFIG_AFFS_FS is not set
772# CONFIG_HFS_FS is not set 781# CONFIG_HFS_FS is not set
@@ -828,13 +837,19 @@ CONFIG_DEBUG_FS=y
828# CONFIG_DEBUG_MEMORY_INIT is not set 837# CONFIG_DEBUG_MEMORY_INIT is not set
829# CONFIG_RCU_CPU_STALL_DETECTOR is not set 838# CONFIG_RCU_CPU_STALL_DETECTOR is not set
830# CONFIG_LATENCYTOP is not set 839# CONFIG_LATENCYTOP is not set
831CONFIG_NOP_TRACER=y 840CONFIG_HAVE_FUNCTION_TRACER=y
832CONFIG_HAVE_FTRACE=y 841CONFIG_HAVE_DYNAMIC_FTRACE=y
842CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
843
844#
845# Tracers
846#
833# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 847# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
834# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
849CONFIG_HAVE_ARCH_KGDB=y
835# CONFIG_SH_STANDARD_BIOS is not set 850# CONFIG_SH_STANDARD_BIOS is not set
836# CONFIG_EARLY_SCIF_CONSOLE is not set 851# CONFIG_EARLY_SCIF_CONSOLE is not set
837# CONFIG_SH_KGDB is not set 852# CONFIG_MORE_COMPILE_OPTIONS is not set
838 853
839# 854#
840# Security options 855# Security options
@@ -850,6 +865,7 @@ CONFIG_CRYPTO=y
850# 865#
851# CONFIG_CRYPTO_FIPS is not set 866# CONFIG_CRYPTO_FIPS is not set
852# CONFIG_CRYPTO_MANAGER is not set 867# CONFIG_CRYPTO_MANAGER is not set
868# CONFIG_CRYPTO_MANAGER2 is not set
853# CONFIG_CRYPTO_GF128MUL is not set 869# CONFIG_CRYPTO_GF128MUL is not set
854# CONFIG_CRYPTO_NULL is not set 870# CONFIG_CRYPTO_NULL is not set
855# CONFIG_CRYPTO_CRYPTD is not set 871# CONFIG_CRYPTO_CRYPTD is not set
@@ -932,6 +948,7 @@ CONFIG_CRYPTO_HW=y
932# Library routines 948# Library routines
933# 949#
934CONFIG_BITREVERSE=y 950CONFIG_BITREVERSE=y
951CONFIG_GENERIC_FIND_LAST_BIT=y
935# CONFIG_CRC_CCITT is not set 952# CONFIG_CRC_CCITT is not set
936# CONFIG_CRC16 is not set 953# CONFIG_CRC16 is not set
937# CONFIG_CRC_T10DIF is not set 954# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index 6a77f691fb87..ba33aca75af6 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:37:12 2008 4# Fri Jan 9 18:02:28 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -79,11 +81,11 @@ CONFIG_EVENTFD=y
79CONFIG_SHMEM=y 81CONFIG_SHMEM=y
80CONFIG_AIO=y 82CONFIG_AIO=y
81CONFIG_VM_EVENT_COUNTERS=y 83CONFIG_VM_EVENT_COUNTERS=y
82CONFIG_PCI_QUIRKS=y
83CONFIG_SLAB=y 84CONFIG_SLAB=y
84# CONFIG_SLUB is not set 85# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
86CONFIG_PROFILING=y 87CONFIG_PROFILING=y
88CONFIG_TRACEPOINTS=y
87# CONFIG_MARKERS is not set 89# CONFIG_MARKERS is not set
88CONFIG_OPROFILE=y 90CONFIG_OPROFILE=y
89CONFIG_HAVE_OPROFILE=y 91CONFIG_HAVE_OPROFILE=y
@@ -96,18 +98,15 @@ CONFIG_HAVE_CLK=y
96CONFIG_HAVE_GENERIC_DMA_COHERENT=y 98CONFIG_HAVE_GENERIC_DMA_COHERENT=y
97CONFIG_SLABINFO=y 99CONFIG_SLABINFO=y
98CONFIG_RT_MUTEXES=y 100CONFIG_RT_MUTEXES=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 101CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 102CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 103# CONFIG_MODULE_FORCE_LOAD is not set
103# CONFIG_MODULE_UNLOAD is not set 104# CONFIG_MODULE_UNLOAD is not set
104# CONFIG_MODVERSIONS is not set 105# CONFIG_MODVERSIONS is not set
105# CONFIG_MODULE_SRCVERSION_ALL is not set 106# CONFIG_MODULE_SRCVERSION_ALL is not set
106CONFIG_KMOD=y
107CONFIG_BLOCK=y 107CONFIG_BLOCK=y
108# CONFIG_LBD is not set 108# CONFIG_LBD is not set
109# CONFIG_BLK_DEV_IO_TRACE is not set 109# CONFIG_BLK_DEV_IO_TRACE is not set
110# CONFIG_LSF is not set
111# CONFIG_BLK_DEV_BSG is not set 110# CONFIG_BLK_DEV_BSG is not set
112# CONFIG_BLK_DEV_INTEGRITY is not set 111# CONFIG_BLK_DEV_INTEGRITY is not set
113 112
@@ -124,6 +123,10 @@ CONFIG_DEFAULT_AS=y
124# CONFIG_DEFAULT_NOOP is not set 123# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="anticipatory" 124CONFIG_DEFAULT_IOSCHED="anticipatory"
126CONFIG_CLASSIC_RCU=y 125CONFIG_CLASSIC_RCU=y
126# CONFIG_TREE_RCU is not set
127# CONFIG_PREEMPT_RCU is not set
128# CONFIG_TREE_RCU_TRACE is not set
129# CONFIG_PREEMPT_RCU_TRACE is not set
127# CONFIG_FREEZER is not set 130# CONFIG_FREEZER is not set
128 131
129# 132#
@@ -132,6 +135,7 @@ CONFIG_CLASSIC_RCU=y
132CONFIG_CPU_SH4=y 135CONFIG_CPU_SH4=y
133CONFIG_CPU_SH4A=y 136CONFIG_CPU_SH4A=y
134# CONFIG_CPU_SUBTYPE_SH7619 is not set 137# CONFIG_CPU_SUBTYPE_SH7619 is not set
138# CONFIG_CPU_SUBTYPE_SH7201 is not set
135# CONFIG_CPU_SUBTYPE_SH7203 is not set 139# CONFIG_CPU_SUBTYPE_SH7203 is not set
136# CONFIG_CPU_SUBTYPE_SH7206 is not set 140# CONFIG_CPU_SUBTYPE_SH7206 is not set
137# CONFIG_CPU_SUBTYPE_SH7263 is not set 141# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -199,7 +203,6 @@ CONFIG_SPARSEMEM_STATIC=y
199CONFIG_PAGEFLAGS_EXTENDED=y 203CONFIG_PAGEFLAGS_EXTENDED=y
200CONFIG_SPLIT_PTLOCK_CPUS=4 204CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_MIGRATION=y 205CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set
203# CONFIG_PHYS_ADDR_T_64BIT is not set 206# CONFIG_PHYS_ADDR_T_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=0 207CONFIG_ZONE_DMA_FLAG=0
205CONFIG_NR_QUICK=2 208CONFIG_NR_QUICK=2
@@ -297,11 +300,19 @@ CONFIG_BINFMT_ELF=y
297# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 300# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
298# CONFIG_HAVE_AOUT is not set 301# CONFIG_HAVE_AOUT is not set
299# CONFIG_BINFMT_MISC is not set 302# CONFIG_BINFMT_MISC is not set
303
304#
305# Power management options (EXPERIMENTAL)
306#
307# CONFIG_PM is not set
308# CONFIG_CPU_IDLE is not set
300CONFIG_NET=y 309CONFIG_NET=y
301 310
302# 311#
303# Networking options 312# Networking options
304# 313#
314# CONFIG_NET_NS is not set
315CONFIG_COMPAT_NET_DEV_OPS=y
305CONFIG_PACKET=y 316CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -357,6 +368,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
357# CONFIG_ECONET is not set 368# CONFIG_ECONET is not set
358# CONFIG_WAN_ROUTER is not set 369# CONFIG_WAN_ROUTER is not set
359# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
371# CONFIG_DCB is not set
360 372
361# 373#
362# Network testing 374# Network testing
@@ -373,8 +385,8 @@ CONFIG_WIRELESS=y
373# CONFIG_WIRELESS_OLD_REGULATORY is not set 385# CONFIG_WIRELESS_OLD_REGULATORY is not set
374CONFIG_WIRELESS_EXT=y 386CONFIG_WIRELESS_EXT=y
375CONFIG_WIRELESS_EXT_SYSFS=y 387CONFIG_WIRELESS_EXT_SYSFS=y
388# CONFIG_LIB80211 is not set
376# CONFIG_MAC80211 is not set 389# CONFIG_MAC80211 is not set
377# CONFIG_IEEE80211 is not set
378# CONFIG_RFKILL is not set 390# CONFIG_RFKILL is not set
379# CONFIG_NET_9P is not set 391# CONFIG_NET_9P is not set
380 392
@@ -529,6 +541,7 @@ CONFIG_SCSI_WAIT_SCAN=m
529# CONFIG_SCSI_SRP_ATTRS is not set 541# CONFIG_SCSI_SRP_ATTRS is not set
530CONFIG_SCSI_LOWLEVEL=y 542CONFIG_SCSI_LOWLEVEL=y
531# CONFIG_ISCSI_TCP is not set 543# CONFIG_ISCSI_TCP is not set
544# CONFIG_LIBFC is not set
532# CONFIG_SCSI_DEBUG is not set 545# CONFIG_SCSI_DEBUG is not set
533# CONFIG_SCSI_DH is not set 546# CONFIG_SCSI_DH is not set
534# CONFIG_ATA is not set 547# CONFIG_ATA is not set
@@ -555,6 +568,9 @@ CONFIG_PHYLIB=y
555# CONFIG_BROADCOM_PHY is not set 568# CONFIG_BROADCOM_PHY is not set
556# CONFIG_ICPLUS_PHY is not set 569# CONFIG_ICPLUS_PHY is not set
557# CONFIG_REALTEK_PHY is not set 570# CONFIG_REALTEK_PHY is not set
571# CONFIG_NATIONAL_PHY is not set
572# CONFIG_STE10XP is not set
573# CONFIG_LSI_ET1011C_PHY is not set
558# CONFIG_FIXED_PHY is not set 574# CONFIG_FIXED_PHY is not set
559CONFIG_MDIO_BITBANG=y 575CONFIG_MDIO_BITBANG=y
560CONFIG_NET_ETHERNET=y 576CONFIG_NET_ETHERNET=y
@@ -564,6 +580,7 @@ CONFIG_MII=y
564CONFIG_SH_ETH=y 580CONFIG_SH_ETH=y
565# CONFIG_SMC91X is not set 581# CONFIG_SMC91X is not set
566# CONFIG_SMC911X is not set 582# CONFIG_SMC911X is not set
583# CONFIG_SMSC911X is not set
567# CONFIG_IBM_NEW_EMAC_ZMII is not set 584# CONFIG_IBM_NEW_EMAC_ZMII is not set
568# CONFIG_IBM_NEW_EMAC_RGMII is not set 585# CONFIG_IBM_NEW_EMAC_RGMII is not set
569# CONFIG_IBM_NEW_EMAC_TAH is not set 586# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -655,6 +672,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
655CONFIG_SERIAL_CORE=y 672CONFIG_SERIAL_CORE=y
656CONFIG_SERIAL_CORE_CONSOLE=y 673CONFIG_SERIAL_CORE_CONSOLE=y
657CONFIG_UNIX98_PTYS=y 674CONFIG_UNIX98_PTYS=y
675# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
658CONFIG_LEGACY_PTYS=y 676CONFIG_LEGACY_PTYS=y
659CONFIG_LEGACY_PTY_COUNT=256 677CONFIG_LEGACY_PTY_COUNT=256
660# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
@@ -670,11 +688,11 @@ CONFIG_HW_RANDOM=y
670# CONFIG_THERMAL is not set 688# CONFIG_THERMAL is not set
671# CONFIG_THERMAL_HWMON is not set 689# CONFIG_THERMAL_HWMON is not set
672# CONFIG_WATCHDOG is not set 690# CONFIG_WATCHDOG is not set
691CONFIG_SSB_POSSIBLE=y
673 692
674# 693#
675# Sonics Silicon Backplane 694# Sonics Silicon Backplane
676# 695#
677CONFIG_SSB_POSSIBLE=y
678# CONFIG_SSB is not set 696# CONFIG_SSB is not set
679 697
680# 698#
@@ -684,7 +702,7 @@ CONFIG_SSB_POSSIBLE=y
684# CONFIG_MFD_SM501 is not set 702# CONFIG_MFD_SM501 is not set
685# CONFIG_HTC_PASIC3 is not set 703# CONFIG_HTC_PASIC3 is not set
686# CONFIG_MFD_TMIO is not set 704# CONFIG_MFD_TMIO is not set
687# CONFIG_MFD_WM8400 is not set 705# CONFIG_REGULATOR is not set
688 706
689# 707#
690# Multimedia devices 708# Multimedia devices
@@ -737,6 +755,7 @@ CONFIG_FB_BOTH_ENDIAN=y
737CONFIG_FB_SH7760=y 755CONFIG_FB_SH7760=y
738# CONFIG_FB_VIRTUAL is not set 756# CONFIG_FB_VIRTUAL is not set
739# CONFIG_FB_METRONOME is not set 757# CONFIG_FB_METRONOME is not set
758# CONFIG_FB_MB862XX is not set
740# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 759# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
741 760
742# 761#
@@ -781,19 +800,21 @@ CONFIG_USB_DEVICE_CLASS=y
781# CONFIG_USB_OTG_WHITELIST is not set 800# CONFIG_USB_OTG_WHITELIST is not set
782# CONFIG_USB_OTG_BLACKLIST_HUB is not set 801# CONFIG_USB_OTG_BLACKLIST_HUB is not set
783CONFIG_USB_MON=y 802CONFIG_USB_MON=y
803# CONFIG_USB_WUSB is not set
804# CONFIG_USB_WUSB_CBAF is not set
784 805
785# 806#
786# USB Host Controller Drivers 807# USB Host Controller Drivers
787# 808#
788# CONFIG_USB_C67X00_HCD is not set 809# CONFIG_USB_C67X00_HCD is not set
789# CONFIG_USB_ISP116X_HCD is not set 810# CONFIG_USB_ISP116X_HCD is not set
790# CONFIG_USB_ISP1760_HCD is not set
791CONFIG_USB_OHCI_HCD=y 811CONFIG_USB_OHCI_HCD=y
792# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 812# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
793# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 813# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
794CONFIG_USB_OHCI_LITTLE_ENDIAN=y 814CONFIG_USB_OHCI_LITTLE_ENDIAN=y
795# CONFIG_USB_SL811_HCD is not set 815# CONFIG_USB_SL811_HCD is not set
796# CONFIG_USB_R8A66597_HCD is not set 816# CONFIG_USB_R8A66597_HCD is not set
817# CONFIG_USB_HWA_HCD is not set
797 818
798# 819#
799# USB Device Class drivers 820# USB Device Class drivers
@@ -804,11 +825,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
804# CONFIG_USB_TMC is not set 825# CONFIG_USB_TMC is not set
805 826
806# 827#
807# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 828# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
808# 829#
809 830
810# 831#
811# may also be needed; see USB_STORAGE Help for more information 832# see USB_STORAGE Help for more information
812# 833#
813CONFIG_USB_STORAGE=y 834CONFIG_USB_STORAGE=y
814# CONFIG_USB_STORAGE_DEBUG is not set 835# CONFIG_USB_STORAGE_DEBUG is not set
@@ -897,6 +918,7 @@ CONFIG_EXT3_FS_XATTR=y
897# CONFIG_EXT3_FS_SECURITY is not set 918# CONFIG_EXT3_FS_SECURITY is not set
898# CONFIG_EXT4_FS is not set 919# CONFIG_EXT4_FS is not set
899CONFIG_JBD=y 920CONFIG_JBD=y
921# CONFIG_JBD_DEBUG is not set
900CONFIG_FS_MBCACHE=y 922CONFIG_FS_MBCACHE=y
901# CONFIG_REISERFS_FS is not set 923# CONFIG_REISERFS_FS is not set
902# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
@@ -942,10 +964,7 @@ CONFIG_TMPFS_POSIX_ACL=y
942# CONFIG_HUGETLBFS is not set 964# CONFIG_HUGETLBFS is not set
943# CONFIG_HUGETLB_PAGE is not set 965# CONFIG_HUGETLB_PAGE is not set
944# CONFIG_CONFIGFS_FS is not set 966# CONFIG_CONFIGFS_FS is not set
945 967CONFIG_MISC_FILESYSTEMS=y
946#
947# Miscellaneous filesystems
948#
949# CONFIG_ADFS_FS is not set 968# CONFIG_ADFS_FS is not set
950# CONFIG_AFFS_FS is not set 969# CONFIG_AFFS_FS is not set
951# CONFIG_HFS_FS is not set 970# CONFIG_HFS_FS is not set
@@ -1038,20 +1057,30 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1038CONFIG_FRAME_WARN=1024 1057CONFIG_FRAME_WARN=1024
1039# CONFIG_MAGIC_SYSRQ is not set 1058# CONFIG_MAGIC_SYSRQ is not set
1040# CONFIG_UNUSED_SYMBOLS is not set 1059# CONFIG_UNUSED_SYMBOLS is not set
1041# CONFIG_DEBUG_FS is not set 1060CONFIG_DEBUG_FS=y
1042# CONFIG_HEADERS_CHECK is not set 1061# CONFIG_HEADERS_CHECK is not set
1043# CONFIG_DEBUG_KERNEL is not set 1062# CONFIG_DEBUG_KERNEL is not set
1063CONFIG_STACKTRACE=y
1044# CONFIG_DEBUG_BUGVERBOSE is not set 1064# CONFIG_DEBUG_BUGVERBOSE is not set
1045# CONFIG_DEBUG_MEMORY_INIT is not set 1065# CONFIG_DEBUG_MEMORY_INIT is not set
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1066# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1067# CONFIG_LATENCYTOP is not set
1048CONFIG_NOP_TRACER=y 1068CONFIG_NOP_TRACER=y
1049CONFIG_HAVE_FTRACE=y 1069CONFIG_HAVE_FUNCTION_TRACER=y
1070CONFIG_HAVE_DYNAMIC_FTRACE=y
1071CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1072CONFIG_RING_BUFFER=y
1073CONFIG_TRACING=y
1074
1075#
1076# Tracers
1077#
1050# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1078# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1051# CONFIG_SAMPLES is not set 1079# CONFIG_SAMPLES is not set
1080CONFIG_HAVE_ARCH_KGDB=y
1052# CONFIG_SH_STANDARD_BIOS is not set 1081# CONFIG_SH_STANDARD_BIOS is not set
1053# CONFIG_EARLY_SCIF_CONSOLE is not set 1082# CONFIG_EARLY_SCIF_CONSOLE is not set
1054# CONFIG_SH_KGDB is not set 1083# CONFIG_MORE_COMPILE_OPTIONS is not set
1055 1084
1056# 1085#
1057# Security options 1086# Security options
@@ -1067,6 +1096,7 @@ CONFIG_CRYPTO=y
1067# 1096#
1068# CONFIG_CRYPTO_FIPS is not set 1097# CONFIG_CRYPTO_FIPS is not set
1069# CONFIG_CRYPTO_MANAGER is not set 1098# CONFIG_CRYPTO_MANAGER is not set
1099# CONFIG_CRYPTO_MANAGER2 is not set
1070# CONFIG_CRYPTO_GF128MUL is not set 1100# CONFIG_CRYPTO_GF128MUL is not set
1071# CONFIG_CRYPTO_NULL is not set 1101# CONFIG_CRYPTO_NULL is not set
1072# CONFIG_CRYPTO_CRYPTD is not set 1102# CONFIG_CRYPTO_CRYPTD is not set
@@ -1149,6 +1179,7 @@ CONFIG_CRYPTO_HW=y
1149# Library routines 1179# Library routines
1150# 1180#
1151CONFIG_BITREVERSE=y 1181CONFIG_BITREVERSE=y
1182CONFIG_GENERIC_FIND_LAST_BIT=y
1152# CONFIG_CRC_CCITT is not set 1183# CONFIG_CRC_CCITT is not set
1153# CONFIG_CRC16 is not set 1184# CONFIG_CRC16 is not set
1154CONFIG_CRC_T10DIF=y 1185CONFIG_CRC_T10DIF=y
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 07e33c285b93..1d63628df6f6 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:49:23 2008 4# Fri Jan 9 18:05:18 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_SYS_SUPPORTS_PCI=y 22CONFIG_SYS_SUPPORTS_PCI=y
21CONFIG_STACKTRACE_SUPPORT=y 23CONFIG_STACKTRACE_SUPPORT=y
@@ -86,7 +88,6 @@ CONFIG_SLAB=y
86# CONFIG_SLUB is not set 88# CONFIG_SLUB is not set
87# CONFIG_SLOB is not set 89# CONFIG_SLOB is not set
88CONFIG_PROFILING=y 90CONFIG_PROFILING=y
89# CONFIG_MARKERS is not set
90# CONFIG_OPROFILE is not set 91# CONFIG_OPROFILE is not set
91CONFIG_HAVE_OPROFILE=y 92CONFIG_HAVE_OPROFILE=y
92# CONFIG_KPROBES is not set 93# CONFIG_KPROBES is not set
@@ -98,7 +99,6 @@ CONFIG_HAVE_CLK=y
98CONFIG_HAVE_GENERIC_DMA_COHERENT=y 99CONFIG_HAVE_GENERIC_DMA_COHERENT=y
99CONFIG_SLABINFO=y 100CONFIG_SLABINFO=y
100CONFIG_RT_MUTEXES=y 101CONFIG_RT_MUTEXES=y
101# CONFIG_TINY_SHMEM is not set
102CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
103CONFIG_MODULES=y 103CONFIG_MODULES=y
104# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -106,11 +106,9 @@ CONFIG_MODULE_UNLOAD=y
106# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
107# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
108# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
109CONFIG_KMOD=y
110CONFIG_BLOCK=y 109CONFIG_BLOCK=y
111# CONFIG_LBD is not set 110# CONFIG_LBD is not set
112# CONFIG_BLK_DEV_IO_TRACE is not set 111# CONFIG_BLK_DEV_IO_TRACE is not set
113# CONFIG_LSF is not set
114# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
115# CONFIG_BLK_DEV_INTEGRITY is not set 113# CONFIG_BLK_DEV_INTEGRITY is not set
116 114
@@ -127,6 +125,10 @@ CONFIG_DEFAULT_CFQ=y
127# CONFIG_DEFAULT_NOOP is not set 125# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="cfq" 126CONFIG_DEFAULT_IOSCHED="cfq"
129CONFIG_CLASSIC_RCU=y 127CONFIG_CLASSIC_RCU=y
128# CONFIG_TREE_RCU is not set
129# CONFIG_PREEMPT_RCU is not set
130# CONFIG_TREE_RCU_TRACE is not set
131# CONFIG_PREEMPT_RCU_TRACE is not set
130# CONFIG_FREEZER is not set 132# CONFIG_FREEZER is not set
131 133
132# 134#
@@ -136,6 +138,7 @@ CONFIG_CPU_SH4=y
136CONFIG_CPU_SH4A=y 138CONFIG_CPU_SH4A=y
137CONFIG_CPU_SHX2=y 139CONFIG_CPU_SHX2=y
138# CONFIG_CPU_SUBTYPE_SH7619 is not set 140# CONFIG_CPU_SUBTYPE_SH7619 is not set
141# CONFIG_CPU_SUBTYPE_SH7201 is not set
139# CONFIG_CPU_SUBTYPE_SH7203 is not set 142# CONFIG_CPU_SUBTYPE_SH7203 is not set
140# CONFIG_CPU_SUBTYPE_SH7206 is not set 143# CONFIG_CPU_SUBTYPE_SH7206 is not set
141# CONFIG_CPU_SUBTYPE_SH7263 is not set 144# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206CONFIG_PAGEFLAGS_EXTENDED=y 209CONFIG_PAGEFLAGS_EXTENDED=y
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208CONFIG_MIGRATION=y 211CONFIG_MIGRATION=y
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -285,7 +287,6 @@ CONFIG_KEXEC=y
285# CONFIG_PREEMPT_NONE is not set 287# CONFIG_PREEMPT_NONE is not set
286# CONFIG_PREEMPT_VOLUNTARY is not set 288# CONFIG_PREEMPT_VOLUNTARY is not set
287CONFIG_PREEMPT=y 289CONFIG_PREEMPT=y
288# CONFIG_PREEMPT_RCU is not set
289CONFIG_GUSA=y 290CONFIG_GUSA=y
290 291
291# 292#
@@ -302,6 +303,7 @@ CONFIG_PCI=y
302CONFIG_SH_PCIDMA_NONCOHERENT=y 303CONFIG_SH_PCIDMA_NONCOHERENT=y
303CONFIG_PCI_AUTO=y 304CONFIG_PCI_AUTO=y
304CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 305CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
306# CONFIG_PCIEPORTBUS is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set 307# CONFIG_ARCH_SUPPORTS_MSI is not set
306CONFIG_PCI_LEGACY=y 308CONFIG_PCI_LEGACY=y
307# CONFIG_PCI_DEBUG is not set 309# CONFIG_PCI_DEBUG is not set
@@ -315,11 +317,18 @@ CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 317# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 318# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 319# CONFIG_BINFMT_MISC is not set
320
321#
322# Power management options (EXPERIMENTAL)
323#
324# CONFIG_PM is not set
325# CONFIG_CPU_IDLE is not set
318CONFIG_NET=y 326CONFIG_NET=y
319 327
320# 328#
321# Networking options 329# Networking options
322# 330#
331CONFIG_COMPAT_NET_DEV_OPS=y
323CONFIG_PACKET=y 332CONFIG_PACKET=y
324# CONFIG_PACKET_MMAP is not set 333# CONFIG_PACKET_MMAP is not set
325CONFIG_UNIX=y 334CONFIG_UNIX=y
@@ -380,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_ECONET is not set 389# CONFIG_ECONET is not set
381# CONFIG_WAN_ROUTER is not set 390# CONFIG_WAN_ROUTER is not set
382# CONFIG_NET_SCHED is not set 391# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set
383 393
384# 394#
385# Network testing 395# Network testing
@@ -396,8 +406,8 @@ CONFIG_WIRELESS=y
396# CONFIG_WIRELESS_OLD_REGULATORY is not set 406# CONFIG_WIRELESS_OLD_REGULATORY is not set
397CONFIG_WIRELESS_EXT=y 407CONFIG_WIRELESS_EXT=y
398CONFIG_WIRELESS_EXT_SYSFS=y 408CONFIG_WIRELESS_EXT_SYSFS=y
409# CONFIG_LIB80211 is not set
399# CONFIG_MAC80211 is not set 410# CONFIG_MAC80211 is not set
400# CONFIG_IEEE80211 is not set
401# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
402# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
403 413
@@ -757,6 +767,7 @@ CONFIG_SERIAL_CORE=y
757CONFIG_SERIAL_CORE_CONSOLE=y 767CONFIG_SERIAL_CORE_CONSOLE=y
758# CONFIG_SERIAL_JSM is not set 768# CONFIG_SERIAL_JSM is not set
759CONFIG_UNIX98_PTYS=y 769CONFIG_UNIX98_PTYS=y
770# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
760CONFIG_LEGACY_PTYS=y 771CONFIG_LEGACY_PTYS=y
761CONFIG_LEGACY_PTY_COUNT=256 772CONFIG_LEGACY_PTY_COUNT=256
762# CONFIG_IPMI_HANDLER is not set 773# CONFIG_IPMI_HANDLER is not set
@@ -823,8 +834,8 @@ CONFIG_I2C_PCA_PLATFORM=y
823# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
824# 835#
825# CONFIG_DS1682 is not set 836# CONFIG_DS1682 is not set
826# CONFIG_AT24 is not set 837# CONFIG_EEPROM_AT24 is not set
827# CONFIG_SENSORS_EEPROM is not set 838# CONFIG_EEPROM_LEGACY is not set
828# CONFIG_SENSORS_PCF8574 is not set 839# CONFIG_SENSORS_PCF8574 is not set
829# CONFIG_PCF8575 is not set 840# CONFIG_PCF8575 is not set
830# CONFIG_SENSORS_PCA9539 is not set 841# CONFIG_SENSORS_PCA9539 is not set
@@ -842,11 +853,11 @@ CONFIG_I2C_PCA_PLATFORM=y
842# CONFIG_THERMAL is not set 853# CONFIG_THERMAL is not set
843# CONFIG_THERMAL_HWMON is not set 854# CONFIG_THERMAL_HWMON is not set
844# CONFIG_WATCHDOG is not set 855# CONFIG_WATCHDOG is not set
856CONFIG_SSB_POSSIBLE=y
845 857
846# 858#
847# Sonics Silicon Backplane 859# Sonics Silicon Backplane
848# 860#
849CONFIG_SSB_POSSIBLE=y
850# CONFIG_SSB is not set 861# CONFIG_SSB is not set
851 862
852# 863#
@@ -855,9 +866,12 @@ CONFIG_SSB_POSSIBLE=y
855# CONFIG_MFD_CORE is not set 866# CONFIG_MFD_CORE is not set
856CONFIG_MFD_SM501=y 867CONFIG_MFD_SM501=y
857# CONFIG_HTC_PASIC3 is not set 868# CONFIG_HTC_PASIC3 is not set
869# CONFIG_TWL4030_CORE is not set
858# CONFIG_MFD_TMIO is not set 870# CONFIG_MFD_TMIO is not set
871# CONFIG_PMIC_DA903X is not set
859# CONFIG_MFD_WM8400 is not set 872# CONFIG_MFD_WM8400 is not set
860# CONFIG_MFD_WM8350_I2C is not set 873# CONFIG_MFD_WM8350_I2C is not set
874# CONFIG_REGULATOR is not set
861 875
862# 876#
863# Multimedia devices 877# Multimedia devices
@@ -889,11 +903,12 @@ CONFIG_FB_CFB_FILLRECT=y
889CONFIG_FB_CFB_COPYAREA=y 903CONFIG_FB_CFB_COPYAREA=y
890CONFIG_FB_CFB_IMAGEBLIT=y 904CONFIG_FB_CFB_IMAGEBLIT=y
891# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 905# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
892# CONFIG_FB_SYS_FILLRECT is not set 906CONFIG_FB_SYS_FILLRECT=m
893# CONFIG_FB_SYS_COPYAREA is not set 907CONFIG_FB_SYS_COPYAREA=m
894# CONFIG_FB_SYS_IMAGEBLIT is not set 908CONFIG_FB_SYS_IMAGEBLIT=m
895# CONFIG_FB_FOREIGN_ENDIAN is not set 909# CONFIG_FB_FOREIGN_ENDIAN is not set
896# CONFIG_FB_SYS_FOPS is not set 910CONFIG_FB_SYS_FOPS=m
911CONFIG_FB_DEFERRED_IO=y
897# CONFIG_FB_SVGALIB is not set 912# CONFIG_FB_SVGALIB is not set
898# CONFIG_FB_MACMODES is not set 913# CONFIG_FB_MACMODES is not set
899# CONFIG_FB_BACKLIGHT is not set 914# CONFIG_FB_BACKLIGHT is not set
@@ -932,6 +947,7 @@ CONFIG_FB_SH_MOBILE_LCDC=m
932CONFIG_FB_SM501=y 947CONFIG_FB_SM501=y
933# CONFIG_FB_VIRTUAL is not set 948# CONFIG_FB_VIRTUAL is not set
934# CONFIG_FB_METRONOME is not set 949# CONFIG_FB_METRONOME is not set
950# CONFIG_FB_MB862XX is not set
935# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 951# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
936 952
937# 953#
@@ -976,11 +992,9 @@ CONFIG_HID_COMPAT=y
976CONFIG_HID_A4TECH=y 992CONFIG_HID_A4TECH=y
977CONFIG_HID_APPLE=y 993CONFIG_HID_APPLE=y
978CONFIG_HID_BELKIN=y 994CONFIG_HID_BELKIN=y
979CONFIG_HID_BRIGHT=y
980CONFIG_HID_CHERRY=y 995CONFIG_HID_CHERRY=y
981CONFIG_HID_CHICONY=y 996CONFIG_HID_CHICONY=y
982CONFIG_HID_CYPRESS=y 997CONFIG_HID_CYPRESS=y
983CONFIG_HID_DELL=y
984CONFIG_HID_EZKEY=y 998CONFIG_HID_EZKEY=y
985CONFIG_HID_GYRATION=y 999CONFIG_HID_GYRATION=y
986CONFIG_HID_LOGITECH=y 1000CONFIG_HID_LOGITECH=y
@@ -988,12 +1002,15 @@ CONFIG_HID_LOGITECH=y
988# CONFIG_LOGIRUMBLEPAD2_FF is not set 1002# CONFIG_LOGIRUMBLEPAD2_FF is not set
989CONFIG_HID_MICROSOFT=y 1003CONFIG_HID_MICROSOFT=y
990CONFIG_HID_MONTEREY=y 1004CONFIG_HID_MONTEREY=y
1005# CONFIG_HID_NTRIG is not set
991CONFIG_HID_PANTHERLORD=y 1006CONFIG_HID_PANTHERLORD=y
992# CONFIG_PANTHERLORD_FF is not set 1007# CONFIG_PANTHERLORD_FF is not set
993CONFIG_HID_PETALYNX=y 1008CONFIG_HID_PETALYNX=y
994CONFIG_HID_SAMSUNG=y 1009CONFIG_HID_SAMSUNG=y
995CONFIG_HID_SONY=y 1010CONFIG_HID_SONY=y
996CONFIG_HID_SUNPLUS=y 1011CONFIG_HID_SUNPLUS=y
1012# CONFIG_GREENASIA_FF is not set
1013# CONFIG_HID_TOPSEED is not set
997CONFIG_THRUSTMASTER_FF=m 1014CONFIG_THRUSTMASTER_FF=m
998CONFIG_ZEROPLUS_FF=m 1015CONFIG_ZEROPLUS_FF=m
999CONFIG_USB_SUPPORT=y 1016CONFIG_USB_SUPPORT=y
@@ -1014,6 +1031,8 @@ CONFIG_USB_DEVICE_CLASS=y
1014# CONFIG_USB_OTG_WHITELIST is not set 1031# CONFIG_USB_OTG_WHITELIST is not set
1015# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1032# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1016CONFIG_USB_MON=y 1033CONFIG_USB_MON=y
1034# CONFIG_USB_WUSB is not set
1035# CONFIG_USB_WUSB_CBAF is not set
1017 1036
1018# 1037#
1019# USB Host Controller Drivers 1038# USB Host Controller Drivers
@@ -1031,6 +1050,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1031# CONFIG_USB_UHCI_HCD is not set 1050# CONFIG_USB_UHCI_HCD is not set
1032# CONFIG_USB_SL811_HCD is not set 1051# CONFIG_USB_SL811_HCD is not set
1033CONFIG_USB_R8A66597_HCD=y 1052CONFIG_USB_R8A66597_HCD=y
1053# CONFIG_USB_WHCI_HCD is not set
1054# CONFIG_USB_HWA_HCD is not set
1034 1055
1035# 1056#
1036# USB Device Class drivers 1057# USB Device Class drivers
@@ -1041,11 +1062,11 @@ CONFIG_USB_R8A66597_HCD=y
1041# CONFIG_USB_TMC is not set 1062# CONFIG_USB_TMC is not set
1042 1063
1043# 1064#
1044# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1065# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1045# 1066#
1046 1067
1047# 1068#
1048# may also be needed; see USB_STORAGE Help for more information 1069# see USB_STORAGE Help for more information
1049# 1070#
1050CONFIG_USB_STORAGE=y 1071CONFIG_USB_STORAGE=y
1051# CONFIG_USB_STORAGE_DEBUG is not set 1072# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1100,6 +1121,7 @@ CONFIG_USB_TEST=m
1100# CONFIG_USB_ISIGHTFW is not set 1121# CONFIG_USB_ISIGHTFW is not set
1101# CONFIG_USB_VST is not set 1122# CONFIG_USB_VST is not set
1102# CONFIG_USB_GADGET is not set 1123# CONFIG_USB_GADGET is not set
1124# CONFIG_UWB is not set
1103# CONFIG_MMC is not set 1125# CONFIG_MMC is not set
1104# CONFIG_MEMSTICK is not set 1126# CONFIG_MEMSTICK is not set
1105# CONFIG_NEW_LEDS is not set 1127# CONFIG_NEW_LEDS is not set
@@ -1135,6 +1157,7 @@ CONFIG_RTC_DRV_RS5C372=y
1135# CONFIG_RTC_DRV_M41T80 is not set 1157# CONFIG_RTC_DRV_M41T80 is not set
1136# CONFIG_RTC_DRV_S35390A is not set 1158# CONFIG_RTC_DRV_S35390A is not set
1137# CONFIG_RTC_DRV_FM3130 is not set 1159# CONFIG_RTC_DRV_FM3130 is not set
1160# CONFIG_RTC_DRV_RX8581 is not set
1138 1161
1139# 1162#
1140# SPI RTC drivers 1163# SPI RTC drivers
@@ -1220,10 +1243,7 @@ CONFIG_TMPFS=y
1220# CONFIG_HUGETLBFS is not set 1243# CONFIG_HUGETLBFS is not set
1221# CONFIG_HUGETLB_PAGE is not set 1244# CONFIG_HUGETLB_PAGE is not set
1222# CONFIG_CONFIGFS_FS is not set 1245# CONFIG_CONFIGFS_FS is not set
1223 1246CONFIG_MISC_FILESYSTEMS=y
1224#
1225# Miscellaneous filesystems
1226#
1227# CONFIG_ADFS_FS is not set 1247# CONFIG_ADFS_FS is not set
1228# CONFIG_AFFS_FS is not set 1248# CONFIG_AFFS_FS is not set
1229# CONFIG_HFS_FS is not set 1249# CONFIG_HFS_FS is not set
@@ -1353,6 +1373,7 @@ CONFIG_DEBUG_PREEMPT=y
1353# CONFIG_DEBUG_MEMORY_INIT is not set 1373# CONFIG_DEBUG_MEMORY_INIT is not set
1354# CONFIG_DEBUG_LIST is not set 1374# CONFIG_DEBUG_LIST is not set
1355# CONFIG_DEBUG_SG is not set 1375# CONFIG_DEBUG_SG is not set
1376# CONFIG_DEBUG_NOTIFIERS is not set
1356# CONFIG_FRAME_POINTER is not set 1377# CONFIG_FRAME_POINTER is not set
1357# CONFIG_RCU_TORTURE_TEST is not set 1378# CONFIG_RCU_TORTURE_TEST is not set
1358# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1379# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1361,17 +1382,25 @@ CONFIG_DEBUG_PREEMPT=y
1361# CONFIG_FAULT_INJECTION is not set 1382# CONFIG_FAULT_INJECTION is not set
1362# CONFIG_LATENCYTOP is not set 1383# CONFIG_LATENCYTOP is not set
1363CONFIG_SYSCTL_SYSCALL_CHECK=y 1384CONFIG_SYSCTL_SYSCALL_CHECK=y
1364CONFIG_NOP_TRACER=y 1385CONFIG_HAVE_FUNCTION_TRACER=y
1365CONFIG_HAVE_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1366# CONFIG_FTRACE is not set 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1388
1389#
1390# Tracers
1391#
1392# CONFIG_FUNCTION_TRACER is not set
1367# CONFIG_IRQSOFF_TRACER is not set 1393# CONFIG_IRQSOFF_TRACER is not set
1368# CONFIG_PREEMPT_TRACER is not set 1394# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set 1395# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set 1396# CONFIG_CONTEXT_SWITCH_TRACER is not set
1371# CONFIG_BOOT_TRACER is not set 1397# CONFIG_BOOT_TRACER is not set
1398# CONFIG_TRACE_BRANCH_PROFILING is not set
1372# CONFIG_STACK_TRACER is not set 1399# CONFIG_STACK_TRACER is not set
1373# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1400# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1374# CONFIG_SAMPLES is not set 1401# CONFIG_SAMPLES is not set
1402CONFIG_HAVE_ARCH_KGDB=y
1403# CONFIG_KGDB is not set
1375# CONFIG_SH_STANDARD_BIOS is not set 1404# CONFIG_SH_STANDARD_BIOS is not set
1376# CONFIG_EARLY_SCIF_CONSOLE is not set 1405# CONFIG_EARLY_SCIF_CONSOLE is not set
1377# CONFIG_DEBUG_BOOTMEM is not set 1406# CONFIG_DEBUG_BOOTMEM is not set
@@ -1379,7 +1408,9 @@ CONFIG_HAVE_FTRACE=y
1379# CONFIG_DEBUG_STACK_USAGE is not set 1408# CONFIG_DEBUG_STACK_USAGE is not set
1380# CONFIG_4KSTACKS is not set 1409# CONFIG_4KSTACKS is not set
1381# CONFIG_IRQSTACKS is not set 1410# CONFIG_IRQSTACKS is not set
1382# CONFIG_SH_KGDB is not set 1411# CONFIG_DUMP_CODE is not set
1412# CONFIG_SH_NO_BSS_INIT is not set
1413# CONFIG_MORE_COMPILE_OPTIONS is not set
1383 1414
1384# 1415#
1385# Security options 1416# Security options
@@ -1395,11 +1426,15 @@ CONFIG_CRYPTO=y
1395# 1426#
1396# CONFIG_CRYPTO_FIPS is not set 1427# CONFIG_CRYPTO_FIPS is not set
1397CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1398CONFIG_CRYPTO_AEAD=y 1429CONFIG_CRYPTO_ALGAPI2=y
1430CONFIG_CRYPTO_AEAD2=y
1399CONFIG_CRYPTO_BLKCIPHER=y 1431CONFIG_CRYPTO_BLKCIPHER=y
1432CONFIG_CRYPTO_BLKCIPHER2=y
1400CONFIG_CRYPTO_HASH=y 1433CONFIG_CRYPTO_HASH=y
1401CONFIG_CRYPTO_RNG=y 1434CONFIG_CRYPTO_HASH2=y
1435CONFIG_CRYPTO_RNG2=y
1402CONFIG_CRYPTO_MANAGER=y 1436CONFIG_CRYPTO_MANAGER=y
1437CONFIG_CRYPTO_MANAGER2=y
1403# CONFIG_CRYPTO_GF128MUL is not set 1438# CONFIG_CRYPTO_GF128MUL is not set
1404# CONFIG_CRYPTO_NULL is not set 1439# CONFIG_CRYPTO_NULL is not set
1405# CONFIG_CRYPTO_CRYPTD is not set 1440# CONFIG_CRYPTO_CRYPTD is not set
@@ -1482,6 +1517,7 @@ CONFIG_CRYPTO_DES=y
1482# Library routines 1517# Library routines
1483# 1518#
1484CONFIG_BITREVERSE=y 1519CONFIG_BITREVERSE=y
1520CONFIG_GENERIC_FIND_LAST_BIT=y
1485# CONFIG_CRC_CCITT is not set 1521# CONFIG_CRC_CCITT is not set
1486# CONFIG_CRC16 is not set 1522# CONFIG_CRC16 is not set
1487# CONFIG_CRC_T10DIF is not set 1523# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig
index e2b38a334976..8ba10e1e08cd 100644
--- a/arch/sh/configs/shmin_defconfig
+++ b/arch/sh/configs/shmin_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:52:59 2008 4# Fri Jan 9 18:09:00 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -15,6 +15,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
15# CONFIG_GENERIC_GPIO is not set 15# CONFIG_GENERIC_GPIO is not set
16CONFIG_GENERIC_TIME=y 16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y 17CONFIG_GENERIC_CLOCKEVENTS=y
18# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
19# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
18CONFIG_STACKTRACE_SUPPORT=y 20CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_LOCKDEP_SUPPORT=y 21CONFIG_LOCKDEP_SUPPORT=y
20CONFIG_HAVE_LATENCYTOP_SUPPORT=y 22CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -65,12 +67,10 @@ CONFIG_EVENTFD=y
65# CONFIG_SHMEM is not set 67# CONFIG_SHMEM is not set
66CONFIG_AIO=y 68CONFIG_AIO=y
67CONFIG_VM_EVENT_COUNTERS=y 69CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_PCI_QUIRKS=y
69# CONFIG_SLAB is not set 70# CONFIG_SLAB is not set
70# CONFIG_SLUB is not set 71# CONFIG_SLUB is not set
71CONFIG_SLOB=y 72CONFIG_SLOB=y
72# CONFIG_PROFILING is not set 73# CONFIG_PROFILING is not set
73# CONFIG_MARKERS is not set
74CONFIG_HAVE_OPROFILE=y 74CONFIG_HAVE_OPROFILE=y
75CONFIG_HAVE_IOREMAP_PROT=y 75CONFIG_HAVE_IOREMAP_PROT=y
76CONFIG_HAVE_KPROBES=y 76CONFIG_HAVE_KPROBES=y
@@ -78,12 +78,10 @@ CONFIG_HAVE_KRETPROBES=y
78CONFIG_HAVE_ARCH_TRACEHOOK=y 78CONFIG_HAVE_ARCH_TRACEHOOK=y
79CONFIG_HAVE_CLK=y 79CONFIG_HAVE_CLK=y
80CONFIG_HAVE_GENERIC_DMA_COHERENT=y 80CONFIG_HAVE_GENERIC_DMA_COHERENT=y
81CONFIG_TINY_SHMEM=y
82CONFIG_BASE_SMALL=1 81CONFIG_BASE_SMALL=1
83# CONFIG_MODULES is not set 82# CONFIG_MODULES is not set
84CONFIG_BLOCK=y 83CONFIG_BLOCK=y
85# CONFIG_LBD is not set 84# CONFIG_LBD is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set 85# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set 86# CONFIG_BLK_DEV_INTEGRITY is not set
89 87
@@ -100,6 +98,10 @@ CONFIG_IOSCHED_NOOP=y
100CONFIG_DEFAULT_NOOP=y 98CONFIG_DEFAULT_NOOP=y
101CONFIG_DEFAULT_IOSCHED="noop" 99CONFIG_DEFAULT_IOSCHED="noop"
102CONFIG_CLASSIC_RCU=y 100CONFIG_CLASSIC_RCU=y
101# CONFIG_TREE_RCU is not set
102# CONFIG_PREEMPT_RCU is not set
103# CONFIG_TREE_RCU_TRACE is not set
104# CONFIG_PREEMPT_RCU_TRACE is not set
103# CONFIG_FREEZER is not set 105# CONFIG_FREEZER is not set
104 106
105# 107#
@@ -107,6 +109,7 @@ CONFIG_CLASSIC_RCU=y
107# 109#
108CONFIG_CPU_SH3=y 110CONFIG_CPU_SH3=y
109# CONFIG_CPU_SUBTYPE_SH7619 is not set 111# CONFIG_CPU_SUBTYPE_SH7619 is not set
112# CONFIG_CPU_SUBTYPE_SH7201 is not set
110# CONFIG_CPU_SUBTYPE_SH7203 is not set 113# CONFIG_CPU_SUBTYPE_SH7203 is not set
111# CONFIG_CPU_SUBTYPE_SH7206 is not set 114# CONFIG_CPU_SUBTYPE_SH7206 is not set
112# CONFIG_CPU_SUBTYPE_SH7263 is not set 115# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -170,7 +173,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
170CONFIG_SPARSEMEM_STATIC=y 173CONFIG_SPARSEMEM_STATIC=y
171CONFIG_PAGEFLAGS_EXTENDED=y 174CONFIG_PAGEFLAGS_EXTENDED=y
172CONFIG_SPLIT_PTLOCK_CPUS=4 175CONFIG_SPLIT_PTLOCK_CPUS=4
173# CONFIG_RESOURCES_64BIT is not set
174# CONFIG_PHYS_ADDR_T_64BIT is not set 176# CONFIG_PHYS_ADDR_T_64BIT is not set
175CONFIG_ZONE_DMA_FLAG=0 177CONFIG_ZONE_DMA_FLAG=0
176CONFIG_NR_QUICK=2 178CONFIG_NR_QUICK=2
@@ -268,11 +270,18 @@ CONFIG_BINFMT_ELF=y
268# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 270# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
269# CONFIG_HAVE_AOUT is not set 271# CONFIG_HAVE_AOUT is not set
270# CONFIG_BINFMT_MISC is not set 272# CONFIG_BINFMT_MISC is not set
273
274#
275# Power management options (EXPERIMENTAL)
276#
277# CONFIG_PM is not set
278# CONFIG_CPU_IDLE is not set
271CONFIG_NET=y 279CONFIG_NET=y
272 280
273# 281#
274# Networking options 282# Networking options
275# 283#
284CONFIG_COMPAT_NET_DEV_OPS=y
276# CONFIG_PACKET is not set 285# CONFIG_PACKET is not set
277CONFIG_UNIX=y 286CONFIG_UNIX=y
278CONFIG_XFRM=y 287CONFIG_XFRM=y
@@ -327,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_ECONET is not set 336# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 337# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set 338# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set
330 340
331# 341#
332# Network testing 342# Network testing
@@ -342,8 +352,8 @@ CONFIG_WIRELESS=y
342# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_OLD_REGULATORY is not set 353# CONFIG_WIRELESS_OLD_REGULATORY is not set
344# CONFIG_WIRELESS_EXT is not set 354# CONFIG_WIRELESS_EXT is not set
355# CONFIG_LIB80211 is not set
345# CONFIG_MAC80211 is not set 356# CONFIG_MAC80211 is not set
346# CONFIG_IEEE80211 is not set
347# CONFIG_RFKILL is not set 357# CONFIG_RFKILL is not set
348# CONFIG_NET_9P is not set 358# CONFIG_NET_9P is not set
349 359
@@ -448,6 +458,7 @@ CONFIG_BLK_DEV_LOOP=y
448CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
449# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
450# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
461# CONFIG_C2PORT is not set
451CONFIG_HAVE_IDE=y 462CONFIG_HAVE_IDE=y
452# CONFIG_IDE is not set 463# CONFIG_IDE is not set
453 464
@@ -474,6 +485,7 @@ CONFIG_NET_ETHERNET=y
474# CONFIG_STNIC is not set 485# CONFIG_STNIC is not set
475# CONFIG_SMC91X is not set 486# CONFIG_SMC91X is not set
476# CONFIG_SMC911X is not set 487# CONFIG_SMC911X is not set
488# CONFIG_SMSC911X is not set
477# CONFIG_IBM_NEW_EMAC_ZMII is not set 489# CONFIG_IBM_NEW_EMAC_ZMII is not set
478# CONFIG_IBM_NEW_EMAC_RGMII is not set 490# CONFIG_IBM_NEW_EMAC_RGMII is not set
479# CONFIG_IBM_NEW_EMAC_TAH is not set 491# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -532,6 +544,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
532CONFIG_SERIAL_CORE=y 544CONFIG_SERIAL_CORE=y
533CONFIG_SERIAL_CORE_CONSOLE=y 545CONFIG_SERIAL_CORE_CONSOLE=y
534CONFIG_UNIX98_PTYS=y 546CONFIG_UNIX98_PTYS=y
547# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
535CONFIG_LEGACY_PTYS=y 548CONFIG_LEGACY_PTYS=y
536CONFIG_LEGACY_PTY_COUNT=256 549CONFIG_LEGACY_PTY_COUNT=256
537# CONFIG_IPMI_HANDLER is not set 550# CONFIG_IPMI_HANDLER is not set
@@ -547,11 +560,11 @@ CONFIG_HW_RANDOM=y
547# CONFIG_THERMAL is not set 560# CONFIG_THERMAL is not set
548# CONFIG_THERMAL_HWMON is not set 561# CONFIG_THERMAL_HWMON is not set
549# CONFIG_WATCHDOG is not set 562# CONFIG_WATCHDOG is not set
563CONFIG_SSB_POSSIBLE=y
550 564
551# 565#
552# Sonics Silicon Backplane 566# Sonics Silicon Backplane
553# 567#
554CONFIG_SSB_POSSIBLE=y
555# CONFIG_SSB is not set 568# CONFIG_SSB is not set
556 569
557# 570#
@@ -561,7 +574,7 @@ CONFIG_SSB_POSSIBLE=y
561# CONFIG_MFD_SM501 is not set 574# CONFIG_MFD_SM501 is not set
562# CONFIG_HTC_PASIC3 is not set 575# CONFIG_HTC_PASIC3 is not set
563# CONFIG_MFD_TMIO is not set 576# CONFIG_MFD_TMIO is not set
564# CONFIG_MFD_WM8400 is not set 577# CONFIG_REGULATOR is not set
565 578
566# 579#
567# Multimedia devices 580# Multimedia devices
@@ -605,7 +618,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
605# 618#
606 619
607# 620#
608# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 621# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
609# 622#
610# CONFIG_USB_GADGET is not set 623# CONFIG_USB_GADGET is not set
611# CONFIG_MMC is not set 624# CONFIG_MMC is not set
@@ -660,10 +673,7 @@ CONFIG_TMPFS=y
660# CONFIG_TMPFS_POSIX_ACL is not set 673# CONFIG_TMPFS_POSIX_ACL is not set
661# CONFIG_HUGETLBFS is not set 674# CONFIG_HUGETLBFS is not set
662# CONFIG_HUGETLB_PAGE is not set 675# CONFIG_HUGETLB_PAGE is not set
663 676CONFIG_MISC_FILESYSTEMS=y
664#
665# Miscellaneous filesystems
666#
667# CONFIG_ADFS_FS is not set 677# CONFIG_ADFS_FS is not set
668# CONFIG_AFFS_FS is not set 678# CONFIG_AFFS_FS is not set
669# CONFIG_HFS_FS is not set 679# CONFIG_HFS_FS is not set
@@ -723,14 +733,20 @@ CONFIG_FRAME_WARN=1024
723# CONFIG_DEBUG_MEMORY_INIT is not set 733# CONFIG_DEBUG_MEMORY_INIT is not set
724# CONFIG_RCU_CPU_STALL_DETECTOR is not set 734# CONFIG_RCU_CPU_STALL_DETECTOR is not set
725# CONFIG_LATENCYTOP is not set 735# CONFIG_LATENCYTOP is not set
726CONFIG_NOP_TRACER=y 736CONFIG_HAVE_FUNCTION_TRACER=y
727CONFIG_HAVE_FTRACE=y 737CONFIG_HAVE_DYNAMIC_FTRACE=y
738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
739
740#
741# Tracers
742#
728# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 743# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
729# CONFIG_SAMPLES is not set 744# CONFIG_SAMPLES is not set
745CONFIG_HAVE_ARCH_KGDB=y
730CONFIG_SH_STANDARD_BIOS=y 746CONFIG_SH_STANDARD_BIOS=y
731# CONFIG_EARLY_SCIF_CONSOLE is not set 747# CONFIG_EARLY_SCIF_CONSOLE is not set
732CONFIG_EARLY_PRINTK=y 748CONFIG_EARLY_PRINTK=y
733# CONFIG_SH_KGDB is not set 749# CONFIG_MORE_COMPILE_OPTIONS is not set
734 750
735# 751#
736# Security options 752# Security options
@@ -745,6 +761,7 @@ CONFIG_CRYPTO=y
745# 761#
746# CONFIG_CRYPTO_FIPS is not set 762# CONFIG_CRYPTO_FIPS is not set
747# CONFIG_CRYPTO_MANAGER is not set 763# CONFIG_CRYPTO_MANAGER is not set
764# CONFIG_CRYPTO_MANAGER2 is not set
748# CONFIG_CRYPTO_GF128MUL is not set 765# CONFIG_CRYPTO_GF128MUL is not set
749# CONFIG_CRYPTO_NULL is not set 766# CONFIG_CRYPTO_NULL is not set
750# CONFIG_CRYPTO_CRYPTD is not set 767# CONFIG_CRYPTO_CRYPTD is not set
@@ -826,6 +843,7 @@ CONFIG_CRYPTO_HW=y
826# Library routines 843# Library routines
827# 844#
828CONFIG_BITREVERSE=y 845CONFIG_BITREVERSE=y
846CONFIG_GENERIC_FIND_LAST_BIT=y
829# CONFIG_CRC_CCITT is not set 847# CONFIG_CRC_CCITT is not set
830# CONFIG_CRC16 is not set 848# CONFIG_CRC16 is not set
831# CONFIG_CRC_T10DIF is not set 849# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig
index ae5cbe237fff..ed90a7e81099 100644
--- a/arch/sh/configs/shx3_defconfig
+++ b/arch/sh/configs/shx3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Tue Oct 21 12:16:25 2008 4# Fri Jan 9 18:10:57 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -18,6 +18,8 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y 19CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
20CONFIG_GENERIC_LOCKBREAK=y 20CONFIG_GENERIC_LOCKBREAK=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
21CONFIG_SYS_SUPPORTS_SMP=y 23CONFIG_SYS_SUPPORTS_SMP=y
22CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
23CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
@@ -79,6 +81,7 @@ CONFIG_UID16=y
79CONFIG_SYSCTL_SYSCALL=y 81CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
81CONFIG_KALLSYMS_ALL=y 83CONFIG_KALLSYMS_ALL=y
84CONFIG_KALLSYMS_STRIP_GENERATED=y
82# CONFIG_KALLSYMS_EXTRA_PASS is not set 85# CONFIG_KALLSYMS_EXTRA_PASS is not set
83CONFIG_HOTPLUG=y 86CONFIG_HOTPLUG=y
84CONFIG_PRINTK=y 87CONFIG_PRINTK=y
@@ -95,11 +98,11 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
98CONFIG_PCI_QUIRKS=y
99# CONFIG_SLAB is not set 101# CONFIG_SLAB is not set
100# CONFIG_SLUB is not set 102# CONFIG_SLUB is not set
101CONFIG_SLOB=y 103CONFIG_SLOB=y
102CONFIG_PROFILING=y 104CONFIG_PROFILING=y
105CONFIG_TRACEPOINTS=y
103# CONFIG_MARKERS is not set 106# CONFIG_MARKERS is not set
104CONFIG_OPROFILE=y 107CONFIG_OPROFILE=y
105CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
@@ -113,7 +116,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y
113CONFIG_HAVE_CLK=y 116CONFIG_HAVE_CLK=y
114CONFIG_HAVE_GENERIC_DMA_COHERENT=y 117CONFIG_HAVE_GENERIC_DMA_COHERENT=y
115CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 120CONFIG_MODULES=y
119# CONFIG_MODULE_FORCE_LOAD is not set 121# CONFIG_MODULE_FORCE_LOAD is not set
@@ -121,12 +123,10 @@ CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 123# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 124# CONFIG_MODVERSIONS is not set
123# CONFIG_MODULE_SRCVERSION_ALL is not set 125# CONFIG_MODULE_SRCVERSION_ALL is not set
124CONFIG_KMOD=y
125CONFIG_STOP_MACHINE=y 126CONFIG_STOP_MACHINE=y
126CONFIG_BLOCK=y 127CONFIG_BLOCK=y
127# CONFIG_LBD is not set 128# CONFIG_LBD is not set
128# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set 131# CONFIG_BLK_DEV_INTEGRITY is not set
132 132
@@ -143,6 +143,11 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory" 144CONFIG_DEFAULT_IOSCHED="anticipatory"
145# CONFIG_CLASSIC_RCU is not set 145# CONFIG_CLASSIC_RCU is not set
146# CONFIG_TREE_RCU is not set
147CONFIG_PREEMPT_RCU=y
148CONFIG_RCU_TRACE=y
149# CONFIG_TREE_RCU_TRACE is not set
150CONFIG_PREEMPT_RCU_TRACE=y
146CONFIG_FREEZER=y 151CONFIG_FREEZER=y
147 152
148# 153#
@@ -152,6 +157,7 @@ CONFIG_CPU_SH4=y
152CONFIG_CPU_SH4A=y 157CONFIG_CPU_SH4A=y
153CONFIG_CPU_SHX3=y 158CONFIG_CPU_SHX3=y
154# CONFIG_CPU_SUBTYPE_SH7619 is not set 159# CONFIG_CPU_SUBTYPE_SH7619 is not set
160# CONFIG_CPU_SUBTYPE_SH7201 is not set
155# CONFIG_CPU_SUBTYPE_SH7203 is not set 161# CONFIG_CPU_SUBTYPE_SH7203 is not set
156# CONFIG_CPU_SUBTYPE_SH7206 is not set 162# CONFIG_CPU_SUBTYPE_SH7206 is not set
157# CONFIG_CPU_SUBTYPE_SH7263 is not set 163# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -230,7 +236,6 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y
230CONFIG_MEMORY_HOTREMOVE=y 236CONFIG_MEMORY_HOTREMOVE=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 237CONFIG_SPLIT_PTLOCK_CPUS=4
232CONFIG_MIGRATION=y 238CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set
234# CONFIG_PHYS_ADDR_T_64BIT is not set 239# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=0 240CONFIG_ZONE_DMA_FLAG=0
236CONFIG_NR_QUICK=2 241CONFIG_NR_QUICK=2
@@ -323,8 +328,6 @@ CONFIG_NR_CPUS=4
323# CONFIG_PREEMPT_NONE is not set 328# CONFIG_PREEMPT_NONE is not set
324# CONFIG_PREEMPT_VOLUNTARY is not set 329# CONFIG_PREEMPT_VOLUNTARY is not set
325CONFIG_PREEMPT=y 330CONFIG_PREEMPT=y
326CONFIG_PREEMPT_RCU=y
327CONFIG_RCU_TRACE=y
328 331
329# 332#
330# Boot options 333# Boot options
@@ -347,11 +350,19 @@ CONFIG_BINFMT_ELF=y
347# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 350# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
348# CONFIG_HAVE_AOUT is not set 351# CONFIG_HAVE_AOUT is not set
349CONFIG_BINFMT_MISC=y 352CONFIG_BINFMT_MISC=y
353
354#
355# Power management options (EXPERIMENTAL)
356#
357# CONFIG_PM is not set
358# CONFIG_CPU_IDLE is not set
350CONFIG_NET=y 359CONFIG_NET=y
351 360
352# 361#
353# Networking options 362# Networking options
354# 363#
364# CONFIG_NET_NS is not set
365CONFIG_COMPAT_NET_DEV_OPS=y
355# CONFIG_PACKET is not set 366# CONFIG_PACKET is not set
356# CONFIG_UNIX is not set 367# CONFIG_UNIX is not set
357CONFIG_XFRM=y 368CONFIG_XFRM=y
@@ -424,6 +435,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
424# CONFIG_ECONET is not set 435# CONFIG_ECONET is not set
425# CONFIG_WAN_ROUTER is not set 436# CONFIG_WAN_ROUTER is not set
426# CONFIG_NET_SCHED is not set 437# CONFIG_NET_SCHED is not set
438# CONFIG_DCB is not set
427 439
428# 440#
429# Network testing 441# Network testing
@@ -479,7 +491,9 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
479# CONFIG_BLK_DEV_HD is not set 491# CONFIG_BLK_DEV_HD is not set
480CONFIG_MISC_DEVICES=y 492CONFIG_MISC_DEVICES=y
481# CONFIG_EEPROM_93CX6 is not set 493# CONFIG_EEPROM_93CX6 is not set
494# CONFIG_ICS932S401 is not set
482# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_C2PORT is not set
483CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
484# CONFIG_IDE is not set 498# CONFIG_IDE is not set
485 499
@@ -522,6 +536,7 @@ CONFIG_SCSI_WAIT_SCAN=m
522# CONFIG_SCSI_SRP_ATTRS is not set 536# CONFIG_SCSI_SRP_ATTRS is not set
523CONFIG_SCSI_LOWLEVEL=y 537CONFIG_SCSI_LOWLEVEL=y
524# CONFIG_ISCSI_TCP is not set 538# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set
525# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
526# CONFIG_SCSI_DH is not set 541# CONFIG_SCSI_DH is not set
527CONFIG_ATA=y 542CONFIG_ATA=y
@@ -546,6 +561,7 @@ CONFIG_MII=y
546CONFIG_SMC91X=y 561CONFIG_SMC91X=y
547# CONFIG_ENC28J60 is not set 562# CONFIG_ENC28J60 is not set
548# CONFIG_SMC911X is not set 563# CONFIG_SMC911X is not set
564# CONFIG_SMSC911X is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set 565# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set 566# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set 567# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -613,6 +629,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
613CONFIG_SERIAL_CORE=y 629CONFIG_SERIAL_CORE=y
614CONFIG_SERIAL_CORE_CONSOLE=y 630CONFIG_SERIAL_CORE_CONSOLE=y
615CONFIG_UNIX98_PTYS=y 631CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
616CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
617CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
618# CONFIG_IPMI_HANDLER is not set 635# CONFIG_IPMI_HANDLER is not set
@@ -653,8 +670,8 @@ CONFIG_I2C_HELPER_AUTO=y
653# Miscellaneous I2C Chip support 670# Miscellaneous I2C Chip support
654# 671#
655# CONFIG_DS1682 is not set 672# CONFIG_DS1682 is not set
656# CONFIG_AT24 is not set 673# CONFIG_EEPROM_AT24 is not set
657# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_EEPROM_LEGACY is not set
658# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
659# CONFIG_PCF8575 is not set 676# CONFIG_PCF8575 is not set
660# CONFIG_SENSORS_PCA9539 is not set 677# CONFIG_SENSORS_PCA9539 is not set
@@ -678,7 +695,7 @@ CONFIG_SPI_MASTER=y
678# 695#
679# SPI Protocol Masters 696# SPI Protocol Masters
680# 697#
681# CONFIG_SPI_AT25 is not set 698# CONFIG_EEPROM_AT25 is not set
682# CONFIG_SPI_SPIDEV is not set 699# CONFIG_SPI_SPIDEV is not set
683# CONFIG_SPI_TLE62X0 is not set 700# CONFIG_SPI_TLE62X0 is not set
684# CONFIG_W1 is not set 701# CONFIG_W1 is not set
@@ -699,11 +716,11 @@ CONFIG_WATCHDOG=y
699# USB-based Watchdog Cards 716# USB-based Watchdog Cards
700# 717#
701# CONFIG_USBPCWATCHDOG is not set 718# CONFIG_USBPCWATCHDOG is not set
719CONFIG_SSB_POSSIBLE=y
702 720
703# 721#
704# Sonics Silicon Backplane 722# Sonics Silicon Backplane
705# 723#
706CONFIG_SSB_POSSIBLE=y
707# CONFIG_SSB is not set 724# CONFIG_SSB is not set
708 725
709# 726#
@@ -715,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y
715# CONFIG_MFD_TMIO is not set 732# CONFIG_MFD_TMIO is not set
716# CONFIG_MFD_WM8400 is not set 733# CONFIG_MFD_WM8400 is not set
717# CONFIG_MFD_WM8350_I2C is not set 734# CONFIG_MFD_WM8350_I2C is not set
735# CONFIG_REGULATOR is not set
718 736
719# 737#
720# Multimedia devices 738# Multimedia devices
@@ -763,15 +781,17 @@ CONFIG_USB_DEVICE_CLASS=y
763# CONFIG_USB_OTG_WHITELIST is not set 781# CONFIG_USB_OTG_WHITELIST is not set
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set 782# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765CONFIG_USB_MON=y 783CONFIG_USB_MON=y
784# CONFIG_USB_WUSB is not set
785# CONFIG_USB_WUSB_CBAF is not set
766 786
767# 787#
768# USB Host Controller Drivers 788# USB Host Controller Drivers
769# 789#
770# CONFIG_USB_C67X00_HCD is not set 790# CONFIG_USB_C67X00_HCD is not set
771# CONFIG_USB_ISP116X_HCD is not set 791# CONFIG_USB_ISP116X_HCD is not set
772# CONFIG_USB_ISP1760_HCD is not set
773# CONFIG_USB_SL811_HCD is not set 792# CONFIG_USB_SL811_HCD is not set
774CONFIG_USB_R8A66597_HCD=m 793CONFIG_USB_R8A66597_HCD=m
794# CONFIG_USB_HWA_HCD is not set
775# CONFIG_USB_GADGET_MUSB_HDRC is not set 795# CONFIG_USB_GADGET_MUSB_HDRC is not set
776 796
777# 797#
@@ -783,11 +803,11 @@ CONFIG_USB_R8A66597_HCD=m
783# CONFIG_USB_TMC is not set 803# CONFIG_USB_TMC is not set
784 804
785# 805#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 806# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
787# 807#
788 808
789# 809#
790# may also be needed; see USB_STORAGE Help for more information 810# see USB_STORAGE Help for more information
791# 811#
792# CONFIG_USB_STORAGE is not set 812# CONFIG_USB_STORAGE is not set
793# CONFIG_USB_LIBUSUAL is not set 813# CONFIG_USB_LIBUSUAL is not set
@@ -890,12 +910,14 @@ CONFIG_RTC_INTF_DEV=y
890# CONFIG_RTC_DRV_M41T80 is not set 910# CONFIG_RTC_DRV_M41T80 is not set
891# CONFIG_RTC_DRV_S35390A is not set 911# CONFIG_RTC_DRV_S35390A is not set
892# CONFIG_RTC_DRV_FM3130 is not set 912# CONFIG_RTC_DRV_FM3130 is not set
913# CONFIG_RTC_DRV_RX8581 is not set
893 914
894# 915#
895# SPI RTC drivers 916# SPI RTC drivers
896# 917#
897# CONFIG_RTC_DRV_M41T94 is not set 918# CONFIG_RTC_DRV_M41T94 is not set
898# CONFIG_RTC_DRV_DS1305 is not set 919# CONFIG_RTC_DRV_DS1305 is not set
920# CONFIG_RTC_DRV_DS1390 is not set
899# CONFIG_RTC_DRV_MAX6902 is not set 921# CONFIG_RTC_DRV_MAX6902 is not set
900# CONFIG_RTC_DRV_R9701 is not set 922# CONFIG_RTC_DRV_R9701 is not set
901# CONFIG_RTC_DRV_RS5C348 is not set 923# CONFIG_RTC_DRV_RS5C348 is not set
@@ -981,10 +1003,7 @@ CONFIG_TMPFS=y
981CONFIG_HUGETLBFS=y 1003CONFIG_HUGETLBFS=y
982CONFIG_HUGETLB_PAGE=y 1004CONFIG_HUGETLB_PAGE=y
983# CONFIG_CONFIGFS_FS is not set 1005# CONFIG_CONFIGFS_FS is not set
984 1006CONFIG_MISC_FILESYSTEMS=y
985#
986# Miscellaneous filesystems
987#
988# CONFIG_ADFS_FS is not set 1007# CONFIG_ADFS_FS is not set
989# CONFIG_AFFS_FS is not set 1008# CONFIG_AFFS_FS is not set
990# CONFIG_HFS_FS is not set 1009# CONFIG_HFS_FS is not set
@@ -1049,6 +1068,7 @@ CONFIG_DEBUG_PREEMPT=y
1049# CONFIG_LOCK_STAT is not set 1068# CONFIG_LOCK_STAT is not set
1050# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1069# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1051# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1070# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1071CONFIG_STACKTRACE=y
1052# CONFIG_DEBUG_KOBJECT is not set 1072# CONFIG_DEBUG_KOBJECT is not set
1053CONFIG_DEBUG_BUGVERBOSE=y 1073CONFIG_DEBUG_BUGVERBOSE=y
1054# CONFIG_DEBUG_INFO is not set 1074# CONFIG_DEBUG_INFO is not set
@@ -1057,6 +1077,7 @@ CONFIG_DEBUG_VM=y
1057# CONFIG_DEBUG_MEMORY_INIT is not set 1077# CONFIG_DEBUG_MEMORY_INIT is not set
1058# CONFIG_DEBUG_LIST is not set 1078# CONFIG_DEBUG_LIST is not set
1059# CONFIG_DEBUG_SG is not set 1079# CONFIG_DEBUG_SG is not set
1080# CONFIG_DEBUG_NOTIFIERS is not set
1060CONFIG_FRAME_POINTER=y 1081CONFIG_FRAME_POINTER=y
1061# CONFIG_RCU_TORTURE_TEST is not set 1082# CONFIG_RCU_TORTURE_TEST is not set
1062# CONFIG_KPROBES_SANITY_TEST is not set 1083# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1066,16 +1087,28 @@ CONFIG_FRAME_POINTER=y
1066# CONFIG_FAULT_INJECTION is not set 1087# CONFIG_FAULT_INJECTION is not set
1067# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1088# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1068CONFIG_NOP_TRACER=y 1089CONFIG_NOP_TRACER=y
1069CONFIG_HAVE_FTRACE=y 1090CONFIG_HAVE_FUNCTION_TRACER=y
1070# CONFIG_FTRACE is not set 1091CONFIG_HAVE_DYNAMIC_FTRACE=y
1092CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1093CONFIG_RING_BUFFER=y
1094CONFIG_TRACING=y
1095
1096#
1097# Tracers
1098#
1099# CONFIG_FUNCTION_TRACER is not set
1071# CONFIG_IRQSOFF_TRACER is not set 1100# CONFIG_IRQSOFF_TRACER is not set
1072# CONFIG_PREEMPT_TRACER is not set 1101# CONFIG_PREEMPT_TRACER is not set
1073# CONFIG_SCHED_TRACER is not set 1102# CONFIG_SCHED_TRACER is not set
1074# CONFIG_CONTEXT_SWITCH_TRACER is not set 1103# CONFIG_CONTEXT_SWITCH_TRACER is not set
1075# CONFIG_BOOT_TRACER is not set 1104# CONFIG_BOOT_TRACER is not set
1105# CONFIG_TRACE_BRANCH_PROFILING is not set
1076# CONFIG_STACK_TRACER is not set 1106# CONFIG_STACK_TRACER is not set
1107# CONFIG_FTRACE_STARTUP_TEST is not set
1077# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1108# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1078# CONFIG_SAMPLES is not set 1109# CONFIG_SAMPLES is not set
1110CONFIG_HAVE_ARCH_KGDB=y
1111# CONFIG_KGDB is not set
1079CONFIG_SH_STANDARD_BIOS=y 1112CONFIG_SH_STANDARD_BIOS=y
1080# CONFIG_EARLY_SCIF_CONSOLE is not set 1113# CONFIG_EARLY_SCIF_CONSOLE is not set
1081CONFIG_EARLY_PRINTK=y 1114CONFIG_EARLY_PRINTK=y
@@ -1083,7 +1116,9 @@ CONFIG_EARLY_PRINTK=y
1083CONFIG_DEBUG_STACKOVERFLOW=y 1116CONFIG_DEBUG_STACKOVERFLOW=y
1084CONFIG_DEBUG_STACK_USAGE=y 1117CONFIG_DEBUG_STACK_USAGE=y
1085# CONFIG_IRQSTACKS is not set 1118# CONFIG_IRQSTACKS is not set
1086# CONFIG_SH_KGDB is not set 1119CONFIG_DUMP_CODE=y
1120# CONFIG_SH_NO_BSS_INIT is not set
1121# CONFIG_MORE_COMPILE_OPTIONS is not set
1087 1122
1088# 1123#
1089# Security options 1124# Security options
@@ -1099,6 +1134,7 @@ CONFIG_CRYPTO=y
1099# 1134#
1100# CONFIG_CRYPTO_FIPS is not set 1135# CONFIG_CRYPTO_FIPS is not set
1101# CONFIG_CRYPTO_MANAGER is not set 1136# CONFIG_CRYPTO_MANAGER is not set
1137# CONFIG_CRYPTO_MANAGER2 is not set
1102# CONFIG_CRYPTO_GF128MUL is not set 1138# CONFIG_CRYPTO_GF128MUL is not set
1103# CONFIG_CRYPTO_NULL is not set 1139# CONFIG_CRYPTO_NULL is not set
1104# CONFIG_CRYPTO_CRYPTD is not set 1140# CONFIG_CRYPTO_CRYPTD is not set
@@ -1181,6 +1217,7 @@ CONFIG_CRYPTO_HW=y
1181# Library routines 1217# Library routines
1182# 1218#
1183CONFIG_BITREVERSE=y 1219CONFIG_BITREVERSE=y
1220CONFIG_GENERIC_FIND_LAST_BIT=y
1184# CONFIG_CRC_CCITT is not set 1221# CONFIG_CRC_CCITT is not set
1185# CONFIG_CRC16 is not set 1222# CONFIG_CRC16 is not set
1186# CONFIG_CRC_T10DIF is not set 1223# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig
index b4ca5110958f..98377e502650 100644
--- a/arch/sh/configs/snapgear_defconfig
+++ b/arch/sh/configs/snapgear_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:55:03 2008 4# Fri Jan 9 18:14:08 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -76,7 +78,6 @@ CONFIG_SLAB=y
76# CONFIG_SLUB is not set 78# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
78# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
79# CONFIG_MARKERS is not set
80CONFIG_HAVE_OPROFILE=y 81CONFIG_HAVE_OPROFILE=y
81CONFIG_HAVE_IOREMAP_PROT=y 82CONFIG_HAVE_IOREMAP_PROT=y
82CONFIG_HAVE_KPROBES=y 83CONFIG_HAVE_KPROBES=y
@@ -86,13 +87,11 @@ CONFIG_HAVE_CLK=y
86CONFIG_HAVE_GENERIC_DMA_COHERENT=y 87CONFIG_HAVE_GENERIC_DMA_COHERENT=y
87CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
88CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
89# CONFIG_TINY_SHMEM is not set
90CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
91# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
92CONFIG_BLOCK=y 92CONFIG_BLOCK=y
93# CONFIG_LBD is not set 93# CONFIG_LBD is not set
94# CONFIG_BLK_DEV_IO_TRACE is not set 94# CONFIG_BLK_DEV_IO_TRACE is not set
95# CONFIG_LSF is not set
96# CONFIG_BLK_DEV_BSG is not set 95# CONFIG_BLK_DEV_BSG is not set
97# CONFIG_BLK_DEV_INTEGRITY is not set 96# CONFIG_BLK_DEV_INTEGRITY is not set
98 97
@@ -109,6 +108,10 @@ CONFIG_DEFAULT_AS=y
109# CONFIG_DEFAULT_NOOP is not set 108# CONFIG_DEFAULT_NOOP is not set
110CONFIG_DEFAULT_IOSCHED="anticipatory" 109CONFIG_DEFAULT_IOSCHED="anticipatory"
111CONFIG_CLASSIC_RCU=y 110CONFIG_CLASSIC_RCU=y
111# CONFIG_TREE_RCU is not set
112# CONFIG_PREEMPT_RCU is not set
113# CONFIG_TREE_RCU_TRACE is not set
114# CONFIG_PREEMPT_RCU_TRACE is not set
112# CONFIG_FREEZER is not set 115# CONFIG_FREEZER is not set
113 116
114# 117#
@@ -116,6 +119,7 @@ CONFIG_CLASSIC_RCU=y
116# 119#
117CONFIG_CPU_SH4=y 120CONFIG_CPU_SH4=y
118# CONFIG_CPU_SUBTYPE_SH7619 is not set 121# CONFIG_CPU_SUBTYPE_SH7619 is not set
122# CONFIG_CPU_SUBTYPE_SH7201 is not set
119# CONFIG_CPU_SUBTYPE_SH7203 is not set 123# CONFIG_CPU_SUBTYPE_SH7203 is not set
120# CONFIG_CPU_SUBTYPE_SH7206 is not set 124# CONFIG_CPU_SUBTYPE_SH7206 is not set
121# CONFIG_CPU_SUBTYPE_SH7263 is not set 125# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -179,7 +183,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
179CONFIG_SPARSEMEM_STATIC=y 183CONFIG_SPARSEMEM_STATIC=y
180CONFIG_PAGEFLAGS_EXTENDED=y 184CONFIG_PAGEFLAGS_EXTENDED=y
181CONFIG_SPLIT_PTLOCK_CPUS=4 185CONFIG_SPLIT_PTLOCK_CPUS=4
182# CONFIG_RESOURCES_64BIT is not set
183# CONFIG_PHYS_ADDR_T_64BIT is not set 186# CONFIG_PHYS_ADDR_T_64BIT is not set
184CONFIG_ZONE_DMA_FLAG=0 187CONFIG_ZONE_DMA_FLAG=0
185CONFIG_NR_QUICK=2 188CONFIG_NR_QUICK=2
@@ -282,6 +285,7 @@ CONFIG_PCI=y
282CONFIG_SH_PCIDMA_NONCOHERENT=y 285CONFIG_SH_PCIDMA_NONCOHERENT=y
283CONFIG_PCI_AUTO=y 286CONFIG_PCI_AUTO=y
284CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 287CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
288# CONFIG_PCIEPORTBUS is not set
285# CONFIG_ARCH_SUPPORTS_MSI is not set 289# CONFIG_ARCH_SUPPORTS_MSI is not set
286CONFIG_PCI_LEGACY=y 290CONFIG_PCI_LEGACY=y
287 291
@@ -292,11 +296,18 @@ CONFIG_BINFMT_ELF=y
292# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 296# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
293# CONFIG_HAVE_AOUT is not set 297# CONFIG_HAVE_AOUT is not set
294# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
299
300#
301# Power management options (EXPERIMENTAL)
302#
303# CONFIG_PM is not set
304# CONFIG_CPU_IDLE is not set
295CONFIG_NET=y 305CONFIG_NET=y
296 306
297# 307#
298# Networking options 308# Networking options
299# 309#
310CONFIG_COMPAT_NET_DEV_OPS=y
300# CONFIG_PACKET is not set 311# CONFIG_PACKET is not set
301# CONFIG_UNIX is not set 312# CONFIG_UNIX is not set
302# CONFIG_NET_KEY is not set 313# CONFIG_NET_KEY is not set
@@ -342,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
344# CONFIG_NET_SCHED is not set 355# CONFIG_NET_SCHED is not set
356# CONFIG_DCB is not set
345 357
346# 358#
347# Network testing 359# Network testing
@@ -357,8 +369,8 @@ CONFIG_WIRELESS=y
357# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
358# CONFIG_WIRELESS_OLD_REGULATORY is not set 370# CONFIG_WIRELESS_OLD_REGULATORY is not set
359# CONFIG_WIRELESS_EXT is not set 371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_LIB80211 is not set
360# CONFIG_MAC80211 is not set 373# CONFIG_MAC80211 is not set
361# CONFIG_IEEE80211 is not set
362# CONFIG_RFKILL is not set 374# CONFIG_RFKILL is not set
363# CONFIG_NET_9P is not set 375# CONFIG_NET_9P is not set
364 376
@@ -515,6 +527,7 @@ CONFIG_MII=y
515# CONFIG_NET_VENDOR_3COM is not set 527# CONFIG_NET_VENDOR_3COM is not set
516# CONFIG_SMC91X is not set 528# CONFIG_SMC91X is not set
517# CONFIG_SMC911X is not set 529# CONFIG_SMC911X is not set
530# CONFIG_SMSC911X is not set
518# CONFIG_NET_TULIP is not set 531# CONFIG_NET_TULIP is not set
519# CONFIG_HP100 is not set 532# CONFIG_HP100 is not set
520# CONFIG_IBM_NEW_EMAC_ZMII is not set 533# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -530,7 +543,6 @@ CONFIG_NET_PCI=y
530# CONFIG_ADAPTEC_STARFIRE is not set 543# CONFIG_ADAPTEC_STARFIRE is not set
531# CONFIG_B44 is not set 544# CONFIG_B44 is not set
532# CONFIG_FORCEDETH is not set 545# CONFIG_FORCEDETH is not set
533# CONFIG_EEPRO100 is not set
534# CONFIG_E100 is not set 546# CONFIG_E100 is not set
535# CONFIG_FEALNX is not set 547# CONFIG_FEALNX is not set
536# CONFIG_NATSEMI is not set 548# CONFIG_NATSEMI is not set
@@ -544,6 +556,7 @@ CONFIG_8139TOO_PIO=y
544# CONFIG_R6040 is not set 556# CONFIG_R6040 is not set
545# CONFIG_SIS900 is not set 557# CONFIG_SIS900 is not set
546# CONFIG_EPIC100 is not set 558# CONFIG_EPIC100 is not set
559# CONFIG_SMSC9420 is not set
547# CONFIG_SUNDANCE is not set 560# CONFIG_SUNDANCE is not set
548# CONFIG_TLAN is not set 561# CONFIG_TLAN is not set
549# CONFIG_VIA_RHINE is not set 562# CONFIG_VIA_RHINE is not set
@@ -624,6 +637,7 @@ CONFIG_SERIAL_CORE=y
624CONFIG_SERIAL_CORE_CONSOLE=y 637CONFIG_SERIAL_CORE_CONSOLE=y
625# CONFIG_SERIAL_JSM is not set 638# CONFIG_SERIAL_JSM is not set
626CONFIG_UNIX98_PTYS=y 639CONFIG_UNIX98_PTYS=y
640# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
627CONFIG_LEGACY_PTYS=y 641CONFIG_LEGACY_PTYS=y
628CONFIG_LEGACY_PTY_COUNT=256 642CONFIG_LEGACY_PTY_COUNT=256
629# CONFIG_IPMI_HANDLER is not set 643# CONFIG_IPMI_HANDLER is not set
@@ -641,11 +655,11 @@ CONFIG_DEVPORT=y
641# CONFIG_THERMAL is not set 655# CONFIG_THERMAL is not set
642# CONFIG_THERMAL_HWMON is not set 656# CONFIG_THERMAL_HWMON is not set
643# CONFIG_WATCHDOG is not set 657# CONFIG_WATCHDOG is not set
658CONFIG_SSB_POSSIBLE=y
644 659
645# 660#
646# Sonics Silicon Backplane 661# Sonics Silicon Backplane
647# 662#
648CONFIG_SSB_POSSIBLE=y
649# CONFIG_SSB is not set 663# CONFIG_SSB is not set
650 664
651# 665#
@@ -655,7 +669,7 @@ CONFIG_SSB_POSSIBLE=y
655# CONFIG_MFD_SM501 is not set 669# CONFIG_MFD_SM501 is not set
656# CONFIG_HTC_PASIC3 is not set 670# CONFIG_HTC_PASIC3 is not set
657# CONFIG_MFD_TMIO is not set 671# CONFIG_MFD_TMIO is not set
658# CONFIG_MFD_WM8400 is not set 672# CONFIG_REGULATOR is not set
659 673
660# 674#
661# Multimedia devices 675# Multimedia devices
@@ -689,6 +703,7 @@ CONFIG_SSB_POSSIBLE=y
689# CONFIG_SOUND is not set 703# CONFIG_SOUND is not set
690# CONFIG_HID_SUPPORT is not set 704# CONFIG_HID_SUPPORT is not set
691# CONFIG_USB_SUPPORT is not set 705# CONFIG_USB_SUPPORT is not set
706# CONFIG_UWB is not set
692# CONFIG_MMC is not set 707# CONFIG_MMC is not set
693# CONFIG_MEMSTICK is not set 708# CONFIG_MEMSTICK is not set
694# CONFIG_NEW_LEDS is not set 709# CONFIG_NEW_LEDS is not set
@@ -746,10 +761,7 @@ CONFIG_TMPFS=y
746# CONFIG_HUGETLBFS is not set 761# CONFIG_HUGETLBFS is not set
747# CONFIG_HUGETLB_PAGE is not set 762# CONFIG_HUGETLB_PAGE is not set
748# CONFIG_CONFIGFS_FS is not set 763# CONFIG_CONFIGFS_FS is not set
749 764CONFIG_MISC_FILESYSTEMS=y
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set 765# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set 766# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set 767# CONFIG_HFS_FS is not set
@@ -801,13 +813,19 @@ CONFIG_FRAME_WARN=1024
801# CONFIG_DEBUG_MEMORY_INIT is not set 813# CONFIG_DEBUG_MEMORY_INIT is not set
802# CONFIG_RCU_CPU_STALL_DETECTOR is not set 814# CONFIG_RCU_CPU_STALL_DETECTOR is not set
803# CONFIG_LATENCYTOP is not set 815# CONFIG_LATENCYTOP is not set
804CONFIG_NOP_TRACER=y 816CONFIG_HAVE_FUNCTION_TRACER=y
805CONFIG_HAVE_FTRACE=y 817CONFIG_HAVE_DYNAMIC_FTRACE=y
818CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
819
820#
821# Tracers
822#
806# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 823# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
807# CONFIG_SAMPLES is not set 824# CONFIG_SAMPLES is not set
825CONFIG_HAVE_ARCH_KGDB=y
808# CONFIG_SH_STANDARD_BIOS is not set 826# CONFIG_SH_STANDARD_BIOS is not set
809# CONFIG_EARLY_SCIF_CONSOLE is not set 827# CONFIG_EARLY_SCIF_CONSOLE is not set
810# CONFIG_SH_KGDB is not set 828# CONFIG_MORE_COMPILE_OPTIONS is not set
811 829
812# 830#
813# Security options 831# Security options
@@ -822,6 +840,7 @@ CONFIG_HAVE_FTRACE=y
822# Library routines 840# Library routines
823# 841#
824CONFIG_BITREVERSE=y 842CONFIG_BITREVERSE=y
843CONFIG_GENERIC_FIND_LAST_BIT=y
825# CONFIG_CRC_CCITT is not set 844# CONFIG_CRC_CCITT is not set
826# CONFIG_CRC16 is not set 845# CONFIG_CRC16 is not set
827# CONFIG_CRC_T10DIF is not set 846# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig
index 1711f0f70d72..72703bf57afa 100644
--- a/arch/sh/configs/systemh_defconfig
+++ b/arch/sh/configs/systemh_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:56:48 2008 4# Fri Jan 9 18:15:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_STACKTRACE_SUPPORT=y 21CONFIG_STACKTRACE_SUPPORT=y
20CONFIG_LOCKDEP_SUPPORT=y 22CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_HAVE_LATENCYTOP_SUPPORT=y 23CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -68,12 +70,10 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 70CONFIG_SHMEM=y
69CONFIG_AIO=y 71CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 72CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_PCI_QUIRKS=y
72CONFIG_SLAB=y 73CONFIG_SLAB=y
73# CONFIG_SLUB is not set 74# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
75# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set
77CONFIG_HAVE_OPROFILE=y 77CONFIG_HAVE_OPROFILE=y
78# CONFIG_KPROBES is not set 78# CONFIG_KPROBES is not set
79CONFIG_HAVE_IOREMAP_PROT=y 79CONFIG_HAVE_IOREMAP_PROT=y
@@ -84,7 +84,6 @@ CONFIG_HAVE_CLK=y
84CONFIG_HAVE_GENERIC_DMA_COHERENT=y 84CONFIG_HAVE_GENERIC_DMA_COHERENT=y
85CONFIG_SLABINFO=y 85CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
87# CONFIG_TINY_SHMEM is not set
88CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
89CONFIG_MODULES=y 88CONFIG_MODULES=y
90# CONFIG_MODULE_FORCE_LOAD is not set 89# CONFIG_MODULE_FORCE_LOAD is not set
@@ -92,11 +91,9 @@ CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODULE_FORCE_UNLOAD is not set 91# CONFIG_MODULE_FORCE_UNLOAD is not set
93# CONFIG_MODVERSIONS is not set 92# CONFIG_MODVERSIONS is not set
94# CONFIG_MODULE_SRCVERSION_ALL is not set 93# CONFIG_MODULE_SRCVERSION_ALL is not set
95CONFIG_KMOD=y
96CONFIG_BLOCK=y 94CONFIG_BLOCK=y
97# CONFIG_LBD is not set 95# CONFIG_LBD is not set
98# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
99# CONFIG_LSF is not set
100# CONFIG_BLK_DEV_BSG is not set 97# CONFIG_BLK_DEV_BSG is not set
101# CONFIG_BLK_DEV_INTEGRITY is not set 98# CONFIG_BLK_DEV_INTEGRITY is not set
102 99
@@ -113,6 +110,10 @@ CONFIG_DEFAULT_AS=y
113# CONFIG_DEFAULT_NOOP is not set 110# CONFIG_DEFAULT_NOOP is not set
114CONFIG_DEFAULT_IOSCHED="anticipatory" 111CONFIG_DEFAULT_IOSCHED="anticipatory"
115CONFIG_CLASSIC_RCU=y 112CONFIG_CLASSIC_RCU=y
113# CONFIG_TREE_RCU is not set
114# CONFIG_PREEMPT_RCU is not set
115# CONFIG_TREE_RCU_TRACE is not set
116# CONFIG_PREEMPT_RCU_TRACE is not set
116# CONFIG_FREEZER is not set 117# CONFIG_FREEZER is not set
117 118
118# 119#
@@ -120,6 +121,7 @@ CONFIG_CLASSIC_RCU=y
120# 121#
121CONFIG_CPU_SH4=y 122CONFIG_CPU_SH4=y
122# CONFIG_CPU_SUBTYPE_SH7619 is not set 123# CONFIG_CPU_SUBTYPE_SH7619 is not set
124# CONFIG_CPU_SUBTYPE_SH7201 is not set
123# CONFIG_CPU_SUBTYPE_SH7203 is not set 125# CONFIG_CPU_SUBTYPE_SH7203 is not set
124# CONFIG_CPU_SUBTYPE_SH7206 is not set 126# CONFIG_CPU_SUBTYPE_SH7206 is not set
125# CONFIG_CPU_SUBTYPE_SH7263 is not set 127# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -183,7 +185,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
183CONFIG_SPARSEMEM_STATIC=y 185CONFIG_SPARSEMEM_STATIC=y
184CONFIG_PAGEFLAGS_EXTENDED=y 186CONFIG_PAGEFLAGS_EXTENDED=y
185CONFIG_SPLIT_PTLOCK_CPUS=4 187CONFIG_SPLIT_PTLOCK_CPUS=4
186# CONFIG_RESOURCES_64BIT is not set
187# CONFIG_PHYS_ADDR_T_64BIT is not set 188# CONFIG_PHYS_ADDR_T_64BIT is not set
188CONFIG_ZONE_DMA_FLAG=0 189CONFIG_ZONE_DMA_FLAG=0
189CONFIG_NR_QUICK=2 190CONFIG_NR_QUICK=2
@@ -264,7 +265,6 @@ CONFIG_HZ=250
264# CONFIG_PREEMPT_NONE is not set 265# CONFIG_PREEMPT_NONE is not set
265# CONFIG_PREEMPT_VOLUNTARY is not set 266# CONFIG_PREEMPT_VOLUNTARY is not set
266CONFIG_PREEMPT=y 267CONFIG_PREEMPT=y
267# CONFIG_PREEMPT_RCU is not set
268CONFIG_GUSA=y 268CONFIG_GUSA=y
269# CONFIG_GUSA_RB is not set 269# CONFIG_GUSA_RB is not set
270 270
@@ -288,6 +288,12 @@ CONFIG_BINFMT_ELF=y
288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 288# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
289# CONFIG_HAVE_AOUT is not set 289# CONFIG_HAVE_AOUT is not set
290# CONFIG_BINFMT_MISC is not set 290# CONFIG_BINFMT_MISC is not set
291
292#
293# Power management options (EXPERIMENTAL)
294#
295# CONFIG_PM is not set
296# CONFIG_CPU_IDLE is not set
291# CONFIG_NET is not set 297# CONFIG_NET is not set
292 298
293# 299#
@@ -314,6 +320,7 @@ CONFIG_BLK_DEV_RAM_SIZE=1024
314CONFIG_MISC_DEVICES=y 320CONFIG_MISC_DEVICES=y
315# CONFIG_EEPROM_93CX6 is not set 321# CONFIG_EEPROM_93CX6 is not set
316# CONFIG_ENCLOSURE_SERVICES is not set 322# CONFIG_ENCLOSURE_SERVICES is not set
323# CONFIG_C2PORT is not set
317CONFIG_HAVE_IDE=y 324CONFIG_HAVE_IDE=y
318# CONFIG_IDE is not set 325# CONFIG_IDE is not set
319 326
@@ -360,6 +367,7 @@ CONFIG_DEVKMEM=y
360# 367#
361# CONFIG_SERIAL_SH_SCI is not set 368# CONFIG_SERIAL_SH_SCI is not set
362CONFIG_UNIX98_PTYS=y 369CONFIG_UNIX98_PTYS=y
370# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
363CONFIG_LEGACY_PTYS=y 371CONFIG_LEGACY_PTYS=y
364CONFIG_LEGACY_PTY_COUNT=256 372CONFIG_LEGACY_PTY_COUNT=256
365# CONFIG_IPMI_HANDLER is not set 373# CONFIG_IPMI_HANDLER is not set
@@ -387,11 +395,11 @@ CONFIG_HWMON=y
387# CONFIG_THERMAL is not set 395# CONFIG_THERMAL is not set
388# CONFIG_THERMAL_HWMON is not set 396# CONFIG_THERMAL_HWMON is not set
389# CONFIG_WATCHDOG is not set 397# CONFIG_WATCHDOG is not set
398CONFIG_SSB_POSSIBLE=y
390 399
391# 400#
392# Sonics Silicon Backplane 401# Sonics Silicon Backplane
393# 402#
394CONFIG_SSB_POSSIBLE=y
395# CONFIG_SSB is not set 403# CONFIG_SSB is not set
396 404
397# 405#
@@ -401,7 +409,7 @@ CONFIG_SSB_POSSIBLE=y
401# CONFIG_MFD_SM501 is not set 409# CONFIG_MFD_SM501 is not set
402# CONFIG_HTC_PASIC3 is not set 410# CONFIG_HTC_PASIC3 is not set
403# CONFIG_MFD_TMIO is not set 411# CONFIG_MFD_TMIO is not set
404# CONFIG_MFD_WM8400 is not set 412# CONFIG_REGULATOR is not set
405 413
406# 414#
407# Multimedia devices 415# Multimedia devices
@@ -444,7 +452,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
444# 452#
445 453
446# 454#
447# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 455# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
448# 456#
449# CONFIG_USB_GADGET is not set 457# CONFIG_USB_GADGET is not set
450# CONFIG_MMC is not set 458# CONFIG_MMC is not set
@@ -501,10 +509,7 @@ CONFIG_TMPFS=y
501# CONFIG_HUGETLBFS is not set 509# CONFIG_HUGETLBFS is not set
502# CONFIG_HUGETLB_PAGE is not set 510# CONFIG_HUGETLB_PAGE is not set
503# CONFIG_CONFIGFS_FS is not set 511# CONFIG_CONFIGFS_FS is not set
504 512CONFIG_MISC_FILESYSTEMS=y
505#
506# Miscellaneous filesystems
507#
508# CONFIG_ADFS_FS is not set 513# CONFIG_ADFS_FS is not set
509# CONFIG_AFFS_FS is not set 514# CONFIG_AFFS_FS is not set
510# CONFIG_HFS_FS is not set 515# CONFIG_HFS_FS is not set
@@ -546,13 +551,19 @@ CONFIG_FRAME_WARN=1024
546# CONFIG_DEBUG_MEMORY_INIT is not set 551# CONFIG_DEBUG_MEMORY_INIT is not set
547# CONFIG_RCU_CPU_STALL_DETECTOR is not set 552# CONFIG_RCU_CPU_STALL_DETECTOR is not set
548# CONFIG_LATENCYTOP is not set 553# CONFIG_LATENCYTOP is not set
549CONFIG_NOP_TRACER=y 554CONFIG_HAVE_FUNCTION_TRACER=y
550CONFIG_HAVE_FTRACE=y 555CONFIG_HAVE_DYNAMIC_FTRACE=y
556CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
557
558#
559# Tracers
560#
551# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 561# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
552# CONFIG_SAMPLES is not set 562# CONFIG_SAMPLES is not set
563CONFIG_HAVE_ARCH_KGDB=y
553# CONFIG_SH_STANDARD_BIOS is not set 564# CONFIG_SH_STANDARD_BIOS is not set
554# CONFIG_EARLY_SCIF_CONSOLE is not set 565# CONFIG_EARLY_SCIF_CONSOLE is not set
555# CONFIG_SH_KGDB is not set 566# CONFIG_MORE_COMPILE_OPTIONS is not set
556 567
557# 568#
558# Security options 569# Security options
@@ -567,6 +578,7 @@ CONFIG_HAVE_FTRACE=y
567# Library routines 578# Library routines
568# 579#
569CONFIG_BITREVERSE=y 580CONFIG_BITREVERSE=y
581CONFIG_GENERIC_FIND_LAST_BIT=y
570# CONFIG_CRC_CCITT is not set 582# CONFIG_CRC_CCITT is not set
571# CONFIG_CRC16 is not set 583# CONFIG_CRC16 is not set
572# CONFIG_CRC_T10DIF is not set 584# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index ea3c5e838fc3..01fc1defb33b 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27 3# Linux kernel version: 2.6.28
4# Wed Oct 22 19:58:12 2008 4# Fri Jan 9 18:17:19 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_PCI=y 21CONFIG_SYS_SUPPORTS_PCI=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -79,7 +81,6 @@ CONFIG_SLAB=y
79# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 83# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y 84CONFIG_HAVE_OPROFILE=y
84# CONFIG_KPROBES is not set 85# CONFIG_KPROBES is not set
85CONFIG_HAVE_IOREMAP_PROT=y 86CONFIG_HAVE_IOREMAP_PROT=y
@@ -90,7 +91,6 @@ CONFIG_HAVE_CLK=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y 91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 94CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 95CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 96# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,11 +98,9 @@ CONFIG_MODULE_UNLOAD=y
98CONFIG_MODULE_FORCE_UNLOAD=y 98CONFIG_MODULE_FORCE_UNLOAD=y
99# CONFIG_MODVERSIONS is not set 99# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 100# CONFIG_MODULE_SRCVERSION_ALL is not set
101CONFIG_KMOD=y
102CONFIG_BLOCK=y 101CONFIG_BLOCK=y
103# CONFIG_LBD is not set 102# CONFIG_LBD is not set
104# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
105# CONFIG_LSF is not set
106# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
108 106
@@ -119,6 +117,10 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
120CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
121CONFIG_CLASSIC_RCU=y 119CONFIG_CLASSIC_RCU=y
120# CONFIG_TREE_RCU is not set
121# CONFIG_PREEMPT_RCU is not set
122# CONFIG_TREE_RCU_TRACE is not set
123# CONFIG_PREEMPT_RCU_TRACE is not set
122# CONFIG_FREEZER is not set 124# CONFIG_FREEZER is not set
123 125
124# 126#
@@ -126,6 +128,7 @@ CONFIG_CLASSIC_RCU=y
126# 128#
127CONFIG_CPU_SH4=y 129CONFIG_CPU_SH4=y
128# CONFIG_CPU_SUBTYPE_SH7619 is not set 130# CONFIG_CPU_SUBTYPE_SH7619 is not set
131# CONFIG_CPU_SUBTYPE_SH7201 is not set
129# CONFIG_CPU_SUBTYPE_SH7203 is not set 132# CONFIG_CPU_SUBTYPE_SH7203 is not set
130# CONFIG_CPU_SUBTYPE_SH7206 is not set 133# CONFIG_CPU_SUBTYPE_SH7206 is not set
131# CONFIG_CPU_SUBTYPE_SH7263 is not set 134# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -189,7 +192,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
189CONFIG_SPARSEMEM_STATIC=y 192CONFIG_SPARSEMEM_STATIC=y
190CONFIG_PAGEFLAGS_EXTENDED=y 193CONFIG_PAGEFLAGS_EXTENDED=y
191CONFIG_SPLIT_PTLOCK_CPUS=4 194CONFIG_SPLIT_PTLOCK_CPUS=4
192# CONFIG_RESOURCES_64BIT is not set
193# CONFIG_PHYS_ADDR_T_64BIT is not set 195# CONFIG_PHYS_ADDR_T_64BIT is not set
194CONFIG_ZONE_DMA_FLAG=0 196CONFIG_ZONE_DMA_FLAG=0
195CONFIG_NR_QUICK=2 197CONFIG_NR_QUICK=2
@@ -293,6 +295,7 @@ CONFIG_PCI=y
293CONFIG_SH_PCIDMA_NONCOHERENT=y 295CONFIG_SH_PCIDMA_NONCOHERENT=y
294CONFIG_PCI_AUTO=y 296CONFIG_PCI_AUTO=y
295CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 297CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
298# CONFIG_PCIEPORTBUS is not set
296# CONFIG_ARCH_SUPPORTS_MSI is not set 299# CONFIG_ARCH_SUPPORTS_MSI is not set
297CONFIG_PCI_LEGACY=y 300CONFIG_PCI_LEGACY=y
298# CONFIG_PCI_DEBUG is not set 301# CONFIG_PCI_DEBUG is not set
@@ -309,11 +312,18 @@ CONFIG_BINFMT_ELF=y
309# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 312# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
310# CONFIG_HAVE_AOUT is not set 313# CONFIG_HAVE_AOUT is not set
311# CONFIG_BINFMT_MISC is not set 314# CONFIG_BINFMT_MISC is not set
315
316#
317# Power management options (EXPERIMENTAL)
318#
319# CONFIG_PM is not set
320# CONFIG_CPU_IDLE is not set
312CONFIG_NET=y 321CONFIG_NET=y
313 322
314# 323#
315# Networking options 324# Networking options
316# 325#
326CONFIG_COMPAT_NET_DEV_OPS=y
317CONFIG_PACKET=y 327CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y 328CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 329CONFIG_UNIX=y
@@ -507,6 +517,7 @@ CONFIG_NET_SCH_TBF=m
507CONFIG_NET_SCH_GRED=m 517CONFIG_NET_SCH_GRED=m
508CONFIG_NET_SCH_DSMARK=m 518CONFIG_NET_SCH_DSMARK=m
509CONFIG_NET_SCH_NETEM=m 519CONFIG_NET_SCH_NETEM=m
520# CONFIG_NET_SCH_DRR is not set
510CONFIG_NET_SCH_INGRESS=m 521CONFIG_NET_SCH_INGRESS=m
511 522
512# 523#
@@ -543,6 +554,7 @@ CONFIG_NET_ACT_PEDIT=m
543# CONFIG_NET_ACT_SKBEDIT is not set 554# CONFIG_NET_ACT_SKBEDIT is not set
544CONFIG_NET_CLS_IND=y 555CONFIG_NET_CLS_IND=y
545CONFIG_NET_SCH_FIFO=y 556CONFIG_NET_SCH_FIFO=y
557# CONFIG_DCB is not set
546 558
547# 559#
548# Network testing 560# Network testing
@@ -560,12 +572,8 @@ CONFIG_WIRELESS=y
560# CONFIG_WIRELESS_OLD_REGULATORY is not set 572# CONFIG_WIRELESS_OLD_REGULATORY is not set
561CONFIG_WIRELESS_EXT=y 573CONFIG_WIRELESS_EXT=y
562CONFIG_WIRELESS_EXT_SYSFS=y 574CONFIG_WIRELESS_EXT_SYSFS=y
575# CONFIG_LIB80211 is not set
563# CONFIG_MAC80211 is not set 576# CONFIG_MAC80211 is not set
564CONFIG_IEEE80211=y
565# CONFIG_IEEE80211_DEBUG is not set
566CONFIG_IEEE80211_CRYPT_WEP=y
567CONFIG_IEEE80211_CRYPT_CCMP=y
568CONFIG_IEEE80211_CRYPT_TKIP=y
569# CONFIG_RFKILL is not set 577# CONFIG_RFKILL is not set
570# CONFIG_NET_9P is not set 578# CONFIG_NET_9P is not set
571 579
@@ -695,6 +703,7 @@ CONFIG_MISC_DEVICES=y
695# CONFIG_TIFM_CORE is not set 703# CONFIG_TIFM_CORE is not set
696# CONFIG_ENCLOSURE_SERVICES is not set 704# CONFIG_ENCLOSURE_SERVICES is not set
697# CONFIG_HP_ILO is not set 705# CONFIG_HP_ILO is not set
706# CONFIG_C2PORT is not set
698CONFIG_HAVE_IDE=y 707CONFIG_HAVE_IDE=y
699# CONFIG_IDE is not set 708# CONFIG_IDE is not set
700 709
@@ -738,6 +747,7 @@ CONFIG_SCSI_WAIT_SCAN=m
738# CONFIG_SCSI_SRP_ATTRS is not set 747# CONFIG_SCSI_SRP_ATTRS is not set
739CONFIG_SCSI_LOWLEVEL=y 748CONFIG_SCSI_LOWLEVEL=y
740# CONFIG_ISCSI_TCP is not set 749# CONFIG_ISCSI_TCP is not set
750# CONFIG_SCSI_CXGB3_ISCSI is not set
741# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 751# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
742# CONFIG_SCSI_3W_9XXX is not set 752# CONFIG_SCSI_3W_9XXX is not set
743# CONFIG_SCSI_ACARD is not set 753# CONFIG_SCSI_ACARD is not set
@@ -751,6 +761,8 @@ CONFIG_SCSI_LOWLEVEL=y
751# CONFIG_MEGARAID_LEGACY is not set 761# CONFIG_MEGARAID_LEGACY is not set
752# CONFIG_MEGARAID_SAS is not set 762# CONFIG_MEGARAID_SAS is not set
753# CONFIG_SCSI_HPTIOP is not set 763# CONFIG_SCSI_HPTIOP is not set
764# CONFIG_LIBFC is not set
765# CONFIG_FCOE is not set
754# CONFIG_SCSI_DMX3191D is not set 766# CONFIG_SCSI_DMX3191D is not set
755# CONFIG_SCSI_FUTURE_DOMAIN is not set 767# CONFIG_SCSI_FUTURE_DOMAIN is not set
756# CONFIG_SCSI_IPS is not set 768# CONFIG_SCSI_IPS is not set
@@ -807,6 +819,9 @@ CONFIG_CICADA_PHY=m
807# CONFIG_BROADCOM_PHY is not set 819# CONFIG_BROADCOM_PHY is not set
808# CONFIG_ICPLUS_PHY is not set 820# CONFIG_ICPLUS_PHY is not set
809# CONFIG_REALTEK_PHY is not set 821# CONFIG_REALTEK_PHY is not set
822# CONFIG_NATIONAL_PHY is not set
823# CONFIG_STE10XP is not set
824# CONFIG_LSI_ET1011C_PHY is not set
810# CONFIG_MDIO_BITBANG is not set 825# CONFIG_MDIO_BITBANG is not set
811CONFIG_NET_ETHERNET=y 826CONFIG_NET_ETHERNET=y
812CONFIG_MII=y 827CONFIG_MII=y
@@ -818,6 +833,7 @@ CONFIG_MII=y
818# CONFIG_NET_VENDOR_3COM is not set 833# CONFIG_NET_VENDOR_3COM is not set
819# CONFIG_SMC91X is not set 834# CONFIG_SMC91X is not set
820# CONFIG_SMC911X is not set 835# CONFIG_SMC911X is not set
836# CONFIG_SMSC911X is not set
821# CONFIG_NET_TULIP is not set 837# CONFIG_NET_TULIP is not set
822# CONFIG_HP100 is not set 838# CONFIG_HP100 is not set
823# CONFIG_IBM_NEW_EMAC_ZMII is not set 839# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -833,7 +849,6 @@ CONFIG_NET_PCI=y
833# CONFIG_ADAPTEC_STARFIRE is not set 849# CONFIG_ADAPTEC_STARFIRE is not set
834# CONFIG_B44 is not set 850# CONFIG_B44 is not set
835# CONFIG_FORCEDETH is not set 851# CONFIG_FORCEDETH is not set
836# CONFIG_EEPRO100 is not set
837# CONFIG_E100 is not set 852# CONFIG_E100 is not set
838# CONFIG_FEALNX is not set 853# CONFIG_FEALNX is not set
839# CONFIG_NATSEMI is not set 854# CONFIG_NATSEMI is not set
@@ -847,6 +862,7 @@ CONFIG_8139_OLD_RX_RESET=y
847# CONFIG_R6040 is not set 862# CONFIG_R6040 is not set
848# CONFIG_SIS900 is not set 863# CONFIG_SIS900 is not set
849# CONFIG_EPIC100 is not set 864# CONFIG_EPIC100 is not set
865# CONFIG_SMSC9420 is not set
850# CONFIG_SUNDANCE is not set 866# CONFIG_SUNDANCE is not set
851# CONFIG_TLAN is not set 867# CONFIG_TLAN is not set
852# CONFIG_VIA_RHINE is not set 868# CONFIG_VIA_RHINE is not set
@@ -875,6 +891,7 @@ CONFIG_NETDEV_1000=y
875# CONFIG_JME is not set 891# CONFIG_JME is not set
876CONFIG_NETDEV_10000=y 892CONFIG_NETDEV_10000=y
877# CONFIG_CHELSIO_T1 is not set 893# CONFIG_CHELSIO_T1 is not set
894CONFIG_CHELSIO_T3_DEPENDS=y
878# CONFIG_CHELSIO_T3 is not set 895# CONFIG_CHELSIO_T3 is not set
879# CONFIG_ENIC is not set 896# CONFIG_ENIC is not set
880# CONFIG_IXGBE is not set 897# CONFIG_IXGBE is not set
@@ -883,6 +900,7 @@ CONFIG_NETDEV_10000=y
883# CONFIG_MYRI10GE is not set 900# CONFIG_MYRI10GE is not set
884# CONFIG_NETXEN_NIC is not set 901# CONFIG_NETXEN_NIC is not set
885# CONFIG_NIU is not set 902# CONFIG_NIU is not set
903# CONFIG_MLX4_EN is not set
886# CONFIG_MLX4_CORE is not set 904# CONFIG_MLX4_CORE is not set
887# CONFIG_TEHUTI is not set 905# CONFIG_TEHUTI is not set
888# CONFIG_BNX2X is not set 906# CONFIG_BNX2X is not set
@@ -1002,6 +1020,7 @@ CONFIG_SERIAL_CORE=y
1002CONFIG_SERIAL_CORE_CONSOLE=y 1020CONFIG_SERIAL_CORE_CONSOLE=y
1003# CONFIG_SERIAL_JSM is not set 1021# CONFIG_SERIAL_JSM is not set
1004CONFIG_UNIX98_PTYS=y 1022CONFIG_UNIX98_PTYS=y
1023# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1005CONFIG_LEGACY_PTYS=y 1024CONFIG_LEGACY_PTYS=y
1006CONFIG_LEGACY_PTY_COUNT=256 1025CONFIG_LEGACY_PTY_COUNT=256
1007# CONFIG_IPMI_HANDLER is not set 1026# CONFIG_IPMI_HANDLER is not set
@@ -1055,11 +1074,11 @@ CONFIG_SH_WDT=m
1055# USB-based Watchdog Cards 1074# USB-based Watchdog Cards
1056# 1075#
1057# CONFIG_USBPCWATCHDOG is not set 1076# CONFIG_USBPCWATCHDOG is not set
1077CONFIG_SSB_POSSIBLE=y
1058 1078
1059# 1079#
1060# Sonics Silicon Backplane 1080# Sonics Silicon Backplane
1061# 1081#
1062CONFIG_SSB_POSSIBLE=y
1063# CONFIG_SSB is not set 1082# CONFIG_SSB is not set
1064 1083
1065# 1084#
@@ -1069,7 +1088,7 @@ CONFIG_SSB_POSSIBLE=y
1069# CONFIG_MFD_SM501 is not set 1088# CONFIG_MFD_SM501 is not set
1070# CONFIG_HTC_PASIC3 is not set 1089# CONFIG_HTC_PASIC3 is not set
1071# CONFIG_MFD_TMIO is not set 1090# CONFIG_MFD_TMIO is not set
1072# CONFIG_MFD_WM8400 is not set 1091# CONFIG_REGULATOR is not set
1073 1092
1074# 1093#
1075# Multimedia devices 1094# Multimedia devices
@@ -1145,6 +1164,8 @@ CONFIG_USB_DEVICE_CLASS=y
1145# CONFIG_USB_OTG_WHITELIST is not set 1164# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1165# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1147CONFIG_USB_MON=y 1166CONFIG_USB_MON=y
1167# CONFIG_USB_WUSB is not set
1168# CONFIG_USB_WUSB_CBAF is not set
1148 1169
1149# 1170#
1150# USB Host Controller Drivers 1171# USB Host Controller Drivers
@@ -1162,6 +1183,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1162# CONFIG_USB_UHCI_HCD is not set 1183# CONFIG_USB_UHCI_HCD is not set
1163# CONFIG_USB_SL811_HCD is not set 1184# CONFIG_USB_SL811_HCD is not set
1164# CONFIG_USB_R8A66597_HCD is not set 1185# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_WHCI_HCD is not set
1187# CONFIG_USB_HWA_HCD is not set
1165 1188
1166# 1189#
1167# USB Device Class drivers 1190# USB Device Class drivers
@@ -1172,11 +1195,11 @@ CONFIG_USB_PRINTER=m
1172# CONFIG_USB_TMC is not set 1195# CONFIG_USB_TMC is not set
1173 1196
1174# 1197#
1175# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1176# 1199#
1177 1200
1178# 1201#
1179# may also be needed; see USB_STORAGE Help for more information 1202# see USB_STORAGE Help for more information
1180# 1203#
1181CONFIG_USB_STORAGE=y 1204CONFIG_USB_STORAGE=y
1182# CONFIG_USB_STORAGE_DEBUG is not set 1205# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1273,6 +1296,7 @@ CONFIG_USB_SERIAL_PL2303=m
1273# CONFIG_USB_ISIGHTFW is not set 1296# CONFIG_USB_ISIGHTFW is not set
1274# CONFIG_USB_VST is not set 1297# CONFIG_USB_VST is not set
1275# CONFIG_USB_GADGET is not set 1298# CONFIG_USB_GADGET is not set
1299# CONFIG_UWB is not set
1276# CONFIG_MMC is not set 1300# CONFIG_MMC is not set
1277# CONFIG_MEMSTICK is not set 1301# CONFIG_MEMSTICK is not set
1278# CONFIG_NEW_LEDS is not set 1302# CONFIG_NEW_LEDS is not set
@@ -1379,10 +1403,7 @@ CONFIG_TMPFS=y
1379# CONFIG_HUGETLBFS is not set 1403# CONFIG_HUGETLBFS is not set
1380# CONFIG_HUGETLB_PAGE is not set 1404# CONFIG_HUGETLB_PAGE is not set
1381CONFIG_CONFIGFS_FS=m 1405CONFIG_CONFIGFS_FS=m
1382 1406CONFIG_MISC_FILESYSTEMS=y
1383#
1384# Miscellaneous filesystems
1385#
1386# CONFIG_ADFS_FS is not set 1407# CONFIG_ADFS_FS is not set
1387# CONFIG_AFFS_FS is not set 1408# CONFIG_AFFS_FS is not set
1388# CONFIG_HFS_FS is not set 1409# CONFIG_HFS_FS is not set
@@ -1530,6 +1551,7 @@ CONFIG_SCHED_DEBUG=y
1530# CONFIG_DEBUG_MEMORY_INIT is not set 1551# CONFIG_DEBUG_MEMORY_INIT is not set
1531# CONFIG_DEBUG_LIST is not set 1552# CONFIG_DEBUG_LIST is not set
1532# CONFIG_DEBUG_SG is not set 1553# CONFIG_DEBUG_SG is not set
1554# CONFIG_DEBUG_NOTIFIERS is not set
1533# CONFIG_FRAME_POINTER is not set 1555# CONFIG_FRAME_POINTER is not set
1534# CONFIG_RCU_TORTURE_TEST is not set 1556# CONFIG_RCU_TORTURE_TEST is not set
1535# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1557# CONFIG_RCU_CPU_STALL_DETECTOR is not set
@@ -1537,16 +1559,24 @@ CONFIG_SCHED_DEBUG=y
1537# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1559# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1538# CONFIG_FAULT_INJECTION is not set 1560# CONFIG_FAULT_INJECTION is not set
1539# CONFIG_LATENCYTOP is not set 1561# CONFIG_LATENCYTOP is not set
1540CONFIG_NOP_TRACER=y 1562CONFIG_HAVE_FUNCTION_TRACER=y
1541CONFIG_HAVE_FTRACE=y 1563CONFIG_HAVE_DYNAMIC_FTRACE=y
1542# CONFIG_FTRACE is not set 1564CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1565
1566#
1567# Tracers
1568#
1569# CONFIG_FUNCTION_TRACER is not set
1543# CONFIG_IRQSOFF_TRACER is not set 1570# CONFIG_IRQSOFF_TRACER is not set
1544# CONFIG_SCHED_TRACER is not set 1571# CONFIG_SCHED_TRACER is not set
1545# CONFIG_CONTEXT_SWITCH_TRACER is not set 1572# CONFIG_CONTEXT_SWITCH_TRACER is not set
1546# CONFIG_BOOT_TRACER is not set 1573# CONFIG_BOOT_TRACER is not set
1574# CONFIG_TRACE_BRANCH_PROFILING is not set
1547# CONFIG_STACK_TRACER is not set 1575# CONFIG_STACK_TRACER is not set
1548# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1576# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1549# CONFIG_SAMPLES is not set 1577# CONFIG_SAMPLES is not set
1578CONFIG_HAVE_ARCH_KGDB=y
1579# CONFIG_KGDB is not set
1550# CONFIG_SH_STANDARD_BIOS is not set 1580# CONFIG_SH_STANDARD_BIOS is not set
1551# CONFIG_EARLY_SCIF_CONSOLE is not set 1581# CONFIG_EARLY_SCIF_CONSOLE is not set
1552# CONFIG_DEBUG_BOOTMEM is not set 1582# CONFIG_DEBUG_BOOTMEM is not set
@@ -1554,7 +1584,9 @@ CONFIG_HAVE_FTRACE=y
1554# CONFIG_DEBUG_STACK_USAGE is not set 1584# CONFIG_DEBUG_STACK_USAGE is not set
1555# CONFIG_4KSTACKS is not set 1585# CONFIG_4KSTACKS is not set
1556# CONFIG_IRQSTACKS is not set 1586# CONFIG_IRQSTACKS is not set
1557# CONFIG_SH_KGDB is not set 1587# CONFIG_DUMP_CODE is not set
1588# CONFIG_SH_NO_BSS_INIT is not set
1589# CONFIG_MORE_COMPILE_OPTIONS is not set
1558 1590
1559# 1591#
1560# Security options 1592# Security options
@@ -1570,11 +1602,16 @@ CONFIG_CRYPTO=y
1570# 1602#
1571# CONFIG_CRYPTO_FIPS is not set 1603# CONFIG_CRYPTO_FIPS is not set
1572CONFIG_CRYPTO_ALGAPI=y 1604CONFIG_CRYPTO_ALGAPI=y
1605CONFIG_CRYPTO_ALGAPI2=y
1573CONFIG_CRYPTO_AEAD=y 1606CONFIG_CRYPTO_AEAD=y
1607CONFIG_CRYPTO_AEAD2=y
1574CONFIG_CRYPTO_BLKCIPHER=y 1608CONFIG_CRYPTO_BLKCIPHER=y
1609CONFIG_CRYPTO_BLKCIPHER2=y
1575CONFIG_CRYPTO_HASH=y 1610CONFIG_CRYPTO_HASH=y
1576CONFIG_CRYPTO_RNG=y 1611CONFIG_CRYPTO_HASH2=y
1612CONFIG_CRYPTO_RNG2=y
1577CONFIG_CRYPTO_MANAGER=y 1613CONFIG_CRYPTO_MANAGER=y
1614CONFIG_CRYPTO_MANAGER2=y
1578# CONFIG_CRYPTO_GF128MUL is not set 1615# CONFIG_CRYPTO_GF128MUL is not set
1579CONFIG_CRYPTO_NULL=m 1616CONFIG_CRYPTO_NULL=m
1580# CONFIG_CRYPTO_CRYPTD is not set 1617# CONFIG_CRYPTO_CRYPTD is not set
@@ -1659,6 +1696,7 @@ CONFIG_CRYPTO_HW=y
1659# Library routines 1696# Library routines
1660# 1697#
1661CONFIG_BITREVERSE=y 1698CONFIG_BITREVERSE=y
1699CONFIG_GENERIC_FIND_LAST_BIT=y
1662CONFIG_CRC_CCITT=m 1700CONFIG_CRC_CCITT=m
1663CONFIG_CRC16=m 1701CONFIG_CRC16=m
1664# CONFIG_CRC_T10DIF is not set 1702# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig
index 9afff67d9ff2..27f968a959f8 100644
--- a/arch/sh/configs/ul2_defconfig
+++ b/arch/sh/configs/ul2_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28-rc2 3# Linux kernel version: 2.6.28
4# Tue Oct 28 17:35:17 2008 4# Fri Jan 9 18:22:53 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -16,6 +16,8 @@ CONFIG_GENERIC_IRQ_PROBE=y
16# CONFIG_GENERIC_GPIO is not set 16# CONFIG_GENERIC_GPIO is not set
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CLOCKEVENTS=y 18CONFIG_GENERIC_CLOCKEVENTS=y
19# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
20# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
19CONFIG_SYS_SUPPORTS_NUMA=y 21CONFIG_SYS_SUPPORTS_NUMA=y
20CONFIG_STACKTRACE_SUPPORT=y 22CONFIG_STACKTRACE_SUPPORT=y
21CONFIG_LOCKDEP_SUPPORT=y 23CONFIG_LOCKDEP_SUPPORT=y
@@ -80,7 +82,6 @@ CONFIG_SLUB_DEBUG=y
80CONFIG_SLUB=y 82CONFIG_SLUB=y
81# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
82CONFIG_PROFILING=y 84CONFIG_PROFILING=y
83# CONFIG_MARKERS is not set
84# CONFIG_OPROFILE is not set 85# CONFIG_OPROFILE is not set
85CONFIG_HAVE_OPROFILE=y 86CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set 87# CONFIG_KPROBES is not set
@@ -92,7 +93,6 @@ CONFIG_HAVE_CLK=y
92CONFIG_HAVE_GENERIC_DMA_COHERENT=y 93CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 94CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 98# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,11 +100,9 @@ CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 100# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 103CONFIG_BLOCK=y
105# CONFIG_LBD is not set 104# CONFIG_LBD is not set
106# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
109# CONFIG_BLK_DEV_INTEGRITY is not set 107# CONFIG_BLK_DEV_INTEGRITY is not set
110 108
@@ -121,6 +119,10 @@ CONFIG_IOSCHED_NOOP=y
121CONFIG_DEFAULT_NOOP=y 119CONFIG_DEFAULT_NOOP=y
122CONFIG_DEFAULT_IOSCHED="noop" 120CONFIG_DEFAULT_IOSCHED="noop"
123CONFIG_CLASSIC_RCU=y 121CONFIG_CLASSIC_RCU=y
122# CONFIG_TREE_RCU is not set
123# CONFIG_PREEMPT_RCU is not set
124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_PREEMPT_RCU_TRACE is not set
124# CONFIG_FREEZER is not set 126# CONFIG_FREEZER is not set
125 127
126# 128#
@@ -131,6 +133,7 @@ CONFIG_CPU_SH4A=y
131CONFIG_CPU_SH4AL_DSP=y 133CONFIG_CPU_SH4AL_DSP=y
132CONFIG_CPU_SHX2=y 134CONFIG_CPU_SHX2=y
133# CONFIG_CPU_SUBTYPE_SH7619 is not set 135# CONFIG_CPU_SUBTYPE_SH7619 is not set
136# CONFIG_CPU_SUBTYPE_SH7201 is not set
134# CONFIG_CPU_SUBTYPE_SH7203 is not set 137# CONFIG_CPU_SUBTYPE_SH7203 is not set
135# CONFIG_CPU_SUBTYPE_SH7206 is not set 138# CONFIG_CPU_SUBTYPE_SH7206 is not set
136# CONFIG_CPU_SUBTYPE_SH7263 is not set 139# CONFIG_CPU_SUBTYPE_SH7263 is not set
@@ -206,7 +209,6 @@ CONFIG_SPARSEMEM_STATIC=y
206# CONFIG_MEMORY_HOTPLUG is not set 209# CONFIG_MEMORY_HOTPLUG is not set
207CONFIG_SPLIT_PTLOCK_CPUS=4 210CONFIG_SPLIT_PTLOCK_CPUS=4
208# CONFIG_MIGRATION is not set 211# CONFIG_MIGRATION is not set
209# CONFIG_RESOURCES_64BIT is not set
210# CONFIG_PHYS_ADDR_T_64BIT is not set 212# CONFIG_PHYS_ADDR_T_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=0 213CONFIG_ZONE_DMA_FLAG=0
212CONFIG_NR_QUICK=2 214CONFIG_NR_QUICK=2
@@ -283,7 +285,6 @@ CONFIG_KEXEC=y
283# CONFIG_PREEMPT_NONE is not set 285# CONFIG_PREEMPT_NONE is not set
284# CONFIG_PREEMPT_VOLUNTARY is not set 286# CONFIG_PREEMPT_VOLUNTARY is not set
285CONFIG_PREEMPT=y 287CONFIG_PREEMPT=y
286# CONFIG_PREEMPT_RCU is not set
287CONFIG_GUSA=y 288CONFIG_GUSA=y
288 289
289# 290#
@@ -307,11 +308,18 @@ CONFIG_BINFMT_ELF=y
307# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 308# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
308# CONFIG_HAVE_AOUT is not set 309# CONFIG_HAVE_AOUT is not set
309# CONFIG_BINFMT_MISC is not set 310# CONFIG_BINFMT_MISC is not set
311
312#
313# Power management options (EXPERIMENTAL)
314#
315# CONFIG_PM is not set
316# CONFIG_CPU_IDLE is not set
310CONFIG_NET=y 317CONFIG_NET=y
311 318
312# 319#
313# Networking options 320# Networking options
314# 321#
322CONFIG_COMPAT_NET_DEV_OPS=y
315CONFIG_PACKET=y 323CONFIG_PACKET=y
316CONFIG_PACKET_MMAP=y 324CONFIG_PACKET_MMAP=y
317CONFIG_UNIX=y 325CONFIG_UNIX=y
@@ -367,6 +375,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
367# CONFIG_ECONET is not set 375# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 376# CONFIG_WAN_ROUTER is not set
369# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
378# CONFIG_DCB is not set
370 379
371# 380#
372# Network testing 381# Network testing
@@ -380,10 +389,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
380# CONFIG_PHONET is not set 389# CONFIG_PHONET is not set
381CONFIG_WIRELESS=y 390CONFIG_WIRELESS=y
382CONFIG_CFG80211=y 391CONFIG_CFG80211=y
392# CONFIG_CFG80211_REG_DEBUG is not set
383CONFIG_NL80211=y 393CONFIG_NL80211=y
384# CONFIG_WIRELESS_OLD_REGULATORY is not set 394# CONFIG_WIRELESS_OLD_REGULATORY is not set
385CONFIG_WIRELESS_EXT=y 395CONFIG_WIRELESS_EXT=y
386CONFIG_WIRELESS_EXT_SYSFS=y 396CONFIG_WIRELESS_EXT_SYSFS=y
397CONFIG_LIB80211=m
387CONFIG_MAC80211=y 398CONFIG_MAC80211=y
388 399
389# 400#
@@ -397,11 +408,6 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
397# CONFIG_MAC80211_MESH is not set 408# CONFIG_MAC80211_MESH is not set
398# CONFIG_MAC80211_LEDS is not set 409# CONFIG_MAC80211_LEDS is not set
399# CONFIG_MAC80211_DEBUG_MENU is not set 410# CONFIG_MAC80211_DEBUG_MENU is not set
400CONFIG_IEEE80211=m
401CONFIG_IEEE80211_DEBUG=y
402CONFIG_IEEE80211_CRYPT_WEP=m
403CONFIG_IEEE80211_CRYPT_CCMP=m
404CONFIG_IEEE80211_CRYPT_TKIP=m
405# CONFIG_RFKILL is not set 411# CONFIG_RFKILL is not set
406# CONFIG_NET_9P is not set 412# CONFIG_NET_9P is not set
407 413
@@ -510,6 +516,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
510CONFIG_MISC_DEVICES=y 516CONFIG_MISC_DEVICES=y
511# CONFIG_EEPROM_93CX6 is not set 517# CONFIG_EEPROM_93CX6 is not set
512# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
519# CONFIG_C2PORT is not set
513CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
514# CONFIG_IDE is not set 521# CONFIG_IDE is not set
515 522
@@ -552,6 +559,7 @@ CONFIG_SCSI_WAIT_SCAN=m
552# CONFIG_SCSI_SRP_ATTRS is not set 559# CONFIG_SCSI_SRP_ATTRS is not set
553CONFIG_SCSI_LOWLEVEL=y 560CONFIG_SCSI_LOWLEVEL=y
554# CONFIG_ISCSI_TCP is not set 561# CONFIG_ISCSI_TCP is not set
562# CONFIG_LIBFC is not set
555# CONFIG_SCSI_DEBUG is not set 563# CONFIG_SCSI_DEBUG is not set
556# CONFIG_SCSI_DH is not set 564# CONFIG_SCSI_DH is not set
557CONFIG_ATA=y 565CONFIG_ATA=y
@@ -575,6 +583,7 @@ CONFIG_MII=y
575# CONFIG_STNIC is not set 583# CONFIG_STNIC is not set
576# CONFIG_SMC91X is not set 584# CONFIG_SMC91X is not set
577# CONFIG_SMC911X is not set 585# CONFIG_SMC911X is not set
586# CONFIG_SMSC911X is not set
578# CONFIG_IBM_NEW_EMAC_ZMII is not set 587# CONFIG_IBM_NEW_EMAC_ZMII is not set
579# CONFIG_IBM_NEW_EMAC_RGMII is not set 588# CONFIG_IBM_NEW_EMAC_RGMII is not set
580# CONFIG_IBM_NEW_EMAC_TAH is not set 589# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -714,11 +723,11 @@ CONFIG_HWMON=y
714# CONFIG_THERMAL is not set 723# CONFIG_THERMAL is not set
715# CONFIG_THERMAL_HWMON is not set 724# CONFIG_THERMAL_HWMON is not set
716# CONFIG_WATCHDOG is not set 725# CONFIG_WATCHDOG is not set
726CONFIG_SSB_POSSIBLE=y
717 727
718# 728#
719# Sonics Silicon Backplane 729# Sonics Silicon Backplane
720# 730#
721CONFIG_SSB_POSSIBLE=y
722# CONFIG_SSB is not set 731# CONFIG_SSB is not set
723 732
724# 733#
@@ -728,6 +737,7 @@ CONFIG_SSB_POSSIBLE=y
728# CONFIG_MFD_SM501 is not set 737# CONFIG_MFD_SM501 is not set
729# CONFIG_HTC_PASIC3 is not set 738# CONFIG_HTC_PASIC3 is not set
730# CONFIG_MFD_TMIO is not set 739# CONFIG_MFD_TMIO is not set
740# CONFIG_REGULATOR is not set
731 741
732# 742#
733# Multimedia devices 743# Multimedia devices
@@ -785,7 +795,6 @@ CONFIG_USB_MON=y
785# 795#
786# CONFIG_USB_C67X00_HCD is not set 796# CONFIG_USB_C67X00_HCD is not set
787# CONFIG_USB_ISP116X_HCD is not set 797# CONFIG_USB_ISP116X_HCD is not set
788# CONFIG_USB_ISP1760_HCD is not set
789# CONFIG_USB_SL811_HCD is not set 798# CONFIG_USB_SL811_HCD is not set
790CONFIG_USB_R8A66597_HCD=y 799CONFIG_USB_R8A66597_HCD=y
791# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set 800# CONFIG_SUPERH_ON_CHIP_R8A66597 is not set
@@ -800,11 +809,11 @@ CONFIG_USB_R8A66597_HCD=y
800# CONFIG_USB_TMC is not set 809# CONFIG_USB_TMC is not set
801 810
802# 811#
803# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 812# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
804# 813#
805 814
806# 815#
807# may also be needed; see USB_STORAGE Help for more information 816# see USB_STORAGE Help for more information
808# 817#
809CONFIG_USB_STORAGE=y 818CONFIG_USB_STORAGE=y
810# CONFIG_USB_STORAGE_DEBUG is not set 819# CONFIG_USB_STORAGE_DEBUG is not set
@@ -937,10 +946,7 @@ CONFIG_TMPFS=y
937CONFIG_HUGETLBFS=y 946CONFIG_HUGETLBFS=y
938CONFIG_HUGETLB_PAGE=y 947CONFIG_HUGETLB_PAGE=y
939# CONFIG_CONFIGFS_FS is not set 948# CONFIG_CONFIGFS_FS is not set
940 949CONFIG_MISC_FILESYSTEMS=y
941#
942# Miscellaneous filesystems
943#
944# CONFIG_ADFS_FS is not set 950# CONFIG_ADFS_FS is not set
945# CONFIG_AFFS_FS is not set 951# CONFIG_AFFS_FS is not set
946# CONFIG_HFS_FS is not set 952# CONFIG_HFS_FS is not set
@@ -1046,13 +1052,19 @@ CONFIG_FRAME_WARN=1024
1046# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1052# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1047# CONFIG_LATENCYTOP is not set 1053# CONFIG_LATENCYTOP is not set
1048# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1054# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1049CONFIG_NOP_TRACER=y 1055CONFIG_HAVE_FUNCTION_TRACER=y
1050CONFIG_HAVE_FTRACE=y 1056CONFIG_HAVE_DYNAMIC_FTRACE=y
1057CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1058
1059#
1060# Tracers
1061#
1051# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1062# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1052# CONFIG_SAMPLES is not set 1063# CONFIG_SAMPLES is not set
1064CONFIG_HAVE_ARCH_KGDB=y
1053# CONFIG_SH_STANDARD_BIOS is not set 1065# CONFIG_SH_STANDARD_BIOS is not set
1054# CONFIG_EARLY_SCIF_CONSOLE is not set 1066# CONFIG_EARLY_SCIF_CONSOLE is not set
1055# CONFIG_SH_KGDB is not set 1067# CONFIG_MORE_COMPILE_OPTIONS is not set
1056 1068
1057# 1069#
1058# Security options 1070# Security options
@@ -1068,11 +1080,15 @@ CONFIG_CRYPTO=y
1068# 1080#
1069# CONFIG_CRYPTO_FIPS is not set 1081# CONFIG_CRYPTO_FIPS is not set
1070CONFIG_CRYPTO_ALGAPI=y 1082CONFIG_CRYPTO_ALGAPI=y
1071CONFIG_CRYPTO_AEAD=y 1083CONFIG_CRYPTO_ALGAPI2=y
1084CONFIG_CRYPTO_AEAD2=y
1072CONFIG_CRYPTO_BLKCIPHER=y 1085CONFIG_CRYPTO_BLKCIPHER=y
1086CONFIG_CRYPTO_BLKCIPHER2=y
1073CONFIG_CRYPTO_HASH=y 1087CONFIG_CRYPTO_HASH=y
1074CONFIG_CRYPTO_RNG=y 1088CONFIG_CRYPTO_HASH2=y
1089CONFIG_CRYPTO_RNG2=y
1075CONFIG_CRYPTO_MANAGER=y 1090CONFIG_CRYPTO_MANAGER=y
1091CONFIG_CRYPTO_MANAGER2=y
1076# CONFIG_CRYPTO_GF128MUL is not set 1092# CONFIG_CRYPTO_GF128MUL is not set
1077# CONFIG_CRYPTO_NULL is not set 1093# CONFIG_CRYPTO_NULL is not set
1078# CONFIG_CRYPTO_CRYPTD is not set 1094# CONFIG_CRYPTO_CRYPTD is not set
@@ -1155,6 +1171,7 @@ CONFIG_CRYPTO_HW=y
1155# Library routines 1171# Library routines
1156# 1172#
1157CONFIG_BITREVERSE=y 1173CONFIG_BITREVERSE=y
1174CONFIG_GENERIC_FIND_LAST_BIT=y
1158# CONFIG_CRC_CCITT is not set 1175# CONFIG_CRC_CCITT is not set
1159# CONFIG_CRC16 is not set 1176# CONFIG_CRC16 is not set
1160# CONFIG_CRC_T10DIF is not set 1177# CONFIG_CRC_T10DIF is not set
diff --git a/arch/sh/include/asm/posix_types_32.h b/arch/sh/include/asm/posix_types_32.h
index 0a3d2f54ab27..2172732c55c8 100644
--- a/arch/sh/include/asm/posix_types_32.h
+++ b/arch/sh/include/asm/posix_types_32.h
@@ -39,14 +39,10 @@ typedef long long __kernel_loff_t;
39#endif 39#endif
40 40
41typedef struct { 41typedef struct {
42#if defined(__KERNEL__) || defined(__USE_ALL)
43 int val[2]; 42 int val[2];
44#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
45 int __val[2];
46#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
47} __kernel_fsid_t; 43} __kernel_fsid_t;
48 44
49#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 45#if defined(__KERNEL__)
50 46
51#undef __FD_SET 47#undef __FD_SET
52static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 48static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -117,6 +113,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
117 } 113 }
118} 114}
119 115
120#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 116#endif /* defined(__KERNEL__) */
121 117
122#endif /* __ASM_SH_POSIX_TYPES_H */ 118#endif /* __ASM_SH_POSIX_TYPES_H */
diff --git a/arch/sh/include/asm/posix_types_64.h b/arch/sh/include/asm/posix_types_64.h
index 0620317a6f0f..f83e9bd463d8 100644
--- a/arch/sh/include/asm/posix_types_64.h
+++ b/arch/sh/include/asm/posix_types_64.h
@@ -48,14 +48,10 @@ typedef long long __kernel_loff_t;
48#endif 48#endif
49 49
50typedef struct { 50typedef struct {
51#if defined(__KERNEL__) || defined(__USE_ALL)
52 int val[2]; 51 int val[2];
53#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */
54 int __val[2];
55#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
56} __kernel_fsid_t; 52} __kernel_fsid_t;
57 53
58#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) 54#if defined(__KERNEL__)
59 55
60#undef __FD_SET 56#undef __FD_SET
61static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp) 57static __inline__ void __FD_SET(unsigned long __fd, __kernel_fd_set *__fdsetp)
@@ -126,6 +122,6 @@ static __inline__ void __FD_ZERO(__kernel_fd_set *__p)
126 } 122 }
127} 123}
128 124
129#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ 125#endif /* defined(__KERNEL__) */
130 126
131#endif /* __ASM_SH64_POSIX_TYPES_H */ 127#endif /* __ASM_SH64_POSIX_TYPES_H */
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
index 0623e377f488..4ff4dc64520c 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
@@ -112,6 +112,34 @@ static struct platform_device veu_device = {
112 .num_resources = ARRAY_SIZE(veu_resources), 112 .num_resources = ARRAY_SIZE(veu_resources),
113}; 113};
114 114
115static struct uio_info jpu_platform_data = {
116 .name = "JPU",
117 .version = "0",
118 .irq = 27,
119};
120
121static struct resource jpu_resources[] = {
122 [0] = {
123 .name = "JPU",
124 .start = 0xfea00000,
125 .end = 0xfea102d3,
126 .flags = IORESOURCE_MEM,
127 },
128 [1] = {
129 /* place holder for contiguous memory */
130 },
131};
132
133static struct platform_device jpu_device = {
134 .name = "uio_pdrv_genirq",
135 .id = 2,
136 .dev = {
137 .platform_data = &jpu_platform_data,
138 },
139 .resource = jpu_resources,
140 .num_resources = ARRAY_SIZE(jpu_resources),
141};
142
115static struct plat_sci_port sci_platform_data[] = { 143static struct plat_sci_port sci_platform_data[] = {
116 { 144 {
117 .mapbase = 0xffe00000, 145 .mapbase = 0xffe00000,
@@ -152,6 +180,7 @@ static struct platform_device *sh7343_devices[] __initdata = {
152 &sci_device, 180 &sci_device,
153 &vpu_device, 181 &vpu_device,
154 &veu_device, 182 &veu_device,
183 &jpu_device,
155}; 184};
156 185
157static int __init sh7343_devices_setup(void) 186static int __init sh7343_devices_setup(void)
@@ -160,9 +189,11 @@ static int __init sh7343_devices_setup(void)
160 clk_always_enable("xymem0"); /* XYMEM */ 189 clk_always_enable("xymem0"); /* XYMEM */
161 clk_always_enable("veu0"); /* VEU */ 190 clk_always_enable("veu0"); /* VEU */
162 clk_always_enable("vpu0"); /* VPU */ 191 clk_always_enable("vpu0"); /* VPU */
192 clk_always_enable("jpu0"); /* JPU */
163 193
164 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20); 194 platform_resource_setup_memory(&vpu_device, "vpu", 1 << 20);
165 platform_resource_setup_memory(&veu_device, "veu", 2 << 20); 195 platform_resource_setup_memory(&veu_device, "veu", 2 << 20);
196 platform_resource_setup_memory(&jpu_device, "jpu", 2 << 20);
166 197
167 return platform_add_devices(sh7343_devices, 198 return platform_add_devices(sh7343_devices,
168 ARRAY_SIZE(sh7343_devices)); 199 ARRAY_SIZE(sh7343_devices));
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 50cf6838ec41..5146afc156e0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -158,7 +158,7 @@ static struct resource jpu_resources[] = {
158 [0] = { 158 [0] = {
159 .name = "JPU", 159 .name = "JPU",
160 .start = 0xfea00000, 160 .start = 0xfea00000,
161 .end = 0xfea102d0, 161 .end = 0xfea102d3,
162 .flags = IORESOURCE_MEM, 162 .flags = IORESOURCE_MEM,
163 }, 163 },
164 [1] = { 164 [1] = {
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index a7e5f2e74bac..c90c7e5e5fee 100644
--- a/arch/sh/kernel/process_64.c
+++ b/arch/sh/kernel/process_64.c
@@ -520,7 +520,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
520 int error; 520 int error;
521 char *filename; 521 char *filename;
522 522
523 lock_kernel();
524 filename = getname((char __user *)ufilename); 523 filename = getname((char __user *)ufilename);
525 error = PTR_ERR(filename); 524 error = PTR_ERR(filename);
526 if (IS_ERR(filename)) 525 if (IS_ERR(filename))
@@ -537,7 +536,6 @@ asmlinkage int sys_execve(char *ufilename, char **uargv,
537 } 536 }
538 putname(filename); 537 putname(filename);
539out: 538out:
540 unlock_kernel();
541 return error; 539 return error;
542} 540}
543 541
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index c0aa3d83ec0e..60dcf87ed019 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -125,20 +125,18 @@ static inline void die_if_kernel(const char *str, struct pt_regs *regs,
125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV 125 * - userspace errors just cause EFAULT to be returned, resulting in SEGV
126 * - kernel/userspace interfaces cause a jump to an appropriate handler 126 * - kernel/userspace interfaces cause a jump to an appropriate handler
127 * - other kernel errors are bad 127 * - other kernel errors are bad
128 * - return 0 if fixed-up, -EFAULT if non-fatal (to the kernel) fault
129 */ 128 */
130static int die_if_no_fixup(const char * str, struct pt_regs * regs, long err) 129static void die_if_no_fixup(const char * str, struct pt_regs * regs, long err)
131{ 130{
132 if (!user_mode(regs)) { 131 if (!user_mode(regs)) {
133 const struct exception_table_entry *fixup; 132 const struct exception_table_entry *fixup;
134 fixup = search_exception_tables(regs->pc); 133 fixup = search_exception_tables(regs->pc);
135 if (fixup) { 134 if (fixup) {
136 regs->pc = fixup->fixup; 135 regs->pc = fixup->fixup;
137 return 0; 136 return;
138 } 137 }
139 die(str, regs, err); 138 die(str, regs, err);
140 } 139 }
141 return -EFAULT;
142} 140}
143 141
144static inline void sign_extend(unsigned int count, unsigned char *dst) 142static inline void sign_extend(unsigned int count, unsigned char *dst)
@@ -314,7 +312,8 @@ static int handle_unaligned_ins(opcode_t instruction, struct pt_regs *regs,
314 /* Argh. Address not only misaligned but also non-existent. 312 /* Argh. Address not only misaligned but also non-existent.
315 * Raise an EFAULT and see if it's trapped 313 * Raise an EFAULT and see if it's trapped
316 */ 314 */
317 return die_if_no_fixup("Fault in unaligned fixup", regs, 0); 315 die_if_no_fixup("Fault in unaligned fixup", regs, 0);
316 return -EFAULT;
318} 317}
319 318
320/* 319/*
diff --git a/arch/sh/mm/ioremap_64.c b/arch/sh/mm/ioremap_64.c
index 6e0be24d26e2..31e1bb5effbe 100644
--- a/arch/sh/mm/ioremap_64.c
+++ b/arch/sh/mm/ioremap_64.c
@@ -71,9 +71,9 @@ void *__ioremap(unsigned long phys_addr, unsigned long size,
71 * Ok, go for it.. 71 * Ok, go for it..
72 */ 72 */
73 area = get_vm_area(size, VM_IOREMAP); 73 area = get_vm_area(size, VM_IOREMAP);
74 pr_debug("Get vm_area returns %p addr %p\n",area,area->addr);
75 if (!area) 74 if (!area)
76 return NULL; 75 return NULL;
76 pr_debug("Get vm_area returns %p addr %p\n", area, area->addr);
77 area->phys_addr = phys_addr; 77 area->phys_addr = phys_addr;
78 addr = area->addr; 78 addr = area->addr;
79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size, 79 if (ioremap_page_range((unsigned long)addr, (unsigned long)addr + size,
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index de58c02633b4..c3ea215334f6 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -36,6 +36,7 @@ config SPARC64
36 select HAVE_KRETPROBES 36 select HAVE_KRETPROBES
37 select HAVE_KPROBES 37 select HAVE_KPROBES
38 select HAVE_LMB 38 select HAVE_LMB
39 select HAVE_SYSCALL_WRAPPERS
39 select USE_GENERIC_SMP_HELPERS if SMP 40 select USE_GENERIC_SMP_HELPERS if SMP
40 select RTC_DRV_CMOS 41 select RTC_DRV_CMOS
41 select RTC_DRV_BQ4802 42 select RTC_DRV_BQ4802
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index cde19ae78f5a..ade49941def2 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -867,8 +867,8 @@ CONFIG_I2C_ALGOBIT=y
867# Miscellaneous I2C Chip support 867# Miscellaneous I2C Chip support
868# 868#
869# CONFIG_DS1682 is not set 869# CONFIG_DS1682 is not set
870# CONFIG_AT24 is not set 870# CONFIG_EEPROM_AT24 is not set
871# CONFIG_SENSORS_EEPROM is not set 871# CONFIG_EEPROM_LEGACY is not set
872# CONFIG_SENSORS_PCF8574 is not set 872# CONFIG_SENSORS_PCF8574 is not set
873# CONFIG_PCF8575 is not set 873# CONFIG_PCF8575 is not set
874# CONFIG_SENSORS_PCA9539 is not set 874# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
index 05f1c916db06..f3b5466c389c 100644
--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -103,6 +103,7 @@ static int __devinit clock_board_probe(struct of_device *op,
103 p->leds_resource.name = "leds"; 103 p->leds_resource.name = "leds";
104 104
105 p->leds_pdev.name = "sunfire-clockboard-leds"; 105 p->leds_pdev.name = "sunfire-clockboard-leds";
106 p->leds_pdev.id = -1;
106 p->leds_pdev.resource = &p->leds_resource; 107 p->leds_pdev.resource = &p->leds_resource;
107 p->leds_pdev.num_resources = 1; 108 p->leds_pdev.num_resources = 1;
108 p->leds_pdev.dev.parent = &op->dev; 109 p->leds_pdev.dev.parent = &op->dev;
@@ -197,6 +198,7 @@ static int __devinit fhc_probe(struct of_device *op,
197 p->leds_resource.name = "leds"; 198 p->leds_resource.name = "leds";
198 199
199 p->leds_pdev.name = "sunfire-fhc-leds"; 200 p->leds_pdev.name = "sunfire-fhc-leds";
201 p->leds_pdev.id = p->board_num;
200 p->leds_pdev.resource = &p->leds_resource; 202 p->leds_pdev.resource = &p->leds_resource;
201 p->leds_pdev.num_resources = 1; 203 p->leds_pdev.num_resources = 1;
202 p->leds_pdev.dev.parent = &op->dev; 204 p->leds_pdev.dev.parent = &op->dev;
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c
index f0b825505da5..32d32b4824f5 100644
--- a/arch/sparc/kernel/cpu.c
+++ b/arch/sparc/kernel/cpu.c
@@ -239,14 +239,26 @@ unsigned int fsr_storage;
239 239
240static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers) 240static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
241{ 241{
242 const struct manufacturer_info *manuf;
243 int i;
244
242 sparc_cpu_type = NULL; 245 sparc_cpu_type = NULL;
243 sparc_fpu_type = NULL; 246 sparc_fpu_type = NULL;
244 if (psr_impl < ARRAY_SIZE(manufacturer_info)) 247 manuf = NULL;
248
249 for (i = 0; i < ARRAY_SIZE(manufacturer_info); i++)
250 {
251 if (psr_impl == manufacturer_info[i].psr_impl) {
252 manuf = &manufacturer_info[i];
253 break;
254 }
255 }
256 if (manuf != NULL)
245 { 257 {
246 const struct cpu_info *cpu; 258 const struct cpu_info *cpu;
247 const struct fpu_info *fpu; 259 const struct fpu_info *fpu;
248 260
249 cpu = &manufacturer_info[psr_impl].cpu_info[0]; 261 cpu = &manuf->cpu_info[0];
250 while (cpu->psr_vers != -1) 262 while (cpu->psr_vers != -1)
251 { 263 {
252 if (cpu->psr_vers == psr_vers) { 264 if (cpu->psr_vers == psr_vers) {
@@ -256,7 +268,7 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
256 } 268 }
257 cpu++; 269 cpu++;
258 } 270 }
259 fpu = &manufacturer_info[psr_impl].fpu_info[0]; 271 fpu = &manuf->fpu_info[0];
260 while (fpu->fp_vers != -1) 272 while (fpu->fp_vers != -1)
261 { 273 {
262 if (fpu->fp_vers == fpu_vers) { 274 if (fpu->fp_vers == fpu_vers) {
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index 09058fc39e73..e2d102447a43 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -399,7 +399,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
399 } 399 }
400} 400}
401 401
402asmlinkage unsigned long sparc_brk(unsigned long brk) 402SYSCALL_DEFINE1(sparc_brk, unsigned long, brk)
403{ 403{
404 /* People could try to be nasty and use ta 0x6d in 32bit programs */ 404 /* People could try to be nasty and use ta 0x6d in 32bit programs */
405 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32) 405 if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32)
@@ -415,7 +415,7 @@ asmlinkage unsigned long sparc_brk(unsigned long brk)
415 * sys_pipe() is the normal C calling standard for creating 415 * sys_pipe() is the normal C calling standard for creating
416 * a pipe. It's not the way unix traditionally does this, though. 416 * a pipe. It's not the way unix traditionally does this, though.
417 */ 417 */
418asmlinkage long sparc_pipe(struct pt_regs *regs) 418SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs)
419{ 419{
420 int fd[2]; 420 int fd[2];
421 int error; 421 int error;
@@ -435,8 +435,8 @@ out:
435 * This is really horribly ugly. 435 * This is really horribly ugly.
436 */ 436 */
437 437
438asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, 438SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
439 unsigned long third, void __user *ptr, long fifth) 439 unsigned long, third, void __user *, ptr, long, fifth)
440{ 440{
441 long err; 441 long err;
442 442
@@ -519,7 +519,7 @@ out:
519 return err; 519 return err;
520} 520}
521 521
522asmlinkage long sparc64_newuname(struct new_utsname __user *name) 522SYSCALL_DEFINE1(sparc64_newuname, struct new_utsname __user *, name)
523{ 523{
524 int ret = sys_newuname(name); 524 int ret = sys_newuname(name);
525 525
@@ -530,7 +530,7 @@ asmlinkage long sparc64_newuname(struct new_utsname __user *name)
530 return ret; 530 return ret;
531} 531}
532 532
533asmlinkage long sparc64_personality(unsigned long personality) 533SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality)
534{ 534{
535 int ret; 535 int ret;
536 536
@@ -564,9 +564,9 @@ int sparc_mmap_check(unsigned long addr, unsigned long len)
564} 564}
565 565
566/* Linux version of mmap */ 566/* Linux version of mmap */
567asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, 567SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,
568 unsigned long prot, unsigned long flags, unsigned long fd, 568 unsigned long, prot, unsigned long, flags, unsigned long, fd,
569 unsigned long off) 569 unsigned long, off)
570{ 570{
571 struct file * file = NULL; 571 struct file * file = NULL;
572 unsigned long retval = -EBADF; 572 unsigned long retval = -EBADF;
@@ -589,7 +589,7 @@ out:
589 return retval; 589 return retval;
590} 590}
591 591
592asmlinkage long sys64_munmap(unsigned long addr, size_t len) 592SYSCALL_DEFINE2(64_munmap, unsigned long, addr, size_t, len)
593{ 593{
594 long ret; 594 long ret;
595 595
@@ -606,9 +606,9 @@ extern unsigned long do_mremap(unsigned long addr,
606 unsigned long old_len, unsigned long new_len, 606 unsigned long old_len, unsigned long new_len,
607 unsigned long flags, unsigned long new_addr); 607 unsigned long flags, unsigned long new_addr);
608 608
609asmlinkage unsigned long sys64_mremap(unsigned long addr, 609SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len,
610 unsigned long old_len, unsigned long new_len, 610 unsigned long, new_len, unsigned long, flags,
611 unsigned long flags, unsigned long new_addr) 611 unsigned long, new_addr)
612{ 612{
613 unsigned long ret = -EINVAL; 613 unsigned long ret = -EINVAL;
614 614
@@ -671,7 +671,7 @@ asmlinkage void sparc_breakpoint(struct pt_regs *regs)
671 671
672extern void check_pending(int signum); 672extern void check_pending(int signum);
673 673
674asmlinkage long sys_getdomainname(char __user *name, int len) 674SYSCALL_DEFINE2(getdomainname, char __user *, name, int, len)
675{ 675{
676 int nlen, err; 676 int nlen, err;
677 677
@@ -694,11 +694,10 @@ out:
694 return err; 694 return err;
695} 695}
696 696
697asmlinkage long sys_utrap_install(utrap_entry_t type, 697SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type,
698 utrap_handler_t new_p, 698 utrap_handler_t, new_p, utrap_handler_t, new_d,
699 utrap_handler_t new_d, 699 utrap_handler_t __user *, old_p,
700 utrap_handler_t __user *old_p, 700 utrap_handler_t __user *, old_d)
701 utrap_handler_t __user *old_d)
702{ 701{
703 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31) 702 if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31)
704 return -EINVAL; 703 return -EINVAL;
@@ -764,11 +763,9 @@ asmlinkage long sparc_memory_ordering(unsigned long model,
764 return 0; 763 return 0;
765} 764}
766 765
767asmlinkage long sys_rt_sigaction(int sig, 766SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
768 const struct sigaction __user *act, 767 struct sigaction __user *, oact, void __user *, restorer,
769 struct sigaction __user *oact, 768 size_t, sigsetsize)
770 void __user *restorer,
771 size_t sigsetsize)
772{ 769{
773 struct k_sigaction new_ka, old_ka; 770 struct k_sigaction new_ka, old_ka;
774 int ret; 771 int ret;
@@ -808,7 +805,8 @@ asmlinkage void update_perfctrs(void)
808 reset_pic(); 805 reset_pic();
809} 806}
810 807
811asmlinkage long sys_perfctr(int opcode, unsigned long arg0, unsigned long arg1, unsigned long arg2) 808SYSCALL_DEFINE4(perfctr, int, opcode, unsigned long, arg0,
809 unsigned long, arg1, unsigned long, arg2)
812{ 810{
813 int err = 0; 811 int err = 0;
814 812
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 87f5a3b8a253..d150c2aa98d2 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -21,7 +21,7 @@ execve_merge:
21 21
22 .align 32 22 .align 32
23sys_sparc_pipe: 23sys_sparc_pipe:
24 ba,pt %xcc, sparc_pipe 24 ba,pt %xcc, sys_sparc_pipe_real
25 add %sp, PTREGS_OFF, %o0 25 add %sp, PTREGS_OFF, %o0
26sys_nis_syscall: 26sys_nis_syscall:
27 ba,pt %xcc, c_sys_nis_syscall 27 ba,pt %xcc, c_sys_nis_syscall
diff --git a/arch/sparc/kernel/systbls.h b/arch/sparc/kernel/systbls.h
index bc9f5dac4069..15c2d752b2bc 100644
--- a/arch/sparc/kernel/systbls.h
+++ b/arch/sparc/kernel/systbls.h
@@ -16,9 +16,6 @@ extern asmlinkage long sys_ipc(unsigned int call, int first,
16 void __user *ptr, long fifth); 16 void __user *ptr, long fifth);
17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name); 17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
18extern asmlinkage long sparc64_personality(unsigned long personality); 18extern asmlinkage long sparc64_personality(unsigned long personality);
19extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
20 unsigned long prot, unsigned long flags,
21 unsigned long fd, unsigned long off);
22extern asmlinkage long sys64_munmap(unsigned long addr, size_t len); 19extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
23extern asmlinkage unsigned long sys64_mremap(unsigned long addr, 20extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
24 unsigned long old_len, 21 unsigned long old_len,
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
index e6007bb37046..f93c42a2b522 100644
--- a/arch/sparc/kernel/systbls_64.S
+++ b/arch/sparc/kernel/systbls_64.S
@@ -21,7 +21,7 @@ sys_call_table32:
21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write 21/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link 22/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod 23/*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod
24/*15*/ .word sys_chmod, sys_lchown16, sparc_brk, sys32_perfctr, sys32_lseek 24/*15*/ .word sys_chmod, sys_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek
25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 25/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16
26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause 26/*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause
27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice 27/*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
@@ -55,8 +55,8 @@ sys_call_table32:
55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents 55/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr 56 .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr
57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall 57/*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname 58 .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sys_sparc64_newuname
59/*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl 59/*190*/ .word sys32_init_module, sys_sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl
60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask 60 .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir 61/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64 62 .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
@@ -95,7 +95,7 @@ sys_call_table:
95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write 95/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link 96/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod 97/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
98/*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek 98/*15*/ .word sys_chmod, sys_lchown, sys_sparc_brk, sys_perfctr, sys_lseek
99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid 99/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall 100/*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice 101/*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
@@ -106,7 +106,7 @@ sys_call_table:
106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve 106 .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize 107/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall 108 .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect 109/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys_64_munmap, sys_mprotect
110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups 110 .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall 111/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall 112 .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
@@ -129,8 +129,8 @@ sys_call_table:
129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents 129/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr 130 .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall 131/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname 132 .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_sparc64_newuname
133/*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl 133/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask 134 .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall 135/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 136 .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
@@ -142,7 +142,7 @@ sys_call_table:
142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall 142 .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler 143/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep 144 .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
145/*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl 145/*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep 146 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun 147/*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy 148 .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index c2d153d46586..d809c4ebb48f 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -1,6 +1,6 @@
1/* arch/sparc64/kernel/traps.c 1/* arch/sparc64/kernel/traps.c
2 * 2 *
3 * Copyright (C) 1995,1997,2008 David S. Miller (davem@davemloft.net) 3 * Copyright (C) 1995,1997,2008,2009 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com) 4 * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com)
5 */ 5 */
6 6
@@ -314,6 +314,21 @@ void sun4v_data_access_exception(struct pt_regs *regs, unsigned long addr, unsig
314 return; 314 return;
315 315
316 if (regs->tstate & TSTATE_PRIV) { 316 if (regs->tstate & TSTATE_PRIV) {
317 /* Test if this comes from uaccess places. */
318 const struct exception_table_entry *entry;
319
320 entry = search_exception_tables(regs->tpc);
321 if (entry) {
322 /* Ouch, somebody is trying VM hole tricks on us... */
323#ifdef DEBUG_EXCEPTIONS
324 printk("Exception: PC<%016lx> faddr<UNKNOWN>\n", regs->tpc);
325 printk("EX_TABLE: insn<%016lx> fixup<%016lx>\n",
326 regs->tpc, entry->fixup);
327#endif
328 regs->tpc = entry->fixup;
329 regs->tnpc = regs->tpc + 4;
330 return;
331 }
317 printk("sun4v_data_access_exception: ADDR[%016lx] " 332 printk("sun4v_data_access_exception: ADDR[%016lx] "
318 "CTX[%04x] TYPE[%04x], going.\n", 333 "CTX[%04x] TYPE[%04x], going.\n",
319 addr, ctx, type); 334 addr, ctx, type);
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 273fc85269fc..e75faf0e59ae 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -18,7 +18,7 @@ lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o
18lib-y += rwsem_$(BITS).o 18lib-y += rwsem_$(BITS).o
19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o 19lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o
20 20
21lib-$(CONFIG_SPARC64) += PeeCeeI.o copy_page.o clear_page.o bzero.o 21lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o
22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o 22lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
23lib-$(CONFIG_SPARC64) += VISsave.o 23lib-$(CONFIG_SPARC64) += VISsave.o
24lib-$(CONFIG_SPARC64) += bitops.o 24lib-$(CONFIG_SPARC64) += bitops.o
@@ -43,3 +43,4 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o
43obj-y += iomap.o 43obj-y += iomap.o
44obj-$(CONFIG_SPARC32) += atomic32.o 44obj-$(CONFIG_SPARC32) += atomic32.o
45obj-y += ksyms.o 45obj-y += ksyms.o
46obj-$(CONFIG_SPARC64) += PeeCeeI.o
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index b30a08ed8eb4..edba00d98ac3 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -1331,8 +1331,8 @@ CONFIG_I2C_I801=y
1331# Miscellaneous I2C Chip support 1331# Miscellaneous I2C Chip support
1332# 1332#
1333# CONFIG_DS1682 is not set 1333# CONFIG_DS1682 is not set
1334# CONFIG_AT24 is not set 1334# CONFIG_EEPROM_AT24 is not set
1335# CONFIG_SENSORS_EEPROM is not set 1335# CONFIG_EEPROM_LEGACY is not set
1336# CONFIG_SENSORS_PCF8574 is not set 1336# CONFIG_SENSORS_PCF8574 is not set
1337# CONFIG_PCF8575 is not set 1337# CONFIG_PCF8575 is not set
1338# CONFIG_SENSORS_PCA9539 is not set 1338# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 0e7dbc0a3e46..322dd2748fc9 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1311,8 +1311,8 @@ CONFIG_I2C_I801=y
1311# Miscellaneous I2C Chip support 1311# Miscellaneous I2C Chip support
1312# 1312#
1313# CONFIG_DS1682 is not set 1313# CONFIG_DS1682 is not set
1314# CONFIG_AT24 is not set 1314# CONFIG_EEPROM_AT24 is not set
1315# CONFIG_SENSORS_EEPROM is not set 1315# CONFIG_EEPROM_LEGACY is not set
1316# CONFIG_SENSORS_PCF8574 is not set 1316# CONFIG_SENSORS_PCF8574 is not set
1317# CONFIG_PCF8575 is not set 1317# CONFIG_PCF8575 is not set
1318# CONFIG_SENSORS_PCA9539 is not set 1318# CONFIG_SENSORS_PCA9539 is not set
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 05cfed4485fa..1dbbdf4be9b4 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -99,7 +99,6 @@ extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size);
99 * A boot-time mapping is currently limited to at most 16 pages. 99 * A boot-time mapping is currently limited to at most 16 pages.
100 */ 100 */
101extern void early_ioremap_init(void); 101extern void early_ioremap_init(void);
102extern void early_ioremap_clear(void);
103extern void early_ioremap_reset(void); 102extern void early_ioremap_reset(void);
104extern void __iomem *early_ioremap(unsigned long offset, unsigned long size); 103extern void __iomem *early_ioremap(unsigned long offset, unsigned long size);
105extern void __iomem *early_memremap(unsigned long offset, unsigned long size); 104extern void __iomem *early_memremap(unsigned long offset, unsigned long size);
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index cb58643947b9..358acc59ae04 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -202,6 +202,35 @@
202#define MSR_IA32_THERM_STATUS 0x0000019c 202#define MSR_IA32_THERM_STATUS 0x0000019c
203#define MSR_IA32_MISC_ENABLE 0x000001a0 203#define MSR_IA32_MISC_ENABLE 0x000001a0
204 204
205/* MISC_ENABLE bits: architectural */
206#define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0)
207#define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1)
208#define MSR_IA32_MISC_ENABLE_EMON (1ULL << 7)
209#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1ULL << 11)
210#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1ULL << 12)
211#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP (1ULL << 16)
212#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18)
213#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1ULL << 22)
214#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1ULL << 23)
215#define MSR_IA32_MISC_ENABLE_XD_DISABLE (1ULL << 34)
216
217/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */
218#define MSR_IA32_MISC_ENABLE_X87_COMPAT (1ULL << 2)
219#define MSR_IA32_MISC_ENABLE_TM1 (1ULL << 3)
220#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE (1ULL << 4)
221#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE (1ULL << 6)
222#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK (1ULL << 8)
223#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE (1ULL << 9)
224#define MSR_IA32_MISC_ENABLE_FERR (1ULL << 10)
225#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX (1ULL << 10)
226#define MSR_IA32_MISC_ENABLE_TM2 (1ULL << 13)
227#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE (1ULL << 19)
228#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK (1ULL << 20)
229#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT (1ULL << 24)
230#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE (1ULL << 37)
231#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE (1ULL << 38)
232#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE (1ULL << 39)
233
205/* Intel Model 6 */ 234/* Intel Model 6 */
206#define MSR_P6_EVNTSEL0 0x00000186 235#define MSR_P6_EVNTSEL0 0x00000186
207#define MSR_P6_EVNTSEL1 0x00000187 236#define MSR_P6_EVNTSEL1 0x00000187
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
index cb7c151a8bff..dd14c54ac718 100644
--- a/arch/x86/include/asm/pgalloc.h
+++ b/arch/x86/include/asm/pgalloc.h
@@ -42,6 +42,7 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
42 42
43static inline void pte_free(struct mm_struct *mm, struct page *pte) 43static inline void pte_free(struct mm_struct *mm, struct page *pte)
44{ 44{
45 pgtable_page_dtor(pte);
45 __free_page(pte); 46 __free_page(pte);
46} 47}
47 48
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h
index 9c6797c3e56c..c0b0bda754ee 100644
--- a/arch/x86/include/asm/syscalls.h
+++ b/arch/x86/include/asm/syscalls.h
@@ -40,7 +40,7 @@ asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
40 struct old_sigaction __user *); 40 struct old_sigaction __user *);
41asmlinkage int sys_sigaltstack(unsigned long); 41asmlinkage int sys_sigaltstack(unsigned long);
42asmlinkage unsigned long sys_sigreturn(unsigned long); 42asmlinkage unsigned long sys_sigreturn(unsigned long);
43asmlinkage int sys_rt_sigreturn(struct pt_regs); 43asmlinkage int sys_rt_sigreturn(unsigned long);
44 44
45/* kernel/ioport.c */ 45/* kernel/ioport.c */
46asmlinkage long sys_iopl(unsigned long); 46asmlinkage long sys_iopl(unsigned long);
diff --git a/arch/x86/include/asm/timex.h b/arch/x86/include/asm/timex.h
index 1287dc1347d6..b5c9d45c981f 100644
--- a/arch/x86/include/asm/timex.h
+++ b/arch/x86/include/asm/timex.h
@@ -1,18 +1,13 @@
1/* x86 architecture timex specifications */
2#ifndef _ASM_X86_TIMEX_H 1#ifndef _ASM_X86_TIMEX_H
3#define _ASM_X86_TIMEX_H 2#define _ASM_X86_TIMEX_H
4 3
5#include <asm/processor.h> 4#include <asm/processor.h>
6#include <asm/tsc.h> 5#include <asm/tsc.h>
7 6
8#ifdef CONFIG_X86_ELAN 7/* The PIT ticks at this frequency (in HZ): */
9# define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */ 8#define PIT_TICK_RATE 1193182
10#elif defined(CONFIG_X86_RDC321X) 9
11# define PIT_TICK_RATE 1041667 /* Underlying HZ for R8610 */ 10#define CLOCK_TICK_RATE PIT_TICK_RATE
12#else
13# define PIT_TICK_RATE 1193182 /* Underlying HZ */
14#endif
15#define CLOCK_TICK_RATE PIT_TICK_RATE
16 11
17#define ARCH_HAS_READ_CURRENT_TIMER 12#define ARCH_HAS_READ_CURRENT_TIMER
18 13
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 8ea6929e974c..549f2ada55f5 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -29,6 +29,19 @@
29 29
30static void __cpuinit early_init_intel(struct cpuinfo_x86 *c) 30static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
31{ 31{
32 /* Unmask CPUID levels if masked: */
33 if (c->x86 == 6 && c->x86_model >= 15) {
34 u64 misc_enable;
35
36 rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
37
38 if (misc_enable & MSR_IA32_MISC_ENABLE_LIMIT_CPUID) {
39 misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID;
40 wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
41 c->cpuid_level = cpuid_eax(0);
42 }
43 }
44
32 if ((c->x86 == 0xf && c->x86_model >= 0x03) || 45 if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
33 (c->x86 == 0x6 && c->x86_model >= 0x0e)) 46 (c->x86 == 0x6 && c->x86_model >= 0x0e))
34 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 47 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index b59ddcc88cd8..0c0a455fe95c 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -33,11 +33,13 @@ u64 mtrr_tom2;
33struct mtrr_state_type mtrr_state = {}; 33struct mtrr_state_type mtrr_state = {};
34EXPORT_SYMBOL_GPL(mtrr_state); 34EXPORT_SYMBOL_GPL(mtrr_state);
35 35
36#undef MODULE_PARAM_PREFIX 36static int __initdata mtrr_show;
37#define MODULE_PARAM_PREFIX "mtrr." 37static int __init mtrr_debug(char *opt)
38 38{
39static int mtrr_show; 39 mtrr_show = 1;
40module_param_named(show, mtrr_show, bool, 0); 40 return 0;
41}
42early_param("mtrr.show", mtrr_debug);
41 43
42/* 44/*
43 * Returns the effective MTRR type for the region 45 * Returns the effective MTRR type for the region
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index cd759ad90690..64d5ad0b8add 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -628,11 +628,12 @@ static int hpet_cpuhp_notify(struct notifier_block *n,
628 628
629 switch (action & 0xf) { 629 switch (action & 0xf) {
630 case CPU_ONLINE: 630 case CPU_ONLINE:
631 INIT_DELAYED_WORK(&work.work, hpet_work); 631 INIT_DELAYED_WORK_ON_STACK(&work.work, hpet_work);
632 init_completion(&work.complete); 632 init_completion(&work.complete);
633 /* FIXME: add schedule_work_on() */ 633 /* FIXME: add schedule_work_on() */
634 schedule_delayed_work_on(cpu, &work.work, 0); 634 schedule_delayed_work_on(cpu, &work.work, 0);
635 wait_for_completion(&work.complete); 635 wait_for_completion(&work.complete);
636 destroy_timer_on_stack(&work.work.timer);
636 break; 637 break;
637 case CPU_DEAD: 638 case CPU_DEAD:
638 if (hdev) { 639 if (hdev) {
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 90b8e154bb53..e553803cd2db 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -80,7 +80,7 @@ static inline void setup_node_to_cpumask_map(void) { }
80#ifdef CONFIG_X86_64 80#ifdef CONFIG_X86_64
81 81
82/* correctly size the local cpu masks */ 82/* correctly size the local cpu masks */
83static void setup_cpu_local_masks(void) 83static void __init setup_cpu_local_masks(void)
84{ 84{
85 alloc_bootmem_cpumask_var(&cpu_initialized_mask); 85 alloc_bootmem_cpumask_var(&cpu_initialized_mask);
86 alloc_bootmem_cpumask_var(&cpu_callin_mask); 86 alloc_bootmem_cpumask_var(&cpu_callin_mask);
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 89bb7668041d..df0587f24c54 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -632,9 +632,16 @@ badframe:
632} 632}
633 633
634#ifdef CONFIG_X86_32 634#ifdef CONFIG_X86_32
635asmlinkage int sys_rt_sigreturn(struct pt_regs regs) 635/*
636 * Note: do not pass in pt_regs directly as with tail-call optimization
637 * GCC will incorrectly stomp on the caller's frame and corrupt user-space
638 * register state:
639 */
640asmlinkage int sys_rt_sigreturn(unsigned long __unused)
636{ 641{
637 return do_rt_sigreturn(&regs); 642 struct pt_regs *regs = (struct pt_regs *)&__unused;
643
644 return do_rt_sigreturn(regs);
638} 645}
639#else /* !CONFIG_X86_32 */ 646#else /* !CONFIG_X86_32 */
640asmlinkage long sys_rt_sigreturn(struct pt_regs *regs) 647asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index aae15dd72604..89fce1b6d01f 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -201,6 +201,7 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
201 destination_timeouts = 0; 201 destination_timeouts = 0;
202 } 202 }
203 } 203 }
204 cpu_relax();
204 } 205 }
205 return FLUSH_COMPLETE; 206 return FLUSH_COMPLETE;
206} 207}
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 23206ba16874..1d3302cc2ddf 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -858,7 +858,7 @@ void __init vmi_init(void)
858#endif 858#endif
859} 859}
860 860
861void vmi_activate(void) 861void __init vmi_activate(void)
862{ 862{
863 unsigned long flags; 863 unsigned long flags;
864 864
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index 4a20b2f9a381..7c8ca91bb9ec 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -56,7 +56,7 @@ do { \
56 " jmp 2b\n" \ 56 " jmp 2b\n" \
57 ".previous\n" \ 57 ".previous\n" \
58 _ASM_EXTABLE(0b,3b) \ 58 _ASM_EXTABLE(0b,3b) \
59 : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 59 : "=&d"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
60 "=&D" (__d2) \ 60 "=&D" (__d2) \
61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 61 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
62 : "memory"); \ 62 : "memory"); \
@@ -218,7 +218,7 @@ long strnlen_user(const char __user *s, long n)
218 " .align 4\n" 218 " .align 4\n"
219 " .long 0b,2b\n" 219 " .long 0b,2b\n"
220 ".previous" 220 ".previous"
221 :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) 221 :"=&r" (n), "=&D" (s), "=&a" (res), "=&c" (tmp)
222 :"0" (n), "1" (s), "2" (0), "3" (mask) 222 :"0" (n), "1" (s), "2" (0), "3" (mask)
223 :"cc"); 223 :"cc");
224 return res & mask; 224 return res & mask;
diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
index 64d6c84e6353..ec13cb5f17ed 100644
--- a/arch/x86/lib/usercopy_64.c
+++ b/arch/x86/lib/usercopy_64.c
@@ -32,7 +32,7 @@ do { \
32 " jmp 2b\n" \ 32 " jmp 2b\n" \
33 ".previous\n" \ 33 ".previous\n" \
34 _ASM_EXTABLE(0b,3b) \ 34 _ASM_EXTABLE(0b,3b) \
35 : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ 35 : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
36 "=&D" (__d2) \ 36 "=&D" (__d2) \
37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ 37 : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
38 : "memory"); \ 38 : "memory"); \
@@ -86,7 +86,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
86 ".previous\n" 86 ".previous\n"
87 _ASM_EXTABLE(0b,3b) 87 _ASM_EXTABLE(0b,3b)
88 _ASM_EXTABLE(1b,2b) 88 _ASM_EXTABLE(1b,2b)
89 : [size8] "=c"(size), [dst] "=&D" (__d0) 89 : [size8] "=&c"(size), [dst] "=&D" (__d0)
90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr), 90 : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
91 [zero] "r" (0UL), [eight] "r" (8UL)); 91 [zero] "r" (0UL), [eight] "r" (8UL));
92 return size; 92 return size;
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 4a6989e47a53..00263bf07a88 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -137,6 +137,47 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
137 return pte_offset_kernel(pmd, 0); 137 return pte_offset_kernel(pmd, 0);
138} 138}
139 139
140static pte_t *__init page_table_kmap_check(pte_t *pte, pmd_t *pmd,
141 unsigned long vaddr, pte_t *lastpte)
142{
143#ifdef CONFIG_HIGHMEM
144 /*
145 * Something (early fixmap) may already have put a pte
146 * page here, which causes the page table allocation
147 * to become nonlinear. Attempt to fix it, and if it
148 * is still nonlinear then we have to bug.
149 */
150 int pmd_idx_kmap_begin = fix_to_virt(FIX_KMAP_END) >> PMD_SHIFT;
151 int pmd_idx_kmap_end = fix_to_virt(FIX_KMAP_BEGIN) >> PMD_SHIFT;
152
153 if (pmd_idx_kmap_begin != pmd_idx_kmap_end
154 && (vaddr >> PMD_SHIFT) >= pmd_idx_kmap_begin
155 && (vaddr >> PMD_SHIFT) <= pmd_idx_kmap_end
156 && ((__pa(pte) >> PAGE_SHIFT) < table_start
157 || (__pa(pte) >> PAGE_SHIFT) >= table_end)) {
158 pte_t *newpte;
159 int i;
160
161 BUG_ON(after_init_bootmem);
162 newpte = alloc_low_page();
163 for (i = 0; i < PTRS_PER_PTE; i++)
164 set_pte(newpte + i, pte[i]);
165
166 paravirt_alloc_pte(&init_mm, __pa(newpte) >> PAGE_SHIFT);
167 set_pmd(pmd, __pmd(__pa(newpte)|_PAGE_TABLE));
168 BUG_ON(newpte != pte_offset_kernel(pmd, 0));
169 __flush_tlb_all();
170
171 paravirt_release_pte(__pa(pte) >> PAGE_SHIFT);
172 pte = newpte;
173 }
174 BUG_ON(vaddr < fix_to_virt(FIX_KMAP_BEGIN - 1)
175 && vaddr > fix_to_virt(FIX_KMAP_END)
176 && lastpte && lastpte + PTRS_PER_PTE != pte);
177#endif
178 return pte;
179}
180
140/* 181/*
141 * This function initializes a certain range of kernel virtual memory 182 * This function initializes a certain range of kernel virtual memory
142 * with new bootmem page tables, everywhere page tables are missing in 183 * with new bootmem page tables, everywhere page tables are missing in
@@ -153,6 +194,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
153 unsigned long vaddr; 194 unsigned long vaddr;
154 pgd_t *pgd; 195 pgd_t *pgd;
155 pmd_t *pmd; 196 pmd_t *pmd;
197 pte_t *pte = NULL;
156 198
157 vaddr = start; 199 vaddr = start;
158 pgd_idx = pgd_index(vaddr); 200 pgd_idx = pgd_index(vaddr);
@@ -164,7 +206,8 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
164 pmd = pmd + pmd_index(vaddr); 206 pmd = pmd + pmd_index(vaddr);
165 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); 207 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
166 pmd++, pmd_idx++) { 208 pmd++, pmd_idx++) {
167 one_page_table_init(pmd); 209 pte = page_table_kmap_check(one_page_table_init(pmd),
210 pmd, vaddr, pte);
168 211
169 vaddr += PMD_SIZE; 212 vaddr += PMD_SIZE;
170 } 213 }
@@ -507,7 +550,6 @@ static void __init early_ioremap_page_table_range_init(pgd_t *pgd_base)
507 * Fixed mappings, only the page table structure has to be 550 * Fixed mappings, only the page table structure has to be
508 * created - mappings will be set by set_fixmap(): 551 * created - mappings will be set by set_fixmap():
509 */ 552 */
510 early_ioremap_clear();
511 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; 553 vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
512 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK; 554 end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK;
513 page_table_range_init(vaddr, end, pgd_base); 555 page_table_range_init(vaddr, end, pgd_base);
@@ -800,7 +842,7 @@ static void __init find_early_table_space(unsigned long end, int use_pse)
800 tables += PAGE_ALIGN(ptes * sizeof(pte_t)); 842 tables += PAGE_ALIGN(ptes * sizeof(pte_t));
801 843
802 /* for fixmap */ 844 /* for fixmap */
803 tables += PAGE_SIZE * 2; 845 tables += PAGE_ALIGN(__end_of_fixed_addresses * sizeof(pte_t));
804 846
805 /* 847 /*
806 * RED-PEN putting page tables only on node 0 could 848 * RED-PEN putting page tables only on node 0 could
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 23f68e77ad1f..e6d36b490250 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -596,7 +596,7 @@ static void __init init_gbpages(void)
596 direct_gbpages = 0; 596 direct_gbpages = 0;
597} 597}
598 598
599static unsigned long __init kernel_physical_mapping_init(unsigned long start, 599static unsigned long __meminit kernel_physical_mapping_init(unsigned long start,
600 unsigned long end, 600 unsigned long end,
601 unsigned long page_size_mask) 601 unsigned long page_size_mask)
602{ 602{
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
index d0151d8ce452..ca53224fc56c 100644
--- a/arch/x86/mm/iomap_32.c
+++ b/arch/x86/mm/iomap_32.c
@@ -17,6 +17,7 @@
17 */ 17 */
18 18
19#include <asm/iomap.h> 19#include <asm/iomap.h>
20#include <asm/pat.h>
20#include <linux/module.h> 21#include <linux/module.h>
21 22
22/* Map 'pfn' using fixed map 'type' and protections 'prot' 23/* Map 'pfn' using fixed map 'type' and protections 'prot'
@@ -29,6 +30,15 @@ iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot)
29 30
30 pagefault_disable(); 31 pagefault_disable();
31 32
33 /*
34 * For non-PAT systems, promote PAGE_KERNEL_WC to PAGE_KERNEL_UC_MINUS.
35 * PAGE_KERNEL_WC maps to PWT, which translates to uncached if the
36 * MTRR is UC or WC. UC_MINUS gets the real intention, of the
37 * user, which is "WC if the MTRR is WC, UC if you can't do that."
38 */
39 if (!pat_enabled && pgprot_val(prot) == pgprot_val(PAGE_KERNEL_WC))
40 prot = PAGE_KERNEL_UC_MINUS;
41
32 idx = type + KM_TYPE_NR*smp_processor_id(); 42 idx = type + KM_TYPE_NR*smp_processor_id();
33 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 43 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34 set_pte(kmap_pte-idx, pfn_pte(pfn, prot)); 44 set_pte(kmap_pte-idx, pfn_pte(pfn, prot));
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index bd85d42819e1..af750ab973b6 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -557,34 +557,9 @@ void __init early_ioremap_init(void)
557 } 557 }
558} 558}
559 559
560void __init early_ioremap_clear(void)
561{
562 pmd_t *pmd;
563
564 if (early_ioremap_debug)
565 printk(KERN_INFO "early_ioremap_clear()\n");
566
567 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
568 pmd_clear(pmd);
569 paravirt_release_pte(__pa(bm_pte) >> PAGE_SHIFT);
570 __flush_tlb_all();
571}
572
573void __init early_ioremap_reset(void) 560void __init early_ioremap_reset(void)
574{ 561{
575 enum fixed_addresses idx;
576 unsigned long addr, phys;
577 pte_t *pte;
578
579 after_paging_init = 1; 562 after_paging_init = 1;
580 for (idx = FIX_BTMAP_BEGIN; idx >= FIX_BTMAP_END; idx--) {
581 addr = fix_to_virt(idx);
582 pte = early_ioremap_pte(addr);
583 if (pte_present(*pte)) {
584 phys = pte_val(*pte) & PAGE_MASK;
585 set_fixmap(idx, phys);
586 }
587 }
588} 563}
589 564
590static void __init __early_set_fixmap(enum fixed_addresses idx, 565static void __init __early_set_fixmap(enum fixed_addresses idx,
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index e89d24815f26..84ba74820ad6 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -534,6 +534,36 @@ out_unlock:
534 return 0; 534 return 0;
535} 535}
536 536
537static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr,
538 int primary)
539{
540 /*
541 * Ignore all non primary paths.
542 */
543 if (!primary)
544 return 0;
545
546 /*
547 * Ignore the NULL PTE for kernel identity mapping, as it is expected
548 * to have holes.
549 * Also set numpages to '1' indicating that we processed cpa req for
550 * one virtual address page and its pfn. TBD: numpages can be set based
551 * on the initial value and the level returned by lookup_address().
552 */
553 if (within(vaddr, PAGE_OFFSET,
554 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) {
555 cpa->numpages = 1;
556 cpa->pfn = __pa(vaddr) >> PAGE_SHIFT;
557 return 0;
558 } else {
559 WARN(1, KERN_WARNING "CPA: called for zero pte. "
560 "vaddr = %lx cpa->vaddr = %lx\n", vaddr,
561 *cpa->vaddr);
562
563 return -EFAULT;
564 }
565}
566
537static int __change_page_attr(struct cpa_data *cpa, int primary) 567static int __change_page_attr(struct cpa_data *cpa, int primary)
538{ 568{
539 unsigned long address; 569 unsigned long address;
@@ -549,17 +579,11 @@ static int __change_page_attr(struct cpa_data *cpa, int primary)
549repeat: 579repeat:
550 kpte = lookup_address(address, &level); 580 kpte = lookup_address(address, &level);
551 if (!kpte) 581 if (!kpte)
552 return 0; 582 return __cpa_process_fault(cpa, address, primary);
553 583
554 old_pte = *kpte; 584 old_pte = *kpte;
555 if (!pte_val(old_pte)) { 585 if (!pte_val(old_pte))
556 if (!primary) 586 return __cpa_process_fault(cpa, address, primary);
557 return 0;
558 WARN(1, KERN_WARNING "CPA: called for zero pte. "
559 "vaddr = %lx cpa->vaddr = %lx\n", address,
560 *cpa->vaddr);
561 return -EINVAL;
562 }
563 587
564 if (level == PG_LEVEL_4K) { 588 if (level == PG_LEVEL_4K) {
565 pte_t new_pte; 589 pte_t new_pte;
@@ -657,12 +681,7 @@ static int cpa_process_alias(struct cpa_data *cpa)
657 vaddr = *cpa->vaddr; 681 vaddr = *cpa->vaddr;
658 682
659 if (!(within(vaddr, PAGE_OFFSET, 683 if (!(within(vaddr, PAGE_OFFSET,
660 PAGE_OFFSET + (max_low_pfn_mapped << PAGE_SHIFT)) 684 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)))) {
661#ifdef CONFIG_X86_64
662 || within(vaddr, PAGE_OFFSET + (1UL<<32),
663 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))
664#endif
665 )) {
666 685
667 alias_cpa = *cpa; 686 alias_cpa = *cpa;
668 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); 687 temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT);
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index c9488513fd70..7b61036427df 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -333,6 +333,9 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
333 req_type & _PAGE_CACHE_MASK); 333 req_type & _PAGE_CACHE_MASK);
334 } 334 }
335 335
336 if (new_type)
337 *new_type = actual_type;
338
336 /* 339 /*
337 * For legacy reasons, some parts of the physical address range in the 340 * For legacy reasons, some parts of the physical address range in the
338 * legacy 1MB region is treated as non-RAM (even when listed as RAM in 341 * legacy 1MB region is treated as non-RAM (even when listed as RAM in
@@ -356,9 +359,6 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
356 new->end = end; 359 new->end = end;
357 new->type = actual_type; 360 new->type = actual_type;
358 361
359 if (new_type)
360 *new_type = actual_type;
361
362 spin_lock(&memtype_lock); 362 spin_lock(&memtype_lock);
363 363
364 if (cached_entry && start >= cached_start) 364 if (cached_entry && start >= cached_start)
diff --git a/arch/x86/scripts/strip-symbols b/arch/x86/scripts/strip-symbols
deleted file mode 100644
index a2f1ccb827c7..000000000000
--- a/arch/x86/scripts/strip-symbols
+++ /dev/null
@@ -1 +0,0 @@
1__cpu_vendor_dev_X86_VENDOR_*
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 8079afca4972..55e530942ab0 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -777,10 +777,16 @@ static void device_remove_class_symlinks(struct device *dev)
777int dev_set_name(struct device *dev, const char *fmt, ...) 777int dev_set_name(struct device *dev, const char *fmt, ...)
778{ 778{
779 va_list vargs; 779 va_list vargs;
780 char *s;
780 781
781 va_start(vargs, fmt); 782 va_start(vargs, fmt);
782 vsnprintf(dev->bus_id, sizeof(dev->bus_id), fmt, vargs); 783 vsnprintf(dev->bus_id, sizeof(dev->bus_id), fmt, vargs);
783 va_end(vargs); 784 va_end(vargs);
785
786 /* ewww... some of these buggers have / in the name... */
787 while ((s = strchr(dev->bus_id, '/')))
788 *s = '!';
789
784 return 0; 790 return 0;
785} 791}
786EXPORT_SYMBOL_GPL(dev_set_name); 792EXPORT_SYMBOL_GPL(dev_set_name);
diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
index d4e7dca06e4f..ba68a4671cb5 100644
--- a/drivers/char/hw_random/omap-rng.c
+++ b/drivers/char/hw_random/omap-rng.c
@@ -102,7 +102,7 @@ static int __init omap_rng_probe(struct platform_device *pdev)
102 return -EBUSY; 102 return -EBUSY;
103 103
104 if (cpu_is_omap24xx()) { 104 if (cpu_is_omap24xx()) {
105 rng_ick = clk_get(NULL, "rng_ick"); 105 rng_ick = clk_get(&pdev->dev, "rng_ick");
106 if (IS_ERR(rng_ick)) { 106 if (IS_ERR(rng_ick)) {
107 dev_err(&pdev->dev, "Could not get rng_ick\n"); 107 dev_err(&pdev->dev, "Could not get rng_ick\n");
108 ret = PTR_ERR(rng_ick); 108 ret = PTR_ERR(rng_ick);
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index e34b06420816..48ea59e79672 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -62,6 +62,25 @@ config MV_XOR
62 ---help--- 62 ---help---
63 Enable support for the Marvell XOR engine. 63 Enable support for the Marvell XOR engine.
64 64
65config MX3_IPU
66 bool "MX3x Image Processing Unit support"
67 depends on ARCH_MX3
68 select DMA_ENGINE
69 default y
70 help
71 If you plan to use the Image Processing unit in the i.MX3x, say
72 Y here. If unsure, select Y.
73
74config MX3_IPU_IRQS
75 int "Number of dynamically mapped interrupts for IPU"
76 depends on MX3_IPU
77 range 2 137
78 default 4
79 help
80 Out of 137 interrupt sources on i.MX31 IPU only very few are used.
81 To avoid bloating the irq_desc[] array we allocate a sufficient
82 number of IRQ slots and map them dynamically to specific sources.
83
65config DMA_ENGINE 84config DMA_ENGINE
66 bool 85 bool
67 86
diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile
index 14f59527d4f6..2e5dc96700d2 100644
--- a/drivers/dma/Makefile
+++ b/drivers/dma/Makefile
@@ -7,3 +7,4 @@ obj-$(CONFIG_INTEL_IOP_ADMA) += iop-adma.o
7obj-$(CONFIG_FSL_DMA) += fsldma.o 7obj-$(CONFIG_FSL_DMA) += fsldma.o
8obj-$(CONFIG_MV_XOR) += mv_xor.o 8obj-$(CONFIG_MV_XOR) += mv_xor.o
9obj-$(CONFIG_DW_DMAC) += dw_dmac.o 9obj-$(CONFIG_DW_DMAC) += dw_dmac.o
10obj-$(CONFIG_MX3_IPU) += ipu/
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 403dbe781122..a58993011edb 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -329,9 +329,6 @@ struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type)
329 struct dma_chan *chan; 329 struct dma_chan *chan;
330 int cpu; 330 int cpu;
331 331
332 WARN_ONCE(dmaengine_ref_count == 0,
333 "client called %s without a reference", __func__);
334
335 cpu = get_cpu(); 332 cpu = get_cpu();
336 chan = per_cpu_ptr(channel_table[tx_type], cpu)->chan; 333 chan = per_cpu_ptr(channel_table[tx_type], cpu)->chan;
337 put_cpu(); 334 put_cpu();
@@ -348,9 +345,6 @@ void dma_issue_pending_all(void)
348 struct dma_device *device; 345 struct dma_device *device;
349 struct dma_chan *chan; 346 struct dma_chan *chan;
350 347
351 WARN_ONCE(dmaengine_ref_count == 0,
352 "client called %s without a reference", __func__);
353
354 rcu_read_lock(); 348 rcu_read_lock();
355 list_for_each_entry_rcu(device, &dma_device_list, global_node) { 349 list_for_each_entry_rcu(device, &dma_device_list, global_node) {
356 if (dma_has_cap(DMA_PRIVATE, device->cap_mask)) 350 if (dma_has_cap(DMA_PRIVATE, device->cap_mask))
@@ -961,6 +955,8 @@ void dma_run_dependencies(struct dma_async_tx_descriptor *tx)
961 if (!dep) 955 if (!dep)
962 return; 956 return;
963 957
958 /* we'll submit tx->next now, so clear the link */
959 tx->next = NULL;
964 chan = dep->chan; 960 chan = dep->chan;
965 961
966 /* keep submitting up until a channel switch is detected 962 /* keep submitting up until a channel switch is detected
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 3603f1ea5b28..732fa1ec36ab 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -217,6 +217,10 @@ static int dmatest_func(void *data)
217 chan = thread->chan; 217 chan = thread->chan;
218 218
219 while (!kthread_should_stop()) { 219 while (!kthread_should_stop()) {
220 struct dma_device *dev = chan->device;
221 struct dma_async_tx_descriptor *tx;
222 dma_addr_t dma_src, dma_dest;
223
220 total_tests++; 224 total_tests++;
221 225
222 len = dmatest_random() % test_buf_size + 1; 226 len = dmatest_random() % test_buf_size + 1;
@@ -226,10 +230,30 @@ static int dmatest_func(void *data)
226 dmatest_init_srcbuf(thread->srcbuf, src_off, len); 230 dmatest_init_srcbuf(thread->srcbuf, src_off, len);
227 dmatest_init_dstbuf(thread->dstbuf, dst_off, len); 231 dmatest_init_dstbuf(thread->dstbuf, dst_off, len);
228 232
229 cookie = dma_async_memcpy_buf_to_buf(chan, 233 dma_src = dma_map_single(dev->dev, thread->srcbuf + src_off,
230 thread->dstbuf + dst_off, 234 len, DMA_TO_DEVICE);
231 thread->srcbuf + src_off, 235 /* map with DMA_BIDIRECTIONAL to force writeback/invalidate */
232 len); 236 dma_dest = dma_map_single(dev->dev, thread->dstbuf,
237 test_buf_size, DMA_BIDIRECTIONAL);
238
239 tx = dev->device_prep_dma_memcpy(chan, dma_dest + dst_off,
240 dma_src, len,
241 DMA_CTRL_ACK | DMA_COMPL_SKIP_DEST_UNMAP);
242 if (!tx) {
243 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
244 dma_unmap_single(dev->dev, dma_dest,
245 test_buf_size, DMA_BIDIRECTIONAL);
246 pr_warning("%s: #%u: prep error with src_off=0x%x "
247 "dst_off=0x%x len=0x%x\n",
248 thread_name, total_tests - 1,
249 src_off, dst_off, len);
250 msleep(100);
251 failed_tests++;
252 continue;
253 }
254 tx->callback = NULL;
255 cookie = tx->tx_submit(tx);
256
233 if (dma_submit_error(cookie)) { 257 if (dma_submit_error(cookie)) {
234 pr_warning("%s: #%u: submit error %d with src_off=0x%x " 258 pr_warning("%s: #%u: submit error %d with src_off=0x%x "
235 "dst_off=0x%x len=0x%x\n", 259 "dst_off=0x%x len=0x%x\n",
@@ -253,6 +277,9 @@ static int dmatest_func(void *data)
253 failed_tests++; 277 failed_tests++;
254 continue; 278 continue;
255 } 279 }
280 /* Unmap by myself (see DMA_COMPL_SKIP_DEST_UNMAP above) */
281 dma_unmap_single(dev->dev, dma_dest,
282 test_buf_size, DMA_BIDIRECTIONAL);
256 283
257 error_count = 0; 284 error_count = 0;
258 285
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index ca70a21afc68..70126a606239 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -822,7 +822,7 @@ static int __devinit fsl_dma_chan_probe(struct fsl_dma_device *fdev,
822 */ 822 */
823 WARN_ON(fdev->feature != new_fsl_chan->feature); 823 WARN_ON(fdev->feature != new_fsl_chan->feature);
824 824
825 new_fsl_chan->dev = &new_fsl_chan->common.dev->device; 825 new_fsl_chan->dev = fdev->dev;
826 new_fsl_chan->reg_base = ioremap(new_fsl_chan->reg.start, 826 new_fsl_chan->reg_base = ioremap(new_fsl_chan->reg.start,
827 new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1); 827 new_fsl_chan->reg.end - new_fsl_chan->reg.start + 1);
828 828
@@ -875,7 +875,8 @@ static int __devinit fsl_dma_chan_probe(struct fsl_dma_device *fdev,
875 } 875 }
876 876
877 dev_info(fdev->dev, "#%d (%s), irq %d\n", new_fsl_chan->id, 877 dev_info(fdev->dev, "#%d (%s), irq %d\n", new_fsl_chan->id,
878 compatible, new_fsl_chan->irq); 878 compatible,
879 new_fsl_chan->irq != NO_IRQ ? new_fsl_chan->irq : fdev->irq);
879 880
880 return 0; 881 return 0;
881 882
@@ -890,7 +891,8 @@ err_no_reg:
890 891
891static void fsl_dma_chan_remove(struct fsl_dma_chan *fchan) 892static void fsl_dma_chan_remove(struct fsl_dma_chan *fchan)
892{ 893{
893 free_irq(fchan->irq, fchan); 894 if (fchan->irq != NO_IRQ)
895 free_irq(fchan->irq, fchan);
894 list_del(&fchan->common.device_node); 896 list_del(&fchan->common.device_node);
895 iounmap(fchan->reg_base); 897 iounmap(fchan->reg_base);
896 kfree(fchan); 898 kfree(fchan);
diff --git a/drivers/dma/ipu/Makefile b/drivers/dma/ipu/Makefile
new file mode 100644
index 000000000000..6704cf48326d
--- /dev/null
+++ b/drivers/dma/ipu/Makefile
@@ -0,0 +1 @@
obj-y += ipu_irq.o ipu_idmac.o
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
new file mode 100644
index 000000000000..1f154d08e98f
--- /dev/null
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -0,0 +1,1740 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright (C) 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/init.h>
13#include <linux/platform_device.h>
14#include <linux/err.h>
15#include <linux/spinlock.h>
16#include <linux/delay.h>
17#include <linux/list.h>
18#include <linux/clk.h>
19#include <linux/vmalloc.h>
20#include <linux/string.h>
21#include <linux/interrupt.h>
22#include <linux/io.h>
23
24#include <mach/ipu.h>
25
26#include "ipu_intern.h"
27
28#define FS_VF_IN_VALID 0x00000002
29#define FS_ENC_IN_VALID 0x00000001
30
31/*
32 * There can be only one, we could allocate it dynamically, but then we'd have
33 * to add an extra parameter to some functions, and use something as ugly as
34 * struct ipu *ipu = to_ipu(to_idmac(ichan->dma_chan.device));
35 * in the ISR
36 */
37static struct ipu ipu_data;
38
39#define to_ipu(id) container_of(id, struct ipu, idmac)
40
41static u32 __idmac_read_icreg(struct ipu *ipu, unsigned long reg)
42{
43 return __raw_readl(ipu->reg_ic + reg);
44}
45
46#define idmac_read_icreg(ipu, reg) __idmac_read_icreg(ipu, reg - IC_CONF)
47
48static void __idmac_write_icreg(struct ipu *ipu, u32 value, unsigned long reg)
49{
50 __raw_writel(value, ipu->reg_ic + reg);
51}
52
53#define idmac_write_icreg(ipu, v, reg) __idmac_write_icreg(ipu, v, reg - IC_CONF)
54
55static u32 idmac_read_ipureg(struct ipu *ipu, unsigned long reg)
56{
57 return __raw_readl(ipu->reg_ipu + reg);
58}
59
60static void idmac_write_ipureg(struct ipu *ipu, u32 value, unsigned long reg)
61{
62 __raw_writel(value, ipu->reg_ipu + reg);
63}
64
65/*****************************************************************************
66 * IPU / IC common functions
67 */
68static void dump_idmac_reg(struct ipu *ipu)
69{
70 dev_dbg(ipu->dev, "IDMAC_CONF 0x%x, IC_CONF 0x%x, IDMAC_CHA_EN 0x%x, "
71 "IDMAC_CHA_PRI 0x%x, IDMAC_CHA_BUSY 0x%x\n",
72 idmac_read_icreg(ipu, IDMAC_CONF),
73 idmac_read_icreg(ipu, IC_CONF),
74 idmac_read_icreg(ipu, IDMAC_CHA_EN),
75 idmac_read_icreg(ipu, IDMAC_CHA_PRI),
76 idmac_read_icreg(ipu, IDMAC_CHA_BUSY));
77 dev_dbg(ipu->dev, "BUF0_RDY 0x%x, BUF1_RDY 0x%x, CUR_BUF 0x%x, "
78 "DB_MODE 0x%x, TASKS_STAT 0x%x\n",
79 idmac_read_ipureg(ipu, IPU_CHA_BUF0_RDY),
80 idmac_read_ipureg(ipu, IPU_CHA_BUF1_RDY),
81 idmac_read_ipureg(ipu, IPU_CHA_CUR_BUF),
82 idmac_read_ipureg(ipu, IPU_CHA_DB_MODE_SEL),
83 idmac_read_ipureg(ipu, IPU_TASKS_STAT));
84}
85
86static uint32_t bytes_per_pixel(enum pixel_fmt fmt)
87{
88 switch (fmt) {
89 case IPU_PIX_FMT_GENERIC: /* generic data */
90 case IPU_PIX_FMT_RGB332:
91 case IPU_PIX_FMT_YUV420P:
92 case IPU_PIX_FMT_YUV422P:
93 default:
94 return 1;
95 case IPU_PIX_FMT_RGB565:
96 case IPU_PIX_FMT_YUYV:
97 case IPU_PIX_FMT_UYVY:
98 return 2;
99 case IPU_PIX_FMT_BGR24:
100 case IPU_PIX_FMT_RGB24:
101 return 3;
102 case IPU_PIX_FMT_GENERIC_32: /* generic data */
103 case IPU_PIX_FMT_BGR32:
104 case IPU_PIX_FMT_RGB32:
105 case IPU_PIX_FMT_ABGR32:
106 return 4;
107 }
108}
109
110/* Enable / disable direct write to memory by the Camera Sensor Interface */
111static void ipu_ic_enable_task(struct ipu *ipu, enum ipu_channel channel)
112{
113 uint32_t ic_conf, mask;
114
115 switch (channel) {
116 case IDMAC_IC_0:
117 mask = IC_CONF_PRPENC_EN;
118 break;
119 case IDMAC_IC_7:
120 mask = IC_CONF_RWS_EN | IC_CONF_PRPENC_EN;
121 break;
122 default:
123 return;
124 }
125 ic_conf = idmac_read_icreg(ipu, IC_CONF) | mask;
126 idmac_write_icreg(ipu, ic_conf, IC_CONF);
127}
128
129static void ipu_ic_disable_task(struct ipu *ipu, enum ipu_channel channel)
130{
131 uint32_t ic_conf, mask;
132
133 switch (channel) {
134 case IDMAC_IC_0:
135 mask = IC_CONF_PRPENC_EN;
136 break;
137 case IDMAC_IC_7:
138 mask = IC_CONF_RWS_EN | IC_CONF_PRPENC_EN;
139 break;
140 default:
141 return;
142 }
143 ic_conf = idmac_read_icreg(ipu, IC_CONF) & ~mask;
144 idmac_write_icreg(ipu, ic_conf, IC_CONF);
145}
146
147static uint32_t ipu_channel_status(struct ipu *ipu, enum ipu_channel channel)
148{
149 uint32_t stat = TASK_STAT_IDLE;
150 uint32_t task_stat_reg = idmac_read_ipureg(ipu, IPU_TASKS_STAT);
151
152 switch (channel) {
153 case IDMAC_IC_7:
154 stat = (task_stat_reg & TSTAT_CSI2MEM_MASK) >>
155 TSTAT_CSI2MEM_OFFSET;
156 break;
157 case IDMAC_IC_0:
158 case IDMAC_SDC_0:
159 case IDMAC_SDC_1:
160 default:
161 break;
162 }
163 return stat;
164}
165
166struct chan_param_mem_planar {
167 /* Word 0 */
168 u32 xv:10;
169 u32 yv:10;
170 u32 xb:12;
171
172 u32 yb:12;
173 u32 res1:2;
174 u32 nsb:1;
175 u32 lnpb:6;
176 u32 ubo_l:11;
177
178 u32 ubo_h:15;
179 u32 vbo_l:17;
180
181 u32 vbo_h:9;
182 u32 res2:3;
183 u32 fw:12;
184 u32 fh_l:8;
185
186 u32 fh_h:4;
187 u32 res3:28;
188
189 /* Word 1 */
190 u32 eba0;
191
192 u32 eba1;
193
194 u32 bpp:3;
195 u32 sl:14;
196 u32 pfs:3;
197 u32 bam:3;
198 u32 res4:2;
199 u32 npb:6;
200 u32 res5:1;
201
202 u32 sat:2;
203 u32 res6:30;
204} __attribute__ ((packed));
205
206struct chan_param_mem_interleaved {
207 /* Word 0 */
208 u32 xv:10;
209 u32 yv:10;
210 u32 xb:12;
211
212 u32 yb:12;
213 u32 sce:1;
214 u32 res1:1;
215 u32 nsb:1;
216 u32 lnpb:6;
217 u32 sx:10;
218 u32 sy_l:1;
219
220 u32 sy_h:9;
221 u32 ns:10;
222 u32 sm:10;
223 u32 sdx_l:3;
224
225 u32 sdx_h:2;
226 u32 sdy:5;
227 u32 sdrx:1;
228 u32 sdry:1;
229 u32 sdr1:1;
230 u32 res2:2;
231 u32 fw:12;
232 u32 fh_l:8;
233
234 u32 fh_h:4;
235 u32 res3:28;
236
237 /* Word 1 */
238 u32 eba0;
239
240 u32 eba1;
241
242 u32 bpp:3;
243 u32 sl:14;
244 u32 pfs:3;
245 u32 bam:3;
246 u32 res4:2;
247 u32 npb:6;
248 u32 res5:1;
249
250 u32 sat:2;
251 u32 scc:1;
252 u32 ofs0:5;
253 u32 ofs1:5;
254 u32 ofs2:5;
255 u32 ofs3:5;
256 u32 wid0:3;
257 u32 wid1:3;
258 u32 wid2:3;
259
260 u32 wid3:3;
261 u32 dec_sel:1;
262 u32 res6:28;
263} __attribute__ ((packed));
264
265union chan_param_mem {
266 struct chan_param_mem_planar pp;
267 struct chan_param_mem_interleaved ip;
268};
269
270static void ipu_ch_param_set_plane_offset(union chan_param_mem *params,
271 u32 u_offset, u32 v_offset)
272{
273 params->pp.ubo_l = u_offset & 0x7ff;
274 params->pp.ubo_h = u_offset >> 11;
275 params->pp.vbo_l = v_offset & 0x1ffff;
276 params->pp.vbo_h = v_offset >> 17;
277}
278
279static void ipu_ch_param_set_size(union chan_param_mem *params,
280 uint32_t pixel_fmt, uint16_t width,
281 uint16_t height, uint16_t stride)
282{
283 u32 u_offset;
284 u32 v_offset;
285
286 params->pp.fw = width - 1;
287 params->pp.fh_l = height - 1;
288 params->pp.fh_h = (height - 1) >> 8;
289 params->pp.sl = stride - 1;
290
291 switch (pixel_fmt) {
292 case IPU_PIX_FMT_GENERIC:
293 /*Represents 8-bit Generic data */
294 params->pp.bpp = 3;
295 params->pp.pfs = 7;
296 params->pp.npb = 31;
297 params->pp.sat = 2; /* SAT = use 32-bit access */
298 break;
299 case IPU_PIX_FMT_GENERIC_32:
300 /*Represents 32-bit Generic data */
301 params->pp.bpp = 0;
302 params->pp.pfs = 7;
303 params->pp.npb = 7;
304 params->pp.sat = 2; /* SAT = use 32-bit access */
305 break;
306 case IPU_PIX_FMT_RGB565:
307 params->ip.bpp = 2;
308 params->ip.pfs = 4;
309 params->ip.npb = 7;
310 params->ip.sat = 2; /* SAT = 32-bit access */
311 params->ip.ofs0 = 0; /* Red bit offset */
312 params->ip.ofs1 = 5; /* Green bit offset */
313 params->ip.ofs2 = 11; /* Blue bit offset */
314 params->ip.ofs3 = 16; /* Alpha bit offset */
315 params->ip.wid0 = 4; /* Red bit width - 1 */
316 params->ip.wid1 = 5; /* Green bit width - 1 */
317 params->ip.wid2 = 4; /* Blue bit width - 1 */
318 break;
319 case IPU_PIX_FMT_BGR24:
320 params->ip.bpp = 1; /* 24 BPP & RGB PFS */
321 params->ip.pfs = 4;
322 params->ip.npb = 7;
323 params->ip.sat = 2; /* SAT = 32-bit access */
324 params->ip.ofs0 = 0; /* Red bit offset */
325 params->ip.ofs1 = 8; /* Green bit offset */
326 params->ip.ofs2 = 16; /* Blue bit offset */
327 params->ip.ofs3 = 24; /* Alpha bit offset */
328 params->ip.wid0 = 7; /* Red bit width - 1 */
329 params->ip.wid1 = 7; /* Green bit width - 1 */
330 params->ip.wid2 = 7; /* Blue bit width - 1 */
331 break;
332 case IPU_PIX_FMT_RGB24:
333 params->ip.bpp = 1; /* 24 BPP & RGB PFS */
334 params->ip.pfs = 4;
335 params->ip.npb = 7;
336 params->ip.sat = 2; /* SAT = 32-bit access */
337 params->ip.ofs0 = 16; /* Red bit offset */
338 params->ip.ofs1 = 8; /* Green bit offset */
339 params->ip.ofs2 = 0; /* Blue bit offset */
340 params->ip.ofs3 = 24; /* Alpha bit offset */
341 params->ip.wid0 = 7; /* Red bit width - 1 */
342 params->ip.wid1 = 7; /* Green bit width - 1 */
343 params->ip.wid2 = 7; /* Blue bit width - 1 */
344 break;
345 case IPU_PIX_FMT_BGRA32:
346 case IPU_PIX_FMT_BGR32:
347 params->ip.bpp = 0;
348 params->ip.pfs = 4;
349 params->ip.npb = 7;
350 params->ip.sat = 2; /* SAT = 32-bit access */
351 params->ip.ofs0 = 8; /* Red bit offset */
352 params->ip.ofs1 = 16; /* Green bit offset */
353 params->ip.ofs2 = 24; /* Blue bit offset */
354 params->ip.ofs3 = 0; /* Alpha bit offset */
355 params->ip.wid0 = 7; /* Red bit width - 1 */
356 params->ip.wid1 = 7; /* Green bit width - 1 */
357 params->ip.wid2 = 7; /* Blue bit width - 1 */
358 params->ip.wid3 = 7; /* Alpha bit width - 1 */
359 break;
360 case IPU_PIX_FMT_RGBA32:
361 case IPU_PIX_FMT_RGB32:
362 params->ip.bpp = 0;
363 params->ip.pfs = 4;
364 params->ip.npb = 7;
365 params->ip.sat = 2; /* SAT = 32-bit access */
366 params->ip.ofs0 = 24; /* Red bit offset */
367 params->ip.ofs1 = 16; /* Green bit offset */
368 params->ip.ofs2 = 8; /* Blue bit offset */
369 params->ip.ofs3 = 0; /* Alpha bit offset */
370 params->ip.wid0 = 7; /* Red bit width - 1 */
371 params->ip.wid1 = 7; /* Green bit width - 1 */
372 params->ip.wid2 = 7; /* Blue bit width - 1 */
373 params->ip.wid3 = 7; /* Alpha bit width - 1 */
374 break;
375 case IPU_PIX_FMT_ABGR32:
376 params->ip.bpp = 0;
377 params->ip.pfs = 4;
378 params->ip.npb = 7;
379 params->ip.sat = 2; /* SAT = 32-bit access */
380 params->ip.ofs0 = 8; /* Red bit offset */
381 params->ip.ofs1 = 16; /* Green bit offset */
382 params->ip.ofs2 = 24; /* Blue bit offset */
383 params->ip.ofs3 = 0; /* Alpha bit offset */
384 params->ip.wid0 = 7; /* Red bit width - 1 */
385 params->ip.wid1 = 7; /* Green bit width - 1 */
386 params->ip.wid2 = 7; /* Blue bit width - 1 */
387 params->ip.wid3 = 7; /* Alpha bit width - 1 */
388 break;
389 case IPU_PIX_FMT_UYVY:
390 params->ip.bpp = 2;
391 params->ip.pfs = 6;
392 params->ip.npb = 7;
393 params->ip.sat = 2; /* SAT = 32-bit access */
394 break;
395 case IPU_PIX_FMT_YUV420P2:
396 case IPU_PIX_FMT_YUV420P:
397 params->ip.bpp = 3;
398 params->ip.pfs = 3;
399 params->ip.npb = 7;
400 params->ip.sat = 2; /* SAT = 32-bit access */
401 u_offset = stride * height;
402 v_offset = u_offset + u_offset / 4;
403 ipu_ch_param_set_plane_offset(params, u_offset, v_offset);
404 break;
405 case IPU_PIX_FMT_YVU422P:
406 params->ip.bpp = 3;
407 params->ip.pfs = 2;
408 params->ip.npb = 7;
409 params->ip.sat = 2; /* SAT = 32-bit access */
410 v_offset = stride * height;
411 u_offset = v_offset + v_offset / 2;
412 ipu_ch_param_set_plane_offset(params, u_offset, v_offset);
413 break;
414 case IPU_PIX_FMT_YUV422P:
415 params->ip.bpp = 3;
416 params->ip.pfs = 2;
417 params->ip.npb = 7;
418 params->ip.sat = 2; /* SAT = 32-bit access */
419 u_offset = stride * height;
420 v_offset = u_offset + u_offset / 2;
421 ipu_ch_param_set_plane_offset(params, u_offset, v_offset);
422 break;
423 default:
424 dev_err(ipu_data.dev,
425 "mxc ipu: unimplemented pixel format %d\n", pixel_fmt);
426 break;
427 }
428
429 params->pp.nsb = 1;
430}
431
432static void ipu_ch_param_set_burst_size(union chan_param_mem *params,
433 uint16_t burst_pixels)
434{
435 params->pp.npb = burst_pixels - 1;
436};
437
438static void ipu_ch_param_set_buffer(union chan_param_mem *params,
439 dma_addr_t buf0, dma_addr_t buf1)
440{
441 params->pp.eba0 = buf0;
442 params->pp.eba1 = buf1;
443};
444
445static void ipu_ch_param_set_rotation(union chan_param_mem *params,
446 enum ipu_rotate_mode rotate)
447{
448 params->pp.bam = rotate;
449};
450
451static void ipu_write_param_mem(uint32_t addr, uint32_t *data,
452 uint32_t num_words)
453{
454 for (; num_words > 0; num_words--) {
455 dev_dbg(ipu_data.dev,
456 "write param mem - addr = 0x%08X, data = 0x%08X\n",
457 addr, *data);
458 idmac_write_ipureg(&ipu_data, addr, IPU_IMA_ADDR);
459 idmac_write_ipureg(&ipu_data, *data++, IPU_IMA_DATA);
460 addr++;
461 if ((addr & 0x7) == 5) {
462 addr &= ~0x7; /* set to word 0 */
463 addr += 8; /* increment to next row */
464 }
465 }
466}
467
468static int calc_resize_coeffs(uint32_t in_size, uint32_t out_size,
469 uint32_t *resize_coeff,
470 uint32_t *downsize_coeff)
471{
472 uint32_t temp_size;
473 uint32_t temp_downsize;
474
475 *resize_coeff = 1 << 13;
476 *downsize_coeff = 1 << 13;
477
478 /* Cannot downsize more than 8:1 */
479 if (out_size << 3 < in_size)
480 return -EINVAL;
481
482 /* compute downsizing coefficient */
483 temp_downsize = 0;
484 temp_size = in_size;
485 while (temp_size >= out_size * 2 && temp_downsize < 2) {
486 temp_size >>= 1;
487 temp_downsize++;
488 }
489 *downsize_coeff = temp_downsize;
490
491 /*
492 * compute resizing coefficient using the following formula:
493 * resize_coeff = M*(SI -1)/(SO - 1)
494 * where M = 2^13, SI - input size, SO - output size
495 */
496 *resize_coeff = (8192L * (temp_size - 1)) / (out_size - 1);
497 if (*resize_coeff >= 16384L) {
498 dev_err(ipu_data.dev, "Warning! Overflow on resize coeff.\n");
499 *resize_coeff = 0x3FFF;
500 }
501
502 dev_dbg(ipu_data.dev, "resizing from %u -> %u pixels, "
503 "downsize=%u, resize=%u.%lu (reg=%u)\n", in_size, out_size,
504 *downsize_coeff, *resize_coeff >= 8192L ? 1 : 0,
505 ((*resize_coeff & 0x1FFF) * 10000L) / 8192L, *resize_coeff);
506
507 return 0;
508}
509
510static enum ipu_color_space format_to_colorspace(enum pixel_fmt fmt)
511{
512 switch (fmt) {
513 case IPU_PIX_FMT_RGB565:
514 case IPU_PIX_FMT_BGR24:
515 case IPU_PIX_FMT_RGB24:
516 case IPU_PIX_FMT_BGR32:
517 case IPU_PIX_FMT_RGB32:
518 return IPU_COLORSPACE_RGB;
519 default:
520 return IPU_COLORSPACE_YCBCR;
521 }
522}
523
524static int ipu_ic_init_prpenc(struct ipu *ipu,
525 union ipu_channel_param *params, bool src_is_csi)
526{
527 uint32_t reg, ic_conf;
528 uint32_t downsize_coeff, resize_coeff;
529 enum ipu_color_space in_fmt, out_fmt;
530
531 /* Setup vertical resizing */
532 calc_resize_coeffs(params->video.in_height,
533 params->video.out_height,
534 &resize_coeff, &downsize_coeff);
535 reg = (downsize_coeff << 30) | (resize_coeff << 16);
536
537 /* Setup horizontal resizing */
538 calc_resize_coeffs(params->video.in_width,
539 params->video.out_width,
540 &resize_coeff, &downsize_coeff);
541 reg |= (downsize_coeff << 14) | resize_coeff;
542
543 /* Setup color space conversion */
544 in_fmt = format_to_colorspace(params->video.in_pixel_fmt);
545 out_fmt = format_to_colorspace(params->video.out_pixel_fmt);
546
547 /*
548 * Colourspace conversion unsupported yet - see _init_csc() in
549 * Freescale sources
550 */
551 if (in_fmt != out_fmt) {
552 dev_err(ipu->dev, "Colourspace conversion unsupported!\n");
553 return -EOPNOTSUPP;
554 }
555
556 idmac_write_icreg(ipu, reg, IC_PRP_ENC_RSC);
557
558 ic_conf = idmac_read_icreg(ipu, IC_CONF);
559
560 if (src_is_csi)
561 ic_conf &= ~IC_CONF_RWS_EN;
562 else
563 ic_conf |= IC_CONF_RWS_EN;
564
565 idmac_write_icreg(ipu, ic_conf, IC_CONF);
566
567 return 0;
568}
569
570static uint32_t dma_param_addr(uint32_t dma_ch)
571{
572 /* Channel Parameter Memory */
573 return 0x10000 | (dma_ch << 4);
574};
575
576static void ipu_channel_set_priority(struct ipu *ipu, enum ipu_channel channel,
577 bool prio)
578{
579 u32 reg = idmac_read_icreg(ipu, IDMAC_CHA_PRI);
580
581 if (prio)
582 reg |= 1UL << channel;
583 else
584 reg &= ~(1UL << channel);
585
586 idmac_write_icreg(ipu, reg, IDMAC_CHA_PRI);
587
588 dump_idmac_reg(ipu);
589}
590
591static uint32_t ipu_channel_conf_mask(enum ipu_channel channel)
592{
593 uint32_t mask;
594
595 switch (channel) {
596 case IDMAC_IC_0:
597 case IDMAC_IC_7:
598 mask = IPU_CONF_CSI_EN | IPU_CONF_IC_EN;
599 break;
600 case IDMAC_SDC_0:
601 case IDMAC_SDC_1:
602 mask = IPU_CONF_SDC_EN | IPU_CONF_DI_EN;
603 break;
604 default:
605 mask = 0;
606 break;
607 }
608
609 return mask;
610}
611
612/**
613 * ipu_enable_channel() - enable an IPU channel.
614 * @channel: channel ID.
615 * @return: 0 on success or negative error code on failure.
616 */
617static int ipu_enable_channel(struct idmac *idmac, struct idmac_channel *ichan)
618{
619 struct ipu *ipu = to_ipu(idmac);
620 enum ipu_channel channel = ichan->dma_chan.chan_id;
621 uint32_t reg;
622 unsigned long flags;
623
624 spin_lock_irqsave(&ipu->lock, flags);
625
626 /* Reset to buffer 0 */
627 idmac_write_ipureg(ipu, 1UL << channel, IPU_CHA_CUR_BUF);
628 ichan->active_buffer = 0;
629 ichan->status = IPU_CHANNEL_ENABLED;
630
631 switch (channel) {
632 case IDMAC_SDC_0:
633 case IDMAC_SDC_1:
634 case IDMAC_IC_7:
635 ipu_channel_set_priority(ipu, channel, true);
636 default:
637 break;
638 }
639
640 reg = idmac_read_icreg(ipu, IDMAC_CHA_EN);
641
642 idmac_write_icreg(ipu, reg | (1UL << channel), IDMAC_CHA_EN);
643
644 ipu_ic_enable_task(ipu, channel);
645
646 spin_unlock_irqrestore(&ipu->lock, flags);
647 return 0;
648}
649
650/**
651 * ipu_init_channel_buffer() - initialize a buffer for logical IPU channel.
652 * @channel: channel ID.
653 * @pixel_fmt: pixel format of buffer. Pixel format is a FOURCC ASCII code.
654 * @width: width of buffer in pixels.
655 * @height: height of buffer in pixels.
656 * @stride: stride length of buffer in pixels.
657 * @rot_mode: rotation mode of buffer. A rotation setting other than
658 * IPU_ROTATE_VERT_FLIP should only be used for input buffers of
659 * rotation channels.
660 * @phyaddr_0: buffer 0 physical address.
661 * @phyaddr_1: buffer 1 physical address. Setting this to a value other than
662 * NULL enables double buffering mode.
663 * @return: 0 on success or negative error code on failure.
664 */
665static int ipu_init_channel_buffer(struct idmac_channel *ichan,
666 enum pixel_fmt pixel_fmt,
667 uint16_t width, uint16_t height,
668 uint32_t stride,
669 enum ipu_rotate_mode rot_mode,
670 dma_addr_t phyaddr_0, dma_addr_t phyaddr_1)
671{
672 enum ipu_channel channel = ichan->dma_chan.chan_id;
673 struct idmac *idmac = to_idmac(ichan->dma_chan.device);
674 struct ipu *ipu = to_ipu(idmac);
675 union chan_param_mem params = {};
676 unsigned long flags;
677 uint32_t reg;
678 uint32_t stride_bytes;
679
680 stride_bytes = stride * bytes_per_pixel(pixel_fmt);
681
682 if (stride_bytes % 4) {
683 dev_err(ipu->dev,
684 "Stride length must be 32-bit aligned, stride = %d, bytes = %d\n",
685 stride, stride_bytes);
686 return -EINVAL;
687 }
688
689 /* IC channel's stride must be a multiple of 8 pixels */
690 if ((channel <= 13) && (stride % 8)) {
691 dev_err(ipu->dev, "Stride must be 8 pixel multiple\n");
692 return -EINVAL;
693 }
694
695 /* Build parameter memory data for DMA channel */
696 ipu_ch_param_set_size(&params, pixel_fmt, width, height, stride_bytes);
697 ipu_ch_param_set_buffer(&params, phyaddr_0, phyaddr_1);
698 ipu_ch_param_set_rotation(&params, rot_mode);
699 /* Some channels (rotation) have restriction on burst length */
700 switch (channel) {
701 case IDMAC_IC_7: /* Hangs with burst 8, 16, other values
702 invalid - Table 44-30 */
703/*
704 ipu_ch_param_set_burst_size(&params, 8);
705 */
706 break;
707 case IDMAC_SDC_0:
708 case IDMAC_SDC_1:
709 /* In original code only IPU_PIX_FMT_RGB565 was setting burst */
710 ipu_ch_param_set_burst_size(&params, 16);
711 break;
712 case IDMAC_IC_0:
713 default:
714 break;
715 }
716
717 spin_lock_irqsave(&ipu->lock, flags);
718
719 ipu_write_param_mem(dma_param_addr(channel), (uint32_t *)&params, 10);
720
721 reg = idmac_read_ipureg(ipu, IPU_CHA_DB_MODE_SEL);
722
723 if (phyaddr_1)
724 reg |= 1UL << channel;
725 else
726 reg &= ~(1UL << channel);
727
728 idmac_write_ipureg(ipu, reg, IPU_CHA_DB_MODE_SEL);
729
730 ichan->status = IPU_CHANNEL_READY;
731
732 spin_unlock_irqrestore(ipu->lock, flags);
733
734 return 0;
735}
736
737/**
738 * ipu_select_buffer() - mark a channel's buffer as ready.
739 * @channel: channel ID.
740 * @buffer_n: buffer number to mark ready.
741 */
742static void ipu_select_buffer(enum ipu_channel channel, int buffer_n)
743{
744 /* No locking - this is a write-one-to-set register, cleared by IPU */
745 if (buffer_n == 0)
746 /* Mark buffer 0 as ready. */
747 idmac_write_ipureg(&ipu_data, 1UL << channel, IPU_CHA_BUF0_RDY);
748 else
749 /* Mark buffer 1 as ready. */
750 idmac_write_ipureg(&ipu_data, 1UL << channel, IPU_CHA_BUF1_RDY);
751}
752
753/**
754 * ipu_update_channel_buffer() - update physical address of a channel buffer.
755 * @channel: channel ID.
756 * @buffer_n: buffer number to update.
757 * 0 or 1 are the only valid values.
758 * @phyaddr: buffer physical address.
759 * @return: Returns 0 on success or negative error code on failure. This
760 * function will fail if the buffer is set to ready.
761 */
762/* Called under spin_lock(_irqsave)(&ichan->lock) */
763static int ipu_update_channel_buffer(enum ipu_channel channel,
764 int buffer_n, dma_addr_t phyaddr)
765{
766 uint32_t reg;
767 unsigned long flags;
768
769 spin_lock_irqsave(&ipu_data.lock, flags);
770
771 if (buffer_n == 0) {
772 reg = idmac_read_ipureg(&ipu_data, IPU_CHA_BUF0_RDY);
773 if (reg & (1UL << channel)) {
774 spin_unlock_irqrestore(&ipu_data.lock, flags);
775 return -EACCES;
776 }
777
778 /* 44.3.3.1.9 - Row Number 1 (WORD1, offset 0) */
779 idmac_write_ipureg(&ipu_data, dma_param_addr(channel) +
780 0x0008UL, IPU_IMA_ADDR);
781 idmac_write_ipureg(&ipu_data, phyaddr, IPU_IMA_DATA);
782 } else {
783 reg = idmac_read_ipureg(&ipu_data, IPU_CHA_BUF1_RDY);
784 if (reg & (1UL << channel)) {
785 spin_unlock_irqrestore(&ipu_data.lock, flags);
786 return -EACCES;
787 }
788
789 /* Check if double-buffering is already enabled */
790 reg = idmac_read_ipureg(&ipu_data, IPU_CHA_DB_MODE_SEL);
791
792 if (!(reg & (1UL << channel)))
793 idmac_write_ipureg(&ipu_data, reg | (1UL << channel),
794 IPU_CHA_DB_MODE_SEL);
795
796 /* 44.3.3.1.9 - Row Number 1 (WORD1, offset 1) */
797 idmac_write_ipureg(&ipu_data, dma_param_addr(channel) +
798 0x0009UL, IPU_IMA_ADDR);
799 idmac_write_ipureg(&ipu_data, phyaddr, IPU_IMA_DATA);
800 }
801
802 spin_unlock_irqrestore(&ipu_data.lock, flags);
803
804 return 0;
805}
806
807/* Called under spin_lock_irqsave(&ichan->lock) */
808static int ipu_submit_channel_buffers(struct idmac_channel *ichan,
809 struct idmac_tx_desc *desc)
810{
811 struct scatterlist *sg;
812 int i, ret = 0;
813
814 for (i = 0, sg = desc->sg; i < 2 && sg; i++) {
815 if (!ichan->sg[i]) {
816 ichan->sg[i] = sg;
817
818 /*
819 * On first invocation this shouldn't be necessary, the
820 * call to ipu_init_channel_buffer() above will set
821 * addresses for us, so we could make it conditional
822 * on status >= IPU_CHANNEL_ENABLED, but doing it again
823 * shouldn't hurt either.
824 */
825 ret = ipu_update_channel_buffer(ichan->dma_chan.chan_id, i,
826 sg_dma_address(sg));
827 if (ret < 0)
828 return ret;
829
830 ipu_select_buffer(ichan->dma_chan.chan_id, i);
831
832 sg = sg_next(sg);
833 }
834 }
835
836 return ret;
837}
838
839static dma_cookie_t idmac_tx_submit(struct dma_async_tx_descriptor *tx)
840{
841 struct idmac_tx_desc *desc = to_tx_desc(tx);
842 struct idmac_channel *ichan = to_idmac_chan(tx->chan);
843 struct idmac *idmac = to_idmac(tx->chan->device);
844 struct ipu *ipu = to_ipu(idmac);
845 dma_cookie_t cookie;
846 unsigned long flags;
847
848 /* Sanity check */
849 if (!list_empty(&desc->list)) {
850 /* The descriptor doesn't belong to client */
851 dev_err(&ichan->dma_chan.dev->device,
852 "Descriptor %p not prepared!\n", tx);
853 return -EBUSY;
854 }
855
856 mutex_lock(&ichan->chan_mutex);
857
858 if (ichan->status < IPU_CHANNEL_READY) {
859 struct idmac_video_param *video = &ichan->params.video;
860 /*
861 * Initial buffer assignment - the first two sg-entries from
862 * the descriptor will end up in the IDMAC buffers
863 */
864 dma_addr_t dma_1 = sg_is_last(desc->sg) ? 0 :
865 sg_dma_address(&desc->sg[1]);
866
867 WARN_ON(ichan->sg[0] || ichan->sg[1]);
868
869 cookie = ipu_init_channel_buffer(ichan,
870 video->out_pixel_fmt,
871 video->out_width,
872 video->out_height,
873 video->out_stride,
874 IPU_ROTATE_NONE,
875 sg_dma_address(&desc->sg[0]),
876 dma_1);
877 if (cookie < 0)
878 goto out;
879 }
880
881 /* ipu->lock can be taken under ichan->lock, but not v.v. */
882 spin_lock_irqsave(&ichan->lock, flags);
883
884 /* submit_buffers() atomically verifies and fills empty sg slots */
885 cookie = ipu_submit_channel_buffers(ichan, desc);
886
887 spin_unlock_irqrestore(&ichan->lock, flags);
888
889 if (cookie < 0)
890 goto out;
891
892 cookie = ichan->dma_chan.cookie;
893
894 if (++cookie < 0)
895 cookie = 1;
896
897 /* from dmaengine.h: "last cookie value returned to client" */
898 ichan->dma_chan.cookie = cookie;
899 tx->cookie = cookie;
900 spin_lock_irqsave(&ichan->lock, flags);
901 list_add_tail(&desc->list, &ichan->queue);
902 spin_unlock_irqrestore(&ichan->lock, flags);
903
904 if (ichan->status < IPU_CHANNEL_ENABLED) {
905 int ret = ipu_enable_channel(idmac, ichan);
906 if (ret < 0) {
907 cookie = ret;
908 spin_lock_irqsave(&ichan->lock, flags);
909 list_del_init(&desc->list);
910 spin_unlock_irqrestore(&ichan->lock, flags);
911 tx->cookie = cookie;
912 ichan->dma_chan.cookie = cookie;
913 }
914 }
915
916 dump_idmac_reg(ipu);
917
918out:
919 mutex_unlock(&ichan->chan_mutex);
920
921 return cookie;
922}
923
924/* Called with ichan->chan_mutex held */
925static int idmac_desc_alloc(struct idmac_channel *ichan, int n)
926{
927 struct idmac_tx_desc *desc = vmalloc(n * sizeof(struct idmac_tx_desc));
928 struct idmac *idmac = to_idmac(ichan->dma_chan.device);
929
930 if (!desc)
931 return -ENOMEM;
932
933 /* No interrupts, just disable the tasklet for a moment */
934 tasklet_disable(&to_ipu(idmac)->tasklet);
935
936 ichan->n_tx_desc = n;
937 ichan->desc = desc;
938 INIT_LIST_HEAD(&ichan->queue);
939 INIT_LIST_HEAD(&ichan->free_list);
940
941 while (n--) {
942 struct dma_async_tx_descriptor *txd = &desc->txd;
943
944 memset(txd, 0, sizeof(*txd));
945 dma_async_tx_descriptor_init(txd, &ichan->dma_chan);
946 txd->tx_submit = idmac_tx_submit;
947 txd->chan = &ichan->dma_chan;
948 INIT_LIST_HEAD(&txd->tx_list);
949
950 list_add(&desc->list, &ichan->free_list);
951
952 desc++;
953 }
954
955 tasklet_enable(&to_ipu(idmac)->tasklet);
956
957 return 0;
958}
959
960/**
961 * ipu_init_channel() - initialize an IPU channel.
962 * @idmac: IPU DMAC context.
963 * @ichan: pointer to the channel object.
964 * @return 0 on success or negative error code on failure.
965 */
966static int ipu_init_channel(struct idmac *idmac, struct idmac_channel *ichan)
967{
968 union ipu_channel_param *params = &ichan->params;
969 uint32_t ipu_conf;
970 enum ipu_channel channel = ichan->dma_chan.chan_id;
971 unsigned long flags;
972 uint32_t reg;
973 struct ipu *ipu = to_ipu(idmac);
974 int ret = 0, n_desc = 0;
975
976 dev_dbg(ipu->dev, "init channel = %d\n", channel);
977
978 if (channel != IDMAC_SDC_0 && channel != IDMAC_SDC_1 &&
979 channel != IDMAC_IC_7)
980 return -EINVAL;
981
982 spin_lock_irqsave(&ipu->lock, flags);
983
984 switch (channel) {
985 case IDMAC_IC_7:
986 n_desc = 16;
987 reg = idmac_read_icreg(ipu, IC_CONF);
988 idmac_write_icreg(ipu, reg & ~IC_CONF_CSI_MEM_WR_EN, IC_CONF);
989 break;
990 case IDMAC_IC_0:
991 n_desc = 16;
992 reg = idmac_read_ipureg(ipu, IPU_FS_PROC_FLOW);
993 idmac_write_ipureg(ipu, reg & ~FS_ENC_IN_VALID, IPU_FS_PROC_FLOW);
994 ret = ipu_ic_init_prpenc(ipu, params, true);
995 break;
996 case IDMAC_SDC_0:
997 case IDMAC_SDC_1:
998 n_desc = 4;
999 default:
1000 break;
1001 }
1002
1003 ipu->channel_init_mask |= 1L << channel;
1004
1005 /* Enable IPU sub module */
1006 ipu_conf = idmac_read_ipureg(ipu, IPU_CONF) |
1007 ipu_channel_conf_mask(channel);
1008 idmac_write_ipureg(ipu, ipu_conf, IPU_CONF);
1009
1010 spin_unlock_irqrestore(&ipu->lock, flags);
1011
1012 if (n_desc && !ichan->desc)
1013 ret = idmac_desc_alloc(ichan, n_desc);
1014
1015 dump_idmac_reg(ipu);
1016
1017 return ret;
1018}
1019
1020/**
1021 * ipu_uninit_channel() - uninitialize an IPU channel.
1022 * @idmac: IPU DMAC context.
1023 * @ichan: pointer to the channel object.
1024 */
1025static void ipu_uninit_channel(struct idmac *idmac, struct idmac_channel *ichan)
1026{
1027 enum ipu_channel channel = ichan->dma_chan.chan_id;
1028 unsigned long flags;
1029 uint32_t reg;
1030 unsigned long chan_mask = 1UL << channel;
1031 uint32_t ipu_conf;
1032 struct ipu *ipu = to_ipu(idmac);
1033
1034 spin_lock_irqsave(&ipu->lock, flags);
1035
1036 if (!(ipu->channel_init_mask & chan_mask)) {
1037 dev_err(ipu->dev, "Channel already uninitialized %d\n",
1038 channel);
1039 spin_unlock_irqrestore(&ipu->lock, flags);
1040 return;
1041 }
1042
1043 /* Reset the double buffer */
1044 reg = idmac_read_ipureg(ipu, IPU_CHA_DB_MODE_SEL);
1045 idmac_write_ipureg(ipu, reg & ~chan_mask, IPU_CHA_DB_MODE_SEL);
1046
1047 ichan->sec_chan_en = false;
1048
1049 switch (channel) {
1050 case IDMAC_IC_7:
1051 reg = idmac_read_icreg(ipu, IC_CONF);
1052 idmac_write_icreg(ipu, reg & ~(IC_CONF_RWS_EN | IC_CONF_PRPENC_EN),
1053 IC_CONF);
1054 break;
1055 case IDMAC_IC_0:
1056 reg = idmac_read_icreg(ipu, IC_CONF);
1057 idmac_write_icreg(ipu, reg & ~(IC_CONF_PRPENC_EN | IC_CONF_PRPENC_CSC1),
1058 IC_CONF);
1059 break;
1060 case IDMAC_SDC_0:
1061 case IDMAC_SDC_1:
1062 default:
1063 break;
1064 }
1065
1066 ipu->channel_init_mask &= ~(1L << channel);
1067
1068 ipu_conf = idmac_read_ipureg(ipu, IPU_CONF) &
1069 ~ipu_channel_conf_mask(channel);
1070 idmac_write_ipureg(ipu, ipu_conf, IPU_CONF);
1071
1072 spin_unlock_irqrestore(&ipu->lock, flags);
1073
1074 ichan->n_tx_desc = 0;
1075 vfree(ichan->desc);
1076 ichan->desc = NULL;
1077}
1078
1079/**
1080 * ipu_disable_channel() - disable an IPU channel.
1081 * @idmac: IPU DMAC context.
1082 * @ichan: channel object pointer.
1083 * @wait_for_stop: flag to set whether to wait for channel end of frame or
1084 * return immediately.
1085 * @return: 0 on success or negative error code on failure.
1086 */
1087static int ipu_disable_channel(struct idmac *idmac, struct idmac_channel *ichan,
1088 bool wait_for_stop)
1089{
1090 enum ipu_channel channel = ichan->dma_chan.chan_id;
1091 struct ipu *ipu = to_ipu(idmac);
1092 uint32_t reg;
1093 unsigned long flags;
1094 unsigned long chan_mask = 1UL << channel;
1095 unsigned int timeout;
1096
1097 if (wait_for_stop && channel != IDMAC_SDC_1 && channel != IDMAC_SDC_0) {
1098 timeout = 40;
1099 /* This waiting always fails. Related to spurious irq problem */
1100 while ((idmac_read_icreg(ipu, IDMAC_CHA_BUSY) & chan_mask) ||
1101 (ipu_channel_status(ipu, channel) == TASK_STAT_ACTIVE)) {
1102 timeout--;
1103 msleep(10);
1104
1105 if (!timeout) {
1106 dev_dbg(ipu->dev,
1107 "Warning: timeout waiting for channel %u to "
1108 "stop: buf0_rdy = 0x%08X, buf1_rdy = 0x%08X, "
1109 "busy = 0x%08X, tstat = 0x%08X\n", channel,
1110 idmac_read_ipureg(ipu, IPU_CHA_BUF0_RDY),
1111 idmac_read_ipureg(ipu, IPU_CHA_BUF1_RDY),
1112 idmac_read_icreg(ipu, IDMAC_CHA_BUSY),
1113 idmac_read_ipureg(ipu, IPU_TASKS_STAT));
1114 break;
1115 }
1116 }
1117 dev_dbg(ipu->dev, "timeout = %d * 10ms\n", 40 - timeout);
1118 }
1119 /* SDC BG and FG must be disabled before DMA is disabled */
1120 if (wait_for_stop && (channel == IDMAC_SDC_0 ||
1121 channel == IDMAC_SDC_1)) {
1122 for (timeout = 5;
1123 timeout && !ipu_irq_status(ichan->eof_irq); timeout--)
1124 msleep(5);
1125 }
1126
1127 spin_lock_irqsave(&ipu->lock, flags);
1128
1129 /* Disable IC task */
1130 ipu_ic_disable_task(ipu, channel);
1131
1132 /* Disable DMA channel(s) */
1133 reg = idmac_read_icreg(ipu, IDMAC_CHA_EN);
1134 idmac_write_icreg(ipu, reg & ~chan_mask, IDMAC_CHA_EN);
1135
1136 /*
1137 * Problem (observed with channel DMAIC_7): after enabling the channel
1138 * and initialising buffers, there comes an interrupt with current still
1139 * pointing at buffer 0, whereas it should use buffer 0 first and only
1140 * generate an interrupt when it is done, then current should already
1141 * point to buffer 1. This spurious interrupt also comes on channel
1142 * DMASDC_0. With DMAIC_7 normally, is we just leave the ISR after the
1143 * first interrupt, there comes the second with current correctly
1144 * pointing to buffer 1 this time. But sometimes this second interrupt
1145 * doesn't come and the channel hangs. Clearing BUFx_RDY when disabling
1146 * the channel seems to prevent the channel from hanging, but it doesn't
1147 * prevent the spurious interrupt. This might also be unsafe. Think
1148 * about the IDMAC controller trying to switch to a buffer, when we
1149 * clear the ready bit, and re-enable it a moment later.
1150 */
1151 reg = idmac_read_ipureg(ipu, IPU_CHA_BUF0_RDY);
1152 idmac_write_ipureg(ipu, 0, IPU_CHA_BUF0_RDY);
1153 idmac_write_ipureg(ipu, reg & ~(1UL << channel), IPU_CHA_BUF0_RDY);
1154
1155 reg = idmac_read_ipureg(ipu, IPU_CHA_BUF1_RDY);
1156 idmac_write_ipureg(ipu, 0, IPU_CHA_BUF1_RDY);
1157 idmac_write_ipureg(ipu, reg & ~(1UL << channel), IPU_CHA_BUF1_RDY);
1158
1159 spin_unlock_irqrestore(&ipu->lock, flags);
1160
1161 return 0;
1162}
1163
1164/*
1165 * We have several possibilities here:
1166 * current BUF next BUF
1167 *
1168 * not last sg next not last sg
1169 * not last sg next last sg
1170 * last sg first sg from next descriptor
1171 * last sg NULL
1172 *
1173 * Besides, the descriptor queue might be empty or not. We process all these
1174 * cases carefully.
1175 */
1176static irqreturn_t idmac_interrupt(int irq, void *dev_id)
1177{
1178 struct idmac_channel *ichan = dev_id;
1179 unsigned int chan_id = ichan->dma_chan.chan_id;
1180 struct scatterlist **sg, *sgnext, *sgnew = NULL;
1181 /* Next transfer descriptor */
1182 struct idmac_tx_desc *desc = NULL, *descnew;
1183 dma_async_tx_callback callback;
1184 void *callback_param;
1185 bool done = false;
1186 u32 ready0 = idmac_read_ipureg(&ipu_data, IPU_CHA_BUF0_RDY),
1187 ready1 = idmac_read_ipureg(&ipu_data, IPU_CHA_BUF1_RDY),
1188 curbuf = idmac_read_ipureg(&ipu_data, IPU_CHA_CUR_BUF);
1189
1190 /* IDMAC has cleared the respective BUFx_RDY bit, we manage the buffer */
1191
1192 pr_debug("IDMAC irq %d\n", irq);
1193 /* Other interrupts do not interfere with this channel */
1194 spin_lock(&ichan->lock);
1195
1196 if (unlikely(chan_id != IDMAC_SDC_0 && chan_id != IDMAC_SDC_1 &&
1197 ((curbuf >> chan_id) & 1) == ichan->active_buffer)) {
1198 int i = 100;
1199
1200 /* This doesn't help. See comment in ipu_disable_channel() */
1201 while (--i) {
1202 curbuf = idmac_read_ipureg(&ipu_data, IPU_CHA_CUR_BUF);
1203 if (((curbuf >> chan_id) & 1) != ichan->active_buffer)
1204 break;
1205 cpu_relax();
1206 }
1207
1208 if (!i) {
1209 spin_unlock(&ichan->lock);
1210 dev_dbg(ichan->dma_chan.device->dev,
1211 "IRQ on active buffer on channel %x, active "
1212 "%d, ready %x, %x, current %x!\n", chan_id,
1213 ichan->active_buffer, ready0, ready1, curbuf);
1214 return IRQ_NONE;
1215 }
1216 }
1217
1218 if (unlikely((ichan->active_buffer && (ready1 >> chan_id) & 1) ||
1219 (!ichan->active_buffer && (ready0 >> chan_id) & 1)
1220 )) {
1221 spin_unlock(&ichan->lock);
1222 dev_dbg(ichan->dma_chan.device->dev,
1223 "IRQ with active buffer still ready on channel %x, "
1224 "active %d, ready %x, %x!\n", chan_id,
1225 ichan->active_buffer, ready0, ready1);
1226 return IRQ_NONE;
1227 }
1228
1229 if (unlikely(list_empty(&ichan->queue))) {
1230 spin_unlock(&ichan->lock);
1231 dev_err(ichan->dma_chan.device->dev,
1232 "IRQ without queued buffers on channel %x, active %d, "
1233 "ready %x, %x!\n", chan_id,
1234 ichan->active_buffer, ready0, ready1);
1235 return IRQ_NONE;
1236 }
1237
1238 /*
1239 * active_buffer is a software flag, it shows which buffer we are
1240 * currently expecting back from the hardware, IDMAC should be
1241 * processing the other buffer already
1242 */
1243 sg = &ichan->sg[ichan->active_buffer];
1244 sgnext = ichan->sg[!ichan->active_buffer];
1245
1246 /*
1247 * if sgnext == NULL sg must be the last element in a scatterlist and
1248 * queue must be empty
1249 */
1250 if (unlikely(!sgnext)) {
1251 if (unlikely(sg_next(*sg))) {
1252 dev_err(ichan->dma_chan.device->dev,
1253 "Broken buffer-update locking on channel %x!\n",
1254 chan_id);
1255 /* We'll let the user catch up */
1256 } else {
1257 /* Underrun */
1258 ipu_ic_disable_task(&ipu_data, chan_id);
1259 dev_dbg(ichan->dma_chan.device->dev,
1260 "Underrun on channel %x\n", chan_id);
1261 ichan->status = IPU_CHANNEL_READY;
1262 /* Continue to check for complete descriptor */
1263 }
1264 }
1265
1266 desc = list_entry(ichan->queue.next, struct idmac_tx_desc, list);
1267
1268 /* First calculate and submit the next sg element */
1269 if (likely(sgnext))
1270 sgnew = sg_next(sgnext);
1271
1272 if (unlikely(!sgnew)) {
1273 /* Start a new scatterlist, if any queued */
1274 if (likely(desc->list.next != &ichan->queue)) {
1275 descnew = list_entry(desc->list.next,
1276 struct idmac_tx_desc, list);
1277 sgnew = &descnew->sg[0];
1278 }
1279 }
1280
1281 if (unlikely(!sg_next(*sg)) || !sgnext) {
1282 /*
1283 * Last element in scatterlist done, remove from the queue,
1284 * _init for debugging
1285 */
1286 list_del_init(&desc->list);
1287 done = true;
1288 }
1289
1290 *sg = sgnew;
1291
1292 if (likely(sgnew)) {
1293 int ret;
1294
1295 ret = ipu_update_channel_buffer(chan_id, ichan->active_buffer,
1296 sg_dma_address(*sg));
1297 if (ret < 0)
1298 dev_err(ichan->dma_chan.device->dev,
1299 "Failed to update buffer on channel %x buffer %d!\n",
1300 chan_id, ichan->active_buffer);
1301 else
1302 ipu_select_buffer(chan_id, ichan->active_buffer);
1303 }
1304
1305 /* Flip the active buffer - even if update above failed */
1306 ichan->active_buffer = !ichan->active_buffer;
1307 if (done)
1308 ichan->completed = desc->txd.cookie;
1309
1310 callback = desc->txd.callback;
1311 callback_param = desc->txd.callback_param;
1312
1313 spin_unlock(&ichan->lock);
1314
1315 if (done && (desc->txd.flags & DMA_PREP_INTERRUPT) && callback)
1316 callback(callback_param);
1317
1318 return IRQ_HANDLED;
1319}
1320
1321static void ipu_gc_tasklet(unsigned long arg)
1322{
1323 struct ipu *ipu = (struct ipu *)arg;
1324 int i;
1325
1326 for (i = 0; i < IPU_CHANNELS_NUM; i++) {
1327 struct idmac_channel *ichan = ipu->channel + i;
1328 struct idmac_tx_desc *desc;
1329 unsigned long flags;
1330 int j;
1331
1332 for (j = 0; j < ichan->n_tx_desc; j++) {
1333 desc = ichan->desc + j;
1334 spin_lock_irqsave(&ichan->lock, flags);
1335 if (async_tx_test_ack(&desc->txd)) {
1336 list_move(&desc->list, &ichan->free_list);
1337 async_tx_clear_ack(&desc->txd);
1338 }
1339 spin_unlock_irqrestore(&ichan->lock, flags);
1340 }
1341 }
1342}
1343
1344/*
1345 * At the time .device_alloc_chan_resources() method is called, we cannot know,
1346 * whether the client will accept the channel. Thus we must only check, if we
1347 * can satisfy client's request but the only real criterion to verify, whether
1348 * the client has accepted our offer is the client_count. That's why we have to
1349 * perform the rest of our allocation tasks on the first call to this function.
1350 */
1351static struct dma_async_tx_descriptor *idmac_prep_slave_sg(struct dma_chan *chan,
1352 struct scatterlist *sgl, unsigned int sg_len,
1353 enum dma_data_direction direction, unsigned long tx_flags)
1354{
1355 struct idmac_channel *ichan = to_idmac_chan(chan);
1356 struct idmac_tx_desc *desc = NULL;
1357 struct dma_async_tx_descriptor *txd = NULL;
1358 unsigned long flags;
1359
1360 /* We only can handle these three channels so far */
1361 if (ichan->dma_chan.chan_id != IDMAC_SDC_0 && ichan->dma_chan.chan_id != IDMAC_SDC_1 &&
1362 ichan->dma_chan.chan_id != IDMAC_IC_7)
1363 return NULL;
1364
1365 if (direction != DMA_FROM_DEVICE && direction != DMA_TO_DEVICE) {
1366 dev_err(chan->device->dev, "Invalid DMA direction %d!\n", direction);
1367 return NULL;
1368 }
1369
1370 mutex_lock(&ichan->chan_mutex);
1371
1372 spin_lock_irqsave(&ichan->lock, flags);
1373 if (!list_empty(&ichan->free_list)) {
1374 desc = list_entry(ichan->free_list.next,
1375 struct idmac_tx_desc, list);
1376
1377 list_del_init(&desc->list);
1378
1379 desc->sg_len = sg_len;
1380 desc->sg = sgl;
1381 txd = &desc->txd;
1382 txd->flags = tx_flags;
1383 }
1384 spin_unlock_irqrestore(&ichan->lock, flags);
1385
1386 mutex_unlock(&ichan->chan_mutex);
1387
1388 tasklet_schedule(&to_ipu(to_idmac(chan->device))->tasklet);
1389
1390 return txd;
1391}
1392
1393/* Re-select the current buffer and re-activate the channel */
1394static void idmac_issue_pending(struct dma_chan *chan)
1395{
1396 struct idmac_channel *ichan = to_idmac_chan(chan);
1397 struct idmac *idmac = to_idmac(chan->device);
1398 struct ipu *ipu = to_ipu(idmac);
1399 unsigned long flags;
1400
1401 /* This is not always needed, but doesn't hurt either */
1402 spin_lock_irqsave(&ipu->lock, flags);
1403 ipu_select_buffer(ichan->dma_chan.chan_id, ichan->active_buffer);
1404 spin_unlock_irqrestore(&ipu->lock, flags);
1405
1406 /*
1407 * Might need to perform some parts of initialisation from
1408 * ipu_enable_channel(), but not all, we do not want to reset to buffer
1409 * 0, don't need to set priority again either, but re-enabling the task
1410 * and the channel might be a good idea.
1411 */
1412}
1413
1414static void __idmac_terminate_all(struct dma_chan *chan)
1415{
1416 struct idmac_channel *ichan = to_idmac_chan(chan);
1417 struct idmac *idmac = to_idmac(chan->device);
1418 unsigned long flags;
1419 int i;
1420
1421 ipu_disable_channel(idmac, ichan,
1422 ichan->status >= IPU_CHANNEL_ENABLED);
1423
1424 tasklet_disable(&to_ipu(idmac)->tasklet);
1425
1426 /* ichan->queue is modified in ISR, have to spinlock */
1427 spin_lock_irqsave(&ichan->lock, flags);
1428 list_splice_init(&ichan->queue, &ichan->free_list);
1429
1430 if (ichan->desc)
1431 for (i = 0; i < ichan->n_tx_desc; i++) {
1432 struct idmac_tx_desc *desc = ichan->desc + i;
1433 if (list_empty(&desc->list))
1434 /* Descriptor was prepared, but not submitted */
1435 list_add(&desc->list,
1436 &ichan->free_list);
1437
1438 async_tx_clear_ack(&desc->txd);
1439 }
1440
1441 ichan->sg[0] = NULL;
1442 ichan->sg[1] = NULL;
1443 spin_unlock_irqrestore(&ichan->lock, flags);
1444
1445 tasklet_enable(&to_ipu(idmac)->tasklet);
1446
1447 ichan->status = IPU_CHANNEL_INITIALIZED;
1448}
1449
1450static void idmac_terminate_all(struct dma_chan *chan)
1451{
1452 struct idmac_channel *ichan = to_idmac_chan(chan);
1453
1454 mutex_lock(&ichan->chan_mutex);
1455
1456 __idmac_terminate_all(chan);
1457
1458 mutex_unlock(&ichan->chan_mutex);
1459}
1460
1461static int idmac_alloc_chan_resources(struct dma_chan *chan)
1462{
1463 struct idmac_channel *ichan = to_idmac_chan(chan);
1464 struct idmac *idmac = to_idmac(chan->device);
1465 int ret;
1466
1467 /* dmaengine.c now guarantees to only offer free channels */
1468 BUG_ON(chan->client_count > 1);
1469 WARN_ON(ichan->status != IPU_CHANNEL_FREE);
1470
1471 chan->cookie = 1;
1472 ichan->completed = -ENXIO;
1473
1474 ret = ipu_irq_map(ichan->dma_chan.chan_id);
1475 if (ret < 0)
1476 goto eimap;
1477
1478 ichan->eof_irq = ret;
1479 ret = request_irq(ichan->eof_irq, idmac_interrupt, 0,
1480 ichan->eof_name, ichan);
1481 if (ret < 0)
1482 goto erirq;
1483
1484 ret = ipu_init_channel(idmac, ichan);
1485 if (ret < 0)
1486 goto eichan;
1487
1488 ichan->status = IPU_CHANNEL_INITIALIZED;
1489
1490 dev_dbg(&ichan->dma_chan.dev->device, "Found channel 0x%x, irq %d\n",
1491 ichan->dma_chan.chan_id, ichan->eof_irq);
1492
1493 return ret;
1494
1495eichan:
1496 free_irq(ichan->eof_irq, ichan);
1497erirq:
1498 ipu_irq_unmap(ichan->dma_chan.chan_id);
1499eimap:
1500 return ret;
1501}
1502
1503static void idmac_free_chan_resources(struct dma_chan *chan)
1504{
1505 struct idmac_channel *ichan = to_idmac_chan(chan);
1506 struct idmac *idmac = to_idmac(chan->device);
1507
1508 mutex_lock(&ichan->chan_mutex);
1509
1510 __idmac_terminate_all(chan);
1511
1512 if (ichan->status > IPU_CHANNEL_FREE) {
1513 free_irq(ichan->eof_irq, ichan);
1514 ipu_irq_unmap(ichan->dma_chan.chan_id);
1515 }
1516
1517 ichan->status = IPU_CHANNEL_FREE;
1518
1519 ipu_uninit_channel(idmac, ichan);
1520
1521 mutex_unlock(&ichan->chan_mutex);
1522
1523 tasklet_schedule(&to_ipu(idmac)->tasklet);
1524}
1525
1526static enum dma_status idmac_is_tx_complete(struct dma_chan *chan,
1527 dma_cookie_t cookie, dma_cookie_t *done, dma_cookie_t *used)
1528{
1529 struct idmac_channel *ichan = to_idmac_chan(chan);
1530
1531 if (done)
1532 *done = ichan->completed;
1533 if (used)
1534 *used = chan->cookie;
1535 if (cookie != chan->cookie)
1536 return DMA_ERROR;
1537 return DMA_SUCCESS;
1538}
1539
1540static int __init ipu_idmac_init(struct ipu *ipu)
1541{
1542 struct idmac *idmac = &ipu->idmac;
1543 struct dma_device *dma = &idmac->dma;
1544 int i;
1545
1546 dma_cap_set(DMA_SLAVE, dma->cap_mask);
1547 dma_cap_set(DMA_PRIVATE, dma->cap_mask);
1548
1549 /* Compulsory common fields */
1550 dma->dev = ipu->dev;
1551 dma->device_alloc_chan_resources = idmac_alloc_chan_resources;
1552 dma->device_free_chan_resources = idmac_free_chan_resources;
1553 dma->device_is_tx_complete = idmac_is_tx_complete;
1554 dma->device_issue_pending = idmac_issue_pending;
1555
1556 /* Compulsory for DMA_SLAVE fields */
1557 dma->device_prep_slave_sg = idmac_prep_slave_sg;
1558 dma->device_terminate_all = idmac_terminate_all;
1559
1560 INIT_LIST_HEAD(&dma->channels);
1561 for (i = 0; i < IPU_CHANNELS_NUM; i++) {
1562 struct idmac_channel *ichan = ipu->channel + i;
1563 struct dma_chan *dma_chan = &ichan->dma_chan;
1564
1565 spin_lock_init(&ichan->lock);
1566 mutex_init(&ichan->chan_mutex);
1567
1568 ichan->status = IPU_CHANNEL_FREE;
1569 ichan->sec_chan_en = false;
1570 ichan->completed = -ENXIO;
1571 snprintf(ichan->eof_name, sizeof(ichan->eof_name), "IDMAC EOF %d", i);
1572
1573 dma_chan->device = &idmac->dma;
1574 dma_chan->cookie = 1;
1575 dma_chan->chan_id = i;
1576 list_add_tail(&ichan->dma_chan.device_node, &dma->channels);
1577 }
1578
1579 idmac_write_icreg(ipu, 0x00000070, IDMAC_CONF);
1580
1581 return dma_async_device_register(&idmac->dma);
1582}
1583
1584static void ipu_idmac_exit(struct ipu *ipu)
1585{
1586 int i;
1587 struct idmac *idmac = &ipu->idmac;
1588
1589 for (i = 0; i < IPU_CHANNELS_NUM; i++) {
1590 struct idmac_channel *ichan = ipu->channel + i;
1591
1592 idmac_terminate_all(&ichan->dma_chan);
1593 idmac_prep_slave_sg(&ichan->dma_chan, NULL, 0, DMA_NONE, 0);
1594 }
1595
1596 dma_async_device_unregister(&idmac->dma);
1597}
1598
1599/*****************************************************************************
1600 * IPU common probe / remove
1601 */
1602
1603static int ipu_probe(struct platform_device *pdev)
1604{
1605 struct ipu_platform_data *pdata = pdev->dev.platform_data;
1606 struct resource *mem_ipu, *mem_ic;
1607 int ret;
1608
1609 spin_lock_init(&ipu_data.lock);
1610
1611 mem_ipu = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1612 mem_ic = platform_get_resource(pdev, IORESOURCE_MEM, 1);
1613 if (!pdata || !mem_ipu || !mem_ic)
1614 return -EINVAL;
1615
1616 ipu_data.dev = &pdev->dev;
1617
1618 platform_set_drvdata(pdev, &ipu_data);
1619
1620 ret = platform_get_irq(pdev, 0);
1621 if (ret < 0)
1622 goto err_noirq;
1623
1624 ipu_data.irq_fn = ret;
1625 ret = platform_get_irq(pdev, 1);
1626 if (ret < 0)
1627 goto err_noirq;
1628
1629 ipu_data.irq_err = ret;
1630 ipu_data.irq_base = pdata->irq_base;
1631
1632 dev_dbg(&pdev->dev, "fn irq %u, err irq %u, irq-base %u\n",
1633 ipu_data.irq_fn, ipu_data.irq_err, ipu_data.irq_base);
1634
1635 /* Remap IPU common registers */
1636 ipu_data.reg_ipu = ioremap(mem_ipu->start,
1637 mem_ipu->end - mem_ipu->start + 1);
1638 if (!ipu_data.reg_ipu) {
1639 ret = -ENOMEM;
1640 goto err_ioremap_ipu;
1641 }
1642
1643 /* Remap Image Converter and Image DMA Controller registers */
1644 ipu_data.reg_ic = ioremap(mem_ic->start,
1645 mem_ic->end - mem_ic->start + 1);
1646 if (!ipu_data.reg_ic) {
1647 ret = -ENOMEM;
1648 goto err_ioremap_ic;
1649 }
1650
1651 /* Get IPU clock */
1652 ipu_data.ipu_clk = clk_get(&pdev->dev, "ipu_clk");
1653 if (IS_ERR(ipu_data.ipu_clk)) {
1654 ret = PTR_ERR(ipu_data.ipu_clk);
1655 goto err_clk_get;
1656 }
1657
1658 /* Make sure IPU HSP clock is running */
1659 clk_enable(ipu_data.ipu_clk);
1660
1661 /* Disable all interrupts */
1662 idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_1);
1663 idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_2);
1664 idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_3);
1665 idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_4);
1666 idmac_write_ipureg(&ipu_data, 0, IPU_INT_CTRL_5);
1667
1668 dev_dbg(&pdev->dev, "%s @ 0x%08lx, fn irq %u, err irq %u\n", pdev->name,
1669 (unsigned long)mem_ipu->start, ipu_data.irq_fn, ipu_data.irq_err);
1670
1671 ret = ipu_irq_attach_irq(&ipu_data, pdev);
1672 if (ret < 0)
1673 goto err_attach_irq;
1674
1675 /* Initialize DMA engine */
1676 ret = ipu_idmac_init(&ipu_data);
1677 if (ret < 0)
1678 goto err_idmac_init;
1679
1680 tasklet_init(&ipu_data.tasklet, ipu_gc_tasklet, (unsigned long)&ipu_data);
1681
1682 ipu_data.dev = &pdev->dev;
1683
1684 dev_dbg(ipu_data.dev, "IPU initialized\n");
1685
1686 return 0;
1687
1688err_idmac_init:
1689err_attach_irq:
1690 ipu_irq_detach_irq(&ipu_data, pdev);
1691 clk_disable(ipu_data.ipu_clk);
1692 clk_put(ipu_data.ipu_clk);
1693err_clk_get:
1694 iounmap(ipu_data.reg_ic);
1695err_ioremap_ic:
1696 iounmap(ipu_data.reg_ipu);
1697err_ioremap_ipu:
1698err_noirq:
1699 dev_err(&pdev->dev, "Failed to probe IPU: %d\n", ret);
1700 return ret;
1701}
1702
1703static int ipu_remove(struct platform_device *pdev)
1704{
1705 struct ipu *ipu = platform_get_drvdata(pdev);
1706
1707 ipu_idmac_exit(ipu);
1708 ipu_irq_detach_irq(ipu, pdev);
1709 clk_disable(ipu->ipu_clk);
1710 clk_put(ipu->ipu_clk);
1711 iounmap(ipu->reg_ic);
1712 iounmap(ipu->reg_ipu);
1713 tasklet_kill(&ipu->tasklet);
1714 platform_set_drvdata(pdev, NULL);
1715
1716 return 0;
1717}
1718
1719/*
1720 * We need two MEM resources - with IPU-common and Image Converter registers,
1721 * including PF_CONF and IDMAC_* registers, and two IRQs - function and error
1722 */
1723static struct platform_driver ipu_platform_driver = {
1724 .driver = {
1725 .name = "ipu-core",
1726 .owner = THIS_MODULE,
1727 },
1728 .remove = ipu_remove,
1729};
1730
1731static int __init ipu_init(void)
1732{
1733 return platform_driver_probe(&ipu_platform_driver, ipu_probe);
1734}
1735subsys_initcall(ipu_init);
1736
1737MODULE_DESCRIPTION("IPU core driver");
1738MODULE_LICENSE("GPL v2");
1739MODULE_AUTHOR("Guennadi Liakhovetski <lg@denx.de>");
1740MODULE_ALIAS("platform:ipu-core");
diff --git a/drivers/dma/ipu/ipu_intern.h b/drivers/dma/ipu/ipu_intern.h
new file mode 100644
index 000000000000..545cf11a94ab
--- /dev/null
+++ b/drivers/dma/ipu/ipu_intern.h
@@ -0,0 +1,176 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright (C) 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#ifndef _IPU_INTERN_H_
13#define _IPU_INTERN_H_
14
15#include <linux/dmaengine.h>
16#include <linux/platform_device.h>
17#include <linux/interrupt.h>
18
19/* IPU Common registers */
20#define IPU_CONF 0x00
21#define IPU_CHA_BUF0_RDY 0x04
22#define IPU_CHA_BUF1_RDY 0x08
23#define IPU_CHA_DB_MODE_SEL 0x0C
24#define IPU_CHA_CUR_BUF 0x10
25#define IPU_FS_PROC_FLOW 0x14
26#define IPU_FS_DISP_FLOW 0x18
27#define IPU_TASKS_STAT 0x1C
28#define IPU_IMA_ADDR 0x20
29#define IPU_IMA_DATA 0x24
30#define IPU_INT_CTRL_1 0x28
31#define IPU_INT_CTRL_2 0x2C
32#define IPU_INT_CTRL_3 0x30
33#define IPU_INT_CTRL_4 0x34
34#define IPU_INT_CTRL_5 0x38
35#define IPU_INT_STAT_1 0x3C
36#define IPU_INT_STAT_2 0x40
37#define IPU_INT_STAT_3 0x44
38#define IPU_INT_STAT_4 0x48
39#define IPU_INT_STAT_5 0x4C
40#define IPU_BRK_CTRL_1 0x50
41#define IPU_BRK_CTRL_2 0x54
42#define IPU_BRK_STAT 0x58
43#define IPU_DIAGB_CTRL 0x5C
44
45/* IPU_CONF Register bits */
46#define IPU_CONF_CSI_EN 0x00000001
47#define IPU_CONF_IC_EN 0x00000002
48#define IPU_CONF_ROT_EN 0x00000004
49#define IPU_CONF_PF_EN 0x00000008
50#define IPU_CONF_SDC_EN 0x00000010
51#define IPU_CONF_ADC_EN 0x00000020
52#define IPU_CONF_DI_EN 0x00000040
53#define IPU_CONF_DU_EN 0x00000080
54#define IPU_CONF_PXL_ENDIAN 0x00000100
55
56/* Image Converter Registers */
57#define IC_CONF 0x88
58#define IC_PRP_ENC_RSC 0x8C
59#define IC_PRP_VF_RSC 0x90
60#define IC_PP_RSC 0x94
61#define IC_CMBP_1 0x98
62#define IC_CMBP_2 0x9C
63#define PF_CONF 0xA0
64#define IDMAC_CONF 0xA4
65#define IDMAC_CHA_EN 0xA8
66#define IDMAC_CHA_PRI 0xAC
67#define IDMAC_CHA_BUSY 0xB0
68
69/* Image Converter Register bits */
70#define IC_CONF_PRPENC_EN 0x00000001
71#define IC_CONF_PRPENC_CSC1 0x00000002
72#define IC_CONF_PRPENC_ROT_EN 0x00000004
73#define IC_CONF_PRPVF_EN 0x00000100
74#define IC_CONF_PRPVF_CSC1 0x00000200
75#define IC_CONF_PRPVF_CSC2 0x00000400
76#define IC_CONF_PRPVF_CMB 0x00000800
77#define IC_CONF_PRPVF_ROT_EN 0x00001000
78#define IC_CONF_PP_EN 0x00010000
79#define IC_CONF_PP_CSC1 0x00020000
80#define IC_CONF_PP_CSC2 0x00040000
81#define IC_CONF_PP_CMB 0x00080000
82#define IC_CONF_PP_ROT_EN 0x00100000
83#define IC_CONF_IC_GLB_LOC_A 0x10000000
84#define IC_CONF_KEY_COLOR_EN 0x20000000
85#define IC_CONF_RWS_EN 0x40000000
86#define IC_CONF_CSI_MEM_WR_EN 0x80000000
87
88#define IDMA_CHAN_INVALID 0x000000FF
89#define IDMA_IC_0 0x00000001
90#define IDMA_IC_1 0x00000002
91#define IDMA_IC_2 0x00000004
92#define IDMA_IC_3 0x00000008
93#define IDMA_IC_4 0x00000010
94#define IDMA_IC_5 0x00000020
95#define IDMA_IC_6 0x00000040
96#define IDMA_IC_7 0x00000080
97#define IDMA_IC_8 0x00000100
98#define IDMA_IC_9 0x00000200
99#define IDMA_IC_10 0x00000400
100#define IDMA_IC_11 0x00000800
101#define IDMA_IC_12 0x00001000
102#define IDMA_IC_13 0x00002000
103#define IDMA_SDC_BG 0x00004000
104#define IDMA_SDC_FG 0x00008000
105#define IDMA_SDC_MASK 0x00010000
106#define IDMA_SDC_PARTIAL 0x00020000
107#define IDMA_ADC_SYS1_WR 0x00040000
108#define IDMA_ADC_SYS2_WR 0x00080000
109#define IDMA_ADC_SYS1_CMD 0x00100000
110#define IDMA_ADC_SYS2_CMD 0x00200000
111#define IDMA_ADC_SYS1_RD 0x00400000
112#define IDMA_ADC_SYS2_RD 0x00800000
113#define IDMA_PF_QP 0x01000000
114#define IDMA_PF_BSP 0x02000000
115#define IDMA_PF_Y_IN 0x04000000
116#define IDMA_PF_U_IN 0x08000000
117#define IDMA_PF_V_IN 0x10000000
118#define IDMA_PF_Y_OUT 0x20000000
119#define IDMA_PF_U_OUT 0x40000000
120#define IDMA_PF_V_OUT 0x80000000
121
122#define TSTAT_PF_H264_PAUSE 0x00000001
123#define TSTAT_CSI2MEM_MASK 0x0000000C
124#define TSTAT_CSI2MEM_OFFSET 2
125#define TSTAT_VF_MASK 0x00000600
126#define TSTAT_VF_OFFSET 9
127#define TSTAT_VF_ROT_MASK 0x000C0000
128#define TSTAT_VF_ROT_OFFSET 18
129#define TSTAT_ENC_MASK 0x00000180
130#define TSTAT_ENC_OFFSET 7
131#define TSTAT_ENC_ROT_MASK 0x00030000
132#define TSTAT_ENC_ROT_OFFSET 16
133#define TSTAT_PP_MASK 0x00001800
134#define TSTAT_PP_OFFSET 11
135#define TSTAT_PP_ROT_MASK 0x00300000
136#define TSTAT_PP_ROT_OFFSET 20
137#define TSTAT_PF_MASK 0x00C00000
138#define TSTAT_PF_OFFSET 22
139#define TSTAT_ADCSYS1_MASK 0x03000000
140#define TSTAT_ADCSYS1_OFFSET 24
141#define TSTAT_ADCSYS2_MASK 0x0C000000
142#define TSTAT_ADCSYS2_OFFSET 26
143
144#define TASK_STAT_IDLE 0
145#define TASK_STAT_ACTIVE 1
146#define TASK_STAT_WAIT4READY 2
147
148struct idmac {
149 struct dma_device dma;
150};
151
152struct ipu {
153 void __iomem *reg_ipu;
154 void __iomem *reg_ic;
155 unsigned int irq_fn; /* IPU Function IRQ to the CPU */
156 unsigned int irq_err; /* IPU Error IRQ to the CPU */
157 unsigned int irq_base; /* Beginning of the IPU IRQ range */
158 unsigned long channel_init_mask;
159 spinlock_t lock;
160 struct clk *ipu_clk;
161 struct device *dev;
162 struct idmac idmac;
163 struct idmac_channel channel[IPU_CHANNELS_NUM];
164 struct tasklet_struct tasklet;
165};
166
167#define to_idmac(d) container_of(d, struct idmac, dma)
168
169extern int ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev);
170extern void ipu_irq_detach_irq(struct ipu *ipu, struct platform_device *dev);
171
172extern bool ipu_irq_status(uint32_t irq);
173extern int ipu_irq_map(unsigned int source);
174extern int ipu_irq_unmap(unsigned int source);
175
176#endif
diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
new file mode 100644
index 000000000000..83f532cc767f
--- /dev/null
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -0,0 +1,413 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#include <linux/init.h>
11#include <linux/err.h>
12#include <linux/spinlock.h>
13#include <linux/delay.h>
14#include <linux/clk.h>
15#include <linux/irq.h>
16#include <linux/io.h>
17
18#include <mach/ipu.h>
19
20#include "ipu_intern.h"
21
22/*
23 * Register read / write - shall be inlined by the compiler
24 */
25static u32 ipu_read_reg(struct ipu *ipu, unsigned long reg)
26{
27 return __raw_readl(ipu->reg_ipu + reg);
28}
29
30static void ipu_write_reg(struct ipu *ipu, u32 value, unsigned long reg)
31{
32 __raw_writel(value, ipu->reg_ipu + reg);
33}
34
35
36/*
37 * IPU IRQ chip driver
38 */
39
40#define IPU_IRQ_NR_FN_BANKS 3
41#define IPU_IRQ_NR_ERR_BANKS 2
42#define IPU_IRQ_NR_BANKS (IPU_IRQ_NR_FN_BANKS + IPU_IRQ_NR_ERR_BANKS)
43
44struct ipu_irq_bank {
45 unsigned int control;
46 unsigned int status;
47 spinlock_t lock;
48 struct ipu *ipu;
49};
50
51static struct ipu_irq_bank irq_bank[IPU_IRQ_NR_BANKS] = {
52 /* 3 groups of functional interrupts */
53 {
54 .control = IPU_INT_CTRL_1,
55 .status = IPU_INT_STAT_1,
56 }, {
57 .control = IPU_INT_CTRL_2,
58 .status = IPU_INT_STAT_2,
59 }, {
60 .control = IPU_INT_CTRL_3,
61 .status = IPU_INT_STAT_3,
62 },
63 /* 2 groups of error interrupts */
64 {
65 .control = IPU_INT_CTRL_4,
66 .status = IPU_INT_STAT_4,
67 }, {
68 .control = IPU_INT_CTRL_5,
69 .status = IPU_INT_STAT_5,
70 },
71};
72
73struct ipu_irq_map {
74 unsigned int irq;
75 int source;
76 struct ipu_irq_bank *bank;
77 struct ipu *ipu;
78};
79
80static struct ipu_irq_map irq_map[CONFIG_MX3_IPU_IRQS];
81/* Protects allocations from the above array of maps */
82static DEFINE_MUTEX(map_lock);
83/* Protects register accesses and individual mappings */
84static DEFINE_SPINLOCK(bank_lock);
85
86static struct ipu_irq_map *src2map(unsigned int src)
87{
88 int i;
89
90 for (i = 0; i < CONFIG_MX3_IPU_IRQS; i++)
91 if (irq_map[i].source == src)
92 return irq_map + i;
93
94 return NULL;
95}
96
97static void ipu_irq_unmask(unsigned int irq)
98{
99 struct ipu_irq_map *map = get_irq_chip_data(irq);
100 struct ipu_irq_bank *bank;
101 uint32_t reg;
102 unsigned long lock_flags;
103
104 spin_lock_irqsave(&bank_lock, lock_flags);
105
106 bank = map->bank;
107 if (!bank) {
108 spin_unlock_irqrestore(&bank_lock, lock_flags);
109 pr_err("IPU: %s(%u) - unmapped!\n", __func__, irq);
110 return;
111 }
112
113 reg = ipu_read_reg(bank->ipu, bank->control);
114 reg |= (1UL << (map->source & 31));
115 ipu_write_reg(bank->ipu, reg, bank->control);
116
117 spin_unlock_irqrestore(&bank_lock, lock_flags);
118}
119
120static void ipu_irq_mask(unsigned int irq)
121{
122 struct ipu_irq_map *map = get_irq_chip_data(irq);
123 struct ipu_irq_bank *bank;
124 uint32_t reg;
125 unsigned long lock_flags;
126
127 spin_lock_irqsave(&bank_lock, lock_flags);
128
129 bank = map->bank;
130 if (!bank) {
131 spin_unlock_irqrestore(&bank_lock, lock_flags);
132 pr_err("IPU: %s(%u) - unmapped!\n", __func__, irq);
133 return;
134 }
135
136 reg = ipu_read_reg(bank->ipu, bank->control);
137 reg &= ~(1UL << (map->source & 31));
138 ipu_write_reg(bank->ipu, reg, bank->control);
139
140 spin_unlock_irqrestore(&bank_lock, lock_flags);
141}
142
143static void ipu_irq_ack(unsigned int irq)
144{
145 struct ipu_irq_map *map = get_irq_chip_data(irq);
146 struct ipu_irq_bank *bank;
147 unsigned long lock_flags;
148
149 spin_lock_irqsave(&bank_lock, lock_flags);
150
151 bank = map->bank;
152 if (!bank) {
153 spin_unlock_irqrestore(&bank_lock, lock_flags);
154 pr_err("IPU: %s(%u) - unmapped!\n", __func__, irq);
155 return;
156 }
157
158 ipu_write_reg(bank->ipu, 1UL << (map->source & 31), bank->status);
159 spin_unlock_irqrestore(&bank_lock, lock_flags);
160}
161
162/**
163 * ipu_irq_status() - returns the current interrupt status of the specified IRQ.
164 * @irq: interrupt line to get status for.
165 * @return: true if the interrupt is pending/asserted or false if the
166 * interrupt is not pending.
167 */
168bool ipu_irq_status(unsigned int irq)
169{
170 struct ipu_irq_map *map = get_irq_chip_data(irq);
171 struct ipu_irq_bank *bank;
172 unsigned long lock_flags;
173 bool ret;
174
175 spin_lock_irqsave(&bank_lock, lock_flags);
176 bank = map->bank;
177 ret = bank && ipu_read_reg(bank->ipu, bank->status) &
178 (1UL << (map->source & 31));
179 spin_unlock_irqrestore(&bank_lock, lock_flags);
180
181 return ret;
182}
183
184/**
185 * ipu_irq_map() - map an IPU interrupt source to an IRQ number
186 * @source: interrupt source bit position (see below)
187 * @return: mapped IRQ number or negative error code
188 *
189 * The source parameter has to be explained further. On i.MX31 IPU has 137 IRQ
190 * sources, they are broken down in 5 32-bit registers, like 32, 32, 24, 32, 17.
191 * However, the source argument of this function is not the sequence number of
192 * the possible IRQ, but rather its bit position. So, first interrupt in fourth
193 * register has source number 96, and not 88. This makes calculations easier,
194 * and also provides forward compatibility with any future IPU implementations
195 * with any interrupt bit assignments.
196 */
197int ipu_irq_map(unsigned int source)
198{
199 int i, ret = -ENOMEM;
200 struct ipu_irq_map *map;
201
202 might_sleep();
203
204 mutex_lock(&map_lock);
205 map = src2map(source);
206 if (map) {
207 pr_err("IPU: Source %u already mapped to IRQ %u\n", source, map->irq);
208 ret = -EBUSY;
209 goto out;
210 }
211
212 for (i = 0; i < CONFIG_MX3_IPU_IRQS; i++) {
213 if (irq_map[i].source < 0) {
214 unsigned long lock_flags;
215
216 spin_lock_irqsave(&bank_lock, lock_flags);
217 irq_map[i].source = source;
218 irq_map[i].bank = irq_bank + source / 32;
219 spin_unlock_irqrestore(&bank_lock, lock_flags);
220
221 ret = irq_map[i].irq;
222 pr_debug("IPU: mapped source %u to IRQ %u\n",
223 source, ret);
224 break;
225 }
226 }
227out:
228 mutex_unlock(&map_lock);
229
230 if (ret < 0)
231 pr_err("IPU: couldn't map source %u: %d\n", source, ret);
232
233 return ret;
234}
235
236/**
237 * ipu_irq_map() - map an IPU interrupt source to an IRQ number
238 * @source: interrupt source bit position (see ipu_irq_map())
239 * @return: 0 or negative error code
240 */
241int ipu_irq_unmap(unsigned int source)
242{
243 int i, ret = -EINVAL;
244
245 might_sleep();
246
247 mutex_lock(&map_lock);
248 for (i = 0; i < CONFIG_MX3_IPU_IRQS; i++) {
249 if (irq_map[i].source == source) {
250 unsigned long lock_flags;
251
252 pr_debug("IPU: unmapped source %u from IRQ %u\n",
253 source, irq_map[i].irq);
254
255 spin_lock_irqsave(&bank_lock, lock_flags);
256 irq_map[i].source = -EINVAL;
257 irq_map[i].bank = NULL;
258 spin_unlock_irqrestore(&bank_lock, lock_flags);
259
260 ret = 0;
261 break;
262 }
263 }
264 mutex_unlock(&map_lock);
265
266 return ret;
267}
268
269/* Chained IRQ handler for IPU error interrupt */
270static void ipu_irq_err(unsigned int irq, struct irq_desc *desc)
271{
272 struct ipu *ipu = get_irq_data(irq);
273 u32 status;
274 int i, line;
275
276 for (i = IPU_IRQ_NR_FN_BANKS; i < IPU_IRQ_NR_BANKS; i++) {
277 struct ipu_irq_bank *bank = irq_bank + i;
278
279 spin_lock(&bank_lock);
280 status = ipu_read_reg(ipu, bank->status);
281 /*
282 * Don't think we have to clear all interrupts here, they will
283 * be acked by ->handle_irq() (handle_level_irq). However, we
284 * might want to clear unhandled interrupts after the loop...
285 */
286 status &= ipu_read_reg(ipu, bank->control);
287 spin_unlock(&bank_lock);
288 while ((line = ffs(status))) {
289 struct ipu_irq_map *map;
290
291 line--;
292 status &= ~(1UL << line);
293
294 spin_lock(&bank_lock);
295 map = src2map(32 * i + line);
296 if (map)
297 irq = map->irq;
298 spin_unlock(&bank_lock);
299
300 if (!map) {
301 pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
302 line, i);
303 continue;
304 }
305 generic_handle_irq(irq);
306 }
307 }
308}
309
310/* Chained IRQ handler for IPU function interrupt */
311static void ipu_irq_fn(unsigned int irq, struct irq_desc *desc)
312{
313 struct ipu *ipu = get_irq_data(irq);
314 u32 status;
315 int i, line;
316
317 for (i = 0; i < IPU_IRQ_NR_FN_BANKS; i++) {
318 struct ipu_irq_bank *bank = irq_bank + i;
319
320 spin_lock(&bank_lock);
321 status = ipu_read_reg(ipu, bank->status);
322 /* Not clearing all interrupts, see above */
323 status &= ipu_read_reg(ipu, bank->control);
324 spin_unlock(&bank_lock);
325 while ((line = ffs(status))) {
326 struct ipu_irq_map *map;
327
328 line--;
329 status &= ~(1UL << line);
330
331 spin_lock(&bank_lock);
332 map = src2map(32 * i + line);
333 if (map)
334 irq = map->irq;
335 spin_unlock(&bank_lock);
336
337 if (!map) {
338 pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
339 line, i);
340 continue;
341 }
342 generic_handle_irq(irq);
343 }
344 }
345}
346
347static struct irq_chip ipu_irq_chip = {
348 .name = "ipu_irq",
349 .ack = ipu_irq_ack,
350 .mask = ipu_irq_mask,
351 .unmask = ipu_irq_unmask,
352};
353
354/* Install the IRQ handler */
355int ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev)
356{
357 struct ipu_platform_data *pdata = dev->dev.platform_data;
358 unsigned int irq, irq_base, i;
359
360 irq_base = pdata->irq_base;
361
362 for (i = 0; i < IPU_IRQ_NR_BANKS; i++)
363 irq_bank[i].ipu = ipu;
364
365 for (i = 0; i < CONFIG_MX3_IPU_IRQS; i++) {
366 int ret;
367
368 irq = irq_base + i;
369 ret = set_irq_chip(irq, &ipu_irq_chip);
370 if (ret < 0)
371 return ret;
372 ret = set_irq_chip_data(irq, irq_map + i);
373 if (ret < 0)
374 return ret;
375 irq_map[i].ipu = ipu;
376 irq_map[i].irq = irq;
377 irq_map[i].source = -EINVAL;
378 set_irq_handler(irq, handle_level_irq);
379#ifdef CONFIG_ARM
380 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
381#endif
382 }
383
384 set_irq_data(ipu->irq_fn, ipu);
385 set_irq_chained_handler(ipu->irq_fn, ipu_irq_fn);
386
387 set_irq_data(ipu->irq_err, ipu);
388 set_irq_chained_handler(ipu->irq_err, ipu_irq_err);
389
390 return 0;
391}
392
393void ipu_irq_detach_irq(struct ipu *ipu, struct platform_device *dev)
394{
395 struct ipu_platform_data *pdata = dev->dev.platform_data;
396 unsigned int irq, irq_base;
397
398 irq_base = pdata->irq_base;
399
400 set_irq_chained_handler(ipu->irq_fn, NULL);
401 set_irq_data(ipu->irq_fn, NULL);
402
403 set_irq_chained_handler(ipu->irq_err, NULL);
404 set_irq_data(ipu->irq_err, NULL);
405
406 for (irq = irq_base; irq < irq_base + CONFIG_MX3_IPU_IRQS; irq++) {
407#ifdef CONFIG_ARM
408 set_irq_flags(irq, 0);
409#endif
410 set_irq_chip(irq, NULL);
411 set_irq_chip_data(irq, NULL);
412 }
413}
diff --git a/drivers/firmware/dell_rbu.c b/drivers/firmware/dell_rbu.c
index 13946ebd77d6..b4704e150b28 100644
--- a/drivers/firmware/dell_rbu.c
+++ b/drivers/firmware/dell_rbu.c
@@ -576,7 +576,7 @@ static ssize_t read_rbu_image_type(struct kobject *kobj,
576{ 576{
577 int size = 0; 577 int size = 0;
578 if (!pos) 578 if (!pos)
579 size = sprintf(buffer, "%s\n", image_type); 579 size = scnprintf(buffer, count, "%s\n", image_type);
580 return size; 580 return size;
581} 581}
582 582
@@ -648,7 +648,7 @@ static ssize_t read_rbu_packet_size(struct kobject *kobj,
648 int size = 0; 648 int size = 0;
649 if (!pos) { 649 if (!pos) {
650 spin_lock(&rbu_data.lock); 650 spin_lock(&rbu_data.lock);
651 size = sprintf(buffer, "%lu\n", rbu_data.packetsize); 651 size = scnprintf(buffer, count, "%lu\n", rbu_data.packetsize);
652 spin_unlock(&rbu_data.lock); 652 spin_unlock(&rbu_data.lock);
653 } 653 }
654 return size; 654 return size;
diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
index 3d33b8252b58..14796594e5d9 100644
--- a/drivers/gpu/drm/drm_agpsupport.c
+++ b/drivers/gpu/drm/drm_agpsupport.c
@@ -33,10 +33,11 @@
33 33
34#include "drmP.h" 34#include "drmP.h"
35#include <linux/module.h> 35#include <linux/module.h>
36#include <asm/agp.h>
37 36
38#if __OS_HAS_AGP 37#if __OS_HAS_AGP
39 38
39#include <asm/agp.h>
40
40/** 41/**
41 * Get AGP information. 42 * Get AGP information.
42 * 43 *
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 5b2cbb778162..bfce0992fefb 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -194,7 +194,6 @@ char *drm_get_connector_status_name(enum drm_connector_status status)
194 * @type: object type 194 * @type: object type
195 * 195 *
196 * LOCKING: 196 * LOCKING:
197 * Caller must hold DRM mode_config lock.
198 * 197 *
199 * Create a unique identifier based on @ptr in @dev's identifier space. Used 198 * Create a unique identifier based on @ptr in @dev's identifier space. Used
200 * for tracking modes, CRTCs and connectors. 199 * for tracking modes, CRTCs and connectors.
@@ -209,15 +208,15 @@ static int drm_mode_object_get(struct drm_device *dev,
209 int new_id = 0; 208 int new_id = 0;
210 int ret; 209 int ret;
211 210
212 WARN(!mutex_is_locked(&dev->mode_config.mutex),
213 "%s called w/o mode_config lock\n", __func__);
214again: 211again:
215 if (idr_pre_get(&dev->mode_config.crtc_idr, GFP_KERNEL) == 0) { 212 if (idr_pre_get(&dev->mode_config.crtc_idr, GFP_KERNEL) == 0) {
216 DRM_ERROR("Ran out memory getting a mode number\n"); 213 DRM_ERROR("Ran out memory getting a mode number\n");
217 return -EINVAL; 214 return -EINVAL;
218 } 215 }
219 216
217 mutex_lock(&dev->mode_config.idr_mutex);
220 ret = idr_get_new_above(&dev->mode_config.crtc_idr, obj, 1, &new_id); 218 ret = idr_get_new_above(&dev->mode_config.crtc_idr, obj, 1, &new_id);
219 mutex_unlock(&dev->mode_config.idr_mutex);
221 if (ret == -EAGAIN) 220 if (ret == -EAGAIN)
222 goto again; 221 goto again;
223 222
@@ -239,16 +238,20 @@ again:
239static void drm_mode_object_put(struct drm_device *dev, 238static void drm_mode_object_put(struct drm_device *dev,
240 struct drm_mode_object *object) 239 struct drm_mode_object *object)
241{ 240{
241 mutex_lock(&dev->mode_config.idr_mutex);
242 idr_remove(&dev->mode_config.crtc_idr, object->id); 242 idr_remove(&dev->mode_config.crtc_idr, object->id);
243 mutex_unlock(&dev->mode_config.idr_mutex);
243} 244}
244 245
245void *drm_mode_object_find(struct drm_device *dev, uint32_t id, uint32_t type) 246void *drm_mode_object_find(struct drm_device *dev, uint32_t id, uint32_t type)
246{ 247{
247 struct drm_mode_object *obj; 248 struct drm_mode_object *obj = NULL;
248 249
250 mutex_lock(&dev->mode_config.idr_mutex);
249 obj = idr_find(&dev->mode_config.crtc_idr, id); 251 obj = idr_find(&dev->mode_config.crtc_idr, id);
250 if (!obj || (obj->type != type) || (obj->id != id)) 252 if (!obj || (obj->type != type) || (obj->id != id))
251 return NULL; 253 obj = NULL;
254 mutex_unlock(&dev->mode_config.idr_mutex);
252 255
253 return obj; 256 return obj;
254} 257}
@@ -786,6 +789,7 @@ EXPORT_SYMBOL(drm_mode_create_dithering_property);
786void drm_mode_config_init(struct drm_device *dev) 789void drm_mode_config_init(struct drm_device *dev)
787{ 790{
788 mutex_init(&dev->mode_config.mutex); 791 mutex_init(&dev->mode_config.mutex);
792 mutex_init(&dev->mode_config.idr_mutex);
789 INIT_LIST_HEAD(&dev->mode_config.fb_list); 793 INIT_LIST_HEAD(&dev->mode_config.fb_list);
790 INIT_LIST_HEAD(&dev->mode_config.fb_kernel_list); 794 INIT_LIST_HEAD(&dev->mode_config.fb_kernel_list);
791 INIT_LIST_HEAD(&dev->mode_config.crtc_list); 795 INIT_LIST_HEAD(&dev->mode_config.crtc_list);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 5ff88d952226..14c7a23dc157 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -294,6 +294,7 @@ EXPORT_SYMBOL(drm_init);
294 */ 294 */
295static void drm_cleanup(struct drm_device * dev) 295static void drm_cleanup(struct drm_device * dev)
296{ 296{
297 struct drm_map_list *r_list, *list_temp;
297 DRM_DEBUG("\n"); 298 DRM_DEBUG("\n");
298 299
299 if (!dev) { 300 if (!dev) {
@@ -325,6 +326,9 @@ static void drm_cleanup(struct drm_device * dev)
325 drm_ht_remove(&dev->map_hash); 326 drm_ht_remove(&dev->map_hash);
326 drm_ctxbitmap_cleanup(dev); 327 drm_ctxbitmap_cleanup(dev);
327 328
329 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
330 drm_rmmap(dev, r_list->map);
331
328 if (drm_core_check_feature(dev, DRIVER_MODESET)) 332 if (drm_core_check_feature(dev, DRIVER_MODESET))
329 drm_put_minor(&dev->control); 333 drm_put_minor(&dev->control);
330 334
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 0fbb0da342cb..5a4d3244758a 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -660,7 +660,7 @@ struct edid *drm_get_edid(struct drm_connector *connector,
660 660
661 edid = (struct edid *)drm_ddc_read(adapter); 661 edid = (struct edid *)drm_ddc_read(adapter);
662 if (!edid) { 662 if (!edid) {
663 dev_warn(&connector->dev->pdev->dev, "%s: no EDID data\n", 663 dev_info(&connector->dev->pdev->dev, "%s: no EDID data\n",
664 drm_get_connector_name(connector)); 664 drm_get_connector_name(connector));
665 return NULL; 665 return NULL;
666 } 666 }
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index 5ca132afa4f2..46bb923b097c 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -118,12 +118,20 @@ static void drm_master_destroy(struct kref *kref)
118 struct drm_master *master = container_of(kref, struct drm_master, refcount); 118 struct drm_master *master = container_of(kref, struct drm_master, refcount);
119 struct drm_magic_entry *pt, *next; 119 struct drm_magic_entry *pt, *next;
120 struct drm_device *dev = master->minor->dev; 120 struct drm_device *dev = master->minor->dev;
121 struct drm_map_list *r_list, *list_temp;
121 122
122 list_del(&master->head); 123 list_del(&master->head);
123 124
124 if (dev->driver->master_destroy) 125 if (dev->driver->master_destroy)
125 dev->driver->master_destroy(dev, master); 126 dev->driver->master_destroy(dev, master);
126 127
128 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) {
129 if (r_list->master == master) {
130 drm_rmmap_locked(dev, r_list->map);
131 r_list = NULL;
132 }
133 }
134
127 if (master->unique) { 135 if (master->unique) {
128 drm_free(master->unique, master->unique_size, DRM_MEM_DRIVER); 136 drm_free(master->unique, master->unique_size, DRM_MEM_DRIVER);
129 master->unique = NULL; 137 master->unique = NULL;
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index bbadf1c04142..ee64b7301f67 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -944,13 +944,14 @@ static int i915_load_modeset_init(struct drm_device *dev)
944 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & 944 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) &
945 0xff000000; 945 0xff000000;
946 946
947 DRM_DEBUG("*** fb base 0x%08lx\n", dev->mode_config.fb_base); 947 if (IS_MOBILE(dev) || IS_I9XX(dev))
948
949 if (IS_MOBILE(dev) || (IS_I9XX(dev) && !IS_I965G(dev) && !IS_G33(dev)))
950 dev_priv->cursor_needs_physical = true; 948 dev_priv->cursor_needs_physical = true;
951 else 949 else
952 dev_priv->cursor_needs_physical = false; 950 dev_priv->cursor_needs_physical = false;
953 951
952 if (IS_I965G(dev) || IS_G33(dev))
953 dev_priv->cursor_needs_physical = false;
954
954 ret = i915_probe_agp(dev, &agp_size, &prealloc_size); 955 ret = i915_probe_agp(dev, &agp_size, &prealloc_size);
955 if (ret) 956 if (ret)
956 goto kfree_devname; 957 goto kfree_devname;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 96316fd47233..debad5c04cc0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3364,7 +3364,7 @@ void i915_gem_free_all_phys_object(struct drm_device *dev)
3364{ 3364{
3365 int i; 3365 int i;
3366 3366
3367 for (i = 0; i < I915_MAX_PHYS_OBJECT; i++) 3367 for (i = I915_GEM_PHYS_CURSOR_0; i <= I915_MAX_PHYS_OBJECT; i++)
3368 i915_gem_free_phys_object(dev, i); 3368 i915_gem_free_phys_object(dev, i);
3369} 3369}
3370 3370
@@ -3427,7 +3427,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
3427 ret = i915_gem_init_phys_object(dev, id, 3427 ret = i915_gem_init_phys_object(dev, id,
3428 obj->size); 3428 obj->size);
3429 if (ret) { 3429 if (ret) {
3430 DRM_ERROR("failed to init phys object %d size: %d\n", id, obj->size); 3430 DRM_ERROR("failed to init phys object %d size: %zu\n", id, obj->size);
3431 goto out; 3431 goto out;
3432 } 3432 }
3433 } 3433 }
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
index a5a2f5339e9e..5ee9d4c25753 100644
--- a/drivers/gpu/drm/i915/intel_i2c.c
+++ b/drivers/gpu/drm/i915/intel_i2c.c
@@ -137,10 +137,6 @@ struct intel_i2c_chan *intel_i2c_create(struct drm_device *dev, const u32 reg,
137 chan->reg = reg; 137 chan->reg = reg;
138 snprintf(chan->adapter.name, I2C_NAME_SIZE, "intel drm %s", name); 138 snprintf(chan->adapter.name, I2C_NAME_SIZE, "intel drm %s", name);
139 chan->adapter.owner = THIS_MODULE; 139 chan->adapter.owner = THIS_MODULE;
140#ifndef I2C_HW_B_INTELFB
141#define I2C_HW_B_INTELFB I2C_HW_B_I810
142#endif
143 chan->adapter.id = I2C_HW_B_INTELFB;
144 chan->adapter.algo_data = &chan->algo; 140 chan->adapter.algo_data = &chan->algo;
145 chan->adapter.dev.parent = &dev->pdev->dev; 141 chan->adapter.dev.parent = &dev->pdev->dev;
146 chan->algo.setsda = set_data; 142 chan->algo.setsda = set_data;
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 2fafdcc108fe..6b1148fc2cbe 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -340,6 +340,18 @@ static void intel_lvds_destroy(struct drm_connector *connector)
340 kfree(connector); 340 kfree(connector);
341} 341}
342 342
343static int intel_lvds_set_property(struct drm_connector *connector,
344 struct drm_property *property,
345 uint64_t value)
346{
347 struct drm_device *dev = connector->dev;
348
349 if (property == dev->mode_config.dpms_property && connector->encoder)
350 intel_lvds_dpms(connector->encoder, (uint32_t)(value & 0xf));
351
352 return 0;
353}
354
343static const struct drm_encoder_helper_funcs intel_lvds_helper_funcs = { 355static const struct drm_encoder_helper_funcs intel_lvds_helper_funcs = {
344 .dpms = intel_lvds_dpms, 356 .dpms = intel_lvds_dpms,
345 .mode_fixup = intel_lvds_mode_fixup, 357 .mode_fixup = intel_lvds_mode_fixup,
@@ -359,6 +371,7 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = {
359 .restore = intel_lvds_restore, 371 .restore = intel_lvds_restore,
360 .detect = intel_lvds_detect, 372 .detect = intel_lvds_detect,
361 .fill_modes = drm_helper_probe_single_connector_modes, 373 .fill_modes = drm_helper_probe_single_connector_modes,
374 .set_property = intel_lvds_set_property,
362 .destroy = intel_lvds_destroy, 375 .destroy = intel_lvds_destroy,
363}; 376};
364 377
diff --git a/drivers/i2c/busses/i2c-acorn.c b/drivers/i2c/busses/i2c-acorn.c
index 75089febbc13..9fee3ca17344 100644
--- a/drivers/i2c/busses/i2c-acorn.c
+++ b/drivers/i2c/busses/i2c-acorn.c
@@ -83,7 +83,6 @@ static struct i2c_algo_bit_data ioc_data = {
83}; 83};
84 84
85static struct i2c_adapter ioc_ops = { 85static struct i2c_adapter ioc_ops = {
86 .id = I2C_HW_B_IOC,
87 .algo_data = &ioc_data, 86 .algo_data = &ioc_data,
88}; 87};
89 88
diff --git a/drivers/i2c/busses/i2c-ali1535.c b/drivers/i2c/busses/i2c-ali1535.c
index 9cead9b9458e..981e080b32ae 100644
--- a/drivers/i2c/busses/i2c-ali1535.c
+++ b/drivers/i2c/busses/i2c-ali1535.c
@@ -476,7 +476,6 @@ static const struct i2c_algorithm smbus_algorithm = {
476 476
477static struct i2c_adapter ali1535_adapter = { 477static struct i2c_adapter ali1535_adapter = {
478 .owner = THIS_MODULE, 478 .owner = THIS_MODULE,
479 .id = I2C_HW_SMBUS_ALI1535,
480 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 479 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
481 .algo = &smbus_algorithm, 480 .algo = &smbus_algorithm,
482}; 481};
diff --git a/drivers/i2c/busses/i2c-ali1563.c b/drivers/i2c/busses/i2c-ali1563.c
index dd9e796fad69..f70f46582c6c 100644
--- a/drivers/i2c/busses/i2c-ali1563.c
+++ b/drivers/i2c/busses/i2c-ali1563.c
@@ -386,7 +386,6 @@ static const struct i2c_algorithm ali1563_algorithm = {
386 386
387static struct i2c_adapter ali1563_adapter = { 387static struct i2c_adapter ali1563_adapter = {
388 .owner = THIS_MODULE, 388 .owner = THIS_MODULE,
389 .id = I2C_HW_SMBUS_ALI1563,
390 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 389 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
391 .algo = &ali1563_algorithm, 390 .algo = &ali1563_algorithm,
392}; 391};
diff --git a/drivers/i2c/busses/i2c-ali15x3.c b/drivers/i2c/busses/i2c-ali15x3.c
index 234fdde7d40e..39066dee46e3 100644
--- a/drivers/i2c/busses/i2c-ali15x3.c
+++ b/drivers/i2c/busses/i2c-ali15x3.c
@@ -473,7 +473,6 @@ static const struct i2c_algorithm smbus_algorithm = {
473 473
474static struct i2c_adapter ali15x3_adapter = { 474static struct i2c_adapter ali15x3_adapter = {
475 .owner = THIS_MODULE, 475 .owner = THIS_MODULE,
476 .id = I2C_HW_SMBUS_ALI15X3,
477 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 476 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
478 .algo = &smbus_algorithm, 477 .algo = &smbus_algorithm,
479}; 478};
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c
index 36bee5b9c952..220f4a1eee1d 100644
--- a/drivers/i2c/busses/i2c-amd756.c
+++ b/drivers/i2c/busses/i2c-amd756.c
@@ -298,7 +298,6 @@ static const struct i2c_algorithm smbus_algorithm = {
298 298
299struct i2c_adapter amd756_smbus = { 299struct i2c_adapter amd756_smbus = {
300 .owner = THIS_MODULE, 300 .owner = THIS_MODULE,
301 .id = I2C_HW_SMBUS_AMD756,
302 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 301 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
303 .algo = &smbus_algorithm, 302 .algo = &smbus_algorithm,
304}; 303};
diff --git a/drivers/i2c/busses/i2c-amd8111.c b/drivers/i2c/busses/i2c-amd8111.c
index 3972208876b3..edab51973bf5 100644
--- a/drivers/i2c/busses/i2c-amd8111.c
+++ b/drivers/i2c/busses/i2c-amd8111.c
@@ -387,7 +387,6 @@ static int __devinit amd8111_probe(struct pci_dev *dev,
387 smbus->adapter.owner = THIS_MODULE; 387 smbus->adapter.owner = THIS_MODULE;
388 snprintf(smbus->adapter.name, sizeof(smbus->adapter.name), 388 snprintf(smbus->adapter.name, sizeof(smbus->adapter.name),
389 "SMBus2 AMD8111 adapter at %04x", smbus->base); 389 "SMBus2 AMD8111 adapter at %04x", smbus->base);
390 smbus->adapter.id = I2C_HW_SMBUS_AMD8111;
391 smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 390 smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
392 smbus->adapter.algo = &smbus_algorithm; 391 smbus->adapter.algo = &smbus_algorithm;
393 smbus->adapter.algo_data = smbus; 392 smbus->adapter.algo_data = smbus;
diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c
index 66a04c2c660f..f78ce523e3db 100644
--- a/drivers/i2c/busses/i2c-au1550.c
+++ b/drivers/i2c/busses/i2c-au1550.c
@@ -400,7 +400,6 @@ i2c_au1550_probe(struct platform_device *pdev)
400 priv->xfer_timeout = 200; 400 priv->xfer_timeout = 200;
401 priv->ack_timeout = 200; 401 priv->ack_timeout = 200;
402 402
403 priv->adap.id = I2C_HW_AU1550_PSC;
404 priv->adap.nr = pdev->id; 403 priv->adap.nr = pdev->id;
405 priv->adap.algo = &au1550_algo; 404 priv->adap.algo = &au1550_algo;
406 priv->adap.algo_data = priv; 405 priv->adap.algo_data = priv;
diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c
index 3fd2c417c1e0..fc548b3d002e 100644
--- a/drivers/i2c/busses/i2c-bfin-twi.c
+++ b/drivers/i2c/busses/i2c-bfin-twi.c
@@ -651,7 +651,6 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
651 iface->timeout_timer.data = (unsigned long)iface; 651 iface->timeout_timer.data = (unsigned long)iface;
652 652
653 p_adap = &iface->adap; 653 p_adap = &iface->adap;
654 p_adap->id = I2C_HW_BLACKFIN;
655 p_adap->nr = pdev->id; 654 p_adap->nr = pdev->id;
656 strlcpy(p_adap->name, pdev->name, sizeof(p_adap->name)); 655 strlcpy(p_adap->name, pdev->name, sizeof(p_adap->name));
657 p_adap->algo = &bfin_twi_algorithm; 656 p_adap->algo = &bfin_twi_algorithm;
diff --git a/drivers/i2c/busses/i2c-elektor.c b/drivers/i2c/busses/i2c-elektor.c
index 0ed3ccb81b63..448b4bf35eb7 100644
--- a/drivers/i2c/busses/i2c-elektor.c
+++ b/drivers/i2c/busses/i2c-elektor.c
@@ -202,7 +202,6 @@ static struct i2c_algo_pcf_data pcf_isa_data = {
202static struct i2c_adapter pcf_isa_ops = { 202static struct i2c_adapter pcf_isa_ops = {
203 .owner = THIS_MODULE, 203 .owner = THIS_MODULE,
204 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 204 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
205 .id = I2C_HW_P_ELEK,
206 .algo_data = &pcf_isa_data, 205 .algo_data = &pcf_isa_data,
207 .name = "i2c-elektor", 206 .name = "i2c-elektor",
208}; 207};
diff --git a/drivers/i2c/busses/i2c-hydra.c b/drivers/i2c/busses/i2c-hydra.c
index 648aa7baff83..bec9b845dd16 100644
--- a/drivers/i2c/busses/i2c-hydra.c
+++ b/drivers/i2c/busses/i2c-hydra.c
@@ -102,7 +102,6 @@ static struct i2c_algo_bit_data hydra_bit_data = {
102static struct i2c_adapter hydra_adap = { 102static struct i2c_adapter hydra_adap = {
103 .owner = THIS_MODULE, 103 .owner = THIS_MODULE,
104 .name = "Hydra i2c", 104 .name = "Hydra i2c",
105 .id = I2C_HW_B_HYDRA,
106 .algo_data = &hydra_bit_data, 105 .algo_data = &hydra_bit_data,
107}; 106};
108 107
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 526625eaa84b..230238df56c4 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -556,7 +556,6 @@ static const struct i2c_algorithm smbus_algorithm = {
556 556
557static struct i2c_adapter i801_adapter = { 557static struct i2c_adapter i801_adapter = {
558 .owner = THIS_MODULE, 558 .owner = THIS_MODULE,
559 .id = I2C_HW_SMBUS_I801,
560 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 559 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
561 .algo = &smbus_algorithm, 560 .algo = &smbus_algorithm,
562}; 561};
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c
index 651f2f1ae5b7..88f0db73b364 100644
--- a/drivers/i2c/busses/i2c-ibm_iic.c
+++ b/drivers/i2c/busses/i2c-ibm_iic.c
@@ -746,7 +746,6 @@ static int __devinit iic_probe(struct of_device *ofdev,
746 adap->dev.parent = &ofdev->dev; 746 adap->dev.parent = &ofdev->dev;
747 strlcpy(adap->name, "IBM IIC", sizeof(adap->name)); 747 strlcpy(adap->name, "IBM IIC", sizeof(adap->name));
748 i2c_set_adapdata(adap, dev); 748 i2c_set_adapdata(adap, dev);
749 adap->id = I2C_HW_OCP;
750 adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 749 adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
751 adap->algo = &iic_algo; 750 adap->algo = &iic_algo;
752 adap->timeout = 1; 751 adap->timeout = 1;
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c
index fc2714ac0c0f..3190690c26ce 100644
--- a/drivers/i2c/busses/i2c-iop3xx.c
+++ b/drivers/i2c/busses/i2c-iop3xx.c
@@ -480,7 +480,6 @@ iop3xx_i2c_probe(struct platform_device *pdev)
480 } 480 }
481 481
482 memcpy(new_adapter->name, pdev->name, strlen(pdev->name)); 482 memcpy(new_adapter->name, pdev->name, strlen(pdev->name));
483 new_adapter->id = I2C_HW_IOP3XX;
484 new_adapter->owner = THIS_MODULE; 483 new_adapter->owner = THIS_MODULE;
485 new_adapter->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 484 new_adapter->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
486 new_adapter->dev.parent = &pdev->dev; 485 new_adapter->dev.parent = &pdev->dev;
diff --git a/drivers/i2c/busses/i2c-ixp2000.c b/drivers/i2c/busses/i2c-ixp2000.c
index 05d72e981353..8e8467970481 100644
--- a/drivers/i2c/busses/i2c-ixp2000.c
+++ b/drivers/i2c/busses/i2c-ixp2000.c
@@ -116,7 +116,6 @@ static int ixp2000_i2c_probe(struct platform_device *plat_dev)
116 drv_data->algo_data.udelay = 6; 116 drv_data->algo_data.udelay = 6;
117 drv_data->algo_data.timeout = 100; 117 drv_data->algo_data.timeout = 100;
118 118
119 drv_data->adapter.id = I2C_HW_B_IXP2000,
120 strlcpy(drv_data->adapter.name, plat_dev->dev.driver->name, 119 strlcpy(drv_data->adapter.name, plat_dev->dev.driver->name,
121 sizeof(drv_data->adapter.name)); 120 sizeof(drv_data->adapter.name));
122 drv_data->adapter.algo_data = &drv_data->algo_data, 121 drv_data->adapter.algo_data = &drv_data->algo_data,
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index a9a45fcc8544..aedbbe6618db 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -310,7 +310,6 @@ static const struct i2c_algorithm mpc_algo = {
310static struct i2c_adapter mpc_ops = { 310static struct i2c_adapter mpc_ops = {
311 .owner = THIS_MODULE, 311 .owner = THIS_MODULE,
312 .name = "MPC adapter", 312 .name = "MPC adapter",
313 .id = I2C_HW_MPC107,
314 .algo = &mpc_algo, 313 .algo = &mpc_algo,
315 .timeout = 1, 314 .timeout = 1,
316}; 315};
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 9e8118d2fe64..eeda276f8f16 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -527,7 +527,6 @@ mv64xxx_i2c_probe(struct platform_device *pd)
527 goto exit_unmap_regs; 527 goto exit_unmap_regs;
528 } 528 }
529 drv_data->adapter.dev.parent = &pd->dev; 529 drv_data->adapter.dev.parent = &pd->dev;
530 drv_data->adapter.id = I2C_HW_MV64XXX;
531 drv_data->adapter.algo = &mv64xxx_i2c_algo; 530 drv_data->adapter.algo = &mv64xxx_i2c_algo;
532 drv_data->adapter.owner = THIS_MODULE; 531 drv_data->adapter.owner = THIS_MODULE;
533 drv_data->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 532 drv_data->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
index 3b19bc41a60b..05af6cd7f270 100644
--- a/drivers/i2c/busses/i2c-nforce2.c
+++ b/drivers/i2c/busses/i2c-nforce2.c
@@ -355,7 +355,6 @@ static int __devinit nforce2_probe_smb (struct pci_dev *dev, int bar,
355 return -EBUSY; 355 return -EBUSY;
356 } 356 }
357 smbus->adapter.owner = THIS_MODULE; 357 smbus->adapter.owner = THIS_MODULE;
358 smbus->adapter.id = I2C_HW_SMBUS_NFORCE2;
359 smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 358 smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
360 smbus->adapter.algo = &smbus_algorithm; 359 smbus->adapter.algo = &smbus_algorithm;
361 smbus->adapter.algo_data = smbus; 360 smbus->adapter.algo_data = smbus;
diff --git a/drivers/i2c/busses/i2c-parport-light.c b/drivers/i2c/busses/i2c-parport-light.c
index b2b8380f6602..322c5691e38e 100644
--- a/drivers/i2c/busses/i2c-parport-light.c
+++ b/drivers/i2c/busses/i2c-parport-light.c
@@ -115,7 +115,6 @@ static struct i2c_algo_bit_data parport_algo_data = {
115static struct i2c_adapter parport_adapter = { 115static struct i2c_adapter parport_adapter = {
116 .owner = THIS_MODULE, 116 .owner = THIS_MODULE,
117 .class = I2C_CLASS_HWMON, 117 .class = I2C_CLASS_HWMON,
118 .id = I2C_HW_B_LP,
119 .algo_data = &parport_algo_data, 118 .algo_data = &parport_algo_data,
120 .name = "Parallel port adapter (light)", 119 .name = "Parallel port adapter (light)",
121}; 120};
diff --git a/drivers/i2c/busses/i2c-parport.c b/drivers/i2c/busses/i2c-parport.c
index a257cd5cd134..0d8998610c74 100644
--- a/drivers/i2c/busses/i2c-parport.c
+++ b/drivers/i2c/busses/i2c-parport.c
@@ -164,7 +164,6 @@ static void i2c_parport_attach (struct parport *port)
164 /* Fill the rest of the structure */ 164 /* Fill the rest of the structure */
165 adapter->adapter.owner = THIS_MODULE; 165 adapter->adapter.owner = THIS_MODULE;
166 adapter->adapter.class = I2C_CLASS_HWMON; 166 adapter->adapter.class = I2C_CLASS_HWMON;
167 adapter->adapter.id = I2C_HW_B_LP;
168 strlcpy(adapter->adapter.name, "Parallel port adapter", 167 strlcpy(adapter->adapter.name, "Parallel port adapter",
169 sizeof(adapter->adapter.name)); 168 sizeof(adapter->adapter.name));
170 adapter->algo_data = parport_algo_data; 169 adapter->algo_data = parport_algo_data;
diff --git a/drivers/i2c/busses/i2c-pca-isa.c b/drivers/i2c/busses/i2c-pca-isa.c
index 9eb76268ec78..4aa8138cb0a9 100644
--- a/drivers/i2c/busses/i2c-pca-isa.c
+++ b/drivers/i2c/busses/i2c-pca-isa.c
@@ -101,7 +101,6 @@ static struct i2c_algo_pca_data pca_isa_data = {
101 101
102static struct i2c_adapter pca_isa_ops = { 102static struct i2c_adapter pca_isa_ops = {
103 .owner = THIS_MODULE, 103 .owner = THIS_MODULE,
104 .id = I2C_HW_A_ISA,
105 .algo_data = &pca_isa_data, 104 .algo_data = &pca_isa_data,
106 .name = "PCA9564 ISA Adapter", 105 .name = "PCA9564 ISA Adapter",
107 .timeout = 100, 106 .timeout = 100,
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
index eaa9b387543e..761f9dd53620 100644
--- a/drivers/i2c/busses/i2c-piix4.c
+++ b/drivers/i2c/busses/i2c-piix4.c
@@ -403,7 +403,6 @@ static const struct i2c_algorithm smbus_algorithm = {
403 403
404static struct i2c_adapter piix4_adapter = { 404static struct i2c_adapter piix4_adapter = {
405 .owner = THIS_MODULE, 405 .owner = THIS_MODULE,
406 .id = I2C_HW_SMBUS_PIIX4,
407 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 406 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
408 .algo = &smbus_algorithm, 407 .algo = &smbus_algorithm,
409}; 408};
diff --git a/drivers/i2c/busses/i2c-sibyte.c b/drivers/i2c/busses/i2c-sibyte.c
index 4ddefbf238e9..98b1ec489159 100644
--- a/drivers/i2c/busses/i2c-sibyte.c
+++ b/drivers/i2c/busses/i2c-sibyte.c
@@ -155,7 +155,6 @@ static struct i2c_algo_sibyte_data sibyte_board_data[2] = {
155static struct i2c_adapter sibyte_board_adapter[2] = { 155static struct i2c_adapter sibyte_board_adapter[2] = {
156 { 156 {
157 .owner = THIS_MODULE, 157 .owner = THIS_MODULE,
158 .id = I2C_HW_SIBYTE,
159 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 158 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
160 .algo = NULL, 159 .algo = NULL,
161 .algo_data = &sibyte_board_data[0], 160 .algo_data = &sibyte_board_data[0],
@@ -164,7 +163,6 @@ static struct i2c_adapter sibyte_board_adapter[2] = {
164 }, 163 },
165 { 164 {
166 .owner = THIS_MODULE, 165 .owner = THIS_MODULE,
167 .id = I2C_HW_SIBYTE,
168 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 166 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
169 .algo = NULL, 167 .algo = NULL,
170 .algo_data = &sibyte_board_data[1], 168 .algo_data = &sibyte_board_data[1],
diff --git a/drivers/i2c/busses/i2c-sis5595.c b/drivers/i2c/busses/i2c-sis5595.c
index 8ce2daff985c..f320ab27da46 100644
--- a/drivers/i2c/busses/i2c-sis5595.c
+++ b/drivers/i2c/busses/i2c-sis5595.c
@@ -365,7 +365,6 @@ static const struct i2c_algorithm smbus_algorithm = {
365 365
366static struct i2c_adapter sis5595_adapter = { 366static struct i2c_adapter sis5595_adapter = {
367 .owner = THIS_MODULE, 367 .owner = THIS_MODULE,
368 .id = I2C_HW_SMBUS_SIS5595,
369 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 368 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
370 .algo = &smbus_algorithm, 369 .algo = &smbus_algorithm,
371}; 370};
diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c
index 9c9c016ff2b5..50c3610e6028 100644
--- a/drivers/i2c/busses/i2c-sis630.c
+++ b/drivers/i2c/busses/i2c-sis630.c
@@ -464,7 +464,6 @@ static const struct i2c_algorithm smbus_algorithm = {
464 464
465static struct i2c_adapter sis630_adapter = { 465static struct i2c_adapter sis630_adapter = {
466 .owner = THIS_MODULE, 466 .owner = THIS_MODULE,
467 .id = I2C_HW_SMBUS_SIS630,
468 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 467 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
469 .algo = &smbus_algorithm, 468 .algo = &smbus_algorithm,
470}; 469};
diff --git a/drivers/i2c/busses/i2c-sis96x.c b/drivers/i2c/busses/i2c-sis96x.c
index f1bba6396641..7e1594b40579 100644
--- a/drivers/i2c/busses/i2c-sis96x.c
+++ b/drivers/i2c/busses/i2c-sis96x.c
@@ -241,7 +241,6 @@ static const struct i2c_algorithm smbus_algorithm = {
241 241
242static struct i2c_adapter sis96x_adapter = { 242static struct i2c_adapter sis96x_adapter = {
243 .owner = THIS_MODULE, 243 .owner = THIS_MODULE,
244 .id = I2C_HW_SMBUS_SIS96X,
245 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 244 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
246 .algo = &smbus_algorithm, 245 .algo = &smbus_algorithm,
247}; 246};
diff --git a/drivers/i2c/busses/i2c-via.c b/drivers/i2c/busses/i2c-via.c
index 29cef0433f34..8b24f192103a 100644
--- a/drivers/i2c/busses/i2c-via.c
+++ b/drivers/i2c/busses/i2c-via.c
@@ -83,7 +83,6 @@ static struct i2c_algo_bit_data bit_data = {
83 83
84static struct i2c_adapter vt586b_adapter = { 84static struct i2c_adapter vt586b_adapter = {
85 .owner = THIS_MODULE, 85 .owner = THIS_MODULE,
86 .id = I2C_HW_B_VIA,
87 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 86 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
88 .name = "VIA i2c", 87 .name = "VIA i2c",
89 .algo_data = &bit_data, 88 .algo_data = &bit_data,
diff --git a/drivers/i2c/busses/i2c-viapro.c b/drivers/i2c/busses/i2c-viapro.c
index 9f194d9efd91..02e6f724b05f 100644
--- a/drivers/i2c/busses/i2c-viapro.c
+++ b/drivers/i2c/busses/i2c-viapro.c
@@ -321,7 +321,6 @@ static const struct i2c_algorithm smbus_algorithm = {
321 321
322static struct i2c_adapter vt596_adapter = { 322static struct i2c_adapter vt596_adapter = {
323 .owner = THIS_MODULE, 323 .owner = THIS_MODULE,
324 .id = I2C_HW_SMBUS_VIA2,
325 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 324 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
326 .algo = &smbus_algorithm, 325 .algo = &smbus_algorithm,
327}; 326};
diff --git a/drivers/i2c/busses/i2c-voodoo3.c b/drivers/i2c/busses/i2c-voodoo3.c
index 1d4ae26ba73d..1a474acc0ddd 100644
--- a/drivers/i2c/busses/i2c-voodoo3.c
+++ b/drivers/i2c/busses/i2c-voodoo3.c
@@ -163,7 +163,6 @@ static struct i2c_algo_bit_data voo_i2c_bit_data = {
163 163
164static struct i2c_adapter voodoo3_i2c_adapter = { 164static struct i2c_adapter voodoo3_i2c_adapter = {
165 .owner = THIS_MODULE, 165 .owner = THIS_MODULE,
166 .id = I2C_HW_B_VOO,
167 .class = I2C_CLASS_TV_ANALOG, 166 .class = I2C_CLASS_TV_ANALOG,
168 .name = "I2C Voodoo3/Banshee adapter", 167 .name = "I2C Voodoo3/Banshee adapter",
169 .algo_data = &voo_i2c_bit_data, 168 .algo_data = &voo_i2c_bit_data,
@@ -180,7 +179,6 @@ static struct i2c_algo_bit_data voo_ddc_bit_data = {
180 179
181static struct i2c_adapter voodoo3_ddc_adapter = { 180static struct i2c_adapter voodoo3_ddc_adapter = {
182 .owner = THIS_MODULE, 181 .owner = THIS_MODULE,
183 .id = I2C_HW_B_VOO,
184 .class = I2C_CLASS_DDC, 182 .class = I2C_CLASS_DDC,
185 .name = "DDC Voodoo3/Banshee adapter", 183 .name = "DDC Voodoo3/Banshee adapter",
186 .algo_data = &voo_ddc_bit_data, 184 .algo_data = &voo_ddc_bit_data,
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index ed794b145a11..648ecc6f60e6 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -440,7 +440,6 @@ static __init struct scx200_acb_iface *scx200_create_iface(const char *text,
440 i2c_set_adapdata(adapter, iface); 440 i2c_set_adapdata(adapter, iface);
441 snprintf(adapter->name, sizeof(adapter->name), "%s ACB%d", text, index); 441 snprintf(adapter->name, sizeof(adapter->name), "%s ACB%d", text, index);
442 adapter->owner = THIS_MODULE; 442 adapter->owner = THIS_MODULE;
443 adapter->id = I2C_HW_SMBUS_SCX200;
444 adapter->algo = &scx200_acb_algorithm; 443 adapter->algo = &scx200_acb_algorithm;
445 adapter->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; 444 adapter->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
446 adapter->dev.parent = dev; 445 adapter->dev.parent = dev;
diff --git a/drivers/i2c/busses/scx200_i2c.c b/drivers/i2c/busses/scx200_i2c.c
index e4c98539c517..162b74a04886 100644
--- a/drivers/i2c/busses/scx200_i2c.c
+++ b/drivers/i2c/busses/scx200_i2c.c
@@ -82,7 +82,6 @@ static struct i2c_algo_bit_data scx200_i2c_data = {
82static struct i2c_adapter scx200_i2c_ops = { 82static struct i2c_adapter scx200_i2c_ops = {
83 .owner = THIS_MODULE, 83 .owner = THIS_MODULE,
84 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD, 84 .class = I2C_CLASS_HWMON | I2C_CLASS_SPD,
85 .id = I2C_HW_B_SCX200,
86 .algo_data = &scx200_i2c_data, 85 .algo_data = &scx200_i2c_data,
87 .name = "NatSemi SCx200 I2C", 86 .name = "NatSemi SCx200 I2C",
88}; 87};
diff --git a/drivers/i2c/chips/Kconfig b/drivers/i2c/chips/Kconfig
index b9bef04b7be4..c80312c1f382 100644
--- a/drivers/i2c/chips/Kconfig
+++ b/drivers/i2c/chips/Kconfig
@@ -16,43 +16,6 @@ config DS1682
16 This driver can also be built as a module. If so, the module 16 This driver can also be built as a module. If so, the module
17 will be called ds1682. 17 will be called ds1682.
18 18
19config AT24
20 tristate "EEPROMs from most vendors"
21 depends on SYSFS && EXPERIMENTAL
22 help
23 Enable this driver to get read/write support to most I2C EEPROMs,
24 after you configure the driver to know about each EEPROM on
25 your target board. Use these generic chip names, instead of
26 vendor-specific ones like at24c64 or 24lc02:
27
28 24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08,
29 24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024
30
31 Unless you like data loss puzzles, always be sure that any chip
32 you configure as a 24c32 (32 kbit) or larger is NOT really a
33 24c16 (16 kbit) or smaller, and vice versa. Marking the chip
34 as read-only won't help recover from this. Also, if your chip
35 has any software write-protect mechanism you may want to review the
36 code to make sure this driver won't turn it on by accident.
37
38 If you use this with an SMBus adapter instead of an I2C adapter,
39 full functionality is not available. Only smaller devices are
40 supported (24c16 and below, max 4 kByte).
41
42 This driver can also be built as a module. If so, the module
43 will be called at24.
44
45config SENSORS_EEPROM
46 tristate "EEPROM reader"
47 depends on EXPERIMENTAL
48 help
49 If you say yes here you get read-only access to the EEPROM data
50 available on modern memory DIMMs and Sony Vaio laptops. Such
51 EEPROMs could theoretically be available on other devices as well.
52
53 This driver can also be built as a module. If so, the module
54 will be called eeprom.
55
56config SENSORS_PCF8574 19config SENSORS_PCF8574
57 tristate "Philips PCF8574 and PCF8574A (DEPRECATED)" 20 tristate "Philips PCF8574 and PCF8574A (DEPRECATED)"
58 depends on EXPERIMENTAL && GPIO_PCF857X = "n" 21 depends on EXPERIMENTAL && GPIO_PCF857X = "n"
diff --git a/drivers/i2c/chips/Makefile b/drivers/i2c/chips/Makefile
index 00fcb5193ac2..d142f238a2de 100644
--- a/drivers/i2c/chips/Makefile
+++ b/drivers/i2c/chips/Makefile
@@ -11,8 +11,6 @@
11# 11#
12 12
13obj-$(CONFIG_DS1682) += ds1682.o 13obj-$(CONFIG_DS1682) += ds1682.o
14obj-$(CONFIG_AT24) += at24.o
15obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
16obj-$(CONFIG_SENSORS_MAX6875) += max6875.o 14obj-$(CONFIG_SENSORS_MAX6875) += max6875.o
17obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o 15obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o
18obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o 16obj-$(CONFIG_SENSORS_PCF8574) += pcf8574.o
diff --git a/drivers/ide/falconide.c b/drivers/ide/falconide.c
index a5ba820d69bb..a638e952d67a 100644
--- a/drivers/ide/falconide.c
+++ b/drivers/ide/falconide.c
@@ -82,7 +82,7 @@ static const struct ide_tp_ops falconide_tp_ops = {
82 82
83static const struct ide_port_info falconide_port_info = { 83static const struct ide_port_info falconide_port_info = {
84 .tp_ops = &falconide_tp_ops, 84 .tp_ops = &falconide_tp_ops,
85 .host_flags = IDE_HFLAG_NO_DMA, 85 .host_flags = IDE_HFLAG_NO_DMA | IDE_HFLAG_SERIALIZE,
86}; 86};
87 87
88static void __init falconide_setup_ports(hw_regs_t *hw) 88static void __init falconide_setup_ports(hw_regs_t *hw)
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 312127ea443a..0db1ed9f5fc2 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -649,7 +649,8 @@ static int ide_register_port(ide_hwif_t *hwif)
649 /* register with global device tree */ 649 /* register with global device tree */
650 dev_set_name(&hwif->gendev, hwif->name); 650 dev_set_name(&hwif->gendev, hwif->name);
651 hwif->gendev.driver_data = hwif; 651 hwif->gendev.driver_data = hwif;
652 hwif->gendev.parent = hwif->dev; 652 if (hwif->gendev.parent == NULL)
653 hwif->gendev.parent = hwif->dev;
653 hwif->gendev.release = hwif_release_dev; 654 hwif->gendev.release = hwif_release_dev;
654 655
655 ret = device_register(&hwif->gendev); 656 ret = device_register(&hwif->gendev);
diff --git a/drivers/ide/palm_bk3710.c b/drivers/ide/palm_bk3710.c
index a7ac490c9ae3..f38aac78044c 100644
--- a/drivers/ide/palm_bk3710.c
+++ b/drivers/ide/palm_bk3710.c
@@ -346,7 +346,8 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
346{ 346{
347 struct clk *clk; 347 struct clk *clk;
348 struct resource *mem, *irq; 348 struct resource *mem, *irq;
349 unsigned long base, rate; 349 void __iomem *base;
350 unsigned long rate;
350 int i, rc; 351 int i, rc;
351 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; 352 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
352 353
@@ -382,11 +383,13 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
382 base = IO_ADDRESS(mem->start); 383 base = IO_ADDRESS(mem->start);
383 384
384 /* Configure the Palm Chip controller */ 385 /* Configure the Palm Chip controller */
385 palm_bk3710_chipinit((void __iomem *)base); 386 palm_bk3710_chipinit(base);
386 387
387 for (i = 0; i < IDE_NR_PORTS - 2; i++) 388 for (i = 0; i < IDE_NR_PORTS - 2; i++)
388 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i; 389 hw.io_ports_array[i] = (unsigned long)
389 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET; 390 (base + IDE_PALM_ATA_PRI_REG_OFFSET + i);
391 hw.io_ports.ctl_addr = (unsigned long)
392 (base + IDE_PALM_ATA_PRI_CTL_OFFSET);
390 hw.irq = irq->start; 393 hw.irq = irq->start;
391 hw.dev = &pdev->dev; 394 hw.dev = &pdev->dev;
392 hw.chipset = ide_palm3710; 395 hw.chipset = ide_palm3710;
diff --git a/drivers/ieee1394/pcilynx.c b/drivers/ieee1394/pcilynx.c
index dc15cadb06ef..38f712036201 100644
--- a/drivers/ieee1394/pcilynx.c
+++ b/drivers/ieee1394/pcilynx.c
@@ -1419,7 +1419,6 @@ static int __devinit add_card(struct pci_dev *dev,
1419 i2c_ad = kzalloc(sizeof(*i2c_ad), GFP_KERNEL); 1419 i2c_ad = kzalloc(sizeof(*i2c_ad), GFP_KERNEL);
1420 if (!i2c_ad) FAIL("failed to allocate I2C adapter memory"); 1420 if (!i2c_ad) FAIL("failed to allocate I2C adapter memory");
1421 1421
1422 i2c_ad->id = I2C_HW_B_PCILYNX;
1423 strlcpy(i2c_ad->name, "PCILynx I2C", sizeof(i2c_ad->name)); 1422 strlcpy(i2c_ad->name, "PCILynx I2C", sizeof(i2c_ad->name));
1424 i2c_adapter_data = bit_data; 1423 i2c_adapter_data = bit_data;
1425 i2c_ad->algo_data = &i2c_adapter_data; 1424 i2c_ad->algo_data = &i2c_adapter_data;
diff --git a/drivers/infiniband/hw/ehca/ehca_cq.c b/drivers/infiniband/hw/ehca/ehca_cq.c
index 2f4c28a30271..97e4b231cdc4 100644
--- a/drivers/infiniband/hw/ehca/ehca_cq.c
+++ b/drivers/infiniband/hw/ehca/ehca_cq.c
@@ -196,7 +196,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, int cqe, int comp_vector,
196 196
197 if (h_ret != H_SUCCESS) { 197 if (h_ret != H_SUCCESS) {
198 ehca_err(device, "hipz_h_alloc_resource_cq() failed " 198 ehca_err(device, "hipz_h_alloc_resource_cq() failed "
199 "h_ret=%li device=%p", h_ret, device); 199 "h_ret=%lli device=%p", h_ret, device);
200 cq = ERR_PTR(ehca2ib_return_code(h_ret)); 200 cq = ERR_PTR(ehca2ib_return_code(h_ret));
201 goto create_cq_exit2; 201 goto create_cq_exit2;
202 } 202 }
@@ -232,7 +232,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, int cqe, int comp_vector,
232 232
233 if (h_ret < H_SUCCESS) { 233 if (h_ret < H_SUCCESS) {
234 ehca_err(device, "hipz_h_register_rpage_cq() failed " 234 ehca_err(device, "hipz_h_register_rpage_cq() failed "
235 "ehca_cq=%p cq_num=%x h_ret=%li counter=%i " 235 "ehca_cq=%p cq_num=%x h_ret=%lli counter=%i "
236 "act_pages=%i", my_cq, my_cq->cq_number, 236 "act_pages=%i", my_cq, my_cq->cq_number,
237 h_ret, counter, param.act_pages); 237 h_ret, counter, param.act_pages);
238 cq = ERR_PTR(-EINVAL); 238 cq = ERR_PTR(-EINVAL);
@@ -244,7 +244,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, int cqe, int comp_vector,
244 if ((h_ret != H_SUCCESS) || vpage) { 244 if ((h_ret != H_SUCCESS) || vpage) {
245 ehca_err(device, "Registration of pages not " 245 ehca_err(device, "Registration of pages not "
246 "complete ehca_cq=%p cq_num=%x " 246 "complete ehca_cq=%p cq_num=%x "
247 "h_ret=%li", my_cq, my_cq->cq_number, 247 "h_ret=%lli", my_cq, my_cq->cq_number,
248 h_ret); 248 h_ret);
249 cq = ERR_PTR(-EAGAIN); 249 cq = ERR_PTR(-EAGAIN);
250 goto create_cq_exit4; 250 goto create_cq_exit4;
@@ -252,7 +252,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, int cqe, int comp_vector,
252 } else { 252 } else {
253 if (h_ret != H_PAGE_REGISTERED) { 253 if (h_ret != H_PAGE_REGISTERED) {
254 ehca_err(device, "Registration of page failed " 254 ehca_err(device, "Registration of page failed "
255 "ehca_cq=%p cq_num=%x h_ret=%li " 255 "ehca_cq=%p cq_num=%x h_ret=%lli "
256 "counter=%i act_pages=%i", 256 "counter=%i act_pages=%i",
257 my_cq, my_cq->cq_number, 257 my_cq, my_cq->cq_number,
258 h_ret, counter, param.act_pages); 258 h_ret, counter, param.act_pages);
@@ -266,7 +266,7 @@ struct ib_cq *ehca_create_cq(struct ib_device *device, int cqe, int comp_vector,
266 266
267 gal = my_cq->galpas.kernel; 267 gal = my_cq->galpas.kernel;
268 cqx_fec = hipz_galpa_load(gal, CQTEMM_OFFSET(cqx_fec)); 268 cqx_fec = hipz_galpa_load(gal, CQTEMM_OFFSET(cqx_fec));
269 ehca_dbg(device, "ehca_cq=%p cq_num=%x CQX_FEC=%lx", 269 ehca_dbg(device, "ehca_cq=%p cq_num=%x CQX_FEC=%llx",
270 my_cq, my_cq->cq_number, cqx_fec); 270 my_cq, my_cq->cq_number, cqx_fec);
271 271
272 my_cq->ib_cq.cqe = my_cq->nr_of_entries = 272 my_cq->ib_cq.cqe = my_cq->nr_of_entries =
@@ -307,7 +307,7 @@ create_cq_exit3:
307 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 1); 307 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 1);
308 if (h_ret != H_SUCCESS) 308 if (h_ret != H_SUCCESS)
309 ehca_err(device, "hipz_h_destroy_cq() failed ehca_cq=%p " 309 ehca_err(device, "hipz_h_destroy_cq() failed ehca_cq=%p "
310 "cq_num=%x h_ret=%li", my_cq, my_cq->cq_number, h_ret); 310 "cq_num=%x h_ret=%lli", my_cq, my_cq->cq_number, h_ret);
311 311
312create_cq_exit2: 312create_cq_exit2:
313 write_lock_irqsave(&ehca_cq_idr_lock, flags); 313 write_lock_irqsave(&ehca_cq_idr_lock, flags);
@@ -355,7 +355,7 @@ int ehca_destroy_cq(struct ib_cq *cq)
355 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 0); 355 h_ret = hipz_h_destroy_cq(adapter_handle, my_cq, 0);
356 if (h_ret == H_R_STATE) { 356 if (h_ret == H_R_STATE) {
357 /* cq in err: read err data and destroy it forcibly */ 357 /* cq in err: read err data and destroy it forcibly */
358 ehca_dbg(device, "ehca_cq=%p cq_num=%x ressource=%lx in err " 358 ehca_dbg(device, "ehca_cq=%p cq_num=%x resource=%llx in err "
359 "state. Try to delete it forcibly.", 359 "state. Try to delete it forcibly.",
360 my_cq, cq_num, my_cq->ipz_cq_handle.handle); 360 my_cq, cq_num, my_cq->ipz_cq_handle.handle);
361 ehca_error_data(shca, my_cq, my_cq->ipz_cq_handle.handle); 361 ehca_error_data(shca, my_cq, my_cq->ipz_cq_handle.handle);
@@ -365,7 +365,7 @@ int ehca_destroy_cq(struct ib_cq *cq)
365 cq_num); 365 cq_num);
366 } 366 }
367 if (h_ret != H_SUCCESS) { 367 if (h_ret != H_SUCCESS) {
368 ehca_err(device, "hipz_h_destroy_cq() failed h_ret=%li " 368 ehca_err(device, "hipz_h_destroy_cq() failed h_ret=%lli "
369 "ehca_cq=%p cq_num=%x", h_ret, my_cq, cq_num); 369 "ehca_cq=%p cq_num=%x", h_ret, my_cq, cq_num);
370 return ehca2ib_return_code(h_ret); 370 return ehca2ib_return_code(h_ret);
371 } 371 }
diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
index 46288220cfbb..9209c5332dfe 100644
--- a/drivers/infiniband/hw/ehca/ehca_hca.c
+++ b/drivers/infiniband/hw/ehca/ehca_hca.c
@@ -393,7 +393,7 @@ int ehca_modify_port(struct ib_device *ibdev,
393 hret = hipz_h_modify_port(shca->ipz_hca_handle, port, 393 hret = hipz_h_modify_port(shca->ipz_hca_handle, port,
394 cap, props->init_type, port_modify_mask); 394 cap, props->init_type, port_modify_mask);
395 if (hret != H_SUCCESS) { 395 if (hret != H_SUCCESS) {
396 ehca_err(&shca->ib_device, "Modify port failed h_ret=%li", 396 ehca_err(&shca->ib_device, "Modify port failed h_ret=%lli",
397 hret); 397 hret);
398 ret = -EINVAL; 398 ret = -EINVAL;
399 } 399 }
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
index 3128a5090dbd..99bcbd7ffb0a 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.c
+++ b/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -99,7 +99,7 @@ static void print_error_data(struct ehca_shca *shca, void *data,
99 return; 99 return;
100 100
101 ehca_err(&shca->ib_device, 101 ehca_err(&shca->ib_device,
102 "QP 0x%x (resource=%lx) has errors.", 102 "QP 0x%x (resource=%llx) has errors.",
103 qp->ib_qp.qp_num, resource); 103 qp->ib_qp.qp_num, resource);
104 break; 104 break;
105 } 105 }
@@ -108,21 +108,21 @@ static void print_error_data(struct ehca_shca *shca, void *data,
108 struct ehca_cq *cq = (struct ehca_cq *)data; 108 struct ehca_cq *cq = (struct ehca_cq *)data;
109 109
110 ehca_err(&shca->ib_device, 110 ehca_err(&shca->ib_device,
111 "CQ 0x%x (resource=%lx) has errors.", 111 "CQ 0x%x (resource=%llx) has errors.",
112 cq->cq_number, resource); 112 cq->cq_number, resource);
113 break; 113 break;
114 } 114 }
115 default: 115 default:
116 ehca_err(&shca->ib_device, 116 ehca_err(&shca->ib_device,
117 "Unknown error type: %lx on %s.", 117 "Unknown error type: %llx on %s.",
118 type, shca->ib_device.name); 118 type, shca->ib_device.name);
119 break; 119 break;
120 } 120 }
121 121
122 ehca_err(&shca->ib_device, "Error data is available: %lx.", resource); 122 ehca_err(&shca->ib_device, "Error data is available: %llx.", resource);
123 ehca_err(&shca->ib_device, "EHCA ----- error data begin " 123 ehca_err(&shca->ib_device, "EHCA ----- error data begin "
124 "---------------------------------------------------"); 124 "---------------------------------------------------");
125 ehca_dmp(rblock, length, "resource=%lx", resource); 125 ehca_dmp(rblock, length, "resource=%llx", resource);
126 ehca_err(&shca->ib_device, "EHCA ----- error data end " 126 ehca_err(&shca->ib_device, "EHCA ----- error data end "
127 "----------------------------------------------------"); 127 "----------------------------------------------------");
128 128
@@ -152,7 +152,7 @@ int ehca_error_data(struct ehca_shca *shca, void *data,
152 152
153 if (ret == H_R_STATE) 153 if (ret == H_R_STATE)
154 ehca_err(&shca->ib_device, 154 ehca_err(&shca->ib_device,
155 "No error data is available: %lx.", resource); 155 "No error data is available: %llx.", resource);
156 else if (ret == H_SUCCESS) { 156 else if (ret == H_SUCCESS) {
157 int length; 157 int length;
158 158
@@ -164,7 +164,7 @@ int ehca_error_data(struct ehca_shca *shca, void *data,
164 print_error_data(shca, data, rblock, length); 164 print_error_data(shca, data, rblock, length);
165 } else 165 } else
166 ehca_err(&shca->ib_device, 166 ehca_err(&shca->ib_device,
167 "Error data could not be fetched: %lx", resource); 167 "Error data could not be fetched: %llx", resource);
168 168
169 ehca_free_fw_ctrlblock(rblock); 169 ehca_free_fw_ctrlblock(rblock);
170 170
@@ -514,7 +514,7 @@ static inline void process_eqe(struct ehca_shca *shca, struct ehca_eqe *eqe)
514 struct ehca_cq *cq; 514 struct ehca_cq *cq;
515 515
516 eqe_value = eqe->entry; 516 eqe_value = eqe->entry;
517 ehca_dbg(&shca->ib_device, "eqe_value=%lx", eqe_value); 517 ehca_dbg(&shca->ib_device, "eqe_value=%llx", eqe_value);
518 if (EHCA_BMASK_GET(EQE_COMPLETION_EVENT, eqe_value)) { 518 if (EHCA_BMASK_GET(EQE_COMPLETION_EVENT, eqe_value)) {
519 ehca_dbg(&shca->ib_device, "Got completion event"); 519 ehca_dbg(&shca->ib_device, "Got completion event");
520 token = EHCA_BMASK_GET(EQE_CQ_TOKEN, eqe_value); 520 token = EHCA_BMASK_GET(EQE_CQ_TOKEN, eqe_value);
@@ -603,7 +603,7 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq)
603 ret = hipz_h_eoi(eq->ist); 603 ret = hipz_h_eoi(eq->ist);
604 if (ret != H_SUCCESS) 604 if (ret != H_SUCCESS)
605 ehca_err(&shca->ib_device, 605 ehca_err(&shca->ib_device,
606 "bad return code EOI -rc = %ld\n", ret); 606 "bad return code EOI -rc = %lld\n", ret);
607 ehca_dbg(&shca->ib_device, "deadman found %x eqe", eqe_cnt); 607 ehca_dbg(&shca->ib_device, "deadman found %x eqe", eqe_cnt);
608 } 608 }
609 if (unlikely(eqe_cnt == EHCA_EQE_CACHE_SIZE)) 609 if (unlikely(eqe_cnt == EHCA_EQE_CACHE_SIZE))
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c
index c7b8a506af65..368311ce332b 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -304,7 +304,7 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
304 304
305 h_ret = hipz_h_query_hca(shca->ipz_hca_handle, rblock); 305 h_ret = hipz_h_query_hca(shca->ipz_hca_handle, rblock);
306 if (h_ret != H_SUCCESS) { 306 if (h_ret != H_SUCCESS) {
307 ehca_gen_err("Cannot query device properties. h_ret=%li", 307 ehca_gen_err("Cannot query device properties. h_ret=%lli",
308 h_ret); 308 h_ret);
309 ret = -EPERM; 309 ret = -EPERM;
310 goto sense_attributes1; 310 goto sense_attributes1;
@@ -391,7 +391,7 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
391 port = (struct hipz_query_port *)rblock; 391 port = (struct hipz_query_port *)rblock;
392 h_ret = hipz_h_query_port(shca->ipz_hca_handle, 1, port); 392 h_ret = hipz_h_query_port(shca->ipz_hca_handle, 1, port);
393 if (h_ret != H_SUCCESS) { 393 if (h_ret != H_SUCCESS) {
394 ehca_gen_err("Cannot query port properties. h_ret=%li", 394 ehca_gen_err("Cannot query port properties. h_ret=%lli",
395 h_ret); 395 h_ret);
396 ret = -EPERM; 396 ret = -EPERM;
397 goto sense_attributes1; 397 goto sense_attributes1;
@@ -682,7 +682,7 @@ static ssize_t ehca_show_adapter_handle(struct device *dev,
682{ 682{
683 struct ehca_shca *shca = dev->driver_data; 683 struct ehca_shca *shca = dev->driver_data;
684 684
685 return sprintf(buf, "%lx\n", shca->ipz_hca_handle.handle); 685 return sprintf(buf, "%llx\n", shca->ipz_hca_handle.handle);
686 686
687} 687}
688static DEVICE_ATTR(adapter_handle, S_IRUGO, ehca_show_adapter_handle, NULL); 688static DEVICE_ATTR(adapter_handle, S_IRUGO, ehca_show_adapter_handle, NULL);
diff --git a/drivers/infiniband/hw/ehca/ehca_mcast.c b/drivers/infiniband/hw/ehca/ehca_mcast.c
index e3ef0264ccc6..120aedf9f989 100644
--- a/drivers/infiniband/hw/ehca/ehca_mcast.c
+++ b/drivers/infiniband/hw/ehca/ehca_mcast.c
@@ -88,7 +88,7 @@ int ehca_attach_mcast(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
88 if (h_ret != H_SUCCESS) 88 if (h_ret != H_SUCCESS)
89 ehca_err(ibqp->device, 89 ehca_err(ibqp->device,
90 "ehca_qp=%p qp_num=%x hipz_h_attach_mcqp() failed " 90 "ehca_qp=%p qp_num=%x hipz_h_attach_mcqp() failed "
91 "h_ret=%li", my_qp, ibqp->qp_num, h_ret); 91 "h_ret=%lli", my_qp, ibqp->qp_num, h_ret);
92 92
93 return ehca2ib_return_code(h_ret); 93 return ehca2ib_return_code(h_ret);
94} 94}
@@ -125,7 +125,7 @@ int ehca_detach_mcast(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
125 if (h_ret != H_SUCCESS) 125 if (h_ret != H_SUCCESS)
126 ehca_err(ibqp->device, 126 ehca_err(ibqp->device,
127 "ehca_qp=%p qp_num=%x hipz_h_detach_mcqp() failed " 127 "ehca_qp=%p qp_num=%x hipz_h_detach_mcqp() failed "
128 "h_ret=%li", my_qp, ibqp->qp_num, h_ret); 128 "h_ret=%lli", my_qp, ibqp->qp_num, h_ret);
129 129
130 return ehca2ib_return_code(h_ret); 130 return ehca2ib_return_code(h_ret);
131} 131}
diff --git a/drivers/infiniband/hw/ehca/ehca_mrmw.c b/drivers/infiniband/hw/ehca/ehca_mrmw.c
index f974367cad40..72f83f7df614 100644
--- a/drivers/infiniband/hw/ehca/ehca_mrmw.c
+++ b/drivers/infiniband/hw/ehca/ehca_mrmw.c
@@ -204,7 +204,7 @@ struct ib_mr *ehca_reg_phys_mr(struct ib_pd *pd,
204 } 204 }
205 if ((size == 0) || 205 if ((size == 0) ||
206 (((u64)iova_start + size) < (u64)iova_start)) { 206 (((u64)iova_start + size) < (u64)iova_start)) {
207 ehca_err(pd->device, "bad input values: size=%lx iova_start=%p", 207 ehca_err(pd->device, "bad input values: size=%llx iova_start=%p",
208 size, iova_start); 208 size, iova_start);
209 ib_mr = ERR_PTR(-EINVAL); 209 ib_mr = ERR_PTR(-EINVAL);
210 goto reg_phys_mr_exit0; 210 goto reg_phys_mr_exit0;
@@ -309,8 +309,8 @@ struct ib_mr *ehca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
309 } 309 }
310 310
311 if (length == 0 || virt + length < virt) { 311 if (length == 0 || virt + length < virt) {
312 ehca_err(pd->device, "bad input values: length=%lx " 312 ehca_err(pd->device, "bad input values: length=%llx "
313 "virt_base=%lx", length, virt); 313 "virt_base=%llx", length, virt);
314 ib_mr = ERR_PTR(-EINVAL); 314 ib_mr = ERR_PTR(-EINVAL);
315 goto reg_user_mr_exit0; 315 goto reg_user_mr_exit0;
316 } 316 }
@@ -373,7 +373,7 @@ reg_user_mr_fallback:
373 &e_mr->ib.ib_mr.rkey); 373 &e_mr->ib.ib_mr.rkey);
374 if (ret == -EINVAL && pginfo.hwpage_size > PAGE_SIZE) { 374 if (ret == -EINVAL && pginfo.hwpage_size > PAGE_SIZE) {
375 ehca_warn(pd->device, "failed to register mr " 375 ehca_warn(pd->device, "failed to register mr "
376 "with hwpage_size=%lx", hwpage_size); 376 "with hwpage_size=%llx", hwpage_size);
377 ehca_info(pd->device, "try to register mr with " 377 ehca_info(pd->device, "try to register mr with "
378 "kpage_size=%lx", PAGE_SIZE); 378 "kpage_size=%lx", PAGE_SIZE);
379 /* 379 /*
@@ -509,7 +509,7 @@ int ehca_rereg_phys_mr(struct ib_mr *mr,
509 goto rereg_phys_mr_exit1; 509 goto rereg_phys_mr_exit1;
510 if ((new_size == 0) || 510 if ((new_size == 0) ||
511 (((u64)iova_start + new_size) < (u64)iova_start)) { 511 (((u64)iova_start + new_size) < (u64)iova_start)) {
512 ehca_err(mr->device, "bad input values: new_size=%lx " 512 ehca_err(mr->device, "bad input values: new_size=%llx "
513 "iova_start=%p", new_size, iova_start); 513 "iova_start=%p", new_size, iova_start);
514 ret = -EINVAL; 514 ret = -EINVAL;
515 goto rereg_phys_mr_exit1; 515 goto rereg_phys_mr_exit1;
@@ -580,8 +580,8 @@ int ehca_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr)
580 580
581 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout); 581 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout);
582 if (h_ret != H_SUCCESS) { 582 if (h_ret != H_SUCCESS) {
583 ehca_err(mr->device, "hipz_mr_query failed, h_ret=%li mr=%p " 583 ehca_err(mr->device, "hipz_mr_query failed, h_ret=%lli mr=%p "
584 "hca_hndl=%lx mr_hndl=%lx lkey=%x", 584 "hca_hndl=%llx mr_hndl=%llx lkey=%x",
585 h_ret, mr, shca->ipz_hca_handle.handle, 585 h_ret, mr, shca->ipz_hca_handle.handle,
586 e_mr->ipz_mr_handle.handle, mr->lkey); 586 e_mr->ipz_mr_handle.handle, mr->lkey);
587 ret = ehca2ib_return_code(h_ret); 587 ret = ehca2ib_return_code(h_ret);
@@ -630,8 +630,8 @@ int ehca_dereg_mr(struct ib_mr *mr)
630 /* TODO: BUSY: MR still has bound window(s) */ 630 /* TODO: BUSY: MR still has bound window(s) */
631 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 631 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
632 if (h_ret != H_SUCCESS) { 632 if (h_ret != H_SUCCESS) {
633 ehca_err(mr->device, "hipz_free_mr failed, h_ret=%li shca=%p " 633 ehca_err(mr->device, "hipz_free_mr failed, h_ret=%lli shca=%p "
634 "e_mr=%p hca_hndl=%lx mr_hndl=%lx mr->lkey=%x", 634 "e_mr=%p hca_hndl=%llx mr_hndl=%llx mr->lkey=%x",
635 h_ret, shca, e_mr, shca->ipz_hca_handle.handle, 635 h_ret, shca, e_mr, shca->ipz_hca_handle.handle,
636 e_mr->ipz_mr_handle.handle, mr->lkey); 636 e_mr->ipz_mr_handle.handle, mr->lkey);
637 ret = ehca2ib_return_code(h_ret); 637 ret = ehca2ib_return_code(h_ret);
@@ -671,8 +671,8 @@ struct ib_mw *ehca_alloc_mw(struct ib_pd *pd)
671 h_ret = hipz_h_alloc_resource_mw(shca->ipz_hca_handle, e_mw, 671 h_ret = hipz_h_alloc_resource_mw(shca->ipz_hca_handle, e_mw,
672 e_pd->fw_pd, &hipzout); 672 e_pd->fw_pd, &hipzout);
673 if (h_ret != H_SUCCESS) { 673 if (h_ret != H_SUCCESS) {
674 ehca_err(pd->device, "hipz_mw_allocate failed, h_ret=%li " 674 ehca_err(pd->device, "hipz_mw_allocate failed, h_ret=%lli "
675 "shca=%p hca_hndl=%lx mw=%p", 675 "shca=%p hca_hndl=%llx mw=%p",
676 h_ret, shca, shca->ipz_hca_handle.handle, e_mw); 676 h_ret, shca, shca->ipz_hca_handle.handle, e_mw);
677 ib_mw = ERR_PTR(ehca2ib_return_code(h_ret)); 677 ib_mw = ERR_PTR(ehca2ib_return_code(h_ret));
678 goto alloc_mw_exit1; 678 goto alloc_mw_exit1;
@@ -713,8 +713,8 @@ int ehca_dealloc_mw(struct ib_mw *mw)
713 713
714 h_ret = hipz_h_free_resource_mw(shca->ipz_hca_handle, e_mw); 714 h_ret = hipz_h_free_resource_mw(shca->ipz_hca_handle, e_mw);
715 if (h_ret != H_SUCCESS) { 715 if (h_ret != H_SUCCESS) {
716 ehca_err(mw->device, "hipz_free_mw failed, h_ret=%li shca=%p " 716 ehca_err(mw->device, "hipz_free_mw failed, h_ret=%lli shca=%p "
717 "mw=%p rkey=%x hca_hndl=%lx mw_hndl=%lx", 717 "mw=%p rkey=%x hca_hndl=%llx mw_hndl=%llx",
718 h_ret, shca, mw, mw->rkey, shca->ipz_hca_handle.handle, 718 h_ret, shca, mw, mw->rkey, shca->ipz_hca_handle.handle,
719 e_mw->ipz_mw_handle.handle); 719 e_mw->ipz_mw_handle.handle);
720 return ehca2ib_return_code(h_ret); 720 return ehca2ib_return_code(h_ret);
@@ -840,7 +840,7 @@ int ehca_map_phys_fmr(struct ib_fmr *fmr,
840 goto map_phys_fmr_exit0; 840 goto map_phys_fmr_exit0;
841 if (iova % e_fmr->fmr_page_size) { 841 if (iova % e_fmr->fmr_page_size) {
842 /* only whole-numbered pages */ 842 /* only whole-numbered pages */
843 ehca_err(fmr->device, "bad iova, iova=%lx fmr_page_size=%x", 843 ehca_err(fmr->device, "bad iova, iova=%llx fmr_page_size=%x",
844 iova, e_fmr->fmr_page_size); 844 iova, e_fmr->fmr_page_size);
845 ret = -EINVAL; 845 ret = -EINVAL;
846 goto map_phys_fmr_exit0; 846 goto map_phys_fmr_exit0;
@@ -878,7 +878,7 @@ int ehca_map_phys_fmr(struct ib_fmr *fmr,
878map_phys_fmr_exit0: 878map_phys_fmr_exit0:
879 if (ret) 879 if (ret)
880 ehca_err(fmr->device, "ret=%i fmr=%p page_list=%p list_len=%x " 880 ehca_err(fmr->device, "ret=%i fmr=%p page_list=%p list_len=%x "
881 "iova=%lx", ret, fmr, page_list, list_len, iova); 881 "iova=%llx", ret, fmr, page_list, list_len, iova);
882 return ret; 882 return ret;
883} /* end ehca_map_phys_fmr() */ 883} /* end ehca_map_phys_fmr() */
884 884
@@ -964,8 +964,8 @@ int ehca_dealloc_fmr(struct ib_fmr *fmr)
964 964
965 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr); 965 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
966 if (h_ret != H_SUCCESS) { 966 if (h_ret != H_SUCCESS) {
967 ehca_err(fmr->device, "hipz_free_mr failed, h_ret=%li e_fmr=%p " 967 ehca_err(fmr->device, "hipz_free_mr failed, h_ret=%lli e_fmr=%p "
968 "hca_hndl=%lx fmr_hndl=%lx fmr->lkey=%x", 968 "hca_hndl=%llx fmr_hndl=%llx fmr->lkey=%x",
969 h_ret, e_fmr, shca->ipz_hca_handle.handle, 969 h_ret, e_fmr, shca->ipz_hca_handle.handle,
970 e_fmr->ipz_mr_handle.handle, fmr->lkey); 970 e_fmr->ipz_mr_handle.handle, fmr->lkey);
971 ret = ehca2ib_return_code(h_ret); 971 ret = ehca2ib_return_code(h_ret);
@@ -1007,8 +1007,8 @@ int ehca_reg_mr(struct ehca_shca *shca,
1007 (u64)iova_start, size, hipz_acl, 1007 (u64)iova_start, size, hipz_acl,
1008 e_pd->fw_pd, &hipzout); 1008 e_pd->fw_pd, &hipzout);
1009 if (h_ret != H_SUCCESS) { 1009 if (h_ret != H_SUCCESS) {
1010 ehca_err(&shca->ib_device, "hipz_alloc_mr failed, h_ret=%li " 1010 ehca_err(&shca->ib_device, "hipz_alloc_mr failed, h_ret=%lli "
1011 "hca_hndl=%lx", h_ret, shca->ipz_hca_handle.handle); 1011 "hca_hndl=%llx", h_ret, shca->ipz_hca_handle.handle);
1012 ret = ehca2ib_return_code(h_ret); 1012 ret = ehca2ib_return_code(h_ret);
1013 goto ehca_reg_mr_exit0; 1013 goto ehca_reg_mr_exit0;
1014 } 1014 }
@@ -1033,9 +1033,9 @@ int ehca_reg_mr(struct ehca_shca *shca,
1033ehca_reg_mr_exit1: 1033ehca_reg_mr_exit1:
1034 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 1034 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1035 if (h_ret != H_SUCCESS) { 1035 if (h_ret != H_SUCCESS) {
1036 ehca_err(&shca->ib_device, "h_ret=%li shca=%p e_mr=%p " 1036 ehca_err(&shca->ib_device, "h_ret=%lli shca=%p e_mr=%p "
1037 "iova_start=%p size=%lx acl=%x e_pd=%p lkey=%x " 1037 "iova_start=%p size=%llx acl=%x e_pd=%p lkey=%x "
1038 "pginfo=%p num_kpages=%lx num_hwpages=%lx ret=%i", 1038 "pginfo=%p num_kpages=%llx num_hwpages=%llx ret=%i",
1039 h_ret, shca, e_mr, iova_start, size, acl, e_pd, 1039 h_ret, shca, e_mr, iova_start, size, acl, e_pd,
1040 hipzout.lkey, pginfo, pginfo->num_kpages, 1040 hipzout.lkey, pginfo, pginfo->num_kpages,
1041 pginfo->num_hwpages, ret); 1041 pginfo->num_hwpages, ret);
@@ -1045,8 +1045,8 @@ ehca_reg_mr_exit1:
1045ehca_reg_mr_exit0: 1045ehca_reg_mr_exit0:
1046 if (ret) 1046 if (ret)
1047 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p " 1047 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1048 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p " 1048 "iova_start=%p size=%llx acl=%x e_pd=%p pginfo=%p "
1049 "num_kpages=%lx num_hwpages=%lx", 1049 "num_kpages=%llx num_hwpages=%llx",
1050 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo, 1050 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo,
1051 pginfo->num_kpages, pginfo->num_hwpages); 1051 pginfo->num_kpages, pginfo->num_hwpages);
1052 return ret; 1052 return ret;
@@ -1116,8 +1116,8 @@ int ehca_reg_mr_rpages(struct ehca_shca *shca,
1116 */ 1116 */
1117 if (h_ret != H_SUCCESS) { 1117 if (h_ret != H_SUCCESS) {
1118 ehca_err(&shca->ib_device, "last " 1118 ehca_err(&shca->ib_device, "last "
1119 "hipz_reg_rpage_mr failed, h_ret=%li " 1119 "hipz_reg_rpage_mr failed, h_ret=%lli "
1120 "e_mr=%p i=%x hca_hndl=%lx mr_hndl=%lx" 1120 "e_mr=%p i=%x hca_hndl=%llx mr_hndl=%llx"
1121 " lkey=%x", h_ret, e_mr, i, 1121 " lkey=%x", h_ret, e_mr, i,
1122 shca->ipz_hca_handle.handle, 1122 shca->ipz_hca_handle.handle,
1123 e_mr->ipz_mr_handle.handle, 1123 e_mr->ipz_mr_handle.handle,
@@ -1128,8 +1128,8 @@ int ehca_reg_mr_rpages(struct ehca_shca *shca,
1128 ret = 0; 1128 ret = 0;
1129 } else if (h_ret != H_PAGE_REGISTERED) { 1129 } else if (h_ret != H_PAGE_REGISTERED) {
1130 ehca_err(&shca->ib_device, "hipz_reg_rpage_mr failed, " 1130 ehca_err(&shca->ib_device, "hipz_reg_rpage_mr failed, "
1131 "h_ret=%li e_mr=%p i=%x lkey=%x hca_hndl=%lx " 1131 "h_ret=%lli e_mr=%p i=%x lkey=%x hca_hndl=%llx "
1132 "mr_hndl=%lx", h_ret, e_mr, i, 1132 "mr_hndl=%llx", h_ret, e_mr, i,
1133 e_mr->ib.ib_mr.lkey, 1133 e_mr->ib.ib_mr.lkey,
1134 shca->ipz_hca_handle.handle, 1134 shca->ipz_hca_handle.handle,
1135 e_mr->ipz_mr_handle.handle); 1135 e_mr->ipz_mr_handle.handle);
@@ -1145,7 +1145,7 @@ ehca_reg_mr_rpages_exit1:
1145ehca_reg_mr_rpages_exit0: 1145ehca_reg_mr_rpages_exit0:
1146 if (ret) 1146 if (ret)
1147 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p pginfo=%p " 1147 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p pginfo=%p "
1148 "num_kpages=%lx num_hwpages=%lx", ret, shca, e_mr, 1148 "num_kpages=%llx num_hwpages=%llx", ret, shca, e_mr,
1149 pginfo, pginfo->num_kpages, pginfo->num_hwpages); 1149 pginfo, pginfo->num_kpages, pginfo->num_hwpages);
1150 return ret; 1150 return ret;
1151} /* end ehca_reg_mr_rpages() */ 1151} /* end ehca_reg_mr_rpages() */
@@ -1184,7 +1184,7 @@ inline int ehca_rereg_mr_rereg1(struct ehca_shca *shca,
1184 ret = ehca_set_pagebuf(pginfo, pginfo->num_hwpages, kpage); 1184 ret = ehca_set_pagebuf(pginfo, pginfo->num_hwpages, kpage);
1185 if (ret) { 1185 if (ret) {
1186 ehca_err(&shca->ib_device, "set pagebuf failed, e_mr=%p " 1186 ehca_err(&shca->ib_device, "set pagebuf failed, e_mr=%p "
1187 "pginfo=%p type=%x num_kpages=%lx num_hwpages=%lx " 1187 "pginfo=%p type=%x num_kpages=%llx num_hwpages=%llx "
1188 "kpage=%p", e_mr, pginfo, pginfo->type, 1188 "kpage=%p", e_mr, pginfo, pginfo->type,
1189 pginfo->num_kpages, pginfo->num_hwpages, kpage); 1189 pginfo->num_kpages, pginfo->num_hwpages, kpage);
1190 goto ehca_rereg_mr_rereg1_exit1; 1190 goto ehca_rereg_mr_rereg1_exit1;
@@ -1205,13 +1205,13 @@ inline int ehca_rereg_mr_rereg1(struct ehca_shca *shca,
1205 * (MW bound or MR is shared) 1205 * (MW bound or MR is shared)
1206 */ 1206 */
1207 ehca_warn(&shca->ib_device, "hipz_h_reregister_pmr failed " 1207 ehca_warn(&shca->ib_device, "hipz_h_reregister_pmr failed "
1208 "(Rereg1), h_ret=%li e_mr=%p", h_ret, e_mr); 1208 "(Rereg1), h_ret=%lli e_mr=%p", h_ret, e_mr);
1209 *pginfo = pginfo_save; 1209 *pginfo = pginfo_save;
1210 ret = -EAGAIN; 1210 ret = -EAGAIN;
1211 } else if ((u64 *)hipzout.vaddr != iova_start) { 1211 } else if ((u64 *)hipzout.vaddr != iova_start) {
1212 ehca_err(&shca->ib_device, "PHYP changed iova_start in " 1212 ehca_err(&shca->ib_device, "PHYP changed iova_start in "
1213 "rereg_pmr, iova_start=%p iova_start_out=%lx e_mr=%p " 1213 "rereg_pmr, iova_start=%p iova_start_out=%llx e_mr=%p "
1214 "mr_handle=%lx lkey=%x lkey_out=%x", iova_start, 1214 "mr_handle=%llx lkey=%x lkey_out=%x", iova_start,
1215 hipzout.vaddr, e_mr, e_mr->ipz_mr_handle.handle, 1215 hipzout.vaddr, e_mr, e_mr->ipz_mr_handle.handle,
1216 e_mr->ib.ib_mr.lkey, hipzout.lkey); 1216 e_mr->ib.ib_mr.lkey, hipzout.lkey);
1217 ret = -EFAULT; 1217 ret = -EFAULT;
@@ -1235,7 +1235,7 @@ ehca_rereg_mr_rereg1_exit1:
1235ehca_rereg_mr_rereg1_exit0: 1235ehca_rereg_mr_rereg1_exit0:
1236 if ( ret && (ret != -EAGAIN) ) 1236 if ( ret && (ret != -EAGAIN) )
1237 ehca_err(&shca->ib_device, "ret=%i lkey=%x rkey=%x " 1237 ehca_err(&shca->ib_device, "ret=%i lkey=%x rkey=%x "
1238 "pginfo=%p num_kpages=%lx num_hwpages=%lx", 1238 "pginfo=%p num_kpages=%llx num_hwpages=%llx",
1239 ret, *lkey, *rkey, pginfo, pginfo->num_kpages, 1239 ret, *lkey, *rkey, pginfo, pginfo->num_kpages,
1240 pginfo->num_hwpages); 1240 pginfo->num_hwpages);
1241 return ret; 1241 return ret;
@@ -1263,7 +1263,7 @@ int ehca_rereg_mr(struct ehca_shca *shca,
1263 (e_mr->num_hwpages > MAX_RPAGES) || 1263 (e_mr->num_hwpages > MAX_RPAGES) ||
1264 (pginfo->num_hwpages > e_mr->num_hwpages)) { 1264 (pginfo->num_hwpages > e_mr->num_hwpages)) {
1265 ehca_dbg(&shca->ib_device, "Rereg3 case, " 1265 ehca_dbg(&shca->ib_device, "Rereg3 case, "
1266 "pginfo->num_hwpages=%lx e_mr->num_hwpages=%x", 1266 "pginfo->num_hwpages=%llx e_mr->num_hwpages=%x",
1267 pginfo->num_hwpages, e_mr->num_hwpages); 1267 pginfo->num_hwpages, e_mr->num_hwpages);
1268 rereg_1_hcall = 0; 1268 rereg_1_hcall = 0;
1269 rereg_3_hcall = 1; 1269 rereg_3_hcall = 1;
@@ -1295,7 +1295,7 @@ int ehca_rereg_mr(struct ehca_shca *shca,
1295 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 1295 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1296 if (h_ret != H_SUCCESS) { 1296 if (h_ret != H_SUCCESS) {
1297 ehca_err(&shca->ib_device, "hipz_free_mr failed, " 1297 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1298 "h_ret=%li e_mr=%p hca_hndl=%lx mr_hndl=%lx " 1298 "h_ret=%lli e_mr=%p hca_hndl=%llx mr_hndl=%llx "
1299 "mr->lkey=%x", 1299 "mr->lkey=%x",
1300 h_ret, e_mr, shca->ipz_hca_handle.handle, 1300 h_ret, e_mr, shca->ipz_hca_handle.handle,
1301 e_mr->ipz_mr_handle.handle, 1301 e_mr->ipz_mr_handle.handle,
@@ -1328,8 +1328,8 @@ int ehca_rereg_mr(struct ehca_shca *shca,
1328ehca_rereg_mr_exit0: 1328ehca_rereg_mr_exit0:
1329 if (ret) 1329 if (ret)
1330 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p " 1330 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1331 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p " 1331 "iova_start=%p size=%llx acl=%x e_pd=%p pginfo=%p "
1332 "num_kpages=%lx lkey=%x rkey=%x rereg_1_hcall=%x " 1332 "num_kpages=%llx lkey=%x rkey=%x rereg_1_hcall=%x "
1333 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size, 1333 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size,
1334 acl, e_pd, pginfo, pginfo->num_kpages, *lkey, *rkey, 1334 acl, e_pd, pginfo, pginfo->num_kpages, *lkey, *rkey,
1335 rereg_1_hcall, rereg_3_hcall); 1335 rereg_1_hcall, rereg_3_hcall);
@@ -1371,8 +1371,8 @@ int ehca_unmap_one_fmr(struct ehca_shca *shca,
1371 * FMRs are not shared and no MW bound to FMRs 1371 * FMRs are not shared and no MW bound to FMRs
1372 */ 1372 */
1373 ehca_err(&shca->ib_device, "hipz_reregister_pmr failed " 1373 ehca_err(&shca->ib_device, "hipz_reregister_pmr failed "
1374 "(Rereg1), h_ret=%li e_fmr=%p hca_hndl=%lx " 1374 "(Rereg1), h_ret=%lli e_fmr=%p hca_hndl=%llx "
1375 "mr_hndl=%lx lkey=%x lkey_out=%x", 1375 "mr_hndl=%llx lkey=%x lkey_out=%x",
1376 h_ret, e_fmr, shca->ipz_hca_handle.handle, 1376 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1377 e_fmr->ipz_mr_handle.handle, 1377 e_fmr->ipz_mr_handle.handle,
1378 e_fmr->ib.ib_fmr.lkey, hipzout.lkey); 1378 e_fmr->ib.ib_fmr.lkey, hipzout.lkey);
@@ -1383,7 +1383,7 @@ int ehca_unmap_one_fmr(struct ehca_shca *shca,
1383 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr); 1383 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
1384 if (h_ret != H_SUCCESS) { 1384 if (h_ret != H_SUCCESS) {
1385 ehca_err(&shca->ib_device, "hipz_free_mr failed, " 1385 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1386 "h_ret=%li e_fmr=%p hca_hndl=%lx mr_hndl=%lx " 1386 "h_ret=%lli e_fmr=%p hca_hndl=%llx mr_hndl=%llx "
1387 "lkey=%x", 1387 "lkey=%x",
1388 h_ret, e_fmr, shca->ipz_hca_handle.handle, 1388 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1389 e_fmr->ipz_mr_handle.handle, 1389 e_fmr->ipz_mr_handle.handle,
@@ -1447,9 +1447,9 @@ int ehca_reg_smr(struct ehca_shca *shca,
1447 (u64)iova_start, hipz_acl, e_pd->fw_pd, 1447 (u64)iova_start, hipz_acl, e_pd->fw_pd,
1448 &hipzout); 1448 &hipzout);
1449 if (h_ret != H_SUCCESS) { 1449 if (h_ret != H_SUCCESS) {
1450 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%li " 1450 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lli "
1451 "shca=%p e_origmr=%p e_newmr=%p iova_start=%p acl=%x " 1451 "shca=%p e_origmr=%p e_newmr=%p iova_start=%p acl=%x "
1452 "e_pd=%p hca_hndl=%lx mr_hndl=%lx lkey=%x", 1452 "e_pd=%p hca_hndl=%llx mr_hndl=%llx lkey=%x",
1453 h_ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd, 1453 h_ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd,
1454 shca->ipz_hca_handle.handle, 1454 shca->ipz_hca_handle.handle,
1455 e_origmr->ipz_mr_handle.handle, 1455 e_origmr->ipz_mr_handle.handle,
@@ -1527,7 +1527,7 @@ int ehca_reg_internal_maxmr(
1527 &e_mr->ib.ib_mr.rkey); 1527 &e_mr->ib.ib_mr.rkey);
1528 if (ret) { 1528 if (ret) {
1529 ehca_err(&shca->ib_device, "reg of internal max MR failed, " 1529 ehca_err(&shca->ib_device, "reg of internal max MR failed, "
1530 "e_mr=%p iova_start=%p size_maxmr=%lx num_kpages=%x " 1530 "e_mr=%p iova_start=%p size_maxmr=%llx num_kpages=%x "
1531 "num_hwpages=%x", e_mr, iova_start, size_maxmr, 1531 "num_hwpages=%x", e_mr, iova_start, size_maxmr,
1532 num_kpages, num_hwpages); 1532 num_kpages, num_hwpages);
1533 goto ehca_reg_internal_maxmr_exit1; 1533 goto ehca_reg_internal_maxmr_exit1;
@@ -1573,8 +1573,8 @@ int ehca_reg_maxmr(struct ehca_shca *shca,
1573 (u64)iova_start, hipz_acl, e_pd->fw_pd, 1573 (u64)iova_start, hipz_acl, e_pd->fw_pd,
1574 &hipzout); 1574 &hipzout);
1575 if (h_ret != H_SUCCESS) { 1575 if (h_ret != H_SUCCESS) {
1576 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%li " 1576 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lli "
1577 "e_origmr=%p hca_hndl=%lx mr_hndl=%lx lkey=%x", 1577 "e_origmr=%p hca_hndl=%llx mr_hndl=%llx lkey=%x",
1578 h_ret, e_origmr, shca->ipz_hca_handle.handle, 1578 h_ret, e_origmr, shca->ipz_hca_handle.handle,
1579 e_origmr->ipz_mr_handle.handle, 1579 e_origmr->ipz_mr_handle.handle,
1580 e_origmr->ib.ib_mr.lkey); 1580 e_origmr->ib.ib_mr.lkey);
@@ -1651,28 +1651,28 @@ int ehca_mr_chk_buf_and_calc_size(struct ib_phys_buf *phys_buf_array,
1651 /* check first buffer */ 1651 /* check first buffer */
1652 if (((u64)iova_start & ~PAGE_MASK) != (pbuf->addr & ~PAGE_MASK)) { 1652 if (((u64)iova_start & ~PAGE_MASK) != (pbuf->addr & ~PAGE_MASK)) {
1653 ehca_gen_err("iova_start/addr mismatch, iova_start=%p " 1653 ehca_gen_err("iova_start/addr mismatch, iova_start=%p "
1654 "pbuf->addr=%lx pbuf->size=%lx", 1654 "pbuf->addr=%llx pbuf->size=%llx",
1655 iova_start, pbuf->addr, pbuf->size); 1655 iova_start, pbuf->addr, pbuf->size);
1656 return -EINVAL; 1656 return -EINVAL;
1657 } 1657 }
1658 if (((pbuf->addr + pbuf->size) % PAGE_SIZE) && 1658 if (((pbuf->addr + pbuf->size) % PAGE_SIZE) &&
1659 (num_phys_buf > 1)) { 1659 (num_phys_buf > 1)) {
1660 ehca_gen_err("addr/size mismatch in 1st buf, pbuf->addr=%lx " 1660 ehca_gen_err("addr/size mismatch in 1st buf, pbuf->addr=%llx "
1661 "pbuf->size=%lx", pbuf->addr, pbuf->size); 1661 "pbuf->size=%llx", pbuf->addr, pbuf->size);
1662 return -EINVAL; 1662 return -EINVAL;
1663 } 1663 }
1664 1664
1665 for (i = 0; i < num_phys_buf; i++) { 1665 for (i = 0; i < num_phys_buf; i++) {
1666 if ((i > 0) && (pbuf->addr % PAGE_SIZE)) { 1666 if ((i > 0) && (pbuf->addr % PAGE_SIZE)) {
1667 ehca_gen_err("bad address, i=%x pbuf->addr=%lx " 1667 ehca_gen_err("bad address, i=%x pbuf->addr=%llx "
1668 "pbuf->size=%lx", 1668 "pbuf->size=%llx",
1669 i, pbuf->addr, pbuf->size); 1669 i, pbuf->addr, pbuf->size);
1670 return -EINVAL; 1670 return -EINVAL;
1671 } 1671 }
1672 if (((i > 0) && /* not 1st */ 1672 if (((i > 0) && /* not 1st */
1673 (i < (num_phys_buf - 1)) && /* not last */ 1673 (i < (num_phys_buf - 1)) && /* not last */
1674 (pbuf->size % PAGE_SIZE)) || (pbuf->size == 0)) { 1674 (pbuf->size % PAGE_SIZE)) || (pbuf->size == 0)) {
1675 ehca_gen_err("bad size, i=%x pbuf->size=%lx", 1675 ehca_gen_err("bad size, i=%x pbuf->size=%llx",
1676 i, pbuf->size); 1676 i, pbuf->size);
1677 return -EINVAL; 1677 return -EINVAL;
1678 } 1678 }
@@ -1705,7 +1705,7 @@ int ehca_fmr_check_page_list(struct ehca_mr *e_fmr,
1705 page = page_list; 1705 page = page_list;
1706 for (i = 0; i < list_len; i++) { 1706 for (i = 0; i < list_len; i++) {
1707 if (*page % e_fmr->fmr_page_size) { 1707 if (*page % e_fmr->fmr_page_size) {
1708 ehca_gen_err("bad page, i=%x *page=%lx page=%p fmr=%p " 1708 ehca_gen_err("bad page, i=%x *page=%llx page=%p fmr=%p "
1709 "fmr_page_size=%x", i, *page, page, e_fmr, 1709 "fmr_page_size=%x", i, *page, page, e_fmr,
1710 e_fmr->fmr_page_size); 1710 e_fmr->fmr_page_size);
1711 return -EINVAL; 1711 return -EINVAL;
@@ -1743,9 +1743,9 @@ static int ehca_set_pagebuf_user1(struct ehca_mr_pginfo *pginfo,
1743 (pginfo->next_hwpage * 1743 (pginfo->next_hwpage *
1744 pginfo->hwpage_size)); 1744 pginfo->hwpage_size));
1745 if ( !(*kpage) ) { 1745 if ( !(*kpage) ) {
1746 ehca_gen_err("pgaddr=%lx " 1746 ehca_gen_err("pgaddr=%llx "
1747 "chunk->page_list[i]=%lx " 1747 "chunk->page_list[i]=%llx "
1748 "i=%x next_hwpage=%lx", 1748 "i=%x next_hwpage=%llx",
1749 pgaddr, (u64)sg_dma_address( 1749 pgaddr, (u64)sg_dma_address(
1750 &chunk->page_list[i]), 1750 &chunk->page_list[i]),
1751 i, pginfo->next_hwpage); 1751 i, pginfo->next_hwpage);
@@ -1795,11 +1795,11 @@ static int ehca_check_kpages_per_ate(struct scatterlist *page_list,
1795 for (t = start_idx; t <= end_idx; t++) { 1795 for (t = start_idx; t <= end_idx; t++) {
1796 u64 pgaddr = page_to_pfn(sg_page(&page_list[t])) << PAGE_SHIFT; 1796 u64 pgaddr = page_to_pfn(sg_page(&page_list[t])) << PAGE_SHIFT;
1797 if (ehca_debug_level >= 3) 1797 if (ehca_debug_level >= 3)
1798 ehca_gen_dbg("chunk_page=%lx value=%016lx", pgaddr, 1798 ehca_gen_dbg("chunk_page=%llx value=%016llx", pgaddr,
1799 *(u64 *)abs_to_virt(phys_to_abs(pgaddr))); 1799 *(u64 *)abs_to_virt(phys_to_abs(pgaddr)));
1800 if (pgaddr - PAGE_SIZE != *prev_pgaddr) { 1800 if (pgaddr - PAGE_SIZE != *prev_pgaddr) {
1801 ehca_gen_err("uncontiguous page found pgaddr=%lx " 1801 ehca_gen_err("uncontiguous page found pgaddr=%llx "
1802 "prev_pgaddr=%lx page_list_i=%x", 1802 "prev_pgaddr=%llx page_list_i=%x",
1803 pgaddr, *prev_pgaddr, t); 1803 pgaddr, *prev_pgaddr, t);
1804 return -EINVAL; 1804 return -EINVAL;
1805 } 1805 }
@@ -1833,7 +1833,7 @@ static int ehca_set_pagebuf_user2(struct ehca_mr_pginfo *pginfo,
1833 << PAGE_SHIFT ); 1833 << PAGE_SHIFT );
1834 *kpage = phys_to_abs(pgaddr); 1834 *kpage = phys_to_abs(pgaddr);
1835 if ( !(*kpage) ) { 1835 if ( !(*kpage) ) {
1836 ehca_gen_err("pgaddr=%lx i=%x", 1836 ehca_gen_err("pgaddr=%llx i=%x",
1837 pgaddr, i); 1837 pgaddr, i);
1838 ret = -EFAULT; 1838 ret = -EFAULT;
1839 return ret; 1839 return ret;
@@ -1846,8 +1846,8 @@ static int ehca_set_pagebuf_user2(struct ehca_mr_pginfo *pginfo,
1846 if (pginfo->hwpage_cnt) { 1846 if (pginfo->hwpage_cnt) {
1847 ehca_gen_err( 1847 ehca_gen_err(
1848 "invalid alignment " 1848 "invalid alignment "
1849 "pgaddr=%lx i=%x " 1849 "pgaddr=%llx i=%x "
1850 "mr_pgsize=%lx", 1850 "mr_pgsize=%llx",
1851 pgaddr, i, 1851 pgaddr, i,
1852 pginfo->hwpage_size); 1852 pginfo->hwpage_size);
1853 ret = -EFAULT; 1853 ret = -EFAULT;
@@ -1866,8 +1866,8 @@ static int ehca_set_pagebuf_user2(struct ehca_mr_pginfo *pginfo,
1866 if (ehca_debug_level >= 3) { 1866 if (ehca_debug_level >= 3) {
1867 u64 val = *(u64 *)abs_to_virt( 1867 u64 val = *(u64 *)abs_to_virt(
1868 phys_to_abs(pgaddr)); 1868 phys_to_abs(pgaddr));
1869 ehca_gen_dbg("kpage=%lx chunk_page=%lx " 1869 ehca_gen_dbg("kpage=%llx chunk_page=%llx "
1870 "value=%016lx", 1870 "value=%016llx",
1871 *kpage, pgaddr, val); 1871 *kpage, pgaddr, val);
1872 } 1872 }
1873 prev_pgaddr = pgaddr; 1873 prev_pgaddr = pgaddr;
@@ -1944,9 +1944,9 @@ static int ehca_set_pagebuf_phys(struct ehca_mr_pginfo *pginfo,
1944 if ((pginfo->kpage_cnt >= pginfo->num_kpages) || 1944 if ((pginfo->kpage_cnt >= pginfo->num_kpages) ||
1945 (pginfo->hwpage_cnt >= pginfo->num_hwpages)) { 1945 (pginfo->hwpage_cnt >= pginfo->num_hwpages)) {
1946 ehca_gen_err("kpage_cnt >= num_kpages, " 1946 ehca_gen_err("kpage_cnt >= num_kpages, "
1947 "kpage_cnt=%lx num_kpages=%lx " 1947 "kpage_cnt=%llx num_kpages=%llx "
1948 "hwpage_cnt=%lx " 1948 "hwpage_cnt=%llx "
1949 "num_hwpages=%lx i=%x", 1949 "num_hwpages=%llx i=%x",
1950 pginfo->kpage_cnt, 1950 pginfo->kpage_cnt,
1951 pginfo->num_kpages, 1951 pginfo->num_kpages,
1952 pginfo->hwpage_cnt, 1952 pginfo->hwpage_cnt,
@@ -1957,8 +1957,8 @@ static int ehca_set_pagebuf_phys(struct ehca_mr_pginfo *pginfo,
1957 (pbuf->addr & ~(pginfo->hwpage_size - 1)) + 1957 (pbuf->addr & ~(pginfo->hwpage_size - 1)) +
1958 (pginfo->next_hwpage * pginfo->hwpage_size)); 1958 (pginfo->next_hwpage * pginfo->hwpage_size));
1959 if ( !(*kpage) && pbuf->addr ) { 1959 if ( !(*kpage) && pbuf->addr ) {
1960 ehca_gen_err("pbuf->addr=%lx pbuf->size=%lx " 1960 ehca_gen_err("pbuf->addr=%llx pbuf->size=%llx "
1961 "next_hwpage=%lx", pbuf->addr, 1961 "next_hwpage=%llx", pbuf->addr,
1962 pbuf->size, pginfo->next_hwpage); 1962 pbuf->size, pginfo->next_hwpage);
1963 return -EFAULT; 1963 return -EFAULT;
1964 } 1964 }
@@ -1996,8 +1996,8 @@ static int ehca_set_pagebuf_fmr(struct ehca_mr_pginfo *pginfo,
1996 *kpage = phys_to_abs((*fmrlist & ~(pginfo->hwpage_size - 1)) + 1996 *kpage = phys_to_abs((*fmrlist & ~(pginfo->hwpage_size - 1)) +
1997 pginfo->next_hwpage * pginfo->hwpage_size); 1997 pginfo->next_hwpage * pginfo->hwpage_size);
1998 if ( !(*kpage) ) { 1998 if ( !(*kpage) ) {
1999 ehca_gen_err("*fmrlist=%lx fmrlist=%p " 1999 ehca_gen_err("*fmrlist=%llx fmrlist=%p "
2000 "next_listelem=%lx next_hwpage=%lx", 2000 "next_listelem=%llx next_hwpage=%llx",
2001 *fmrlist, fmrlist, 2001 *fmrlist, fmrlist,
2002 pginfo->u.fmr.next_listelem, 2002 pginfo->u.fmr.next_listelem,
2003 pginfo->next_hwpage); 2003 pginfo->next_hwpage);
@@ -2025,7 +2025,7 @@ static int ehca_set_pagebuf_fmr(struct ehca_mr_pginfo *pginfo,
2025 ~(pginfo->hwpage_size - 1)); 2025 ~(pginfo->hwpage_size - 1));
2026 if (prev + pginfo->u.fmr.fmr_pgsize != p) { 2026 if (prev + pginfo->u.fmr.fmr_pgsize != p) {
2027 ehca_gen_err("uncontiguous fmr pages " 2027 ehca_gen_err("uncontiguous fmr pages "
2028 "found prev=%lx p=%lx " 2028 "found prev=%llx p=%llx "
2029 "idx=%x", prev, p, i + j); 2029 "idx=%x", prev, p, i + j);
2030 return -EINVAL; 2030 return -EINVAL;
2031 } 2031 }
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index f161cf173dbe..00c108159714 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -331,7 +331,7 @@ static inline int init_qp_queue(struct ehca_shca *shca,
331 if (cnt == (nr_q_pages - 1)) { /* last page! */ 331 if (cnt == (nr_q_pages - 1)) { /* last page! */
332 if (h_ret != expected_hret) { 332 if (h_ret != expected_hret) {
333 ehca_err(ib_dev, "hipz_qp_register_rpage() " 333 ehca_err(ib_dev, "hipz_qp_register_rpage() "
334 "h_ret=%li", h_ret); 334 "h_ret=%lli", h_ret);
335 ret = ehca2ib_return_code(h_ret); 335 ret = ehca2ib_return_code(h_ret);
336 goto init_qp_queue1; 336 goto init_qp_queue1;
337 } 337 }
@@ -345,7 +345,7 @@ static inline int init_qp_queue(struct ehca_shca *shca,
345 } else { 345 } else {
346 if (h_ret != H_PAGE_REGISTERED) { 346 if (h_ret != H_PAGE_REGISTERED) {
347 ehca_err(ib_dev, "hipz_qp_register_rpage() " 347 ehca_err(ib_dev, "hipz_qp_register_rpage() "
348 "h_ret=%li", h_ret); 348 "h_ret=%lli", h_ret);
349 ret = ehca2ib_return_code(h_ret); 349 ret = ehca2ib_return_code(h_ret);
350 goto init_qp_queue1; 350 goto init_qp_queue1;
351 } 351 }
@@ -709,7 +709,7 @@ static struct ehca_qp *internal_create_qp(
709 709
710 h_ret = hipz_h_alloc_resource_qp(shca->ipz_hca_handle, &parms); 710 h_ret = hipz_h_alloc_resource_qp(shca->ipz_hca_handle, &parms);
711 if (h_ret != H_SUCCESS) { 711 if (h_ret != H_SUCCESS) {
712 ehca_err(pd->device, "h_alloc_resource_qp() failed h_ret=%li", 712 ehca_err(pd->device, "h_alloc_resource_qp() failed h_ret=%lli",
713 h_ret); 713 h_ret);
714 ret = ehca2ib_return_code(h_ret); 714 ret = ehca2ib_return_code(h_ret);
715 goto create_qp_exit1; 715 goto create_qp_exit1;
@@ -1010,7 +1010,7 @@ struct ib_srq *ehca_create_srq(struct ib_pd *pd,
1010 mqpcb, my_qp->galpas.kernel); 1010 mqpcb, my_qp->galpas.kernel);
1011 if (hret != H_SUCCESS) { 1011 if (hret != H_SUCCESS) {
1012 ehca_err(pd->device, "Could not modify SRQ to INIT " 1012 ehca_err(pd->device, "Could not modify SRQ to INIT "
1013 "ehca_qp=%p qp_num=%x h_ret=%li", 1013 "ehca_qp=%p qp_num=%x h_ret=%lli",
1014 my_qp, my_qp->real_qp_num, hret); 1014 my_qp, my_qp->real_qp_num, hret);
1015 goto create_srq2; 1015 goto create_srq2;
1016 } 1016 }
@@ -1024,7 +1024,7 @@ struct ib_srq *ehca_create_srq(struct ib_pd *pd,
1024 mqpcb, my_qp->galpas.kernel); 1024 mqpcb, my_qp->galpas.kernel);
1025 if (hret != H_SUCCESS) { 1025 if (hret != H_SUCCESS) {
1026 ehca_err(pd->device, "Could not enable SRQ " 1026 ehca_err(pd->device, "Could not enable SRQ "
1027 "ehca_qp=%p qp_num=%x h_ret=%li", 1027 "ehca_qp=%p qp_num=%x h_ret=%lli",
1028 my_qp, my_qp->real_qp_num, hret); 1028 my_qp, my_qp->real_qp_num, hret);
1029 goto create_srq2; 1029 goto create_srq2;
1030 } 1030 }
@@ -1038,7 +1038,7 @@ struct ib_srq *ehca_create_srq(struct ib_pd *pd,
1038 mqpcb, my_qp->galpas.kernel); 1038 mqpcb, my_qp->galpas.kernel);
1039 if (hret != H_SUCCESS) { 1039 if (hret != H_SUCCESS) {
1040 ehca_err(pd->device, "Could not modify SRQ to RTR " 1040 ehca_err(pd->device, "Could not modify SRQ to RTR "
1041 "ehca_qp=%p qp_num=%x h_ret=%li", 1041 "ehca_qp=%p qp_num=%x h_ret=%lli",
1042 my_qp, my_qp->real_qp_num, hret); 1042 my_qp, my_qp->real_qp_num, hret);
1043 goto create_srq2; 1043 goto create_srq2;
1044 } 1044 }
@@ -1078,7 +1078,7 @@ static int prepare_sqe_rts(struct ehca_qp *my_qp, struct ehca_shca *shca,
1078 &bad_send_wqe_p, NULL, 2); 1078 &bad_send_wqe_p, NULL, 2);
1079 if (h_ret != H_SUCCESS) { 1079 if (h_ret != H_SUCCESS) {
1080 ehca_err(&shca->ib_device, "hipz_h_disable_and_get_wqe() failed" 1080 ehca_err(&shca->ib_device, "hipz_h_disable_and_get_wqe() failed"
1081 " ehca_qp=%p qp_num=%x h_ret=%li", 1081 " ehca_qp=%p qp_num=%x h_ret=%lli",
1082 my_qp, qp_num, h_ret); 1082 my_qp, qp_num, h_ret);
1083 return ehca2ib_return_code(h_ret); 1083 return ehca2ib_return_code(h_ret);
1084 } 1084 }
@@ -1134,7 +1134,7 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue,
1134 1134
1135 if (ipz_queue_abs_to_offset(ipz_queue, wqe_p, &q_ofs)) { 1135 if (ipz_queue_abs_to_offset(ipz_queue, wqe_p, &q_ofs)) {
1136 ehca_gen_err("Invalid offset for calculating left cqes " 1136 ehca_gen_err("Invalid offset for calculating left cqes "
1137 "wqe_p=%#lx wqe_v=%p\n", wqe_p, wqe_v); 1137 "wqe_p=%#llx wqe_v=%p\n", wqe_p, wqe_v);
1138 return -EFAULT; 1138 return -EFAULT;
1139 } 1139 }
1140 1140
@@ -1168,7 +1168,7 @@ static int check_for_left_cqes(struct ehca_qp *my_qp, struct ehca_shca *shca)
1168 &send_wqe_p, &recv_wqe_p, 4); 1168 &send_wqe_p, &recv_wqe_p, 4);
1169 if (h_ret != H_SUCCESS) { 1169 if (h_ret != H_SUCCESS) {
1170 ehca_err(&shca->ib_device, "disable_and_get_wqe() " 1170 ehca_err(&shca->ib_device, "disable_and_get_wqe() "
1171 "failed ehca_qp=%p qp_num=%x h_ret=%li", 1171 "failed ehca_qp=%p qp_num=%x h_ret=%lli",
1172 my_qp, qp_num, h_ret); 1172 my_qp, qp_num, h_ret);
1173 return ehca2ib_return_code(h_ret); 1173 return ehca2ib_return_code(h_ret);
1174 } 1174 }
@@ -1261,7 +1261,7 @@ static int internal_modify_qp(struct ib_qp *ibqp,
1261 mqpcb, my_qp->galpas.kernel); 1261 mqpcb, my_qp->galpas.kernel);
1262 if (h_ret != H_SUCCESS) { 1262 if (h_ret != H_SUCCESS) {
1263 ehca_err(ibqp->device, "hipz_h_query_qp() failed " 1263 ehca_err(ibqp->device, "hipz_h_query_qp() failed "
1264 "ehca_qp=%p qp_num=%x h_ret=%li", 1264 "ehca_qp=%p qp_num=%x h_ret=%lli",
1265 my_qp, ibqp->qp_num, h_ret); 1265 my_qp, ibqp->qp_num, h_ret);
1266 ret = ehca2ib_return_code(h_ret); 1266 ret = ehca2ib_return_code(h_ret);
1267 goto modify_qp_exit1; 1267 goto modify_qp_exit1;
@@ -1690,7 +1690,7 @@ static int internal_modify_qp(struct ib_qp *ibqp,
1690 1690
1691 if (h_ret != H_SUCCESS) { 1691 if (h_ret != H_SUCCESS) {
1692 ret = ehca2ib_return_code(h_ret); 1692 ret = ehca2ib_return_code(h_ret);
1693 ehca_err(ibqp->device, "hipz_h_modify_qp() failed h_ret=%li " 1693 ehca_err(ibqp->device, "hipz_h_modify_qp() failed h_ret=%lli "
1694 "ehca_qp=%p qp_num=%x", h_ret, my_qp, ibqp->qp_num); 1694 "ehca_qp=%p qp_num=%x", h_ret, my_qp, ibqp->qp_num);
1695 goto modify_qp_exit2; 1695 goto modify_qp_exit2;
1696 } 1696 }
@@ -1723,7 +1723,7 @@ static int internal_modify_qp(struct ib_qp *ibqp,
1723 ret = ehca2ib_return_code(h_ret); 1723 ret = ehca2ib_return_code(h_ret);
1724 ehca_err(ibqp->device, "ENABLE in context of " 1724 ehca_err(ibqp->device, "ENABLE in context of "
1725 "RESET_2_INIT failed! Maybe you didn't get " 1725 "RESET_2_INIT failed! Maybe you didn't get "
1726 "a LID h_ret=%li ehca_qp=%p qp_num=%x", 1726 "a LID h_ret=%lli ehca_qp=%p qp_num=%x",
1727 h_ret, my_qp, ibqp->qp_num); 1727 h_ret, my_qp, ibqp->qp_num);
1728 goto modify_qp_exit2; 1728 goto modify_qp_exit2;
1729 } 1729 }
@@ -1909,7 +1909,7 @@ int ehca_query_qp(struct ib_qp *qp,
1909 if (h_ret != H_SUCCESS) { 1909 if (h_ret != H_SUCCESS) {
1910 ret = ehca2ib_return_code(h_ret); 1910 ret = ehca2ib_return_code(h_ret);
1911 ehca_err(qp->device, "hipz_h_query_qp() failed " 1911 ehca_err(qp->device, "hipz_h_query_qp() failed "
1912 "ehca_qp=%p qp_num=%x h_ret=%li", 1912 "ehca_qp=%p qp_num=%x h_ret=%lli",
1913 my_qp, qp->qp_num, h_ret); 1913 my_qp, qp->qp_num, h_ret);
1914 goto query_qp_exit1; 1914 goto query_qp_exit1;
1915 } 1915 }
@@ -2074,7 +2074,7 @@ int ehca_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
2074 2074
2075 if (h_ret != H_SUCCESS) { 2075 if (h_ret != H_SUCCESS) {
2076 ret = ehca2ib_return_code(h_ret); 2076 ret = ehca2ib_return_code(h_ret);
2077 ehca_err(ibsrq->device, "hipz_h_modify_qp() failed h_ret=%li " 2077 ehca_err(ibsrq->device, "hipz_h_modify_qp() failed h_ret=%lli "
2078 "ehca_qp=%p qp_num=%x", 2078 "ehca_qp=%p qp_num=%x",
2079 h_ret, my_qp, my_qp->real_qp_num); 2079 h_ret, my_qp, my_qp->real_qp_num);
2080 } 2080 }
@@ -2108,7 +2108,7 @@ int ehca_query_srq(struct ib_srq *srq, struct ib_srq_attr *srq_attr)
2108 if (h_ret != H_SUCCESS) { 2108 if (h_ret != H_SUCCESS) {
2109 ret = ehca2ib_return_code(h_ret); 2109 ret = ehca2ib_return_code(h_ret);
2110 ehca_err(srq->device, "hipz_h_query_qp() failed " 2110 ehca_err(srq->device, "hipz_h_query_qp() failed "
2111 "ehca_qp=%p qp_num=%x h_ret=%li", 2111 "ehca_qp=%p qp_num=%x h_ret=%lli",
2112 my_qp, my_qp->real_qp_num, h_ret); 2112 my_qp, my_qp->real_qp_num, h_ret);
2113 goto query_srq_exit1; 2113 goto query_srq_exit1;
2114 } 2114 }
@@ -2179,7 +2179,7 @@ static int internal_destroy_qp(struct ib_device *dev, struct ehca_qp *my_qp,
2179 2179
2180 h_ret = hipz_h_destroy_qp(shca->ipz_hca_handle, my_qp); 2180 h_ret = hipz_h_destroy_qp(shca->ipz_hca_handle, my_qp);
2181 if (h_ret != H_SUCCESS) { 2181 if (h_ret != H_SUCCESS) {
2182 ehca_err(dev, "hipz_h_destroy_qp() failed h_ret=%li " 2182 ehca_err(dev, "hipz_h_destroy_qp() failed h_ret=%lli "
2183 "ehca_qp=%p qp_num=%x", h_ret, my_qp, qp_num); 2183 "ehca_qp=%p qp_num=%x", h_ret, my_qp, qp_num);
2184 return ehca2ib_return_code(h_ret); 2184 return ehca2ib_return_code(h_ret);
2185 } 2185 }
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c
index c7112686782f..5a3d96f84c79 100644
--- a/drivers/infiniband/hw/ehca/ehca_reqs.c
+++ b/drivers/infiniband/hw/ehca/ehca_reqs.c
@@ -822,7 +822,7 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq,
822 offset = qmap->next_wqe_idx * ipz_queue->qe_size; 822 offset = qmap->next_wqe_idx * ipz_queue->qe_size;
823 wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset); 823 wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset);
824 if (!wqe) { 824 if (!wqe) {
825 ehca_err(cq->device, "Invalid wqe offset=%#lx on " 825 ehca_err(cq->device, "Invalid wqe offset=%#llx on "
826 "qp_num=%#x", offset, my_qp->real_qp_num); 826 "qp_num=%#x", offset, my_qp->real_qp_num);
827 return nr; 827 return nr;
828 } 828 }
diff --git a/drivers/infiniband/hw/ehca/ehca_sqp.c b/drivers/infiniband/hw/ehca/ehca_sqp.c
index 706d97ad5555..44447aaa5501 100644
--- a/drivers/infiniband/hw/ehca/ehca_sqp.c
+++ b/drivers/infiniband/hw/ehca/ehca_sqp.c
@@ -85,7 +85,7 @@ u64 ehca_define_sqp(struct ehca_shca *shca,
85 85
86 if (ret != H_SUCCESS) { 86 if (ret != H_SUCCESS) {
87 ehca_err(&shca->ib_device, 87 ehca_err(&shca->ib_device,
88 "Can't define AQP1 for port %x. h_ret=%li", 88 "Can't define AQP1 for port %x. h_ret=%lli",
89 port, ret); 89 port, ret);
90 return ret; 90 return ret;
91 } 91 }
diff --git a/drivers/infiniband/hw/ehca/ehca_tools.h b/drivers/infiniband/hw/ehca/ehca_tools.h
index 21f7d06f14ad..f09914cccf53 100644
--- a/drivers/infiniband/hw/ehca/ehca_tools.h
+++ b/drivers/infiniband/hw/ehca/ehca_tools.h
@@ -116,7 +116,7 @@ extern int ehca_debug_level;
116 unsigned char *deb = (unsigned char *)(adr); \ 116 unsigned char *deb = (unsigned char *)(adr); \
117 for (x = 0; x < l; x += 16) { \ 117 for (x = 0; x < l; x += 16) { \
118 printk(KERN_INFO "EHCA_DMP:%s " format \ 118 printk(KERN_INFO "EHCA_DMP:%s " format \
119 " adr=%p ofs=%04x %016lx %016lx\n", \ 119 " adr=%p ofs=%04x %016llx %016llx\n", \
120 __func__, ##args, deb, x, \ 120 __func__, ##args, deb, x, \
121 *((u64 *)&deb[0]), *((u64 *)&deb[8])); \ 121 *((u64 *)&deb[0]), *((u64 *)&deb[8])); \
122 deb += 16; \ 122 deb += 16; \
diff --git a/drivers/infiniband/hw/ehca/ehca_uverbs.c b/drivers/infiniband/hw/ehca/ehca_uverbs.c
index e43ed8f8a0c8..3cb688d29131 100644
--- a/drivers/infiniband/hw/ehca/ehca_uverbs.c
+++ b/drivers/infiniband/hw/ehca/ehca_uverbs.c
@@ -114,7 +114,7 @@ static int ehca_mmap_fw(struct vm_area_struct *vma, struct h_galpas *galpas,
114 114
115 physical = galpas->user.fw_handle; 115 physical = galpas->user.fw_handle;
116 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 116 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
117 ehca_gen_dbg("vsize=%lx physical=%lx", vsize, physical); 117 ehca_gen_dbg("vsize=%llx physical=%llx", vsize, physical);
118 /* VM_IO | VM_RESERVED are set by remap_pfn_range() */ 118 /* VM_IO | VM_RESERVED are set by remap_pfn_range() */
119 ret = remap_4k_pfn(vma, vma->vm_start, physical >> EHCA_PAGESHIFT, 119 ret = remap_4k_pfn(vma, vma->vm_start, physical >> EHCA_PAGESHIFT,
120 vma->vm_page_prot); 120 vma->vm_page_prot);
diff --git a/drivers/infiniband/hw/ehca/hcp_if.c b/drivers/infiniband/hw/ehca/hcp_if.c
index 415d3a465de6..d0ab0c0d5e91 100644
--- a/drivers/infiniband/hw/ehca/hcp_if.c
+++ b/drivers/infiniband/hw/ehca/hcp_if.c
@@ -226,7 +226,7 @@ u64 hipz_h_alloc_resource_eq(const struct ipz_adapter_handle adapter_handle,
226 u32 *eq_ist) 226 u32 *eq_ist)
227{ 227{
228 u64 ret; 228 u64 ret;
229 u64 outs[PLPAR_HCALL9_BUFSIZE]; 229 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
230 u64 allocate_controls; 230 u64 allocate_controls;
231 231
232 /* resource type */ 232 /* resource type */
@@ -249,7 +249,7 @@ u64 hipz_h_alloc_resource_eq(const struct ipz_adapter_handle adapter_handle,
249 *eq_ist = (u32)outs[5]; 249 *eq_ist = (u32)outs[5];
250 250
251 if (ret == H_NOT_ENOUGH_RESOURCES) 251 if (ret == H_NOT_ENOUGH_RESOURCES)
252 ehca_gen_err("Not enough resource - ret=%li ", ret); 252 ehca_gen_err("Not enough resource - ret=%lli ", ret);
253 253
254 return ret; 254 return ret;
255} 255}
@@ -270,7 +270,7 @@ u64 hipz_h_alloc_resource_cq(const struct ipz_adapter_handle adapter_handle,
270 struct ehca_alloc_cq_parms *param) 270 struct ehca_alloc_cq_parms *param)
271{ 271{
272 u64 ret; 272 u64 ret;
273 u64 outs[PLPAR_HCALL9_BUFSIZE]; 273 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
274 274
275 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs, 275 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs,
276 adapter_handle.handle, /* r4 */ 276 adapter_handle.handle, /* r4 */
@@ -287,7 +287,7 @@ u64 hipz_h_alloc_resource_cq(const struct ipz_adapter_handle adapter_handle,
287 hcp_galpas_ctor(&cq->galpas, outs[5], outs[6]); 287 hcp_galpas_ctor(&cq->galpas, outs[5], outs[6]);
288 288
289 if (ret == H_NOT_ENOUGH_RESOURCES) 289 if (ret == H_NOT_ENOUGH_RESOURCES)
290 ehca_gen_err("Not enough resources. ret=%li", ret); 290 ehca_gen_err("Not enough resources. ret=%lli", ret);
291 291
292 return ret; 292 return ret;
293} 293}
@@ -297,7 +297,7 @@ u64 hipz_h_alloc_resource_qp(const struct ipz_adapter_handle adapter_handle,
297{ 297{
298 u64 ret; 298 u64 ret;
299 u64 allocate_controls, max_r10_reg, r11, r12; 299 u64 allocate_controls, max_r10_reg, r11, r12;
300 u64 outs[PLPAR_HCALL9_BUFSIZE]; 300 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
301 301
302 allocate_controls = 302 allocate_controls =
303 EHCA_BMASK_SET(H_ALL_RES_QP_ENHANCED_OPS, parms->ext_type) 303 EHCA_BMASK_SET(H_ALL_RES_QP_ENHANCED_OPS, parms->ext_type)
@@ -362,7 +362,7 @@ u64 hipz_h_alloc_resource_qp(const struct ipz_adapter_handle adapter_handle,
362 hcp_galpas_ctor(&parms->galpas, outs[6], outs[6]); 362 hcp_galpas_ctor(&parms->galpas, outs[6], outs[6]);
363 363
364 if (ret == H_NOT_ENOUGH_RESOURCES) 364 if (ret == H_NOT_ENOUGH_RESOURCES)
365 ehca_gen_err("Not enough resources. ret=%li", ret); 365 ehca_gen_err("Not enough resources. ret=%lli", ret);
366 366
367 return ret; 367 return ret;
368} 368}
@@ -454,7 +454,7 @@ u64 hipz_h_register_rpage_eq(const struct ipz_adapter_handle adapter_handle,
454 const u64 count) 454 const u64 count)
455{ 455{
456 if (count != 1) { 456 if (count != 1) {
457 ehca_gen_err("Ppage counter=%lx", count); 457 ehca_gen_err("Ppage counter=%llx", count);
458 return H_PARAMETER; 458 return H_PARAMETER;
459 } 459 }
460 return hipz_h_register_rpage(adapter_handle, 460 return hipz_h_register_rpage(adapter_handle,
@@ -489,7 +489,7 @@ u64 hipz_h_register_rpage_cq(const struct ipz_adapter_handle adapter_handle,
489 const struct h_galpa gal) 489 const struct h_galpa gal)
490{ 490{
491 if (count != 1) { 491 if (count != 1) {
492 ehca_gen_err("Page counter=%lx", count); 492 ehca_gen_err("Page counter=%llx", count);
493 return H_PARAMETER; 493 return H_PARAMETER;
494 } 494 }
495 495
@@ -508,7 +508,7 @@ u64 hipz_h_register_rpage_qp(const struct ipz_adapter_handle adapter_handle,
508 const struct h_galpa galpa) 508 const struct h_galpa galpa)
509{ 509{
510 if (count > 1) { 510 if (count > 1) {
511 ehca_gen_err("Page counter=%lx", count); 511 ehca_gen_err("Page counter=%llx", count);
512 return H_PARAMETER; 512 return H_PARAMETER;
513 } 513 }
514 514
@@ -525,7 +525,7 @@ u64 hipz_h_disable_and_get_wqe(const struct ipz_adapter_handle adapter_handle,
525 int dis_and_get_function_code) 525 int dis_and_get_function_code)
526{ 526{
527 u64 ret; 527 u64 ret;
528 u64 outs[PLPAR_HCALL9_BUFSIZE]; 528 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
529 529
530 ret = ehca_plpar_hcall9(H_DISABLE_AND_GETC, outs, 530 ret = ehca_plpar_hcall9(H_DISABLE_AND_GETC, outs,
531 adapter_handle.handle, /* r4 */ 531 adapter_handle.handle, /* r4 */
@@ -548,7 +548,7 @@ u64 hipz_h_modify_qp(const struct ipz_adapter_handle adapter_handle,
548 struct h_galpa gal) 548 struct h_galpa gal)
549{ 549{
550 u64 ret; 550 u64 ret;
551 u64 outs[PLPAR_HCALL9_BUFSIZE]; 551 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
552 ret = ehca_plpar_hcall9(H_MODIFY_QP, outs, 552 ret = ehca_plpar_hcall9(H_MODIFY_QP, outs,
553 adapter_handle.handle, /* r4 */ 553 adapter_handle.handle, /* r4 */
554 qp_handle.handle, /* r5 */ 554 qp_handle.handle, /* r5 */
@@ -557,7 +557,7 @@ u64 hipz_h_modify_qp(const struct ipz_adapter_handle adapter_handle,
557 0, 0, 0, 0, 0); 557 0, 0, 0, 0, 0);
558 558
559 if (ret == H_NOT_ENOUGH_RESOURCES) 559 if (ret == H_NOT_ENOUGH_RESOURCES)
560 ehca_gen_err("Insufficient resources ret=%li", ret); 560 ehca_gen_err("Insufficient resources ret=%lli", ret);
561 561
562 return ret; 562 return ret;
563} 563}
@@ -579,7 +579,7 @@ u64 hipz_h_destroy_qp(const struct ipz_adapter_handle adapter_handle,
579 struct ehca_qp *qp) 579 struct ehca_qp *qp)
580{ 580{
581 u64 ret; 581 u64 ret;
582 u64 outs[PLPAR_HCALL9_BUFSIZE]; 582 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
583 583
584 ret = hcp_galpas_dtor(&qp->galpas); 584 ret = hcp_galpas_dtor(&qp->galpas);
585 if (ret) { 585 if (ret) {
@@ -593,7 +593,7 @@ u64 hipz_h_destroy_qp(const struct ipz_adapter_handle adapter_handle,
593 qp->ipz_qp_handle.handle, /* r6 */ 593 qp->ipz_qp_handle.handle, /* r6 */
594 0, 0, 0, 0, 0, 0); 594 0, 0, 0, 0, 0, 0);
595 if (ret == H_HARDWARE) 595 if (ret == H_HARDWARE)
596 ehca_gen_err("HCA not operational. ret=%li", ret); 596 ehca_gen_err("HCA not operational. ret=%lli", ret);
597 597
598 ret = ehca_plpar_hcall_norets(H_FREE_RESOURCE, 598 ret = ehca_plpar_hcall_norets(H_FREE_RESOURCE,
599 adapter_handle.handle, /* r4 */ 599 adapter_handle.handle, /* r4 */
@@ -601,7 +601,7 @@ u64 hipz_h_destroy_qp(const struct ipz_adapter_handle adapter_handle,
601 0, 0, 0, 0, 0); 601 0, 0, 0, 0, 0);
602 602
603 if (ret == H_RESOURCE) 603 if (ret == H_RESOURCE)
604 ehca_gen_err("Resource still in use. ret=%li", ret); 604 ehca_gen_err("Resource still in use. ret=%lli", ret);
605 605
606 return ret; 606 return ret;
607} 607}
@@ -625,7 +625,7 @@ u64 hipz_h_define_aqp1(const struct ipz_adapter_handle adapter_handle,
625 u32 * bma_qp_nr) 625 u32 * bma_qp_nr)
626{ 626{
627 u64 ret; 627 u64 ret;
628 u64 outs[PLPAR_HCALL9_BUFSIZE]; 628 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
629 629
630 ret = ehca_plpar_hcall9(H_DEFINE_AQP1, outs, 630 ret = ehca_plpar_hcall9(H_DEFINE_AQP1, outs,
631 adapter_handle.handle, /* r4 */ 631 adapter_handle.handle, /* r4 */
@@ -636,7 +636,7 @@ u64 hipz_h_define_aqp1(const struct ipz_adapter_handle adapter_handle,
636 *bma_qp_nr = (u32)outs[1]; 636 *bma_qp_nr = (u32)outs[1];
637 637
638 if (ret == H_ALIAS_EXIST) 638 if (ret == H_ALIAS_EXIST)
639 ehca_gen_err("AQP1 already exists. ret=%li", ret); 639 ehca_gen_err("AQP1 already exists. ret=%lli", ret);
640 640
641 return ret; 641 return ret;
642} 642}
@@ -658,7 +658,7 @@ u64 hipz_h_attach_mcqp(const struct ipz_adapter_handle adapter_handle,
658 0, 0); 658 0, 0);
659 659
660 if (ret == H_NOT_ENOUGH_RESOURCES) 660 if (ret == H_NOT_ENOUGH_RESOURCES)
661 ehca_gen_err("Not enough resources. ret=%li", ret); 661 ehca_gen_err("Not enough resources. ret=%lli", ret);
662 662
663 return ret; 663 return ret;
664} 664}
@@ -697,7 +697,7 @@ u64 hipz_h_destroy_cq(const struct ipz_adapter_handle adapter_handle,
697 0, 0, 0, 0); 697 0, 0, 0, 0);
698 698
699 if (ret == H_RESOURCE) 699 if (ret == H_RESOURCE)
700 ehca_gen_err("H_FREE_RESOURCE failed ret=%li ", ret); 700 ehca_gen_err("H_FREE_RESOURCE failed ret=%lli ", ret);
701 701
702 return ret; 702 return ret;
703} 703}
@@ -719,7 +719,7 @@ u64 hipz_h_destroy_eq(const struct ipz_adapter_handle adapter_handle,
719 0, 0, 0, 0, 0); 719 0, 0, 0, 0, 0);
720 720
721 if (ret == H_RESOURCE) 721 if (ret == H_RESOURCE)
722 ehca_gen_err("Resource in use. ret=%li ", ret); 722 ehca_gen_err("Resource in use. ret=%lli ", ret);
723 723
724 return ret; 724 return ret;
725} 725}
@@ -733,7 +733,7 @@ u64 hipz_h_alloc_resource_mr(const struct ipz_adapter_handle adapter_handle,
733 struct ehca_mr_hipzout_parms *outparms) 733 struct ehca_mr_hipzout_parms *outparms)
734{ 734{
735 u64 ret; 735 u64 ret;
736 u64 outs[PLPAR_HCALL9_BUFSIZE]; 736 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
737 737
738 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs, 738 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs,
739 adapter_handle.handle, /* r4 */ 739 adapter_handle.handle, /* r4 */
@@ -774,9 +774,9 @@ u64 hipz_h_register_rpage_mr(const struct ipz_adapter_handle adapter_handle,
774 774
775 if ((count > 1) && (logical_address_of_page & (EHCA_PAGESIZE-1))) { 775 if ((count > 1) && (logical_address_of_page & (EHCA_PAGESIZE-1))) {
776 ehca_gen_err("logical_address_of_page not on a 4k boundary " 776 ehca_gen_err("logical_address_of_page not on a 4k boundary "
777 "adapter_handle=%lx mr=%p mr_handle=%lx " 777 "adapter_handle=%llx mr=%p mr_handle=%llx "
778 "pagesize=%x queue_type=%x " 778 "pagesize=%x queue_type=%x "
779 "logical_address_of_page=%lx count=%lx", 779 "logical_address_of_page=%llx count=%llx",
780 adapter_handle.handle, mr, 780 adapter_handle.handle, mr,
781 mr->ipz_mr_handle.handle, pagesize, queue_type, 781 mr->ipz_mr_handle.handle, pagesize, queue_type,
782 logical_address_of_page, count); 782 logical_address_of_page, count);
@@ -794,7 +794,7 @@ u64 hipz_h_query_mr(const struct ipz_adapter_handle adapter_handle,
794 struct ehca_mr_hipzout_parms *outparms) 794 struct ehca_mr_hipzout_parms *outparms)
795{ 795{
796 u64 ret; 796 u64 ret;
797 u64 outs[PLPAR_HCALL9_BUFSIZE]; 797 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
798 798
799 ret = ehca_plpar_hcall9(H_QUERY_MR, outs, 799 ret = ehca_plpar_hcall9(H_QUERY_MR, outs,
800 adapter_handle.handle, /* r4 */ 800 adapter_handle.handle, /* r4 */
@@ -828,7 +828,7 @@ u64 hipz_h_reregister_pmr(const struct ipz_adapter_handle adapter_handle,
828 struct ehca_mr_hipzout_parms *outparms) 828 struct ehca_mr_hipzout_parms *outparms)
829{ 829{
830 u64 ret; 830 u64 ret;
831 u64 outs[PLPAR_HCALL9_BUFSIZE]; 831 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
832 832
833 ret = ehca_plpar_hcall9(H_REREGISTER_PMR, outs, 833 ret = ehca_plpar_hcall9(H_REREGISTER_PMR, outs,
834 adapter_handle.handle, /* r4 */ 834 adapter_handle.handle, /* r4 */
@@ -855,7 +855,7 @@ u64 hipz_h_register_smr(const struct ipz_adapter_handle adapter_handle,
855 struct ehca_mr_hipzout_parms *outparms) 855 struct ehca_mr_hipzout_parms *outparms)
856{ 856{
857 u64 ret; 857 u64 ret;
858 u64 outs[PLPAR_HCALL9_BUFSIZE]; 858 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
859 859
860 ret = ehca_plpar_hcall9(H_REGISTER_SMR, outs, 860 ret = ehca_plpar_hcall9(H_REGISTER_SMR, outs,
861 adapter_handle.handle, /* r4 */ 861 adapter_handle.handle, /* r4 */
@@ -877,7 +877,7 @@ u64 hipz_h_alloc_resource_mw(const struct ipz_adapter_handle adapter_handle,
877 struct ehca_mw_hipzout_parms *outparms) 877 struct ehca_mw_hipzout_parms *outparms)
878{ 878{
879 u64 ret; 879 u64 ret;
880 u64 outs[PLPAR_HCALL9_BUFSIZE]; 880 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
881 881
882 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs, 882 ret = ehca_plpar_hcall9(H_ALLOC_RESOURCE, outs,
883 adapter_handle.handle, /* r4 */ 883 adapter_handle.handle, /* r4 */
@@ -895,7 +895,7 @@ u64 hipz_h_query_mw(const struct ipz_adapter_handle adapter_handle,
895 struct ehca_mw_hipzout_parms *outparms) 895 struct ehca_mw_hipzout_parms *outparms)
896{ 896{
897 u64 ret; 897 u64 ret;
898 u64 outs[PLPAR_HCALL9_BUFSIZE]; 898 unsigned long outs[PLPAR_HCALL9_BUFSIZE];
899 899
900 ret = ehca_plpar_hcall9(H_QUERY_MW, outs, 900 ret = ehca_plpar_hcall9(H_QUERY_MW, outs,
901 adapter_handle.handle, /* r4 */ 901 adapter_handle.handle, /* r4 */
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 39167a797f99..a91cb4c3fa5c 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1462,7 +1462,8 @@ static void __set_data_seg(struct mlx4_wqe_data_seg *dseg, struct ib_sge *sg)
1462} 1462}
1463 1463
1464static int build_lso_seg(struct mlx4_wqe_lso_seg *wqe, struct ib_send_wr *wr, 1464static int build_lso_seg(struct mlx4_wqe_lso_seg *wqe, struct ib_send_wr *wr,
1465 struct mlx4_ib_qp *qp, unsigned *lso_seg_len) 1465 struct mlx4_ib_qp *qp, unsigned *lso_seg_len,
1466 __be32 *lso_hdr_sz)
1466{ 1467{
1467 unsigned halign = ALIGN(sizeof *wqe + wr->wr.ud.hlen, 16); 1468 unsigned halign = ALIGN(sizeof *wqe + wr->wr.ud.hlen, 16);
1468 1469
@@ -1479,12 +1480,8 @@ static int build_lso_seg(struct mlx4_wqe_lso_seg *wqe, struct ib_send_wr *wr,
1479 1480
1480 memcpy(wqe->header, wr->wr.ud.header, wr->wr.ud.hlen); 1481 memcpy(wqe->header, wr->wr.ud.header, wr->wr.ud.hlen);
1481 1482
1482 /* make sure LSO header is written before overwriting stamping */ 1483 *lso_hdr_sz = cpu_to_be32((wr->wr.ud.mss - wr->wr.ud.hlen) << 16 |
1483 wmb(); 1484 wr->wr.ud.hlen);
1484
1485 wqe->mss_hdr_size = cpu_to_be32((wr->wr.ud.mss - wr->wr.ud.hlen) << 16 |
1486 wr->wr.ud.hlen);
1487
1488 *lso_seg_len = halign; 1485 *lso_seg_len = halign;
1489 return 0; 1486 return 0;
1490} 1487}
@@ -1518,6 +1515,9 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1518 int uninitialized_var(stamp); 1515 int uninitialized_var(stamp);
1519 int uninitialized_var(size); 1516 int uninitialized_var(size);
1520 unsigned uninitialized_var(seglen); 1517 unsigned uninitialized_var(seglen);
1518 __be32 dummy;
1519 __be32 *lso_wqe;
1520 __be32 uninitialized_var(lso_hdr_sz);
1521 int i; 1521 int i;
1522 1522
1523 spin_lock_irqsave(&qp->sq.lock, flags); 1523 spin_lock_irqsave(&qp->sq.lock, flags);
@@ -1525,6 +1525,8 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1525 ind = qp->sq_next_wqe; 1525 ind = qp->sq_next_wqe;
1526 1526
1527 for (nreq = 0; wr; ++nreq, wr = wr->next) { 1527 for (nreq = 0; wr; ++nreq, wr = wr->next) {
1528 lso_wqe = &dummy;
1529
1528 if (mlx4_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) { 1530 if (mlx4_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) {
1529 err = -ENOMEM; 1531 err = -ENOMEM;
1530 *bad_wr = wr; 1532 *bad_wr = wr;
@@ -1606,11 +1608,12 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1606 size += sizeof (struct mlx4_wqe_datagram_seg) / 16; 1608 size += sizeof (struct mlx4_wqe_datagram_seg) / 16;
1607 1609
1608 if (wr->opcode == IB_WR_LSO) { 1610 if (wr->opcode == IB_WR_LSO) {
1609 err = build_lso_seg(wqe, wr, qp, &seglen); 1611 err = build_lso_seg(wqe, wr, qp, &seglen, &lso_hdr_sz);
1610 if (unlikely(err)) { 1612 if (unlikely(err)) {
1611 *bad_wr = wr; 1613 *bad_wr = wr;
1612 goto out; 1614 goto out;
1613 } 1615 }
1616 lso_wqe = (__be32 *) wqe;
1614 wqe += seglen; 1617 wqe += seglen;
1615 size += seglen / 16; 1618 size += seglen / 16;
1616 } 1619 }
@@ -1652,6 +1655,14 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1652 for (i = wr->num_sge - 1; i >= 0; --i, --dseg) 1655 for (i = wr->num_sge - 1; i >= 0; --i, --dseg)
1653 set_data_seg(dseg, wr->sg_list + i); 1656 set_data_seg(dseg, wr->sg_list + i);
1654 1657
1658 /*
1659 * Possibly overwrite stamping in cacheline with LSO
1660 * segment only after making sure all data segments
1661 * are written.
1662 */
1663 wmb();
1664 *lso_wqe = lso_hdr_sz;
1665
1655 ctrl->fence_size = (wr->send_flags & IB_SEND_FENCE ? 1666 ctrl->fence_size = (wr->send_flags & IB_SEND_FENCE ?
1656 MLX4_WQE_CTRL_FENCE : 0) | size; 1667 MLX4_WQE_CTRL_FENCE : 0) | size;
1657 1668
@@ -1686,7 +1697,6 @@ int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1686 stamp_send_wqe(qp, stamp, size * 16); 1697 stamp_send_wqe(qp, stamp, size * 16);
1687 ind = pad_wraparound(qp, ind); 1698 ind = pad_wraparound(qp, ind);
1688 } 1699 }
1689
1690 } 1700 }
1691 1701
1692out: 1702out:
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index dce0443f9d69..0bd2a4ff0842 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -106,23 +106,17 @@ int ipoib_open(struct net_device *dev)
106 106
107 ipoib_dbg(priv, "bringing up interface\n"); 107 ipoib_dbg(priv, "bringing up interface\n");
108 108
109 set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 109 if (!test_and_set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags))
110 napi_enable(&priv->napi);
110 111
111 if (ipoib_pkey_dev_delay_open(dev)) 112 if (ipoib_pkey_dev_delay_open(dev))
112 return 0; 113 return 0;
113 114
114 napi_enable(&priv->napi); 115 if (ipoib_ib_dev_open(dev))
116 goto err_disable;
115 117
116 if (ipoib_ib_dev_open(dev)) { 118 if (ipoib_ib_dev_up(dev))
117 napi_disable(&priv->napi); 119 goto err_stop;
118 return -EINVAL;
119 }
120
121 if (ipoib_ib_dev_up(dev)) {
122 ipoib_ib_dev_stop(dev, 1);
123 napi_disable(&priv->napi);
124 return -EINVAL;
125 }
126 120
127 if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) { 121 if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) {
128 struct ipoib_dev_priv *cpriv; 122 struct ipoib_dev_priv *cpriv;
@@ -144,6 +138,15 @@ int ipoib_open(struct net_device *dev)
144 netif_start_queue(dev); 138 netif_start_queue(dev);
145 139
146 return 0; 140 return 0;
141
142err_stop:
143 ipoib_ib_dev_stop(dev, 1);
144
145err_disable:
146 napi_disable(&priv->napi);
147 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
148
149 return -EINVAL;
147} 150}
148 151
149static int ipoib_stop(struct net_device *dev) 152static int ipoib_stop(struct net_device *dev)
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 59d02e0b8df1..425e31112ed7 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -409,7 +409,7 @@ static int ipoib_mcast_join_complete(int status,
409 } 409 }
410 410
411 if (mcast->logcount++ < 20) { 411 if (mcast->logcount++ < 20) {
412 if (status == -ETIMEDOUT) { 412 if (status == -ETIMEDOUT || status == -EAGAIN) {
413 ipoib_dbg_mcast(priv, "multicast join failed for %pI6, status %d\n", 413 ipoib_dbg_mcast(priv, "multicast join failed for %pI6, status %d\n",
414 mcast->mcmember.mgid.raw, status); 414 mcast->mcmember.mgid.raw, status);
415 } else { 415 } else {
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
index 2cf1a4088718..5a76a5510350 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_vlan.c
@@ -61,6 +61,7 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
61 61
62 ppriv = netdev_priv(pdev); 62 ppriv = netdev_priv(pdev);
63 63
64 rtnl_lock();
64 mutex_lock(&ppriv->vlan_mutex); 65 mutex_lock(&ppriv->vlan_mutex);
65 66
66 /* 67 /*
@@ -111,7 +112,7 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
111 goto device_init_failed; 112 goto device_init_failed;
112 } 113 }
113 114
114 result = register_netdev(priv->dev); 115 result = register_netdevice(priv->dev);
115 if (result) { 116 if (result) {
116 ipoib_warn(priv, "failed to initialize; error %i", result); 117 ipoib_warn(priv, "failed to initialize; error %i", result);
117 goto register_failed; 118 goto register_failed;
@@ -134,12 +135,13 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
134 list_add_tail(&priv->list, &ppriv->child_intfs); 135 list_add_tail(&priv->list, &ppriv->child_intfs);
135 136
136 mutex_unlock(&ppriv->vlan_mutex); 137 mutex_unlock(&ppriv->vlan_mutex);
138 rtnl_unlock();
137 139
138 return 0; 140 return 0;
139 141
140sysfs_failed: 142sysfs_failed:
141 ipoib_delete_debug_files(priv->dev); 143 ipoib_delete_debug_files(priv->dev);
142 unregister_netdev(priv->dev); 144 unregister_netdevice(priv->dev);
143 145
144register_failed: 146register_failed:
145 ipoib_dev_cleanup(priv->dev); 147 ipoib_dev_cleanup(priv->dev);
@@ -149,6 +151,7 @@ device_init_failed:
149 151
150err: 152err:
151 mutex_unlock(&ppriv->vlan_mutex); 153 mutex_unlock(&ppriv->vlan_mutex);
154 rtnl_unlock();
152 return result; 155 return result;
153} 156}
154 157
@@ -162,10 +165,11 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey)
162 165
163 ppriv = netdev_priv(pdev); 166 ppriv = netdev_priv(pdev);
164 167
168 rtnl_lock();
165 mutex_lock(&ppriv->vlan_mutex); 169 mutex_lock(&ppriv->vlan_mutex);
166 list_for_each_entry_safe(priv, tpriv, &ppriv->child_intfs, list) { 170 list_for_each_entry_safe(priv, tpriv, &ppriv->child_intfs, list) {
167 if (priv->pkey == pkey) { 171 if (priv->pkey == pkey) {
168 unregister_netdev(priv->dev); 172 unregister_netdevice(priv->dev);
169 ipoib_dev_cleanup(priv->dev); 173 ipoib_dev_cleanup(priv->dev);
170 list_del(&priv->list); 174 list_del(&priv->list);
171 free_netdev(priv->dev); 175 free_netdev(priv->dev);
@@ -175,6 +179,7 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey)
175 } 179 }
176 } 180 }
177 mutex_unlock(&ppriv->vlan_mutex); 181 mutex_unlock(&ppriv->vlan_mutex);
182 rtnl_unlock();
178 183
179 return ret; 184 return ret;
180} 185}
diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c
index a3551dd0324d..aa30b5cb3513 100644
--- a/drivers/isdn/i4l/isdn_ppp.c
+++ b/drivers/isdn/i4l/isdn_ppp.c
@@ -431,6 +431,7 @@ set_arg(void __user *b, void *val,int len)
431 return 0; 431 return 0;
432} 432}
433 433
434#ifdef CONFIG_IPPP_FILTER
434static int get_filter(void __user *arg, struct sock_filter **p) 435static int get_filter(void __user *arg, struct sock_filter **p)
435{ 436{
436 struct sock_fprog uprog; 437 struct sock_fprog uprog;
@@ -465,6 +466,7 @@ static int get_filter(void __user *arg, struct sock_filter **p)
465 *p = code; 466 *p = code;
466 return uprog.len; 467 return uprog.len;
467} 468}
469#endif /* CONFIG_IPPP_FILTER */
468 470
469/* 471/*
470 * ippp device ioctl 472 * ippp device ioctl
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index abcb8459254e..396d935012f2 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -87,14 +87,6 @@ config PHANTOM
87 If you choose to build module, its name will be phantom. If unsure, 87 If you choose to build module, its name will be phantom. If unsure,
88 say N here. 88 say N here.
89 89
90config EEPROM_93CX6
91 tristate "EEPROM 93CX6 support"
92 ---help---
93 This is a driver for the EEPROM chipsets 93c46 and 93c66.
94 The driver supports both read as well as write commands.
95
96 If unsure, say N.
97
98config SGI_IOC4 90config SGI_IOC4
99 tristate "SGI IOC4 Base IO support" 91 tristate "SGI IOC4 Base IO support"
100 depends on PCI 92 depends on PCI
@@ -231,5 +223,6 @@ config DELL_LAPTOP
231 laptops. 223 laptops.
232 224
233source "drivers/misc/c2port/Kconfig" 225source "drivers/misc/c2port/Kconfig"
226source "drivers/misc/eeprom/Kconfig"
234 227
235endif # MISC_DEVICES 228endif # MISC_DEVICES
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index d5749a7bc777..bc1199830554 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -13,10 +13,10 @@ obj-$(CONFIG_TIFM_CORE) += tifm_core.o
13obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o 13obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
14obj-$(CONFIG_PHANTOM) += phantom.o 14obj-$(CONFIG_PHANTOM) += phantom.o
15obj-$(CONFIG_SGI_IOC4) += ioc4.o 15obj-$(CONFIG_SGI_IOC4) += ioc4.o
16obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
17obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o 16obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
18obj-$(CONFIG_KGDB_TESTS) += kgdbts.o 17obj-$(CONFIG_KGDB_TESTS) += kgdbts.o
19obj-$(CONFIG_SGI_XP) += sgi-xp/ 18obj-$(CONFIG_SGI_XP) += sgi-xp/
20obj-$(CONFIG_SGI_GRU) += sgi-gru/ 19obj-$(CONFIG_SGI_GRU) += sgi-gru/
21obj-$(CONFIG_HP_ILO) += hpilo.o 20obj-$(CONFIG_HP_ILO) += hpilo.o
22obj-$(CONFIG_C2PORT) += c2port/ 21obj-$(CONFIG_C2PORT) += c2port/
22obj-y += eeprom/
diff --git a/drivers/misc/eeprom/Kconfig b/drivers/misc/eeprom/Kconfig
new file mode 100644
index 000000000000..c76df8cda5ef
--- /dev/null
+++ b/drivers/misc/eeprom/Kconfig
@@ -0,0 +1,59 @@
1menu "EEPROM support"
2
3config EEPROM_AT24
4 tristate "I2C EEPROMs from most vendors"
5 depends on I2C && SYSFS && EXPERIMENTAL
6 help
7 Enable this driver to get read/write support to most I2C EEPROMs,
8 after you configure the driver to know about each EEPROM on
9 your target board. Use these generic chip names, instead of
10 vendor-specific ones like at24c64 or 24lc02:
11
12 24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08,
13 24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024
14
15 Unless you like data loss puzzles, always be sure that any chip
16 you configure as a 24c32 (32 kbit) or larger is NOT really a
17 24c16 (16 kbit) or smaller, and vice versa. Marking the chip
18 as read-only won't help recover from this. Also, if your chip
19 has any software write-protect mechanism you may want to review the
20 code to make sure this driver won't turn it on by accident.
21
22 If you use this with an SMBus adapter instead of an I2C adapter,
23 full functionality is not available. Only smaller devices are
24 supported (24c16 and below, max 4 kByte).
25
26 This driver can also be built as a module. If so, the module
27 will be called at24.
28
29config EEPROM_AT25
30 tristate "SPI EEPROMs from most vendors"
31 depends on SPI && SYSFS
32 help
33 Enable this driver to get read/write support to most SPI EEPROMs,
34 after you configure the board init code to know about each eeprom
35 on your target board.
36
37 This driver can also be built as a module. If so, the module
38 will be called at25.
39
40config EEPROM_LEGACY
41 tristate "Old I2C EEPROM reader"
42 depends on I2C && SYSFS
43 help
44 If you say yes here you get read-only access to the EEPROM data
45 available on modern memory DIMMs and Sony Vaio laptops via I2C. Such
46 EEPROMs could theoretically be available on other devices as well.
47
48 This driver can also be built as a module. If so, the module
49 will be called eeprom.
50
51config EEPROM_93CX6
52 tristate "EEPROM 93CX6 support"
53 help
54 This is a driver for the EEPROM chipsets 93c46 and 93c66.
55 The driver supports both read as well as write commands.
56
57 If unsure, say N.
58
59endmenu
diff --git a/drivers/misc/eeprom/Makefile b/drivers/misc/eeprom/Makefile
new file mode 100644
index 000000000000..539dd8f88128
--- /dev/null
+++ b/drivers/misc/eeprom/Makefile
@@ -0,0 +1,4 @@
1obj-$(CONFIG_EEPROM_AT24) += at24.o
2obj-$(CONFIG_EEPROM_AT25) += at25.o
3obj-$(CONFIG_EEPROM_LEGACY) += eeprom.o
4obj-$(CONFIG_EEPROM_93CX6) += eeprom_93cx6.o
diff --git a/drivers/i2c/chips/at24.c b/drivers/misc/eeprom/at24.c
index d4775528abc6..d4775528abc6 100644
--- a/drivers/i2c/chips/at24.c
+++ b/drivers/misc/eeprom/at24.c
diff --git a/drivers/spi/at25.c b/drivers/misc/eeprom/at25.c
index 290dbe99647a..290dbe99647a 100644
--- a/drivers/spi/at25.c
+++ b/drivers/misc/eeprom/at25.c
diff --git a/drivers/i2c/chips/eeprom.c b/drivers/misc/eeprom/eeprom.c
index 2c27193aeaa0..2c27193aeaa0 100644
--- a/drivers/i2c/chips/eeprom.c
+++ b/drivers/misc/eeprom/eeprom.c
diff --git a/drivers/misc/eeprom_93cx6.c b/drivers/misc/eeprom/eeprom_93cx6.c
index 15b1780025c8..15b1780025c8 100644
--- a/drivers/misc/eeprom_93cx6.c
+++ b/drivers/misc/eeprom/eeprom_93cx6.c
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index dfa585f7feaf..0efa390978bd 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -76,6 +76,16 @@ config MMC_OMAP
76 76
77 If unsure, say N. 77 If unsure, say N.
78 78
79config MMC_OMAP_HS
80 tristate "TI OMAP High Speed Multimedia Card Interface support"
81 depends on ARCH_OMAP2430 || ARCH_OMAP3
82 help
83 This selects the TI OMAP High Speed Multimedia card Interface.
84 If you have an OMAP2430 or OMAP3 board with a Multimedia Card slot,
85 say Y or M here.
86
87 If unsure, say N.
88
79config MMC_WBSD 89config MMC_WBSD
80 tristate "Winbond W83L51xD SD/MMC Card Interface support" 90 tristate "Winbond W83L51xD SD/MMC Card Interface support"
81 depends on ISA_DMA_API 91 depends on ISA_DMA_API
diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
index f4853288bbb1..98cab84829b8 100644
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_RICOH_MMC) += ricoh_mmc.o
15obj-$(CONFIG_MMC_WBSD) += wbsd.o 15obj-$(CONFIG_MMC_WBSD) += wbsd.o
16obj-$(CONFIG_MMC_AU1X) += au1xmmc.o 16obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
17obj-$(CONFIG_MMC_OMAP) += omap.o 17obj-$(CONFIG_MMC_OMAP) += omap.o
18obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
18obj-$(CONFIG_MMC_AT91) += at91_mci.o 19obj-$(CONFIG_MMC_AT91) += at91_mci.o
19obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o 20obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o
20obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o 21obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
new file mode 100644
index 000000000000..db37490f67ec
--- /dev/null
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -0,0 +1,1242 @@
1/*
2 * drivers/mmc/host/omap_hsmmc.c
3 *
4 * Driver for OMAP2430/3430 MMC controller.
5 *
6 * Copyright (C) 2007 Texas Instruments.
7 *
8 * Authors:
9 * Syed Mohammed Khasim <x0khasim@ti.com>
10 * Madhusudhan <madhu.cr@ti.com>
11 * Mohit Jalori <mjalori@ti.com>
12 *
13 * This file is licensed under the terms of the GNU General Public License
14 * version 2. This program is licensed "as is" without any warranty of any
15 * kind, whether express or implied.
16 */
17
18#include <linux/module.h>
19#include <linux/init.h>
20#include <linux/interrupt.h>
21#include <linux/delay.h>
22#include <linux/dma-mapping.h>
23#include <linux/platform_device.h>
24#include <linux/workqueue.h>
25#include <linux/timer.h>
26#include <linux/clk.h>
27#include <linux/mmc/host.h>
28#include <linux/io.h>
29#include <linux/semaphore.h>
30#include <mach/dma.h>
31#include <mach/hardware.h>
32#include <mach/board.h>
33#include <mach/mmc.h>
34#include <mach/cpu.h>
35
36/* OMAP HSMMC Host Controller Registers */
37#define OMAP_HSMMC_SYSCONFIG 0x0010
38#define OMAP_HSMMC_CON 0x002C
39#define OMAP_HSMMC_BLK 0x0104
40#define OMAP_HSMMC_ARG 0x0108
41#define OMAP_HSMMC_CMD 0x010C
42#define OMAP_HSMMC_RSP10 0x0110
43#define OMAP_HSMMC_RSP32 0x0114
44#define OMAP_HSMMC_RSP54 0x0118
45#define OMAP_HSMMC_RSP76 0x011C
46#define OMAP_HSMMC_DATA 0x0120
47#define OMAP_HSMMC_HCTL 0x0128
48#define OMAP_HSMMC_SYSCTL 0x012C
49#define OMAP_HSMMC_STAT 0x0130
50#define OMAP_HSMMC_IE 0x0134
51#define OMAP_HSMMC_ISE 0x0138
52#define OMAP_HSMMC_CAPA 0x0140
53
54#define VS18 (1 << 26)
55#define VS30 (1 << 25)
56#define SDVS18 (0x5 << 9)
57#define SDVS30 (0x6 << 9)
58#define SDVSCLR 0xFFFFF1FF
59#define SDVSDET 0x00000400
60#define AUTOIDLE 0x1
61#define SDBP (1 << 8)
62#define DTO 0xe
63#define ICE 0x1
64#define ICS 0x2
65#define CEN (1 << 2)
66#define CLKD_MASK 0x0000FFC0
67#define CLKD_SHIFT 6
68#define DTO_MASK 0x000F0000
69#define DTO_SHIFT 16
70#define INT_EN_MASK 0x307F0033
71#define INIT_STREAM (1 << 1)
72#define DP_SELECT (1 << 21)
73#define DDIR (1 << 4)
74#define DMA_EN 0x1
75#define MSBS (1 << 5)
76#define BCE (1 << 1)
77#define FOUR_BIT (1 << 1)
78#define CC 0x1
79#define TC 0x02
80#define OD 0x1
81#define ERR (1 << 15)
82#define CMD_TIMEOUT (1 << 16)
83#define DATA_TIMEOUT (1 << 20)
84#define CMD_CRC (1 << 17)
85#define DATA_CRC (1 << 21)
86#define CARD_ERR (1 << 28)
87#define STAT_CLEAR 0xFFFFFFFF
88#define INIT_STREAM_CMD 0x00000000
89#define DUAL_VOLT_OCR_BIT 7
90#define SRC (1 << 25)
91#define SRD (1 << 26)
92
93/*
94 * FIXME: Most likely all the data using these _DEVID defines should come
95 * from the platform_data, or implemented in controller and slot specific
96 * functions.
97 */
98#define OMAP_MMC1_DEVID 0
99#define OMAP_MMC2_DEVID 1
100
101#define OMAP_MMC_DATADIR_NONE 0
102#define OMAP_MMC_DATADIR_READ 1
103#define OMAP_MMC_DATADIR_WRITE 2
104#define MMC_TIMEOUT_MS 20
105#define OMAP_MMC_MASTER_CLOCK 96000000
106#define DRIVER_NAME "mmci-omap-hs"
107
108/*
109 * One controller can have multiple slots, like on some omap boards using
110 * omap.c controller driver. Luckily this is not currently done on any known
111 * omap_hsmmc.c device.
112 */
113#define mmc_slot(host) (host->pdata->slots[host->slot_id])
114
115/*
116 * MMC Host controller read/write API's
117 */
118#define OMAP_HSMMC_READ(base, reg) \
119 __raw_readl((base) + OMAP_HSMMC_##reg)
120
121#define OMAP_HSMMC_WRITE(base, reg, val) \
122 __raw_writel((val), (base) + OMAP_HSMMC_##reg)
123
124struct mmc_omap_host {
125 struct device *dev;
126 struct mmc_host *mmc;
127 struct mmc_request *mrq;
128 struct mmc_command *cmd;
129 struct mmc_data *data;
130 struct clk *fclk;
131 struct clk *iclk;
132 struct clk *dbclk;
133 struct semaphore sem;
134 struct work_struct mmc_carddetect_work;
135 void __iomem *base;
136 resource_size_t mapbase;
137 unsigned int id;
138 unsigned int dma_len;
139 unsigned int dma_dir;
140 unsigned char bus_mode;
141 unsigned char datadir;
142 u32 *buffer;
143 u32 bytesleft;
144 int suspended;
145 int irq;
146 int carddetect;
147 int use_dma, dma_ch;
148 int initstr;
149 int slot_id;
150 int dbclk_enabled;
151 struct omap_mmc_platform_data *pdata;
152};
153
154/*
155 * Stop clock to the card
156 */
157static void omap_mmc_stop_clock(struct mmc_omap_host *host)
158{
159 OMAP_HSMMC_WRITE(host->base, SYSCTL,
160 OMAP_HSMMC_READ(host->base, SYSCTL) & ~CEN);
161 if ((OMAP_HSMMC_READ(host->base, SYSCTL) & CEN) != 0x0)
162 dev_dbg(mmc_dev(host->mmc), "MMC Clock is not stoped\n");
163}
164
165/*
166 * Send init stream sequence to card
167 * before sending IDLE command
168 */
169static void send_init_stream(struct mmc_omap_host *host)
170{
171 int reg = 0;
172 unsigned long timeout;
173
174 disable_irq(host->irq);
175 OMAP_HSMMC_WRITE(host->base, CON,
176 OMAP_HSMMC_READ(host->base, CON) | INIT_STREAM);
177 OMAP_HSMMC_WRITE(host->base, CMD, INIT_STREAM_CMD);
178
179 timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS);
180 while ((reg != CC) && time_before(jiffies, timeout))
181 reg = OMAP_HSMMC_READ(host->base, STAT) & CC;
182
183 OMAP_HSMMC_WRITE(host->base, CON,
184 OMAP_HSMMC_READ(host->base, CON) & ~INIT_STREAM);
185 enable_irq(host->irq);
186}
187
188static inline
189int mmc_omap_cover_is_closed(struct mmc_omap_host *host)
190{
191 int r = 1;
192
193 if (host->pdata->slots[host->slot_id].get_cover_state)
194 r = host->pdata->slots[host->slot_id].get_cover_state(host->dev,
195 host->slot_id);
196 return r;
197}
198
199static ssize_t
200mmc_omap_show_cover_switch(struct device *dev, struct device_attribute *attr,
201 char *buf)
202{
203 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev);
204 struct mmc_omap_host *host = mmc_priv(mmc);
205
206 return sprintf(buf, "%s\n", mmc_omap_cover_is_closed(host) ? "closed" :
207 "open");
208}
209
210static DEVICE_ATTR(cover_switch, S_IRUGO, mmc_omap_show_cover_switch, NULL);
211
212static ssize_t
213mmc_omap_show_slot_name(struct device *dev, struct device_attribute *attr,
214 char *buf)
215{
216 struct mmc_host *mmc = container_of(dev, struct mmc_host, class_dev);
217 struct mmc_omap_host *host = mmc_priv(mmc);
218 struct omap_mmc_slot_data slot = host->pdata->slots[host->slot_id];
219
220 return sprintf(buf, "slot:%s\n", slot.name);
221}
222
223static DEVICE_ATTR(slot_name, S_IRUGO, mmc_omap_show_slot_name, NULL);
224
225/*
226 * Configure the response type and send the cmd.
227 */
228static void
229mmc_omap_start_command(struct mmc_omap_host *host, struct mmc_command *cmd,
230 struct mmc_data *data)
231{
232 int cmdreg = 0, resptype = 0, cmdtype = 0;
233
234 dev_dbg(mmc_dev(host->mmc), "%s: CMD%d, argument 0x%08x\n",
235 mmc_hostname(host->mmc), cmd->opcode, cmd->arg);
236 host->cmd = cmd;
237
238 /*
239 * Clear status bits and enable interrupts
240 */
241 OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR);
242 OMAP_HSMMC_WRITE(host->base, ISE, INT_EN_MASK);
243 OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK);
244
245 if (cmd->flags & MMC_RSP_PRESENT) {
246 if (cmd->flags & MMC_RSP_136)
247 resptype = 1;
248 else
249 resptype = 2;
250 }
251
252 /*
253 * Unlike OMAP1 controller, the cmdtype does not seem to be based on
254 * ac, bc, adtc, bcr. Only commands ending an open ended transfer need
255 * a val of 0x3, rest 0x0.
256 */
257 if (cmd == host->mrq->stop)
258 cmdtype = 0x3;
259
260 cmdreg = (cmd->opcode << 24) | (resptype << 16) | (cmdtype << 22);
261
262 if (data) {
263 cmdreg |= DP_SELECT | MSBS | BCE;
264 if (data->flags & MMC_DATA_READ)
265 cmdreg |= DDIR;
266 else
267 cmdreg &= ~(DDIR);
268 }
269
270 if (host->use_dma)
271 cmdreg |= DMA_EN;
272
273 OMAP_HSMMC_WRITE(host->base, ARG, cmd->arg);
274 OMAP_HSMMC_WRITE(host->base, CMD, cmdreg);
275}
276
277/*
278 * Notify the transfer complete to MMC core
279 */
280static void
281mmc_omap_xfer_done(struct mmc_omap_host *host, struct mmc_data *data)
282{
283 host->data = NULL;
284
285 if (host->use_dma && host->dma_ch != -1)
286 dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->dma_len,
287 host->dma_dir);
288
289 host->datadir = OMAP_MMC_DATADIR_NONE;
290
291 if (!data->error)
292 data->bytes_xfered += data->blocks * (data->blksz);
293 else
294 data->bytes_xfered = 0;
295
296 if (!data->stop) {
297 host->mrq = NULL;
298 mmc_request_done(host->mmc, data->mrq);
299 return;
300 }
301 mmc_omap_start_command(host, data->stop, NULL);
302}
303
304/*
305 * Notify the core about command completion
306 */
307static void
308mmc_omap_cmd_done(struct mmc_omap_host *host, struct mmc_command *cmd)
309{
310 host->cmd = NULL;
311
312 if (cmd->flags & MMC_RSP_PRESENT) {
313 if (cmd->flags & MMC_RSP_136) {
314 /* response type 2 */
315 cmd->resp[3] = OMAP_HSMMC_READ(host->base, RSP10);
316 cmd->resp[2] = OMAP_HSMMC_READ(host->base, RSP32);
317 cmd->resp[1] = OMAP_HSMMC_READ(host->base, RSP54);
318 cmd->resp[0] = OMAP_HSMMC_READ(host->base, RSP76);
319 } else {
320 /* response types 1, 1b, 3, 4, 5, 6 */
321 cmd->resp[0] = OMAP_HSMMC_READ(host->base, RSP10);
322 }
323 }
324 if (host->data == NULL || cmd->error) {
325 host->mrq = NULL;
326 mmc_request_done(host->mmc, cmd->mrq);
327 }
328}
329
330/*
331 * DMA clean up for command errors
332 */
333static void mmc_dma_cleanup(struct mmc_omap_host *host)
334{
335 host->data->error = -ETIMEDOUT;
336
337 if (host->use_dma && host->dma_ch != -1) {
338 dma_unmap_sg(mmc_dev(host->mmc), host->data->sg, host->dma_len,
339 host->dma_dir);
340 omap_free_dma(host->dma_ch);
341 host->dma_ch = -1;
342 up(&host->sem);
343 }
344 host->data = NULL;
345 host->datadir = OMAP_MMC_DATADIR_NONE;
346}
347
348/*
349 * Readable error output
350 */
351#ifdef CONFIG_MMC_DEBUG
352static void mmc_omap_report_irq(struct mmc_omap_host *host, u32 status)
353{
354 /* --- means reserved bit without definition at documentation */
355 static const char *mmc_omap_status_bits[] = {
356 "CC", "TC", "BGE", "---", "BWR", "BRR", "---", "---", "CIRQ",
357 "OBI", "---", "---", "---", "---", "---", "ERRI", "CTO", "CCRC",
358 "CEB", "CIE", "DTO", "DCRC", "DEB", "---", "ACE", "---",
359 "---", "---", "---", "CERR", "CERR", "BADA", "---", "---", "---"
360 };
361 char res[256];
362 char *buf = res;
363 int len, i;
364
365 len = sprintf(buf, "MMC IRQ 0x%x :", status);
366 buf += len;
367
368 for (i = 0; i < ARRAY_SIZE(mmc_omap_status_bits); i++)
369 if (status & (1 << i)) {
370 len = sprintf(buf, " %s", mmc_omap_status_bits[i]);
371 buf += len;
372 }
373
374 dev_dbg(mmc_dev(host->mmc), "%s\n", res);
375}
376#endif /* CONFIG_MMC_DEBUG */
377
378
379/*
380 * MMC controller IRQ handler
381 */
382static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
383{
384 struct mmc_omap_host *host = dev_id;
385 struct mmc_data *data;
386 int end_cmd = 0, end_trans = 0, status;
387
388 if (host->cmd == NULL && host->data == NULL) {
389 OMAP_HSMMC_WRITE(host->base, STAT,
390 OMAP_HSMMC_READ(host->base, STAT));
391 return IRQ_HANDLED;
392 }
393
394 data = host->data;
395 status = OMAP_HSMMC_READ(host->base, STAT);
396 dev_dbg(mmc_dev(host->mmc), "IRQ Status is %x\n", status);
397
398 if (status & ERR) {
399#ifdef CONFIG_MMC_DEBUG
400 mmc_omap_report_irq(host, status);
401#endif
402 if ((status & CMD_TIMEOUT) ||
403 (status & CMD_CRC)) {
404 if (host->cmd) {
405 if (status & CMD_TIMEOUT) {
406 OMAP_HSMMC_WRITE(host->base, SYSCTL,
407 OMAP_HSMMC_READ(host->base,
408 SYSCTL) | SRC);
409 while (OMAP_HSMMC_READ(host->base,
410 SYSCTL) & SRC)
411 ;
412
413 host->cmd->error = -ETIMEDOUT;
414 } else {
415 host->cmd->error = -EILSEQ;
416 }
417 end_cmd = 1;
418 }
419 if (host->data)
420 mmc_dma_cleanup(host);
421 }
422 if ((status & DATA_TIMEOUT) ||
423 (status & DATA_CRC)) {
424 if (host->data) {
425 if (status & DATA_TIMEOUT)
426 mmc_dma_cleanup(host);
427 else
428 host->data->error = -EILSEQ;
429 OMAP_HSMMC_WRITE(host->base, SYSCTL,
430 OMAP_HSMMC_READ(host->base,
431 SYSCTL) | SRD);
432 while (OMAP_HSMMC_READ(host->base,
433 SYSCTL) & SRD)
434 ;
435 end_trans = 1;
436 }
437 }
438 if (status & CARD_ERR) {
439 dev_dbg(mmc_dev(host->mmc),
440 "Ignoring card err CMD%d\n", host->cmd->opcode);
441 if (host->cmd)
442 end_cmd = 1;
443 if (host->data)
444 end_trans = 1;
445 }
446 }
447
448 OMAP_HSMMC_WRITE(host->base, STAT, status);
449
450 if (end_cmd || (status & CC))
451 mmc_omap_cmd_done(host, host->cmd);
452 if (end_trans || (status & TC))
453 mmc_omap_xfer_done(host, data);
454
455 return IRQ_HANDLED;
456}
457
458/*
459 * Switch MMC operating voltage
460 */
461static int omap_mmc_switch_opcond(struct mmc_omap_host *host, int vdd)
462{
463 u32 reg_val = 0;
464 int ret;
465
466 /* Disable the clocks */
467 clk_disable(host->fclk);
468 clk_disable(host->iclk);
469 clk_disable(host->dbclk);
470
471 /* Turn the power off */
472 ret = mmc_slot(host).set_power(host->dev, host->slot_id, 0, 0);
473 if (ret != 0)
474 goto err;
475
476 /* Turn the power ON with given VDD 1.8 or 3.0v */
477 ret = mmc_slot(host).set_power(host->dev, host->slot_id, 1, vdd);
478 if (ret != 0)
479 goto err;
480
481 clk_enable(host->fclk);
482 clk_enable(host->iclk);
483 clk_enable(host->dbclk);
484
485 OMAP_HSMMC_WRITE(host->base, HCTL,
486 OMAP_HSMMC_READ(host->base, HCTL) & SDVSCLR);
487 reg_val = OMAP_HSMMC_READ(host->base, HCTL);
488 /*
489 * If a MMC dual voltage card is detected, the set_ios fn calls
490 * this fn with VDD bit set for 1.8V. Upon card removal from the
491 * slot, omap_mmc_set_ios sets the VDD back to 3V on MMC_POWER_OFF.
492 *
493 * Only MMC1 supports 3.0V. MMC2 will not function if SDVS30 is
494 * set in HCTL.
495 */
496 if (host->id == OMAP_MMC1_DEVID && (((1 << vdd) == MMC_VDD_32_33) ||
497 ((1 << vdd) == MMC_VDD_33_34)))
498 reg_val |= SDVS30;
499 if ((1 << vdd) == MMC_VDD_165_195)
500 reg_val |= SDVS18;
501
502 OMAP_HSMMC_WRITE(host->base, HCTL, reg_val);
503
504 OMAP_HSMMC_WRITE(host->base, HCTL,
505 OMAP_HSMMC_READ(host->base, HCTL) | SDBP);
506
507 return 0;
508err:
509 dev_dbg(mmc_dev(host->mmc), "Unable to switch operating voltage\n");
510 return ret;
511}
512
513/*
514 * Work Item to notify the core about card insertion/removal
515 */
516static void mmc_omap_detect(struct work_struct *work)
517{
518 struct mmc_omap_host *host = container_of(work, struct mmc_omap_host,
519 mmc_carddetect_work);
520
521 sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch");
522 if (host->carddetect) {
523 mmc_detect_change(host->mmc, (HZ * 200) / 1000);
524 } else {
525 OMAP_HSMMC_WRITE(host->base, SYSCTL,
526 OMAP_HSMMC_READ(host->base, SYSCTL) | SRD);
527 while (OMAP_HSMMC_READ(host->base, SYSCTL) & SRD)
528 ;
529
530 mmc_detect_change(host->mmc, (HZ * 50) / 1000);
531 }
532}
533
534/*
535 * ISR for handling card insertion and removal
536 */
537static irqreturn_t omap_mmc_cd_handler(int irq, void *dev_id)
538{
539 struct mmc_omap_host *host = (struct mmc_omap_host *)dev_id;
540
541 host->carddetect = mmc_slot(host).card_detect(irq);
542 schedule_work(&host->mmc_carddetect_work);
543
544 return IRQ_HANDLED;
545}
546
547/*
548 * DMA call back function
549 */
550static void mmc_omap_dma_cb(int lch, u16 ch_status, void *data)
551{
552 struct mmc_omap_host *host = data;
553
554 if (ch_status & OMAP2_DMA_MISALIGNED_ERR_IRQ)
555 dev_dbg(mmc_dev(host->mmc), "MISALIGNED_ADRS_ERR\n");
556
557 if (host->dma_ch < 0)
558 return;
559
560 omap_free_dma(host->dma_ch);
561 host->dma_ch = -1;
562 /*
563 * DMA Callback: run in interrupt context.
564 * mutex_unlock will through a kernel warning if used.
565 */
566 up(&host->sem);
567}
568
569/*
570 * Configure dma src and destination parameters
571 */
572static int mmc_omap_config_dma_param(int sync_dir, struct mmc_omap_host *host,
573 struct mmc_data *data)
574{
575 if (sync_dir == 0) {
576 omap_set_dma_dest_params(host->dma_ch, 0,
577 OMAP_DMA_AMODE_CONSTANT,
578 (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
579 omap_set_dma_src_params(host->dma_ch, 0,
580 OMAP_DMA_AMODE_POST_INC,
581 sg_dma_address(&data->sg[0]), 0, 0);
582 } else {
583 omap_set_dma_src_params(host->dma_ch, 0,
584 OMAP_DMA_AMODE_CONSTANT,
585 (host->mapbase + OMAP_HSMMC_DATA), 0, 0);
586 omap_set_dma_dest_params(host->dma_ch, 0,
587 OMAP_DMA_AMODE_POST_INC,
588 sg_dma_address(&data->sg[0]), 0, 0);
589 }
590 return 0;
591}
592/*
593 * Routine to configure and start DMA for the MMC card
594 */
595static int
596mmc_omap_start_dma_transfer(struct mmc_omap_host *host, struct mmc_request *req)
597{
598 int sync_dev, sync_dir = 0;
599 int dma_ch = 0, ret = 0, err = 1;
600 struct mmc_data *data = req->data;
601
602 /*
603 * If for some reason the DMA transfer is still active,
604 * we wait for timeout period and free the dma
605 */
606 if (host->dma_ch != -1) {
607 set_current_state(TASK_UNINTERRUPTIBLE);
608 schedule_timeout(100);
609 if (down_trylock(&host->sem)) {
610 omap_free_dma(host->dma_ch);
611 host->dma_ch = -1;
612 up(&host->sem);
613 return err;
614 }
615 } else {
616 if (down_trylock(&host->sem))
617 return err;
618 }
619
620 if (!(data->flags & MMC_DATA_WRITE)) {
621 host->dma_dir = DMA_FROM_DEVICE;
622 if (host->id == OMAP_MMC1_DEVID)
623 sync_dev = OMAP24XX_DMA_MMC1_RX;
624 else
625 sync_dev = OMAP24XX_DMA_MMC2_RX;
626 } else {
627 host->dma_dir = DMA_TO_DEVICE;
628 if (host->id == OMAP_MMC1_DEVID)
629 sync_dev = OMAP24XX_DMA_MMC1_TX;
630 else
631 sync_dev = OMAP24XX_DMA_MMC2_TX;
632 }
633
634 ret = omap_request_dma(sync_dev, "MMC/SD", mmc_omap_dma_cb,
635 host, &dma_ch);
636 if (ret != 0) {
637 dev_dbg(mmc_dev(host->mmc),
638 "%s: omap_request_dma() failed with %d\n",
639 mmc_hostname(host->mmc), ret);
640 return ret;
641 }
642
643 host->dma_len = dma_map_sg(mmc_dev(host->mmc), data->sg,
644 data->sg_len, host->dma_dir);
645 host->dma_ch = dma_ch;
646
647 if (!(data->flags & MMC_DATA_WRITE))
648 mmc_omap_config_dma_param(1, host, data);
649 else
650 mmc_omap_config_dma_param(0, host, data);
651
652 if ((data->blksz % 4) == 0)
653 omap_set_dma_transfer_params(dma_ch, OMAP_DMA_DATA_TYPE_S32,
654 (data->blksz / 4), data->blocks, OMAP_DMA_SYNC_FRAME,
655 sync_dev, sync_dir);
656 else
657 /* REVISIT: The MMC buffer increments only when MSB is written.
658 * Return error for blksz which is non multiple of four.
659 */
660 return -EINVAL;
661
662 omap_start_dma(dma_ch);
663 return 0;
664}
665
666static void set_data_timeout(struct mmc_omap_host *host,
667 struct mmc_request *req)
668{
669 unsigned int timeout, cycle_ns;
670 uint32_t reg, clkd, dto = 0;
671
672 reg = OMAP_HSMMC_READ(host->base, SYSCTL);
673 clkd = (reg & CLKD_MASK) >> CLKD_SHIFT;
674 if (clkd == 0)
675 clkd = 1;
676
677 cycle_ns = 1000000000 / (clk_get_rate(host->fclk) / clkd);
678 timeout = req->data->timeout_ns / cycle_ns;
679 timeout += req->data->timeout_clks;
680 if (timeout) {
681 while ((timeout & 0x80000000) == 0) {
682 dto += 1;
683 timeout <<= 1;
684 }
685 dto = 31 - dto;
686 timeout <<= 1;
687 if (timeout && dto)
688 dto += 1;
689 if (dto >= 13)
690 dto -= 13;
691 else
692 dto = 0;
693 if (dto > 14)
694 dto = 14;
695 }
696
697 reg &= ~DTO_MASK;
698 reg |= dto << DTO_SHIFT;
699 OMAP_HSMMC_WRITE(host->base, SYSCTL, reg);
700}
701
702/*
703 * Configure block length for MMC/SD cards and initiate the transfer.
704 */
705static int
706mmc_omap_prepare_data(struct mmc_omap_host *host, struct mmc_request *req)
707{
708 int ret;
709 host->data = req->data;
710
711 if (req->data == NULL) {
712 host->datadir = OMAP_MMC_DATADIR_NONE;
713 OMAP_HSMMC_WRITE(host->base, BLK, 0);
714 return 0;
715 }
716
717 OMAP_HSMMC_WRITE(host->base, BLK, (req->data->blksz)
718 | (req->data->blocks << 16));
719 set_data_timeout(host, req);
720
721 host->datadir = (req->data->flags & MMC_DATA_WRITE) ?
722 OMAP_MMC_DATADIR_WRITE : OMAP_MMC_DATADIR_READ;
723
724 if (host->use_dma) {
725 ret = mmc_omap_start_dma_transfer(host, req);
726 if (ret != 0) {
727 dev_dbg(mmc_dev(host->mmc), "MMC start dma failure\n");
728 return ret;
729 }
730 }
731 return 0;
732}
733
734/*
735 * Request function. for read/write operation
736 */
737static void omap_mmc_request(struct mmc_host *mmc, struct mmc_request *req)
738{
739 struct mmc_omap_host *host = mmc_priv(mmc);
740
741 WARN_ON(host->mrq != NULL);
742 host->mrq = req;
743 mmc_omap_prepare_data(host, req);
744 mmc_omap_start_command(host, req->cmd, req->data);
745}
746
747
748/* Routine to configure clock values. Exposed API to core */
749static void omap_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
750{
751 struct mmc_omap_host *host = mmc_priv(mmc);
752 u16 dsor = 0;
753 unsigned long regval;
754 unsigned long timeout;
755
756 switch (ios->power_mode) {
757 case MMC_POWER_OFF:
758 mmc_slot(host).set_power(host->dev, host->slot_id, 0, 0);
759 /*
760 * Reset bus voltage to 3V if it got set to 1.8V earlier.
761 * REVISIT: If we are able to detect cards after unplugging
762 * a 1.8V card, this code should not be needed.
763 */
764 if (!(OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET)) {
765 int vdd = fls(host->mmc->ocr_avail) - 1;
766 if (omap_mmc_switch_opcond(host, vdd) != 0)
767 host->mmc->ios.vdd = vdd;
768 }
769 break;
770 case MMC_POWER_UP:
771 mmc_slot(host).set_power(host->dev, host->slot_id, 1, ios->vdd);
772 break;
773 }
774
775 switch (mmc->ios.bus_width) {
776 case MMC_BUS_WIDTH_4:
777 OMAP_HSMMC_WRITE(host->base, HCTL,
778 OMAP_HSMMC_READ(host->base, HCTL) | FOUR_BIT);
779 break;
780 case MMC_BUS_WIDTH_1:
781 OMAP_HSMMC_WRITE(host->base, HCTL,
782 OMAP_HSMMC_READ(host->base, HCTL) & ~FOUR_BIT);
783 break;
784 }
785
786 if (host->id == OMAP_MMC1_DEVID) {
787 /* Only MMC1 can operate at 3V/1.8V */
788 if ((OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET) &&
789 (ios->vdd == DUAL_VOLT_OCR_BIT)) {
790 /*
791 * The mmc_select_voltage fn of the core does
792 * not seem to set the power_mode to
793 * MMC_POWER_UP upon recalculating the voltage.
794 * vdd 1.8v.
795 */
796 if (omap_mmc_switch_opcond(host, ios->vdd) != 0)
797 dev_dbg(mmc_dev(host->mmc),
798 "Switch operation failed\n");
799 }
800 }
801
802 if (ios->clock) {
803 dsor = OMAP_MMC_MASTER_CLOCK / ios->clock;
804 if (dsor < 1)
805 dsor = 1;
806
807 if (OMAP_MMC_MASTER_CLOCK / dsor > ios->clock)
808 dsor++;
809
810 if (dsor > 250)
811 dsor = 250;
812 }
813 omap_mmc_stop_clock(host);
814 regval = OMAP_HSMMC_READ(host->base, SYSCTL);
815 regval = regval & ~(CLKD_MASK);
816 regval = regval | (dsor << 6) | (DTO << 16);
817 OMAP_HSMMC_WRITE(host->base, SYSCTL, regval);
818 OMAP_HSMMC_WRITE(host->base, SYSCTL,
819 OMAP_HSMMC_READ(host->base, SYSCTL) | ICE);
820
821 /* Wait till the ICS bit is set */
822 timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS);
823 while ((OMAP_HSMMC_READ(host->base, SYSCTL) & ICS) != 0x2
824 && time_before(jiffies, timeout))
825 msleep(1);
826
827 OMAP_HSMMC_WRITE(host->base, SYSCTL,
828 OMAP_HSMMC_READ(host->base, SYSCTL) | CEN);
829
830 if (ios->power_mode == MMC_POWER_ON)
831 send_init_stream(host);
832
833 if (ios->bus_mode == MMC_BUSMODE_OPENDRAIN)
834 OMAP_HSMMC_WRITE(host->base, CON,
835 OMAP_HSMMC_READ(host->base, CON) | OD);
836}
837
838static int omap_hsmmc_get_cd(struct mmc_host *mmc)
839{
840 struct mmc_omap_host *host = mmc_priv(mmc);
841 struct omap_mmc_platform_data *pdata = host->pdata;
842
843 if (!pdata->slots[0].card_detect)
844 return -ENOSYS;
845 return pdata->slots[0].card_detect(pdata->slots[0].card_detect_irq);
846}
847
848static int omap_hsmmc_get_ro(struct mmc_host *mmc)
849{
850 struct mmc_omap_host *host = mmc_priv(mmc);
851 struct omap_mmc_platform_data *pdata = host->pdata;
852
853 if (!pdata->slots[0].get_ro)
854 return -ENOSYS;
855 return pdata->slots[0].get_ro(host->dev, 0);
856}
857
858static struct mmc_host_ops mmc_omap_ops = {
859 .request = omap_mmc_request,
860 .set_ios = omap_mmc_set_ios,
861 .get_cd = omap_hsmmc_get_cd,
862 .get_ro = omap_hsmmc_get_ro,
863 /* NYET -- enable_sdio_irq */
864};
865
866static int __init omap_mmc_probe(struct platform_device *pdev)
867{
868 struct omap_mmc_platform_data *pdata = pdev->dev.platform_data;
869 struct mmc_host *mmc;
870 struct mmc_omap_host *host = NULL;
871 struct resource *res;
872 int ret = 0, irq;
873 u32 hctl, capa;
874
875 if (pdata == NULL) {
876 dev_err(&pdev->dev, "Platform Data is missing\n");
877 return -ENXIO;
878 }
879
880 if (pdata->nr_slots == 0) {
881 dev_err(&pdev->dev, "No Slots\n");
882 return -ENXIO;
883 }
884
885 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
886 irq = platform_get_irq(pdev, 0);
887 if (res == NULL || irq < 0)
888 return -ENXIO;
889
890 res = request_mem_region(res->start, res->end - res->start + 1,
891 pdev->name);
892 if (res == NULL)
893 return -EBUSY;
894
895 mmc = mmc_alloc_host(sizeof(struct mmc_omap_host), &pdev->dev);
896 if (!mmc) {
897 ret = -ENOMEM;
898 goto err;
899 }
900
901 host = mmc_priv(mmc);
902 host->mmc = mmc;
903 host->pdata = pdata;
904 host->dev = &pdev->dev;
905 host->use_dma = 1;
906 host->dev->dma_mask = &pdata->dma_mask;
907 host->dma_ch = -1;
908 host->irq = irq;
909 host->id = pdev->id;
910 host->slot_id = 0;
911 host->mapbase = res->start;
912 host->base = ioremap(host->mapbase, SZ_4K);
913
914 platform_set_drvdata(pdev, host);
915 INIT_WORK(&host->mmc_carddetect_work, mmc_omap_detect);
916
917 mmc->ops = &mmc_omap_ops;
918 mmc->f_min = 400000;
919 mmc->f_max = 52000000;
920
921 sema_init(&host->sem, 1);
922
923 host->iclk = clk_get(&pdev->dev, "mmchs_ick");
924 if (IS_ERR(host->iclk)) {
925 ret = PTR_ERR(host->iclk);
926 host->iclk = NULL;
927 goto err1;
928 }
929 host->fclk = clk_get(&pdev->dev, "mmchs_fck");
930 if (IS_ERR(host->fclk)) {
931 ret = PTR_ERR(host->fclk);
932 host->fclk = NULL;
933 clk_put(host->iclk);
934 goto err1;
935 }
936
937 if (clk_enable(host->fclk) != 0) {
938 clk_put(host->iclk);
939 clk_put(host->fclk);
940 goto err1;
941 }
942
943 if (clk_enable(host->iclk) != 0) {
944 clk_disable(host->fclk);
945 clk_put(host->iclk);
946 clk_put(host->fclk);
947 goto err1;
948 }
949
950 host->dbclk = clk_get(&pdev->dev, "mmchsdb_fck");
951 /*
952 * MMC can still work without debounce clock.
953 */
954 if (IS_ERR(host->dbclk))
955 dev_warn(mmc_dev(host->mmc), "Failed to get debounce clock\n");
956 else
957 if (clk_enable(host->dbclk) != 0)
958 dev_dbg(mmc_dev(host->mmc), "Enabling debounce"
959 " clk failed\n");
960 else
961 host->dbclk_enabled = 1;
962
963#ifdef CONFIG_MMC_BLOCK_BOUNCE
964 mmc->max_phys_segs = 1;
965 mmc->max_hw_segs = 1;
966#endif
967 mmc->max_blk_size = 512; /* Block Length at max can be 1024 */
968 mmc->max_blk_count = 0xFFFF; /* No. of Blocks is 16 bits */
969 mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
970 mmc->max_seg_size = mmc->max_req_size;
971
972 mmc->ocr_avail = mmc_slot(host).ocr_mask;
973 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED;
974
975 if (pdata->slots[host->slot_id].wires >= 4)
976 mmc->caps |= MMC_CAP_4_BIT_DATA;
977
978 /* Only MMC1 supports 3.0V */
979 if (host->id == OMAP_MMC1_DEVID) {
980 hctl = SDVS30;
981 capa = VS30 | VS18;
982 } else {
983 hctl = SDVS18;
984 capa = VS18;
985 }
986
987 OMAP_HSMMC_WRITE(host->base, HCTL,
988 OMAP_HSMMC_READ(host->base, HCTL) | hctl);
989
990 OMAP_HSMMC_WRITE(host->base, CAPA,
991 OMAP_HSMMC_READ(host->base, CAPA) | capa);
992
993 /* Set the controller to AUTO IDLE mode */
994 OMAP_HSMMC_WRITE(host->base, SYSCONFIG,
995 OMAP_HSMMC_READ(host->base, SYSCONFIG) | AUTOIDLE);
996
997 /* Set SD bus power bit */
998 OMAP_HSMMC_WRITE(host->base, HCTL,
999 OMAP_HSMMC_READ(host->base, HCTL) | SDBP);
1000
1001 /* Request IRQ for MMC operations */
1002 ret = request_irq(host->irq, mmc_omap_irq, IRQF_DISABLED,
1003 mmc_hostname(mmc), host);
1004 if (ret) {
1005 dev_dbg(mmc_dev(host->mmc), "Unable to grab HSMMC IRQ\n");
1006 goto err_irq;
1007 }
1008
1009 if (pdata->init != NULL) {
1010 if (pdata->init(&pdev->dev) != 0) {
1011 dev_dbg(mmc_dev(host->mmc),
1012 "Unable to configure MMC IRQs\n");
1013 goto err_irq_cd_init;
1014 }
1015 }
1016
1017 /* Request IRQ for card detect */
1018 if ((mmc_slot(host).card_detect_irq) && (mmc_slot(host).card_detect)) {
1019 ret = request_irq(mmc_slot(host).card_detect_irq,
1020 omap_mmc_cd_handler,
1021 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING
1022 | IRQF_DISABLED,
1023 mmc_hostname(mmc), host);
1024 if (ret) {
1025 dev_dbg(mmc_dev(host->mmc),
1026 "Unable to grab MMC CD IRQ\n");
1027 goto err_irq_cd;
1028 }
1029 }
1030
1031 OMAP_HSMMC_WRITE(host->base, ISE, INT_EN_MASK);
1032 OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK);
1033
1034 mmc_add_host(mmc);
1035
1036 if (host->pdata->slots[host->slot_id].name != NULL) {
1037 ret = device_create_file(&mmc->class_dev, &dev_attr_slot_name);
1038 if (ret < 0)
1039 goto err_slot_name;
1040 }
1041 if (mmc_slot(host).card_detect_irq && mmc_slot(host).card_detect &&
1042 host->pdata->slots[host->slot_id].get_cover_state) {
1043 ret = device_create_file(&mmc->class_dev,
1044 &dev_attr_cover_switch);
1045 if (ret < 0)
1046 goto err_cover_switch;
1047 }
1048
1049 return 0;
1050
1051err_cover_switch:
1052 device_remove_file(&mmc->class_dev, &dev_attr_cover_switch);
1053err_slot_name:
1054 mmc_remove_host(mmc);
1055err_irq_cd:
1056 free_irq(mmc_slot(host).card_detect_irq, host);
1057err_irq_cd_init:
1058 free_irq(host->irq, host);
1059err_irq:
1060 clk_disable(host->fclk);
1061 clk_disable(host->iclk);
1062 clk_put(host->fclk);
1063 clk_put(host->iclk);
1064 if (host->dbclk_enabled) {
1065 clk_disable(host->dbclk);
1066 clk_put(host->dbclk);
1067 }
1068
1069err1:
1070 iounmap(host->base);
1071err:
1072 dev_dbg(mmc_dev(host->mmc), "Probe Failed\n");
1073 release_mem_region(res->start, res->end - res->start + 1);
1074 if (host)
1075 mmc_free_host(mmc);
1076 return ret;
1077}
1078
1079static int omap_mmc_remove(struct platform_device *pdev)
1080{
1081 struct mmc_omap_host *host = platform_get_drvdata(pdev);
1082 struct resource *res;
1083
1084 if (host) {
1085 mmc_remove_host(host->mmc);
1086 if (host->pdata->cleanup)
1087 host->pdata->cleanup(&pdev->dev);
1088 free_irq(host->irq, host);
1089 if (mmc_slot(host).card_detect_irq)
1090 free_irq(mmc_slot(host).card_detect_irq, host);
1091 flush_scheduled_work();
1092
1093 clk_disable(host->fclk);
1094 clk_disable(host->iclk);
1095 clk_put(host->fclk);
1096 clk_put(host->iclk);
1097 if (host->dbclk_enabled) {
1098 clk_disable(host->dbclk);
1099 clk_put(host->dbclk);
1100 }
1101
1102 mmc_free_host(host->mmc);
1103 iounmap(host->base);
1104 }
1105
1106 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1107 if (res)
1108 release_mem_region(res->start, res->end - res->start + 1);
1109 platform_set_drvdata(pdev, NULL);
1110
1111 return 0;
1112}
1113
1114#ifdef CONFIG_PM
1115static int omap_mmc_suspend(struct platform_device *pdev, pm_message_t state)
1116{
1117 int ret = 0;
1118 struct mmc_omap_host *host = platform_get_drvdata(pdev);
1119
1120 if (host && host->suspended)
1121 return 0;
1122
1123 if (host) {
1124 ret = mmc_suspend_host(host->mmc, state);
1125 if (ret == 0) {
1126 host->suspended = 1;
1127
1128 OMAP_HSMMC_WRITE(host->base, ISE, 0);
1129 OMAP_HSMMC_WRITE(host->base, IE, 0);
1130
1131 if (host->pdata->suspend) {
1132 ret = host->pdata->suspend(&pdev->dev,
1133 host->slot_id);
1134 if (ret)
1135 dev_dbg(mmc_dev(host->mmc),
1136 "Unable to handle MMC board"
1137 " level suspend\n");
1138 }
1139
1140 if (!(OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET)) {
1141 OMAP_HSMMC_WRITE(host->base, HCTL,
1142 OMAP_HSMMC_READ(host->base, HCTL)
1143 & SDVSCLR);
1144 OMAP_HSMMC_WRITE(host->base, HCTL,
1145 OMAP_HSMMC_READ(host->base, HCTL)
1146 | SDVS30);
1147 OMAP_HSMMC_WRITE(host->base, HCTL,
1148 OMAP_HSMMC_READ(host->base, HCTL)
1149 | SDBP);
1150 }
1151
1152 clk_disable(host->fclk);
1153 clk_disable(host->iclk);
1154 clk_disable(host->dbclk);
1155 }
1156
1157 }
1158 return ret;
1159}
1160
1161/* Routine to resume the MMC device */
1162static int omap_mmc_resume(struct platform_device *pdev)
1163{
1164 int ret = 0;
1165 struct mmc_omap_host *host = platform_get_drvdata(pdev);
1166
1167 if (host && !host->suspended)
1168 return 0;
1169
1170 if (host) {
1171
1172 ret = clk_enable(host->fclk);
1173 if (ret)
1174 goto clk_en_err;
1175
1176 ret = clk_enable(host->iclk);
1177 if (ret) {
1178 clk_disable(host->fclk);
1179 clk_put(host->fclk);
1180 goto clk_en_err;
1181 }
1182
1183 if (clk_enable(host->dbclk) != 0)
1184 dev_dbg(mmc_dev(host->mmc),
1185 "Enabling debounce clk failed\n");
1186
1187 if (host->pdata->resume) {
1188 ret = host->pdata->resume(&pdev->dev, host->slot_id);
1189 if (ret)
1190 dev_dbg(mmc_dev(host->mmc),
1191 "Unmask interrupt failed\n");
1192 }
1193
1194 /* Notify the core to resume the host */
1195 ret = mmc_resume_host(host->mmc);
1196 if (ret == 0)
1197 host->suspended = 0;
1198 }
1199
1200 return ret;
1201
1202clk_en_err:
1203 dev_dbg(mmc_dev(host->mmc),
1204 "Failed to enable MMC clocks during resume\n");
1205 return ret;
1206}
1207
1208#else
1209#define omap_mmc_suspend NULL
1210#define omap_mmc_resume NULL
1211#endif
1212
1213static struct platform_driver omap_mmc_driver = {
1214 .probe = omap_mmc_probe,
1215 .remove = omap_mmc_remove,
1216 .suspend = omap_mmc_suspend,
1217 .resume = omap_mmc_resume,
1218 .driver = {
1219 .name = DRIVER_NAME,
1220 .owner = THIS_MODULE,
1221 },
1222};
1223
1224static int __init omap_mmc_init(void)
1225{
1226 /* Register the MMC driver */
1227 return platform_driver_register(&omap_mmc_driver);
1228}
1229
1230static void __exit omap_mmc_cleanup(void)
1231{
1232 /* Unregister MMC driver */
1233 platform_driver_unregister(&omap_mmc_driver);
1234}
1235
1236module_init(omap_mmc_init);
1237module_exit(omap_mmc_cleanup);
1238
1239MODULE_DESCRIPTION("OMAP High Speed Multimedia Card driver");
1240MODULE_LICENSE("GPL");
1241MODULE_ALIAS("platform:" DRIVER_NAME);
1242MODULE_AUTHOR("Texas Instruments Inc");
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
index fcc98a4cce3c..35a98eec7414 100644
--- a/drivers/mmc/host/s3cmci.c
+++ b/drivers/mmc/host/s3cmci.c
@@ -20,7 +20,7 @@
20#include <linux/irq.h> 20#include <linux/irq.h>
21#include <linux/io.h> 21#include <linux/io.h>
22 22
23#include <asm/dma.h> 23#include <mach/dma.h>
24 24
25#include <mach/regs-sdi.h> 25#include <mach/regs-sdi.h>
26#include <mach/regs-gpio.h> 26#include <mach/regs-gpio.h>
diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index 96ecc1766fa8..77a4f1446156 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -629,7 +629,7 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
629 } 629 }
630 630
631 if (c->gpio_irq) { 631 if (c->gpio_irq) {
632 if ((r = omap_request_gpio(c->gpio_irq)) < 0) { 632 if ((r = gpio_request(c->gpio_irq, "OneNAND irq")) < 0) {
633 dev_err(&pdev->dev, "Failed to request GPIO%d for " 633 dev_err(&pdev->dev, "Failed to request GPIO%d for "
634 "OneNAND\n", c->gpio_irq); 634 "OneNAND\n", c->gpio_irq);
635 goto err_iounmap; 635 goto err_iounmap;
@@ -726,7 +726,7 @@ err_release_dma:
726 free_irq(gpio_to_irq(c->gpio_irq), c); 726 free_irq(gpio_to_irq(c->gpio_irq), c);
727err_release_gpio: 727err_release_gpio:
728 if (c->gpio_irq) 728 if (c->gpio_irq)
729 omap_free_gpio(c->gpio_irq); 729 gpio_free(c->gpio_irq);
730err_iounmap: 730err_iounmap:
731 iounmap(c->onenand.base); 731 iounmap(c->onenand.base);
732err_release_mem_region: 732err_release_mem_region:
@@ -761,7 +761,7 @@ static int __devexit omap2_onenand_remove(struct platform_device *pdev)
761 platform_set_drvdata(pdev, NULL); 761 platform_set_drvdata(pdev, NULL);
762 if (c->gpio_irq) { 762 if (c->gpio_irq) {
763 free_irq(gpio_to_irq(c->gpio_irq), c); 763 free_irq(gpio_to_irq(c->gpio_irq), c);
764 omap_free_gpio(c->gpio_irq); 764 gpio_free(c->gpio_irq);
765 } 765 }
766 iounmap(c->onenand.base); 766 iounmap(c->onenand.base);
767 release_mem_region(c->phys_base, ONENAND_IO_SIZE); 767 release_mem_region(c->phys_base, ONENAND_IO_SIZE);
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c
index 0c628a9e5339..c2d012fcc29b 100644
--- a/drivers/net/arm/am79c961a.c
+++ b/drivers/net/arm/am79c961a.c
@@ -208,9 +208,9 @@ am79c961_init_for_open(struct net_device *dev)
208 /* 208 /*
209 * Stop the chip. 209 * Stop the chip.
210 */ 210 */
211 spin_lock_irqsave(priv->chip_lock, flags); 211 spin_lock_irqsave(&priv->chip_lock, flags);
212 write_rreg (dev->base_addr, CSR0, CSR0_BABL|CSR0_CERR|CSR0_MISS|CSR0_MERR|CSR0_TINT|CSR0_RINT|CSR0_STOP); 212 write_rreg (dev->base_addr, CSR0, CSR0_BABL|CSR0_CERR|CSR0_MISS|CSR0_MERR|CSR0_TINT|CSR0_RINT|CSR0_STOP);
213 spin_unlock_irqrestore(priv->chip_lock, flags); 213 spin_unlock_irqrestore(&priv->chip_lock, flags);
214 214
215 write_ireg (dev->base_addr, 5, 0x00a0); /* Receive address LED */ 215 write_ireg (dev->base_addr, 5, 0x00a0); /* Receive address LED */
216 write_ireg (dev->base_addr, 6, 0x0081); /* Collision LED */ 216 write_ireg (dev->base_addr, 6, 0x0081); /* Collision LED */
@@ -332,10 +332,10 @@ am79c961_close(struct net_device *dev)
332 netif_stop_queue(dev); 332 netif_stop_queue(dev);
333 netif_carrier_off(dev); 333 netif_carrier_off(dev);
334 334
335 spin_lock_irqsave(priv->chip_lock, flags); 335 spin_lock_irqsave(&priv->chip_lock, flags);
336 write_rreg (dev->base_addr, CSR0, CSR0_STOP); 336 write_rreg (dev->base_addr, CSR0, CSR0_STOP);
337 write_rreg (dev->base_addr, CSR3, CSR3_MASKALL); 337 write_rreg (dev->base_addr, CSR3, CSR3_MASKALL);
338 spin_unlock_irqrestore(priv->chip_lock, flags); 338 spin_unlock_irqrestore(&priv->chip_lock, flags);
339 339
340 free_irq (dev->irq, dev); 340 free_irq (dev->irq, dev);
341 341
@@ -391,7 +391,7 @@ static void am79c961_setmulticastlist (struct net_device *dev)
391 am79c961_mc_hash(dmi, multi_hash); 391 am79c961_mc_hash(dmi, multi_hash);
392 } 392 }
393 393
394 spin_lock_irqsave(priv->chip_lock, flags); 394 spin_lock_irqsave(&priv->chip_lock, flags);
395 395
396 stopped = read_rreg(dev->base_addr, CSR0) & CSR0_STOP; 396 stopped = read_rreg(dev->base_addr, CSR0) & CSR0_STOP;
397 397
@@ -405,9 +405,9 @@ static void am79c961_setmulticastlist (struct net_device *dev)
405 * Spin waiting for chip to report suspend mode 405 * Spin waiting for chip to report suspend mode
406 */ 406 */
407 while ((read_rreg(dev->base_addr, CTRL1) & CTRL1_SPND) == 0) { 407 while ((read_rreg(dev->base_addr, CTRL1) & CTRL1_SPND) == 0) {
408 spin_unlock_irqrestore(priv->chip_lock, flags); 408 spin_unlock_irqrestore(&priv->chip_lock, flags);
409 nop(); 409 nop();
410 spin_lock_irqsave(priv->chip_lock, flags); 410 spin_lock_irqsave(&priv->chip_lock, flags);
411 } 411 }
412 } 412 }
413 413
@@ -429,7 +429,7 @@ static void am79c961_setmulticastlist (struct net_device *dev)
429 write_rreg(dev->base_addr, CTRL1, 0); 429 write_rreg(dev->base_addr, CTRL1, 0);
430 } 430 }
431 431
432 spin_unlock_irqrestore(priv->chip_lock, flags); 432 spin_unlock_irqrestore(&priv->chip_lock, flags);
433} 433}
434 434
435static void am79c961_timeout(struct net_device *dev) 435static void am79c961_timeout(struct net_device *dev)
@@ -467,10 +467,10 @@ am79c961_sendpacket(struct sk_buff *skb, struct net_device *dev)
467 am_writeword (dev, hdraddr + 2, TMD_OWN|TMD_STP|TMD_ENP); 467 am_writeword (dev, hdraddr + 2, TMD_OWN|TMD_STP|TMD_ENP);
468 priv->txhead = head; 468 priv->txhead = head;
469 469
470 spin_lock_irqsave(priv->chip_lock, flags); 470 spin_lock_irqsave(&priv->chip_lock, flags);
471 write_rreg (dev->base_addr, CSR0, CSR0_TDMD|CSR0_IENA); 471 write_rreg (dev->base_addr, CSR0, CSR0_TDMD|CSR0_IENA);
472 dev->trans_start = jiffies; 472 dev->trans_start = jiffies;
473 spin_unlock_irqrestore(priv->chip_lock, flags); 473 spin_unlock_irqrestore(&priv->chip_lock, flags);
474 474
475 /* 475 /*
476 * If the next packet is owned by the ethernet device, 476 * If the next packet is owned by the ethernet device,
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h
index 6fcccef4cf3d..15a5cf0f676b 100644
--- a/drivers/net/bnx2x.h
+++ b/drivers/net/bnx2x.h
@@ -1,6 +1,6 @@
1/* bnx2x.h: Broadcom Everest network driver. 1/* bnx2x.h: Broadcom Everest network driver.
2 * 2 *
3 * Copyright (c) 2007-2008 Broadcom Corporation 3 * Copyright (c) 2007-2009 Broadcom Corporation
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
@@ -271,14 +271,7 @@ struct bnx2x_fastpath {
271 271
272#define bnx2x_fp(bp, nr, var) (bp->fp[nr].var) 272#define bnx2x_fp(bp, nr, var) (bp->fp[nr].var)
273 273
274#define BNX2X_HAS_TX_WORK(fp) \ 274#define BNX2X_HAS_WORK(fp) (bnx2x_has_rx_work(fp) || bnx2x_has_tx_work(fp))
275 ((fp->tx_pkt_prod != le16_to_cpu(*fp->tx_cons_sb)) || \
276 (fp->tx_pkt_prod != fp->tx_pkt_cons))
277
278#define BNX2X_HAS_RX_WORK(fp) \
279 (fp->rx_comp_cons != rx_cons_sb)
280
281#define BNX2X_HAS_WORK(fp) (BNX2X_HAS_RX_WORK(fp) || BNX2X_HAS_TX_WORK(fp))
282 275
283 276
284/* MC hsi */ 277/* MC hsi */
diff --git a/drivers/net/bnx2x_link.c b/drivers/net/bnx2x_link.c
index fefa6ab13064..aea26b4dc453 100644
--- a/drivers/net/bnx2x_link.c
+++ b/drivers/net/bnx2x_link.c
@@ -1,4 +1,4 @@
1/* Copyright 2008 Broadcom Corporation 1/* Copyright 2008-2009 Broadcom Corporation
2 * 2 *
3 * Unless you and Broadcom execute a separate written software license 3 * Unless you and Broadcom execute a separate written software license
4 * agreement governing use of this software, this software is licensed to you 4 * agreement governing use of this software, this software is licensed to you
@@ -317,6 +317,9 @@ static u8 bnx2x_emac_enable(struct link_params *params,
317 val &= ~0x810; 317 val &= ~0x810;
318 EMAC_WR(bp, EMAC_REG_EMAC_MODE, val); 318 EMAC_WR(bp, EMAC_REG_EMAC_MODE, val);
319 319
320 /* enable emac */
321 REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 1);
322
320 /* enable emac for jumbo packets */ 323 /* enable emac for jumbo packets */
321 EMAC_WR(bp, EMAC_REG_EMAC_RX_MTU_SIZE, 324 EMAC_WR(bp, EMAC_REG_EMAC_RX_MTU_SIZE,
322 (EMAC_RX_MTU_SIZE_JUMBO_ENA | 325 (EMAC_RX_MTU_SIZE_JUMBO_ENA |
@@ -1609,7 +1612,7 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1609 u32 gp_status) 1612 u32 gp_status)
1610{ 1613{
1611 struct bnx2x *bp = params->bp; 1614 struct bnx2x *bp = params->bp;
1612 1615 u16 new_line_speed;
1613 u8 rc = 0; 1616 u8 rc = 0;
1614 vars->link_status = 0; 1617 vars->link_status = 0;
1615 1618
@@ -1629,7 +1632,7 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1629 1632
1630 switch (gp_status & GP_STATUS_SPEED_MASK) { 1633 switch (gp_status & GP_STATUS_SPEED_MASK) {
1631 case GP_STATUS_10M: 1634 case GP_STATUS_10M:
1632 vars->line_speed = SPEED_10; 1635 new_line_speed = SPEED_10;
1633 if (vars->duplex == DUPLEX_FULL) 1636 if (vars->duplex == DUPLEX_FULL)
1634 vars->link_status |= LINK_10TFD; 1637 vars->link_status |= LINK_10TFD;
1635 else 1638 else
@@ -1637,7 +1640,7 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1637 break; 1640 break;
1638 1641
1639 case GP_STATUS_100M: 1642 case GP_STATUS_100M:
1640 vars->line_speed = SPEED_100; 1643 new_line_speed = SPEED_100;
1641 if (vars->duplex == DUPLEX_FULL) 1644 if (vars->duplex == DUPLEX_FULL)
1642 vars->link_status |= LINK_100TXFD; 1645 vars->link_status |= LINK_100TXFD;
1643 else 1646 else
@@ -1646,7 +1649,7 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1646 1649
1647 case GP_STATUS_1G: 1650 case GP_STATUS_1G:
1648 case GP_STATUS_1G_KX: 1651 case GP_STATUS_1G_KX:
1649 vars->line_speed = SPEED_1000; 1652 new_line_speed = SPEED_1000;
1650 if (vars->duplex == DUPLEX_FULL) 1653 if (vars->duplex == DUPLEX_FULL)
1651 vars->link_status |= LINK_1000TFD; 1654 vars->link_status |= LINK_1000TFD;
1652 else 1655 else
@@ -1654,7 +1657,7 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1654 break; 1657 break;
1655 1658
1656 case GP_STATUS_2_5G: 1659 case GP_STATUS_2_5G:
1657 vars->line_speed = SPEED_2500; 1660 new_line_speed = SPEED_2500;
1658 if (vars->duplex == DUPLEX_FULL) 1661 if (vars->duplex == DUPLEX_FULL)
1659 vars->link_status |= LINK_2500TFD; 1662 vars->link_status |= LINK_2500TFD;
1660 else 1663 else
@@ -1671,32 +1674,32 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1671 case GP_STATUS_10G_KX4: 1674 case GP_STATUS_10G_KX4:
1672 case GP_STATUS_10G_HIG: 1675 case GP_STATUS_10G_HIG:
1673 case GP_STATUS_10G_CX4: 1676 case GP_STATUS_10G_CX4:
1674 vars->line_speed = SPEED_10000; 1677 new_line_speed = SPEED_10000;
1675 vars->link_status |= LINK_10GTFD; 1678 vars->link_status |= LINK_10GTFD;
1676 break; 1679 break;
1677 1680
1678 case GP_STATUS_12G_HIG: 1681 case GP_STATUS_12G_HIG:
1679 vars->line_speed = SPEED_12000; 1682 new_line_speed = SPEED_12000;
1680 vars->link_status |= LINK_12GTFD; 1683 vars->link_status |= LINK_12GTFD;
1681 break; 1684 break;
1682 1685
1683 case GP_STATUS_12_5G: 1686 case GP_STATUS_12_5G:
1684 vars->line_speed = SPEED_12500; 1687 new_line_speed = SPEED_12500;
1685 vars->link_status |= LINK_12_5GTFD; 1688 vars->link_status |= LINK_12_5GTFD;
1686 break; 1689 break;
1687 1690
1688 case GP_STATUS_13G: 1691 case GP_STATUS_13G:
1689 vars->line_speed = SPEED_13000; 1692 new_line_speed = SPEED_13000;
1690 vars->link_status |= LINK_13GTFD; 1693 vars->link_status |= LINK_13GTFD;
1691 break; 1694 break;
1692 1695
1693 case GP_STATUS_15G: 1696 case GP_STATUS_15G:
1694 vars->line_speed = SPEED_15000; 1697 new_line_speed = SPEED_15000;
1695 vars->link_status |= LINK_15GTFD; 1698 vars->link_status |= LINK_15GTFD;
1696 break; 1699 break;
1697 1700
1698 case GP_STATUS_16G: 1701 case GP_STATUS_16G:
1699 vars->line_speed = SPEED_16000; 1702 new_line_speed = SPEED_16000;
1700 vars->link_status |= LINK_16GTFD; 1703 vars->link_status |= LINK_16GTFD;
1701 break; 1704 break;
1702 1705
@@ -1708,6 +1711,15 @@ static u8 bnx2x_link_settings_status(struct link_params *params,
1708 break; 1711 break;
1709 } 1712 }
1710 1713
1714 /* Upon link speed change set the NIG into drain mode.
1715 Comes to deals with possible FIFO glitch due to clk change
1716 when speed is decreased without link down indicator */
1717 if (new_line_speed != vars->line_speed) {
1718 REG_WR(bp, NIG_REG_EGRESS_DRAIN0_MODE
1719 + params->port*4, 0);
1720 msleep(1);
1721 }
1722 vars->line_speed = new_line_speed;
1711 vars->link_status |= LINK_STATUS_SERDES_LINK; 1723 vars->link_status |= LINK_STATUS_SERDES_LINK;
1712 1724
1713 if ((params->req_line_speed == SPEED_AUTO_NEG) && 1725 if ((params->req_line_speed == SPEED_AUTO_NEG) &&
@@ -3571,7 +3583,7 @@ static void bnx2x_set_xgxs_loopback(struct link_params *params,
3571 (MDIO_REG_BANK_CL73_IEEEB0 + 3583 (MDIO_REG_BANK_CL73_IEEEB0 +
3572 (MDIO_CL73_IEEEB0_CL73_AN_CONTROL & 0xf)), 3584 (MDIO_CL73_IEEEB0_CL73_AN_CONTROL & 0xf)),
3573 0x6041); 3585 0x6041);
3574 3586 msleep(200);
3575 /* set aer mmd back */ 3587 /* set aer mmd back */
3576 bnx2x_set_aer_mmd(params, vars); 3588 bnx2x_set_aer_mmd(params, vars);
3577 3589
@@ -3870,9 +3882,15 @@ static u8 bnx2x_link_initialize(struct link_params *params,
3870 } 3882 }
3871 3883
3872 if (vars->phy_flags & PHY_XGXS_FLAG) { 3884 if (vars->phy_flags & PHY_XGXS_FLAG) {
3873 if (params->req_line_speed && 3885 if ((params->req_line_speed &&
3874 ((params->req_line_speed == SPEED_100) || 3886 ((params->req_line_speed == SPEED_100) ||
3875 (params->req_line_speed == SPEED_10))) { 3887 (params->req_line_speed == SPEED_10))) ||
3888 (!params->req_line_speed &&
3889 (params->speed_cap_mask >=
3890 PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_FULL) &&
3891 (params->speed_cap_mask <
3892 PORT_HW_CFG_SPEED_CAPABILITY_D0_1G)
3893 )) {
3876 vars->phy_flags |= PHY_SGMII_FLAG; 3894 vars->phy_flags |= PHY_SGMII_FLAG;
3877 } else { 3895 } else {
3878 vars->phy_flags &= ~PHY_SGMII_FLAG; 3896 vars->phy_flags &= ~PHY_SGMII_FLAG;
@@ -4194,6 +4212,11 @@ static u8 bnx2x_update_link_down(struct link_params *params,
4194 /* activate nig drain */ 4212 /* activate nig drain */
4195 REG_WR(bp, NIG_REG_EGRESS_DRAIN0_MODE + port*4, 1); 4213 REG_WR(bp, NIG_REG_EGRESS_DRAIN0_MODE + port*4, 1);
4196 4214
4215 /* disable emac */
4216 REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 0);
4217
4218 msleep(10);
4219
4197 /* reset BigMac */ 4220 /* reset BigMac */
4198 bnx2x_bmac_rx_disable(bp, params->port); 4221 bnx2x_bmac_rx_disable(bp, params->port);
4199 REG_WR(bp, GRCBASE_MISC + 4222 REG_WR(bp, GRCBASE_MISC +
@@ -4238,6 +4261,7 @@ static u8 bnx2x_update_link_up(struct link_params *params,
4238 4261
4239 /* update shared memory */ 4262 /* update shared memory */
4240 bnx2x_update_mng(params, vars->link_status); 4263 bnx2x_update_mng(params, vars->link_status);
4264 msleep(20);
4241 return rc; 4265 return rc;
4242} 4266}
4243/* This function should called upon link interrupt */ 4267/* This function should called upon link interrupt */
@@ -4276,6 +4300,9 @@ u8 bnx2x_link_update(struct link_params *params, struct link_vars *vars)
4276 REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK10G + port*0x68), 4300 REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK10G + port*0x68),
4277 REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK_STATUS + port*0x68)); 4301 REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK_STATUS + port*0x68));
4278 4302
4303 /* disable emac */
4304 REG_WR(bp, NIG_REG_NIG_EMAC0_EN + port*4, 0);
4305
4279 ext_phy_type = XGXS_EXT_PHY_TYPE(params->ext_phy_config); 4306 ext_phy_type = XGXS_EXT_PHY_TYPE(params->ext_phy_config);
4280 4307
4281 /* Check external link change only for non-direct */ 4308 /* Check external link change only for non-direct */
@@ -4377,10 +4404,11 @@ static u8 bnx2x_8073_common_init_phy(struct bnx2x *bp, u32 shmem_base)
4377 ext_phy_addr[port], 4404 ext_phy_addr[port],
4378 MDIO_PMA_DEVAD, 4405 MDIO_PMA_DEVAD,
4379 MDIO_PMA_REG_ROM_VER1, &fw_ver1); 4406 MDIO_PMA_REG_ROM_VER1, &fw_ver1);
4380 if (fw_ver1 == 0) { 4407 if (fw_ver1 == 0 || fw_ver1 == 0x4321) {
4381 DP(NETIF_MSG_LINK, 4408 DP(NETIF_MSG_LINK,
4382 "bnx2x_8073_common_init_phy port %x " 4409 "bnx2x_8073_common_init_phy port %x:"
4383 "fw Download failed\n", port); 4410 "Download failed. fw version = 0x%x\n",
4411 port, fw_ver1);
4384 return -EINVAL; 4412 return -EINVAL;
4385 } 4413 }
4386 4414
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 7c533797c064..d3e7775a9ccf 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -1,6 +1,6 @@
1/* bnx2x_main.c: Broadcom Everest network driver. 1/* bnx2x_main.c: Broadcom Everest network driver.
2 * 2 *
3 * Copyright (c) 2007-2008 Broadcom Corporation 3 * Copyright (c) 2007-2009 Broadcom Corporation
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
@@ -57,8 +57,8 @@
57#include "bnx2x.h" 57#include "bnx2x.h"
58#include "bnx2x_init.h" 58#include "bnx2x_init.h"
59 59
60#define DRV_MODULE_VERSION "1.45.23" 60#define DRV_MODULE_VERSION "1.45.26"
61#define DRV_MODULE_RELDATE "2008/11/03" 61#define DRV_MODULE_RELDATE "2009/01/26"
62#define BNX2X_BC_VER 0x040200 62#define BNX2X_BC_VER 0x040200
63 63
64/* Time in jiffies before concluding the transmitter is hung */ 64/* Time in jiffies before concluding the transmitter is hung */
@@ -69,7 +69,7 @@ static char version[] __devinitdata =
69 DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; 69 DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
70 70
71MODULE_AUTHOR("Eliezer Tamir"); 71MODULE_AUTHOR("Eliezer Tamir");
72MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710 Driver"); 72MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710/57711/57711E Driver");
73MODULE_LICENSE("GPL"); 73MODULE_LICENSE("GPL");
74MODULE_VERSION(DRV_MODULE_VERSION); 74MODULE_VERSION(DRV_MODULE_VERSION);
75 75
@@ -733,6 +733,24 @@ static u16 bnx2x_ack_int(struct bnx2x *bp)
733 * fast path service functions 733 * fast path service functions
734 */ 734 */
735 735
736static inline int bnx2x_has_tx_work(struct bnx2x_fastpath *fp)
737{
738 u16 tx_cons_sb;
739
740 /* Tell compiler that status block fields can change */
741 barrier();
742 tx_cons_sb = le16_to_cpu(*fp->tx_cons_sb);
743 return (fp->tx_pkt_cons != tx_cons_sb);
744}
745
746static inline int bnx2x_has_tx_work_unload(struct bnx2x_fastpath *fp)
747{
748 /* Tell compiler that consumer and producer can change */
749 barrier();
750 return (fp->tx_pkt_prod != fp->tx_pkt_cons);
751
752}
753
736/* free skb in the packet ring at pos idx 754/* free skb in the packet ring at pos idx
737 * return idx of last bd freed 755 * return idx of last bd freed
738 */ 756 */
@@ -5137,12 +5155,21 @@ static void enable_blocks_attention(struct bnx2x *bp)
5137} 5155}
5138 5156
5139 5157
5158static void bnx2x_reset_common(struct bnx2x *bp)
5159{
5160 /* reset_common */
5161 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR,
5162 0xd3ffff7f);
5163 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, 0x1403);
5164}
5165
5140static int bnx2x_init_common(struct bnx2x *bp) 5166static int bnx2x_init_common(struct bnx2x *bp)
5141{ 5167{
5142 u32 val, i; 5168 u32 val, i;
5143 5169
5144 DP(BNX2X_MSG_MCP, "starting common init func %d\n", BP_FUNC(bp)); 5170 DP(BNX2X_MSG_MCP, "starting common init func %d\n", BP_FUNC(bp));
5145 5171
5172 bnx2x_reset_common(bp);
5146 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0xffffffff); 5173 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0xffffffff);
5147 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET, 0xfffc); 5174 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET, 0xfffc);
5148 5175
@@ -6123,8 +6150,8 @@ static void bnx2x_netif_start(struct bnx2x *bp)
6123static void bnx2x_netif_stop(struct bnx2x *bp, int disable_hw) 6150static void bnx2x_netif_stop(struct bnx2x *bp, int disable_hw)
6124{ 6151{
6125 bnx2x_int_disable_sync(bp, disable_hw); 6152 bnx2x_int_disable_sync(bp, disable_hw);
6153 bnx2x_napi_disable(bp);
6126 if (netif_running(bp->dev)) { 6154 if (netif_running(bp->dev)) {
6127 bnx2x_napi_disable(bp);
6128 netif_tx_disable(bp->dev); 6155 netif_tx_disable(bp->dev);
6129 bp->dev->trans_start = jiffies; /* prevent tx timeout */ 6156 bp->dev->trans_start = jiffies; /* prevent tx timeout */
6130 } 6157 }
@@ -6144,7 +6171,7 @@ static void bnx2x_set_mac_addr_e1(struct bnx2x *bp, int set)
6144 * multicast 64-127:port0 128-191:port1 6171 * multicast 64-127:port0 128-191:port1
6145 */ 6172 */
6146 config->hdr.length_6b = 2; 6173 config->hdr.length_6b = 2;
6147 config->hdr.offset = port ? 31 : 0; 6174 config->hdr.offset = port ? 32 : 0;
6148 config->hdr.client_id = BP_CL_ID(bp); 6175 config->hdr.client_id = BP_CL_ID(bp);
6149 config->hdr.reserved1 = 0; 6176 config->hdr.reserved1 = 0;
6150 6177
@@ -6308,7 +6335,7 @@ static void bnx2x_set_rx_mode(struct net_device *dev);
6308static int bnx2x_nic_load(struct bnx2x *bp, int load_mode) 6335static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6309{ 6336{
6310 u32 load_code; 6337 u32 load_code;
6311 int i, rc; 6338 int i, rc = 0;
6312#ifdef BNX2X_STOP_ON_ERROR 6339#ifdef BNX2X_STOP_ON_ERROR
6313 if (unlikely(bp->panic)) 6340 if (unlikely(bp->panic))
6314 return -EPERM; 6341 return -EPERM;
@@ -6316,48 +6343,6 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6316 6343
6317 bp->state = BNX2X_STATE_OPENING_WAIT4_LOAD; 6344 bp->state = BNX2X_STATE_OPENING_WAIT4_LOAD;
6318 6345
6319 /* Send LOAD_REQUEST command to MCP
6320 Returns the type of LOAD command:
6321 if it is the first port to be initialized
6322 common blocks should be initialized, otherwise - not
6323 */
6324 if (!BP_NOMCP(bp)) {
6325 load_code = bnx2x_fw_command(bp, DRV_MSG_CODE_LOAD_REQ);
6326 if (!load_code) {
6327 BNX2X_ERR("MCP response failure, aborting\n");
6328 return -EBUSY;
6329 }
6330 if (load_code == FW_MSG_CODE_DRV_LOAD_REFUSED)
6331 return -EBUSY; /* other port in diagnostic mode */
6332
6333 } else {
6334 int port = BP_PORT(bp);
6335
6336 DP(NETIF_MSG_IFUP, "NO MCP load counts before us %d, %d, %d\n",
6337 load_count[0], load_count[1], load_count[2]);
6338 load_count[0]++;
6339 load_count[1 + port]++;
6340 DP(NETIF_MSG_IFUP, "NO MCP new load counts %d, %d, %d\n",
6341 load_count[0], load_count[1], load_count[2]);
6342 if (load_count[0] == 1)
6343 load_code = FW_MSG_CODE_DRV_LOAD_COMMON;
6344 else if (load_count[1 + port] == 1)
6345 load_code = FW_MSG_CODE_DRV_LOAD_PORT;
6346 else
6347 load_code = FW_MSG_CODE_DRV_LOAD_FUNCTION;
6348 }
6349
6350 if ((load_code == FW_MSG_CODE_DRV_LOAD_COMMON) ||
6351 (load_code == FW_MSG_CODE_DRV_LOAD_PORT))
6352 bp->port.pmf = 1;
6353 else
6354 bp->port.pmf = 0;
6355 DP(NETIF_MSG_LINK, "pmf %d\n", bp->port.pmf);
6356
6357 /* if we can't use MSI-X we only need one fp,
6358 * so try to enable MSI-X with the requested number of fp's
6359 * and fallback to inta with one fp
6360 */
6361 if (use_inta) { 6346 if (use_inta) {
6362 bp->num_queues = 1; 6347 bp->num_queues = 1;
6363 6348
@@ -6372,7 +6357,15 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6372 else 6357 else
6373 bp->num_queues = 1; 6358 bp->num_queues = 1;
6374 6359
6375 if (bnx2x_enable_msix(bp)) { 6360 DP(NETIF_MSG_IFUP,
6361 "set number of queues to %d\n", bp->num_queues);
6362
6363 /* if we can't use MSI-X we only need one fp,
6364 * so try to enable MSI-X with the requested number of fp's
6365 * and fallback to MSI or legacy INTx with one fp
6366 */
6367 rc = bnx2x_enable_msix(bp);
6368 if (rc) {
6376 /* failed to enable MSI-X */ 6369 /* failed to enable MSI-X */
6377 bp->num_queues = 1; 6370 bp->num_queues = 1;
6378 if (use_multi) 6371 if (use_multi)
@@ -6380,8 +6373,6 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6380 " to enable MSI-X\n"); 6373 " to enable MSI-X\n");
6381 } 6374 }
6382 } 6375 }
6383 DP(NETIF_MSG_IFUP,
6384 "set number of queues to %d\n", bp->num_queues);
6385 6376
6386 if (bnx2x_alloc_mem(bp)) 6377 if (bnx2x_alloc_mem(bp))
6387 return -ENOMEM; 6378 return -ENOMEM;
@@ -6390,30 +6381,85 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6390 bnx2x_fp(bp, i, disable_tpa) = 6381 bnx2x_fp(bp, i, disable_tpa) =
6391 ((bp->flags & TPA_ENABLE_FLAG) == 0); 6382 ((bp->flags & TPA_ENABLE_FLAG) == 0);
6392 6383
6384 for_each_queue(bp, i)
6385 netif_napi_add(bp->dev, &bnx2x_fp(bp, i, napi),
6386 bnx2x_poll, 128);
6387
6388#ifdef BNX2X_STOP_ON_ERROR
6389 for_each_queue(bp, i) {
6390 struct bnx2x_fastpath *fp = &bp->fp[i];
6391
6392 fp->poll_no_work = 0;
6393 fp->poll_calls = 0;
6394 fp->poll_max_calls = 0;
6395 fp->poll_complete = 0;
6396 fp->poll_exit = 0;
6397 }
6398#endif
6399 bnx2x_napi_enable(bp);
6400
6393 if (bp->flags & USING_MSIX_FLAG) { 6401 if (bp->flags & USING_MSIX_FLAG) {
6394 rc = bnx2x_req_msix_irqs(bp); 6402 rc = bnx2x_req_msix_irqs(bp);
6395 if (rc) { 6403 if (rc) {
6396 pci_disable_msix(bp->pdev); 6404 pci_disable_msix(bp->pdev);
6397 goto load_error; 6405 goto load_error1;
6398 } 6406 }
6407 printk(KERN_INFO PFX "%s: using MSI-X\n", bp->dev->name);
6399 } else { 6408 } else {
6400 bnx2x_ack_int(bp); 6409 bnx2x_ack_int(bp);
6401 rc = bnx2x_req_irq(bp); 6410 rc = bnx2x_req_irq(bp);
6402 if (rc) { 6411 if (rc) {
6403 BNX2X_ERR("IRQ request failed, aborting\n"); 6412 BNX2X_ERR("IRQ request failed rc %d, aborting\n", rc);
6404 goto load_error; 6413 goto load_error1;
6405 } 6414 }
6406 } 6415 }
6407 6416
6408 for_each_queue(bp, i) 6417 /* Send LOAD_REQUEST command to MCP
6409 netif_napi_add(bp->dev, &bnx2x_fp(bp, i, napi), 6418 Returns the type of LOAD command:
6410 bnx2x_poll, 128); 6419 if it is the first port to be initialized
6420 common blocks should be initialized, otherwise - not
6421 */
6422 if (!BP_NOMCP(bp)) {
6423 load_code = bnx2x_fw_command(bp, DRV_MSG_CODE_LOAD_REQ);
6424 if (!load_code) {
6425 BNX2X_ERR("MCP response failure, aborting\n");
6426 rc = -EBUSY;
6427 goto load_error2;
6428 }
6429 if (load_code == FW_MSG_CODE_DRV_LOAD_REFUSED) {
6430 rc = -EBUSY; /* other port in diagnostic mode */
6431 goto load_error2;
6432 }
6433
6434 } else {
6435 int port = BP_PORT(bp);
6436
6437 DP(NETIF_MSG_IFUP, "NO MCP load counts before us %d, %d, %d\n",
6438 load_count[0], load_count[1], load_count[2]);
6439 load_count[0]++;
6440 load_count[1 + port]++;
6441 DP(NETIF_MSG_IFUP, "NO MCP new load counts %d, %d, %d\n",
6442 load_count[0], load_count[1], load_count[2]);
6443 if (load_count[0] == 1)
6444 load_code = FW_MSG_CODE_DRV_LOAD_COMMON;
6445 else if (load_count[1 + port] == 1)
6446 load_code = FW_MSG_CODE_DRV_LOAD_PORT;
6447 else
6448 load_code = FW_MSG_CODE_DRV_LOAD_FUNCTION;
6449 }
6450
6451 if ((load_code == FW_MSG_CODE_DRV_LOAD_COMMON) ||
6452 (load_code == FW_MSG_CODE_DRV_LOAD_PORT))
6453 bp->port.pmf = 1;
6454 else
6455 bp->port.pmf = 0;
6456 DP(NETIF_MSG_LINK, "pmf %d\n", bp->port.pmf);
6411 6457
6412 /* Initialize HW */ 6458 /* Initialize HW */
6413 rc = bnx2x_init_hw(bp, load_code); 6459 rc = bnx2x_init_hw(bp, load_code);
6414 if (rc) { 6460 if (rc) {
6415 BNX2X_ERR("HW init failed, aborting\n"); 6461 BNX2X_ERR("HW init failed, aborting\n");
6416 goto load_int_disable; 6462 goto load_error2;
6417 } 6463 }
6418 6464
6419 /* Setup NIC internals and enable interrupts */ 6465 /* Setup NIC internals and enable interrupts */
@@ -6425,7 +6471,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6425 if (!load_code) { 6471 if (!load_code) {
6426 BNX2X_ERR("MCP response failure, aborting\n"); 6472 BNX2X_ERR("MCP response failure, aborting\n");
6427 rc = -EBUSY; 6473 rc = -EBUSY;
6428 goto load_rings_free; 6474 goto load_error3;
6429 } 6475 }
6430 } 6476 }
6431 6477
@@ -6434,7 +6480,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6434 rc = bnx2x_setup_leading(bp); 6480 rc = bnx2x_setup_leading(bp);
6435 if (rc) { 6481 if (rc) {
6436 BNX2X_ERR("Setup leading failed!\n"); 6482 BNX2X_ERR("Setup leading failed!\n");
6437 goto load_netif_stop; 6483 goto load_error3;
6438 } 6484 }
6439 6485
6440 if (CHIP_IS_E1H(bp)) 6486 if (CHIP_IS_E1H(bp))
@@ -6447,7 +6493,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6447 for_each_nondefault_queue(bp, i) { 6493 for_each_nondefault_queue(bp, i) {
6448 rc = bnx2x_setup_multi(bp, i); 6494 rc = bnx2x_setup_multi(bp, i);
6449 if (rc) 6495 if (rc)
6450 goto load_netif_stop; 6496 goto load_error3;
6451 } 6497 }
6452 6498
6453 if (CHIP_IS_E1(bp)) 6499 if (CHIP_IS_E1(bp))
@@ -6463,18 +6509,18 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6463 case LOAD_NORMAL: 6509 case LOAD_NORMAL:
6464 /* Tx queue should be only reenabled */ 6510 /* Tx queue should be only reenabled */
6465 netif_wake_queue(bp->dev); 6511 netif_wake_queue(bp->dev);
6512 /* Initialize the receive filter. */
6466 bnx2x_set_rx_mode(bp->dev); 6513 bnx2x_set_rx_mode(bp->dev);
6467 break; 6514 break;
6468 6515
6469 case LOAD_OPEN: 6516 case LOAD_OPEN:
6470 netif_start_queue(bp->dev); 6517 netif_start_queue(bp->dev);
6518 /* Initialize the receive filter. */
6471 bnx2x_set_rx_mode(bp->dev); 6519 bnx2x_set_rx_mode(bp->dev);
6472 if (bp->flags & USING_MSIX_FLAG)
6473 printk(KERN_INFO PFX "%s: using MSI-X\n",
6474 bp->dev->name);
6475 break; 6520 break;
6476 6521
6477 case LOAD_DIAG: 6522 case LOAD_DIAG:
6523 /* Initialize the receive filter. */
6478 bnx2x_set_rx_mode(bp->dev); 6524 bnx2x_set_rx_mode(bp->dev);
6479 bp->state = BNX2X_STATE_DIAG; 6525 bp->state = BNX2X_STATE_DIAG;
6480 break; 6526 break;
@@ -6492,20 +6538,25 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6492 6538
6493 return 0; 6539 return 0;
6494 6540
6495load_netif_stop: 6541load_error3:
6496 bnx2x_napi_disable(bp); 6542 bnx2x_int_disable_sync(bp, 1);
6497load_rings_free: 6543 if (!BP_NOMCP(bp)) {
6544 bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP);
6545 bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE);
6546 }
6547 bp->port.pmf = 0;
6498 /* Free SKBs, SGEs, TPA pool and driver internals */ 6548 /* Free SKBs, SGEs, TPA pool and driver internals */
6499 bnx2x_free_skbs(bp); 6549 bnx2x_free_skbs(bp);
6500 for_each_queue(bp, i) 6550 for_each_queue(bp, i)
6501 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE); 6551 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE);
6502load_int_disable: 6552load_error2:
6503 bnx2x_int_disable_sync(bp, 1);
6504 /* Release IRQs */ 6553 /* Release IRQs */
6505 bnx2x_free_irq(bp); 6554 bnx2x_free_irq(bp);
6506load_error: 6555load_error1:
6556 bnx2x_napi_disable(bp);
6557 for_each_queue(bp, i)
6558 netif_napi_del(&bnx2x_fp(bp, i, napi));
6507 bnx2x_free_mem(bp); 6559 bnx2x_free_mem(bp);
6508 bp->port.pmf = 0;
6509 6560
6510 /* TBD we really need to reset the chip 6561 /* TBD we really need to reset the chip
6511 if we want to recover from this */ 6562 if we want to recover from this */
@@ -6578,6 +6629,7 @@ static int bnx2x_stop_leading(struct bnx2x *bp)
6578 } 6629 }
6579 cnt--; 6630 cnt--;
6580 msleep(1); 6631 msleep(1);
6632 rmb(); /* Refresh the dsb_sp_prod */
6581 } 6633 }
6582 bp->state = BNX2X_STATE_CLOSING_WAIT4_UNLOAD; 6634 bp->state = BNX2X_STATE_CLOSING_WAIT4_UNLOAD;
6583 bp->fp[0].state = BNX2X_FP_STATE_CLOSED; 6635 bp->fp[0].state = BNX2X_FP_STATE_CLOSED;
@@ -6629,14 +6681,6 @@ static void bnx2x_reset_port(struct bnx2x *bp)
6629 /* TODO: Close Doorbell port? */ 6681 /* TODO: Close Doorbell port? */
6630} 6682}
6631 6683
6632static void bnx2x_reset_common(struct bnx2x *bp)
6633{
6634 /* reset_common */
6635 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR,
6636 0xd3ffff7f);
6637 REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, 0x1403);
6638}
6639
6640static void bnx2x_reset_chip(struct bnx2x *bp, u32 reset_code) 6684static void bnx2x_reset_chip(struct bnx2x *bp, u32 reset_code)
6641{ 6685{
6642 DP(BNX2X_MSG_MCP, "function %d reset_code %x\n", 6686 DP(BNX2X_MSG_MCP, "function %d reset_code %x\n",
@@ -6677,20 +6721,22 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6677 bnx2x_set_storm_rx_mode(bp); 6721 bnx2x_set_storm_rx_mode(bp);
6678 6722
6679 bnx2x_netif_stop(bp, 1); 6723 bnx2x_netif_stop(bp, 1);
6680 if (!netif_running(bp->dev)) 6724
6681 bnx2x_napi_disable(bp);
6682 del_timer_sync(&bp->timer); 6725 del_timer_sync(&bp->timer);
6683 SHMEM_WR(bp, func_mb[BP_FUNC(bp)].drv_pulse_mb, 6726 SHMEM_WR(bp, func_mb[BP_FUNC(bp)].drv_pulse_mb,
6684 (DRV_PULSE_ALWAYS_ALIVE | bp->fw_drv_pulse_wr_seq)); 6727 (DRV_PULSE_ALWAYS_ALIVE | bp->fw_drv_pulse_wr_seq));
6685 bnx2x_stats_handle(bp, STATS_EVENT_STOP); 6728 bnx2x_stats_handle(bp, STATS_EVENT_STOP);
6686 6729
6730 /* Release IRQs */
6731 bnx2x_free_irq(bp);
6732
6687 /* Wait until tx fast path tasks complete */ 6733 /* Wait until tx fast path tasks complete */
6688 for_each_queue(bp, i) { 6734 for_each_queue(bp, i) {
6689 struct bnx2x_fastpath *fp = &bp->fp[i]; 6735 struct bnx2x_fastpath *fp = &bp->fp[i];
6690 6736
6691 cnt = 1000; 6737 cnt = 1000;
6692 smp_rmb(); 6738 smp_rmb();
6693 while (BNX2X_HAS_TX_WORK(fp)) { 6739 while (bnx2x_has_tx_work_unload(fp)) {
6694 6740
6695 bnx2x_tx_int(fp, 1000); 6741 bnx2x_tx_int(fp, 1000);
6696 if (!cnt) { 6742 if (!cnt) {
@@ -6711,9 +6757,6 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6711 /* Give HW time to discard old tx messages */ 6757 /* Give HW time to discard old tx messages */
6712 msleep(1); 6758 msleep(1);
6713 6759
6714 /* Release IRQs */
6715 bnx2x_free_irq(bp);
6716
6717 if (CHIP_IS_E1(bp)) { 6760 if (CHIP_IS_E1(bp)) {
6718 struct mac_configuration_cmd *config = 6761 struct mac_configuration_cmd *config =
6719 bnx2x_sp(bp, mcast_config); 6762 bnx2x_sp(bp, mcast_config);
@@ -6822,6 +6865,8 @@ unload_error:
6822 bnx2x_free_skbs(bp); 6865 bnx2x_free_skbs(bp);
6823 for_each_queue(bp, i) 6866 for_each_queue(bp, i)
6824 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE); 6867 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE);
6868 for_each_queue(bp, i)
6869 netif_napi_del(&bnx2x_fp(bp, i, napi));
6825 bnx2x_free_mem(bp); 6870 bnx2x_free_mem(bp);
6826 6871
6827 bp->state = BNX2X_STATE_CLOSED; 6872 bp->state = BNX2X_STATE_CLOSED;
@@ -6874,10 +6919,6 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6874 */ 6919 */
6875 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI); 6920 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6876 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST); 6921 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST);
6877 if (val == 0x7)
6878 REG_WR(bp, DORQ_REG_NORM_CID_OFST, 0);
6879 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6880
6881 if (val == 0x7) { 6922 if (val == 0x7) {
6882 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS; 6923 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6883 /* save our func */ 6924 /* save our func */
@@ -6885,6 +6926,9 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6885 u32 swap_en; 6926 u32 swap_en;
6886 u32 swap_val; 6927 u32 swap_val;
6887 6928
6929 /* clear the UNDI indication */
6930 REG_WR(bp, DORQ_REG_NORM_CID_OFST, 0);
6931
6888 BNX2X_DEV_INFO("UNDI is active! reset device\n"); 6932 BNX2X_DEV_INFO("UNDI is active! reset device\n");
6889 6933
6890 /* try unload UNDI on port 0 */ 6934 /* try unload UNDI on port 0 */
@@ -6910,6 +6954,9 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6910 bnx2x_fw_command(bp, reset_code); 6954 bnx2x_fw_command(bp, reset_code);
6911 } 6955 }
6912 6956
6957 /* now it's safe to release the lock */
6958 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6959
6913 REG_WR(bp, (BP_PORT(bp) ? HC_REG_CONFIG_1 : 6960 REG_WR(bp, (BP_PORT(bp) ? HC_REG_CONFIG_1 :
6914 HC_REG_CONFIG_0), 0x1000); 6961 HC_REG_CONFIG_0), 0x1000);
6915 6962
@@ -6954,7 +7001,9 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6954 bp->fw_seq = 7001 bp->fw_seq =
6955 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) & 7002 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) &
6956 DRV_MSG_SEQ_NUMBER_MASK); 7003 DRV_MSG_SEQ_NUMBER_MASK);
6957 } 7004
7005 } else
7006 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6958 } 7007 }
6959} 7008}
6960 7009
@@ -6971,7 +7020,7 @@ static void __devinit bnx2x_get_common_hwinfo(struct bnx2x *bp)
6971 id |= ((val & 0xf) << 12); 7020 id |= ((val & 0xf) << 12);
6972 val = REG_RD(bp, MISC_REG_CHIP_METAL); 7021 val = REG_RD(bp, MISC_REG_CHIP_METAL);
6973 id |= ((val & 0xff) << 4); 7022 id |= ((val & 0xff) << 4);
6974 REG_RD(bp, MISC_REG_BOND_ID); 7023 val = REG_RD(bp, MISC_REG_BOND_ID);
6975 id |= (val & 0xf); 7024 id |= (val & 0xf);
6976 bp->common.chip_id = id; 7025 bp->common.chip_id = id;
6977 bp->link_params.chip_id = bp->common.chip_id; 7026 bp->link_params.chip_id = bp->common.chip_id;
@@ -8103,6 +8152,9 @@ static int bnx2x_get_eeprom(struct net_device *dev,
8103 struct bnx2x *bp = netdev_priv(dev); 8152 struct bnx2x *bp = netdev_priv(dev);
8104 int rc; 8153 int rc;
8105 8154
8155 if (!netif_running(dev))
8156 return -EAGAIN;
8157
8106 DP(BNX2X_MSG_NVM, "ethtool_eeprom: cmd %d\n" 8158 DP(BNX2X_MSG_NVM, "ethtool_eeprom: cmd %d\n"
8107 DP_LEVEL " magic 0x%x offset 0x%x (%d) len 0x%x (%d)\n", 8159 DP_LEVEL " magic 0x%x offset 0x%x (%d) len 0x%x (%d)\n",
8108 eeprom->cmd, eeprom->magic, eeprom->offset, eeprom->offset, 8160 eeprom->cmd, eeprom->magic, eeprom->offset, eeprom->offset,
@@ -8705,18 +8757,17 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode, u8 link_up)
8705 8757
8706 if (loopback_mode == BNX2X_MAC_LOOPBACK) { 8758 if (loopback_mode == BNX2X_MAC_LOOPBACK) {
8707 bp->link_params.loopback_mode = LOOPBACK_BMAC; 8759 bp->link_params.loopback_mode = LOOPBACK_BMAC;
8708 bnx2x_acquire_phy_lock(bp);
8709 bnx2x_phy_init(&bp->link_params, &bp->link_vars); 8760 bnx2x_phy_init(&bp->link_params, &bp->link_vars);
8710 bnx2x_release_phy_lock(bp);
8711 8761
8712 } else if (loopback_mode == BNX2X_PHY_LOOPBACK) { 8762 } else if (loopback_mode == BNX2X_PHY_LOOPBACK) {
8763 u16 cnt = 1000;
8713 bp->link_params.loopback_mode = LOOPBACK_XGXS_10; 8764 bp->link_params.loopback_mode = LOOPBACK_XGXS_10;
8714 bnx2x_acquire_phy_lock(bp);
8715 bnx2x_phy_init(&bp->link_params, &bp->link_vars); 8765 bnx2x_phy_init(&bp->link_params, &bp->link_vars);
8716 bnx2x_release_phy_lock(bp);
8717 /* wait until link state is restored */ 8766 /* wait until link state is restored */
8718 bnx2x_wait_for_link(bp, link_up); 8767 if (link_up)
8719 8768 while (cnt-- && bnx2x_test_link(&bp->link_params,
8769 &bp->link_vars))
8770 msleep(10);
8720 } else 8771 } else
8721 return -EINVAL; 8772 return -EINVAL;
8722 8773
@@ -8822,6 +8873,7 @@ static int bnx2x_test_loopback(struct bnx2x *bp, u8 link_up)
8822 return BNX2X_LOOPBACK_FAILED; 8873 return BNX2X_LOOPBACK_FAILED;
8823 8874
8824 bnx2x_netif_stop(bp, 1); 8875 bnx2x_netif_stop(bp, 1);
8876 bnx2x_acquire_phy_lock(bp);
8825 8877
8826 if (bnx2x_run_loopback(bp, BNX2X_MAC_LOOPBACK, link_up)) { 8878 if (bnx2x_run_loopback(bp, BNX2X_MAC_LOOPBACK, link_up)) {
8827 DP(NETIF_MSG_PROBE, "MAC loopback failed\n"); 8879 DP(NETIF_MSG_PROBE, "MAC loopback failed\n");
@@ -8833,6 +8885,7 @@ static int bnx2x_test_loopback(struct bnx2x *bp, u8 link_up)
8833 rc |= BNX2X_PHY_LOOPBACK_FAILED; 8885 rc |= BNX2X_PHY_LOOPBACK_FAILED;
8834 } 8886 }
8835 8887
8888 bnx2x_release_phy_lock(bp);
8836 bnx2x_netif_start(bp); 8889 bnx2x_netif_start(bp);
8837 8890
8838 return rc; 8891 return rc;
@@ -8906,7 +8959,10 @@ static int bnx2x_test_intr(struct bnx2x *bp)
8906 return -ENODEV; 8959 return -ENODEV;
8907 8960
8908 config->hdr.length_6b = 0; 8961 config->hdr.length_6b = 0;
8909 config->hdr.offset = 0; 8962 if (CHIP_IS_E1(bp))
8963 config->hdr.offset = (BP_PORT(bp) ? 32 : 0);
8964 else
8965 config->hdr.offset = BP_FUNC(bp);
8910 config->hdr.client_id = BP_CL_ID(bp); 8966 config->hdr.client_id = BP_CL_ID(bp);
8911 config->hdr.reserved1 = 0; 8967 config->hdr.reserved1 = 0;
8912 8968
@@ -9271,6 +9327,18 @@ static int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state)
9271 return 0; 9327 return 0;
9272} 9328}
9273 9329
9330static inline int bnx2x_has_rx_work(struct bnx2x_fastpath *fp)
9331{
9332 u16 rx_cons_sb;
9333
9334 /* Tell compiler that status block fields can change */
9335 barrier();
9336 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb);
9337 if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT)
9338 rx_cons_sb++;
9339 return (fp->rx_comp_cons != rx_cons_sb);
9340}
9341
9274/* 9342/*
9275 * net_device service functions 9343 * net_device service functions
9276 */ 9344 */
@@ -9281,7 +9349,6 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9281 napi); 9349 napi);
9282 struct bnx2x *bp = fp->bp; 9350 struct bnx2x *bp = fp->bp;
9283 int work_done = 0; 9351 int work_done = 0;
9284 u16 rx_cons_sb;
9285 9352
9286#ifdef BNX2X_STOP_ON_ERROR 9353#ifdef BNX2X_STOP_ON_ERROR
9287 if (unlikely(bp->panic)) 9354 if (unlikely(bp->panic))
@@ -9294,19 +9361,12 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9294 9361
9295 bnx2x_update_fpsb_idx(fp); 9362 bnx2x_update_fpsb_idx(fp);
9296 9363
9297 if (BNX2X_HAS_TX_WORK(fp)) 9364 if (bnx2x_has_tx_work(fp))
9298 bnx2x_tx_int(fp, budget); 9365 bnx2x_tx_int(fp, budget);
9299 9366
9300 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb); 9367 if (bnx2x_has_rx_work(fp))
9301 if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT)
9302 rx_cons_sb++;
9303 if (BNX2X_HAS_RX_WORK(fp))
9304 work_done = bnx2x_rx_int(fp, budget); 9368 work_done = bnx2x_rx_int(fp, budget);
9305
9306 rmb(); /* BNX2X_HAS_WORK() reads the status block */ 9369 rmb(); /* BNX2X_HAS_WORK() reads the status block */
9307 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb);
9308 if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT)
9309 rx_cons_sb++;
9310 9370
9311 /* must not complete if we consumed full budget */ 9371 /* must not complete if we consumed full budget */
9312 if ((work_done < budget) && !BNX2X_HAS_WORK(fp)) { 9372 if ((work_done < budget) && !BNX2X_HAS_WORK(fp)) {
@@ -9417,6 +9477,7 @@ static inline u32 bnx2x_xmit_type(struct bnx2x *bp, struct sk_buff *skb)
9417 return rc; 9477 return rc;
9418} 9478}
9419 9479
9480#if (MAX_SKB_FRAGS >= MAX_FETCH_BD - 3)
9420/* check if packet requires linearization (packet is too fragmented) */ 9481/* check if packet requires linearization (packet is too fragmented) */
9421static int bnx2x_pkt_req_lin(struct bnx2x *bp, struct sk_buff *skb, 9482static int bnx2x_pkt_req_lin(struct bnx2x *bp, struct sk_buff *skb,
9422 u32 xmit_type) 9483 u32 xmit_type)
@@ -9494,6 +9555,7 @@ exit_lbl:
9494 9555
9495 return to_copy; 9556 return to_copy;
9496} 9557}
9558#endif
9497 9559
9498/* called with netif_tx_lock 9560/* called with netif_tx_lock
9499 * bnx2x_tx_int() runs without netif_tx_lock unless it needs to call 9561 * bnx2x_tx_int() runs without netif_tx_lock unless it needs to call
@@ -9534,6 +9596,7 @@ static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
9534 skb->ip_summed, skb->protocol, ipv6_hdr(skb)->nexthdr, 9596 skb->ip_summed, skb->protocol, ipv6_hdr(skb)->nexthdr,
9535 ip_hdr(skb)->protocol, skb_shinfo(skb)->gso_type, xmit_type); 9597 ip_hdr(skb)->protocol, skb_shinfo(skb)->gso_type, xmit_type);
9536 9598
9599#if (MAX_SKB_FRAGS >= MAX_FETCH_BD - 3)
9537 /* First, check if we need to linearize the skb 9600 /* First, check if we need to linearize the skb
9538 (due to FW restrictions) */ 9601 (due to FW restrictions) */
9539 if (bnx2x_pkt_req_lin(bp, skb, xmit_type)) { 9602 if (bnx2x_pkt_req_lin(bp, skb, xmit_type)) {
@@ -9546,6 +9609,7 @@ static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
9546 return NETDEV_TX_OK; 9609 return NETDEV_TX_OK;
9547 } 9610 }
9548 } 9611 }
9612#endif
9549 9613
9550 /* 9614 /*
9551 Please read carefully. First we use one BD which we mark as start, 9615 Please read carefully. First we use one BD which we mark as start,
@@ -9776,6 +9840,8 @@ static int bnx2x_open(struct net_device *dev)
9776{ 9840{
9777 struct bnx2x *bp = netdev_priv(dev); 9841 struct bnx2x *bp = netdev_priv(dev);
9778 9842
9843 netif_carrier_off(dev);
9844
9779 bnx2x_set_power_state(bp, PCI_D0); 9845 bnx2x_set_power_state(bp, PCI_D0);
9780 9846
9781 return bnx2x_nic_load(bp, LOAD_OPEN); 9847 return bnx2x_nic_load(bp, LOAD_OPEN);
@@ -9859,7 +9925,7 @@ static void bnx2x_set_rx_mode(struct net_device *dev)
9859 for (; i < old; i++) { 9925 for (; i < old; i++) {
9860 if (CAM_IS_INVALID(config-> 9926 if (CAM_IS_INVALID(config->
9861 config_table[i])) { 9927 config_table[i])) {
9862 i--; /* already invalidated */ 9928 /* already invalidated */
9863 break; 9929 break;
9864 } 9930 }
9865 /* invalidate */ 9931 /* invalidate */
@@ -10269,22 +10335,18 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
10269 return rc; 10335 return rc;
10270 } 10336 }
10271 10337
10272 rc = register_netdev(dev);
10273 if (rc) {
10274 dev_err(&pdev->dev, "Cannot register net device\n");
10275 goto init_one_exit;
10276 }
10277
10278 pci_set_drvdata(pdev, dev); 10338 pci_set_drvdata(pdev, dev);
10279 10339
10280 rc = bnx2x_init_bp(bp); 10340 rc = bnx2x_init_bp(bp);
10341 if (rc)
10342 goto init_one_exit;
10343
10344 rc = register_netdev(dev);
10281 if (rc) { 10345 if (rc) {
10282 unregister_netdev(dev); 10346 dev_err(&pdev->dev, "Cannot register net device\n");
10283 goto init_one_exit; 10347 goto init_one_exit;
10284 } 10348 }
10285 10349
10286 netif_carrier_off(dev);
10287
10288 bp->common.name = board_info[ent->driver_data].name; 10350 bp->common.name = board_info[ent->driver_data].name;
10289 printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx," 10351 printk(KERN_INFO "%s: %s (%c%d) PCI-E x%d %s found at mem %lx,"
10290 " IRQ %d, ", dev->name, bp->common.name, 10352 " IRQ %d, ", dev->name, bp->common.name,
@@ -10432,6 +10494,8 @@ static int bnx2x_eeh_nic_unload(struct bnx2x *bp)
10432 bnx2x_free_skbs(bp); 10494 bnx2x_free_skbs(bp);
10433 for_each_queue(bp, i) 10495 for_each_queue(bp, i)
10434 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE); 10496 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE);
10497 for_each_queue(bp, i)
10498 netif_napi_del(&bnx2x_fp(bp, i, napi));
10435 bnx2x_free_mem(bp); 10499 bnx2x_free_mem(bp);
10436 10500
10437 bp->state = BNX2X_STATE_CLOSED; 10501 bp->state = BNX2X_STATE_CLOSED;
diff --git a/drivers/net/bnx2x_reg.h b/drivers/net/bnx2x_reg.h
index a67b0c358ae4..d084e5fc4b51 100644
--- a/drivers/net/bnx2x_reg.h
+++ b/drivers/net/bnx2x_reg.h
@@ -1,6 +1,6 @@
1/* bnx2x_reg.h: Broadcom Everest network driver. 1/* bnx2x_reg.h: Broadcom Everest network driver.
2 * 2 *
3 * Copyright (c) 2007-2008 Broadcom Corporation 3 * Copyright (c) 2007-2009 Broadcom Corporation
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 14f9fb3e8795..379a1324db4e 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -2104,6 +2104,7 @@ static void init_lro_mgr(struct sge_qset *qs, struct net_lro_mgr *lro_mgr)
2104{ 2104{
2105 lro_mgr->dev = qs->netdev; 2105 lro_mgr->dev = qs->netdev;
2106 lro_mgr->features = LRO_F_NAPI; 2106 lro_mgr->features = LRO_F_NAPI;
2107 lro_mgr->frag_align_pad = NET_IP_ALIGN;
2107 lro_mgr->ip_summed = CHECKSUM_UNNECESSARY; 2108 lro_mgr->ip_summed = CHECKSUM_UNNECESSARY;
2108 lro_mgr->ip_summed_aggr = CHECKSUM_UNNECESSARY; 2109 lro_mgr->ip_summed_aggr = CHECKSUM_UNNECESSARY;
2109 lro_mgr->max_desc = T3_MAX_LRO_SES; 2110 lro_mgr->max_desc = T3_MAX_LRO_SES;
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index cf43ee743b3c..0890162953e9 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -981,11 +981,15 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw)
981 ew32(PBA_ECC, reg); 981 ew32(PBA_ECC, reg);
982 } 982 }
983 983
984 /* PCI-Ex Control Register */ 984 /* PCI-Ex Control Registers */
985 if (hw->mac.type == e1000_82574) { 985 if (hw->mac.type == e1000_82574) {
986 reg = er32(GCR); 986 reg = er32(GCR);
987 reg |= (1 << 22); 987 reg |= (1 << 22);
988 ew32(GCR, reg); 988 ew32(GCR, reg);
989
990 reg = er32(GCR2);
991 reg |= 1;
992 ew32(GCR2, reg);
989 } 993 }
990 994
991 return; 995 return;
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h
index f25e961c6b3b..2d4ce0492df0 100644
--- a/drivers/net/e1000e/hw.h
+++ b/drivers/net/e1000e/hw.h
@@ -206,6 +206,7 @@ enum e1e_registers {
206 E1000_MANC2H = 0x05860, /* Management Control To Host - RW */ 206 E1000_MANC2H = 0x05860, /* Management Control To Host - RW */
207 E1000_SW_FW_SYNC = 0x05B5C, /* Software-Firmware Synchronization - RW */ 207 E1000_SW_FW_SYNC = 0x05B5C, /* Software-Firmware Synchronization - RW */
208 E1000_GCR = 0x05B00, /* PCI-Ex Control */ 208 E1000_GCR = 0x05B00, /* PCI-Ex Control */
209 E1000_GCR2 = 0x05B64, /* PCI-Ex Control #2 */
209 E1000_FACTPS = 0x05B30, /* Function Active and Power State to MNG */ 210 E1000_FACTPS = 0x05B30, /* Function Active and Power State to MNG */
210 E1000_SWSM = 0x05B50, /* SW Semaphore */ 211 E1000_SWSM = 0x05B50, /* SW Semaphore */
211 E1000_FWSM = 0x05B54, /* FW Semaphore */ 212 E1000_FWSM = 0x05B54, /* FW Semaphore */
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index ea530673236e..3f7eab42aef1 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1423,15 +1423,11 @@ static void gfar_vlan_rx_register(struct net_device *dev,
1423{ 1423{
1424 struct gfar_private *priv = netdev_priv(dev); 1424 struct gfar_private *priv = netdev_priv(dev);
1425 unsigned long flags; 1425 unsigned long flags;
1426 struct vlan_group *old_grp;
1427 u32 tempval; 1426 u32 tempval;
1428 1427
1429 spin_lock_irqsave(&priv->rxlock, flags); 1428 spin_lock_irqsave(&priv->rxlock, flags);
1430 1429
1431 old_grp = priv->vlgrp; 1430 priv->vlgrp = grp;
1432
1433 if (old_grp == grp)
1434 return;
1435 1431
1436 if (grp) { 1432 if (grp) {
1437 /* Enable VLAN tag insertion */ 1433 /* Enable VLAN tag insertion */
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index acef3c65cd2c..d2f4d5f508b7 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -318,6 +318,9 @@ static void ixgbe_update_rx_dca(struct ixgbe_adapter *adapter,
318 rxctrl |= dca3_get_tag(&adapter->pdev->dev, cpu); 318 rxctrl |= dca3_get_tag(&adapter->pdev->dev, cpu);
319 rxctrl |= IXGBE_DCA_RXCTRL_DESC_DCA_EN; 319 rxctrl |= IXGBE_DCA_RXCTRL_DESC_DCA_EN;
320 rxctrl |= IXGBE_DCA_RXCTRL_HEAD_DCA_EN; 320 rxctrl |= IXGBE_DCA_RXCTRL_HEAD_DCA_EN;
321 rxctrl &= ~(IXGBE_DCA_RXCTRL_DESC_RRO_EN);
322 rxctrl &= ~(IXGBE_DCA_RXCTRL_DESC_WRO_EN |
323 IXGBE_DCA_RXCTRL_DESC_HSRO_EN);
321 IXGBE_WRITE_REG(&adapter->hw, IXGBE_DCA_RXCTRL(q), rxctrl); 324 IXGBE_WRITE_REG(&adapter->hw, IXGBE_DCA_RXCTRL(q), rxctrl);
322 rx_ring->cpu = cpu; 325 rx_ring->cpu = cpu;
323 } 326 }
@@ -1741,6 +1744,32 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
1741 IXGBE_WRITE_REG(hw, IXGBE_RXCSUM, rxcsum); 1744 IXGBE_WRITE_REG(hw, IXGBE_RXCSUM, rxcsum);
1742} 1745}
1743 1746
1747static void ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
1748{
1749 struct ixgbe_adapter *adapter = netdev_priv(netdev);
1750 struct ixgbe_hw *hw = &adapter->hw;
1751
1752 /* add VID to filter table */
1753 hw->mac.ops.set_vfta(&adapter->hw, vid, 0, true);
1754}
1755
1756static void ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
1757{
1758 struct ixgbe_adapter *adapter = netdev_priv(netdev);
1759 struct ixgbe_hw *hw = &adapter->hw;
1760
1761 if (!test_bit(__IXGBE_DOWN, &adapter->state))
1762 ixgbe_irq_disable(adapter);
1763
1764 vlan_group_set_device(adapter->vlgrp, vid, NULL);
1765
1766 if (!test_bit(__IXGBE_DOWN, &adapter->state))
1767 ixgbe_irq_enable(adapter);
1768
1769 /* remove VID from filter table */
1770 hw->mac.ops.set_vfta(&adapter->hw, vid, 0, false);
1771}
1772
1744static void ixgbe_vlan_rx_register(struct net_device *netdev, 1773static void ixgbe_vlan_rx_register(struct net_device *netdev,
1745 struct vlan_group *grp) 1774 struct vlan_group *grp)
1746{ 1775{
@@ -1760,6 +1789,7 @@ static void ixgbe_vlan_rx_register(struct net_device *netdev,
1760 ctrl |= IXGBE_VLNCTRL_VME; 1789 ctrl |= IXGBE_VLNCTRL_VME;
1761 ctrl &= ~IXGBE_VLNCTRL_CFIEN; 1790 ctrl &= ~IXGBE_VLNCTRL_CFIEN;
1762 IXGBE_WRITE_REG(&adapter->hw, IXGBE_VLNCTRL, ctrl); 1791 IXGBE_WRITE_REG(&adapter->hw, IXGBE_VLNCTRL, ctrl);
1792 ixgbe_vlan_rx_add_vid(netdev, 0);
1763 1793
1764 if (grp) { 1794 if (grp) {
1765 /* enable VLAN tag insert/strip */ 1795 /* enable VLAN tag insert/strip */
@@ -1773,32 +1803,6 @@ static void ixgbe_vlan_rx_register(struct net_device *netdev,
1773 ixgbe_irq_enable(adapter); 1803 ixgbe_irq_enable(adapter);
1774} 1804}
1775 1805
1776static void ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
1777{
1778 struct ixgbe_adapter *adapter = netdev_priv(netdev);
1779 struct ixgbe_hw *hw = &adapter->hw;
1780
1781 /* add VID to filter table */
1782 hw->mac.ops.set_vfta(&adapter->hw, vid, 0, true);
1783}
1784
1785static void ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
1786{
1787 struct ixgbe_adapter *adapter = netdev_priv(netdev);
1788 struct ixgbe_hw *hw = &adapter->hw;
1789
1790 if (!test_bit(__IXGBE_DOWN, &adapter->state))
1791 ixgbe_irq_disable(adapter);
1792
1793 vlan_group_set_device(adapter->vlgrp, vid, NULL);
1794
1795 if (!test_bit(__IXGBE_DOWN, &adapter->state))
1796 ixgbe_irq_enable(adapter);
1797
1798 /* remove VID from filter table */
1799 hw->mac.ops.set_vfta(&adapter->hw, vid, 0, false);
1800}
1801
1802static void ixgbe_restore_vlan(struct ixgbe_adapter *adapter) 1806static void ixgbe_restore_vlan(struct ixgbe_adapter *adapter)
1803{ 1807{
1804 ixgbe_vlan_rx_register(adapter->netdev, adapter->vlgrp); 1808 ixgbe_vlan_rx_register(adapter->netdev, adapter->vlgrp);
@@ -2074,6 +2078,9 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
2074 2078
2075 ixgbe_irq_enable(adapter); 2079 ixgbe_irq_enable(adapter);
2076 2080
2081 /* enable transmits */
2082 netif_tx_start_all_queues(netdev);
2083
2077 /* bring the link up in the watchdog, this could race with our first 2084 /* bring the link up in the watchdog, this could race with our first
2078 * link up interrupt but shouldn't be a problem */ 2085 * link up interrupt but shouldn't be a problem */
2079 adapter->flags |= IXGBE_FLAG_NEED_LINK_UPDATE; 2086 adapter->flags |= IXGBE_FLAG_NEED_LINK_UPDATE;
@@ -3475,7 +3482,6 @@ static void ixgbe_watchdog_task(struct work_struct *work)
3475 (FLOW_TX ? "TX" : "None")))); 3482 (FLOW_TX ? "TX" : "None"))));
3476 3483
3477 netif_carrier_on(netdev); 3484 netif_carrier_on(netdev);
3478 netif_tx_wake_all_queues(netdev);
3479 } else { 3485 } else {
3480 /* Force detection of hung controller */ 3486 /* Force detection of hung controller */
3481 adapter->detect_tx_hung = true; 3487 adapter->detect_tx_hung = true;
@@ -3487,7 +3493,6 @@ static void ixgbe_watchdog_task(struct work_struct *work)
3487 printk(KERN_INFO "ixgbe: %s NIC Link is Down\n", 3493 printk(KERN_INFO "ixgbe: %s NIC Link is Down\n",
3488 netdev->name); 3494 netdev->name);
3489 netif_carrier_off(netdev); 3495 netif_carrier_off(netdev);
3490 netif_tx_stop_all_queues(netdev);
3491 } 3496 }
3492 } 3497 }
3493 3498
@@ -4218,7 +4223,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
4218 } 4223 }
4219 4224
4220 netif_carrier_off(netdev); 4225 netif_carrier_off(netdev);
4221 netif_tx_stop_all_queues(netdev);
4222 4226
4223 strcpy(netdev->name, "eth%d"); 4227 strcpy(netdev->name, "eth%d");
4224 err = register_netdev(netdev); 4228 err = register_netdev(netdev);
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h
index 83a11ff9ffd1..f011c57c9205 100644
--- a/drivers/net/ixgbe/ixgbe_type.h
+++ b/drivers/net/ixgbe/ixgbe_type.h
@@ -404,6 +404,9 @@
404#define IXGBE_DCA_RXCTRL_DESC_DCA_EN (1 << 5) /* DCA Rx Desc enable */ 404#define IXGBE_DCA_RXCTRL_DESC_DCA_EN (1 << 5) /* DCA Rx Desc enable */
405#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN (1 << 6) /* DCA Rx Desc header enable */ 405#define IXGBE_DCA_RXCTRL_HEAD_DCA_EN (1 << 6) /* DCA Rx Desc header enable */
406#define IXGBE_DCA_RXCTRL_DATA_DCA_EN (1 << 7) /* DCA Rx Desc payload enable */ 406#define IXGBE_DCA_RXCTRL_DATA_DCA_EN (1 << 7) /* DCA Rx Desc payload enable */
407#define IXGBE_DCA_RXCTRL_DESC_RRO_EN (1 << 9) /* DCA Rx rd Desc Relax Order */
408#define IXGBE_DCA_RXCTRL_DESC_WRO_EN (1 << 13) /* DCA Rx wr Desc Relax Order */
409#define IXGBE_DCA_RXCTRL_DESC_HSRO_EN (1 << 15) /* DCA Rx Split Header RO */
407 410
408#define IXGBE_DCA_TXCTRL_CPUID_MASK 0x0000001F /* Tx CPUID Mask */ 411#define IXGBE_DCA_TXCTRL_CPUID_MASK 0x0000001F /* Tx CPUID Mask */
409#define IXGBE_DCA_TXCTRL_DESC_DCA_EN (1 << 5) /* DCA Tx Desc enable */ 412#define IXGBE_DCA_TXCTRL_DESC_DCA_EN (1 << 5) /* DCA Tx Desc enable */
diff --git a/drivers/net/korina.c b/drivers/net/korina.c
index 1d6e48e13366..75010cac76ac 100644
--- a/drivers/net/korina.c
+++ b/drivers/net/korina.c
@@ -416,6 +416,9 @@ static int korina_rx(struct net_device *dev, int limit)
416 if (devcs & ETH_RX_MP) 416 if (devcs & ETH_RX_MP)
417 dev->stats.multicast++; 417 dev->stats.multicast++;
418 418
419 /* 16 bit align */
420 skb_reserve(skb_new, 2);
421
419 lp->rx_skb[lp->rx_next_done] = skb_new; 422 lp->rx_skb[lp->rx_next_done] = skb_new;
420 } 423 }
421 424
@@ -740,6 +743,7 @@ static struct ethtool_ops netdev_ethtool_ops = {
740static void korina_alloc_ring(struct net_device *dev) 743static void korina_alloc_ring(struct net_device *dev)
741{ 744{
742 struct korina_private *lp = netdev_priv(dev); 745 struct korina_private *lp = netdev_priv(dev);
746 struct sk_buff *skb;
743 int i; 747 int i;
744 748
745 /* Initialize the transmit descriptors */ 749 /* Initialize the transmit descriptors */
@@ -755,8 +759,6 @@ static void korina_alloc_ring(struct net_device *dev)
755 759
756 /* Initialize the receive descriptors */ 760 /* Initialize the receive descriptors */
757 for (i = 0; i < KORINA_NUM_RDS; i++) { 761 for (i = 0; i < KORINA_NUM_RDS; i++) {
758 struct sk_buff *skb = lp->rx_skb[i];
759
760 skb = dev_alloc_skb(KORINA_RBSIZE + 2); 762 skb = dev_alloc_skb(KORINA_RBSIZE + 2);
761 if (!skb) 763 if (!skb)
762 break; 764 break;
@@ -769,11 +771,12 @@ static void korina_alloc_ring(struct net_device *dev)
769 lp->rd_ring[i].link = CPHYSADDR(&lp->rd_ring[i+1]); 771 lp->rd_ring[i].link = CPHYSADDR(&lp->rd_ring[i+1]);
770 } 772 }
771 773
772 /* loop back */ 774 /* loop back receive descriptors, so the last
773 lp->rd_ring[i].link = CPHYSADDR(&lp->rd_ring[0]); 775 * descriptor points to the first one */
774 lp->rx_next_done = 0; 776 lp->rd_ring[i - 1].link = CPHYSADDR(&lp->rd_ring[0]);
777 lp->rd_ring[i - 1].control |= DMA_DESC_COD;
775 778
776 lp->rd_ring[i].control |= DMA_DESC_COD; 779 lp->rx_next_done = 0;
777 lp->rx_chain_head = 0; 780 lp->rx_chain_head = 0;
778 lp->rx_chain_tail = 0; 781 lp->rx_chain_tail = 0;
779 lp->rx_chain_status = desc_empty; 782 lp->rx_chain_status = desc_empty;
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index a04da4ecaa88..f6c4936e2fa8 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -321,6 +321,10 @@ static void macb_tx(struct macb *bp)
321 printk(KERN_ERR "%s: TX underrun, resetting buffers\n", 321 printk(KERN_ERR "%s: TX underrun, resetting buffers\n",
322 bp->dev->name); 322 bp->dev->name);
323 323
324 /* Transfer ongoing, disable transmitter, to avoid confusion */
325 if (status & MACB_BIT(TGO))
326 macb_writel(bp, NCR, macb_readl(bp, NCR) & ~MACB_BIT(TE));
327
324 head = bp->tx_head; 328 head = bp->tx_head;
325 329
326 /*Mark all the buffer as used to avoid sending a lost buffer*/ 330 /*Mark all the buffer as used to avoid sending a lost buffer*/
@@ -343,6 +347,10 @@ static void macb_tx(struct macb *bp)
343 } 347 }
344 348
345 bp->tx_head = bp->tx_tail = 0; 349 bp->tx_head = bp->tx_tail = 0;
350
351 /* Enable the transmitter again */
352 if (status & MACB_BIT(TGO))
353 macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TE));
346 } 354 }
347 355
348 if (!(status & MACB_BIT(COMP))) 356 if (!(status & MACB_BIT(COMP)))
diff --git a/drivers/net/mlx4/profile.c b/drivers/net/mlx4/profile.c
index 919fb9eb1b62..cebdf3243ca1 100644
--- a/drivers/net/mlx4/profile.c
+++ b/drivers/net/mlx4/profile.c
@@ -107,9 +107,9 @@ u64 mlx4_make_profile(struct mlx4_dev *dev,
107 profile[MLX4_RES_AUXC].num = request->num_qp; 107 profile[MLX4_RES_AUXC].num = request->num_qp;
108 profile[MLX4_RES_SRQ].num = request->num_srq; 108 profile[MLX4_RES_SRQ].num = request->num_srq;
109 profile[MLX4_RES_CQ].num = request->num_cq; 109 profile[MLX4_RES_CQ].num = request->num_cq;
110 profile[MLX4_RES_EQ].num = min(dev_cap->max_eqs, 110 profile[MLX4_RES_EQ].num = min_t(unsigned, dev_cap->max_eqs,
111 dev_cap->reserved_eqs + 111 dev_cap->reserved_eqs +
112 num_possible_cpus() + 1); 112 num_possible_cpus() + 1);
113 profile[MLX4_RES_DMPT].num = request->num_mpt; 113 profile[MLX4_RES_DMPT].num = request->num_mpt;
114 profile[MLX4_RES_CMPT].num = MLX4_NUM_CMPTS; 114 profile[MLX4_RES_CMPT].num = MLX4_NUM_CMPTS;
115 profile[MLX4_RES_MTT].num = request->num_mtt; 115 profile[MLX4_RES_MTT].num = request->num_mtt;
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 7253a499d9c8..5f31bbb614af 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -136,21 +136,23 @@ static char mv643xx_eth_driver_version[] = "1.4";
136/* 136/*
137 * SDMA configuration register. 137 * SDMA configuration register.
138 */ 138 */
139#define RX_BURST_SIZE_4_64BIT (2 << 1)
139#define RX_BURST_SIZE_16_64BIT (4 << 1) 140#define RX_BURST_SIZE_16_64BIT (4 << 1)
140#define BLM_RX_NO_SWAP (1 << 4) 141#define BLM_RX_NO_SWAP (1 << 4)
141#define BLM_TX_NO_SWAP (1 << 5) 142#define BLM_TX_NO_SWAP (1 << 5)
143#define TX_BURST_SIZE_4_64BIT (2 << 22)
142#define TX_BURST_SIZE_16_64BIT (4 << 22) 144#define TX_BURST_SIZE_16_64BIT (4 << 22)
143 145
144#if defined(__BIG_ENDIAN) 146#if defined(__BIG_ENDIAN)
145#define PORT_SDMA_CONFIG_DEFAULT_VALUE \ 147#define PORT_SDMA_CONFIG_DEFAULT_VALUE \
146 (RX_BURST_SIZE_16_64BIT | \ 148 (RX_BURST_SIZE_4_64BIT | \
147 TX_BURST_SIZE_16_64BIT) 149 TX_BURST_SIZE_4_64BIT)
148#elif defined(__LITTLE_ENDIAN) 150#elif defined(__LITTLE_ENDIAN)
149#define PORT_SDMA_CONFIG_DEFAULT_VALUE \ 151#define PORT_SDMA_CONFIG_DEFAULT_VALUE \
150 (RX_BURST_SIZE_16_64BIT | \ 152 (RX_BURST_SIZE_4_64BIT | \
151 BLM_RX_NO_SWAP | \ 153 BLM_RX_NO_SWAP | \
152 BLM_TX_NO_SWAP | \ 154 BLM_TX_NO_SWAP | \
153 TX_BURST_SIZE_16_64BIT) 155 TX_BURST_SIZE_4_64BIT)
154#else 156#else
155#error One of __BIG_ENDIAN or __LITTLE_ENDIAN must be defined 157#error One of __BIG_ENDIAN or __LITTLE_ENDIAN must be defined
156#endif 158#endif
@@ -1594,7 +1596,7 @@ oom:
1594 entry = addr_crc(a); 1596 entry = addr_crc(a);
1595 } 1597 }
1596 1598
1597 table[entry >> 2] |= 1 << (entry & 3); 1599 table[entry >> 2] |= 1 << (8 * (entry & 3));
1598 } 1600 }
1599 1601
1600 for (i = 0; i < 0x100; i += 4) { 1602 for (i = 0; i < 0x100; i += 4) {
@@ -2210,6 +2212,7 @@ static int mv643xx_eth_stop(struct net_device *dev)
2210 struct mv643xx_eth_private *mp = netdev_priv(dev); 2212 struct mv643xx_eth_private *mp = netdev_priv(dev);
2211 int i; 2213 int i;
2212 2214
2215 wrlp(mp, INT_MASK_EXT, 0x00000000);
2213 wrlp(mp, INT_MASK, 0x00000000); 2216 wrlp(mp, INT_MASK, 0x00000000);
2214 rdlp(mp, INT_MASK); 2217 rdlp(mp, INT_MASK);
2215 2218
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 6bb71b687f7b..e9c1296b267e 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1,7 +1,7 @@
1/************************************************************************* 1/*************************************************************************
2 * myri10ge.c: Myricom Myri-10G Ethernet driver. 2 * myri10ge.c: Myricom Myri-10G Ethernet driver.
3 * 3 *
4 * Copyright (C) 2005 - 2007 Myricom, Inc. 4 * Copyright (C) 2005 - 2009 Myricom, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
@@ -75,7 +75,7 @@
75#include "myri10ge_mcp.h" 75#include "myri10ge_mcp.h"
76#include "myri10ge_mcp_gen_header.h" 76#include "myri10ge_mcp_gen_header.h"
77 77
78#define MYRI10GE_VERSION_STR "1.4.4-1.398" 78#define MYRI10GE_VERSION_STR "1.4.4-1.401"
79 79
80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); 80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
81MODULE_AUTHOR("Maintainer: help@myri.com"); 81MODULE_AUTHOR("Maintainer: help@myri.com");
@@ -3786,7 +3786,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
3786 if (status != 0) { 3786 if (status != 0) {
3787 dev_err(&pdev->dev, "Error %d writing PCI_EXP_DEVCTL\n", 3787 dev_err(&pdev->dev, "Error %d writing PCI_EXP_DEVCTL\n",
3788 status); 3788 status);
3789 goto abort_with_netdev; 3789 goto abort_with_enabled;
3790 } 3790 }
3791 3791
3792 pci_set_master(pdev); 3792 pci_set_master(pdev);
@@ -3801,13 +3801,13 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
3801 } 3801 }
3802 if (status != 0) { 3802 if (status != 0) {
3803 dev_err(&pdev->dev, "Error %d setting DMA mask\n", status); 3803 dev_err(&pdev->dev, "Error %d setting DMA mask\n", status);
3804 goto abort_with_netdev; 3804 goto abort_with_enabled;
3805 } 3805 }
3806 (void)pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK); 3806 (void)pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK);
3807 mgp->cmd = dma_alloc_coherent(&pdev->dev, sizeof(*mgp->cmd), 3807 mgp->cmd = dma_alloc_coherent(&pdev->dev, sizeof(*mgp->cmd),
3808 &mgp->cmd_bus, GFP_KERNEL); 3808 &mgp->cmd_bus, GFP_KERNEL);
3809 if (mgp->cmd == NULL) 3809 if (mgp->cmd == NULL)
3810 goto abort_with_netdev; 3810 goto abort_with_enabled;
3811 3811
3812 mgp->board_span = pci_resource_len(pdev, 0); 3812 mgp->board_span = pci_resource_len(pdev, 0);
3813 mgp->iomem_base = pci_resource_start(pdev, 0); 3813 mgp->iomem_base = pci_resource_start(pdev, 0);
@@ -3943,8 +3943,10 @@ abort_with_mtrr:
3943 dma_free_coherent(&pdev->dev, sizeof(*mgp->cmd), 3943 dma_free_coherent(&pdev->dev, sizeof(*mgp->cmd),
3944 mgp->cmd, mgp->cmd_bus); 3944 mgp->cmd, mgp->cmd_bus);
3945 3945
3946abort_with_netdev: 3946abort_with_enabled:
3947 pci_disable_device(pdev);
3947 3948
3949abort_with_netdev:
3948 free_netdev(netdev); 3950 free_netdev(netdev);
3949 return status; 3951 return status;
3950} 3952}
@@ -3990,6 +3992,7 @@ static void myri10ge_remove(struct pci_dev *pdev)
3990 mgp->cmd, mgp->cmd_bus); 3992 mgp->cmd, mgp->cmd_bus);
3991 3993
3992 free_netdev(netdev); 3994 free_netdev(netdev);
3995 pci_disable_device(pdev);
3993 pci_set_drvdata(pdev, NULL); 3996 pci_set_drvdata(pdev, NULL);
3994} 3997}
3995 3998
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index c11c568fd7db..a75a31005fd3 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -146,7 +146,7 @@
146 146
147#define MAX_RX_BUFFER_LENGTH 1760 147#define MAX_RX_BUFFER_LENGTH 1760
148#define MAX_RX_JUMBO_BUFFER_LENGTH 8062 148#define MAX_RX_JUMBO_BUFFER_LENGTH 8062
149#define MAX_RX_LRO_BUFFER_LENGTH ((48*1024)-512) 149#define MAX_RX_LRO_BUFFER_LENGTH (8062)
150#define RX_DMA_MAP_LEN (MAX_RX_BUFFER_LENGTH - 2) 150#define RX_DMA_MAP_LEN (MAX_RX_BUFFER_LENGTH - 2)
151#define RX_JUMBO_DMA_MAP_LEN \ 151#define RX_JUMBO_DMA_MAP_LEN \
152 (MAX_RX_JUMBO_BUFFER_LENGTH - 2) 152 (MAX_RX_JUMBO_BUFFER_LENGTH - 2)
@@ -207,11 +207,11 @@
207 207
208#define MAX_CMD_DESCRIPTORS 4096 208#define MAX_CMD_DESCRIPTORS 4096
209#define MAX_RCV_DESCRIPTORS 16384 209#define MAX_RCV_DESCRIPTORS 16384
210#define MAX_CMD_DESCRIPTORS_HOST (MAX_CMD_DESCRIPTORS / 4) 210#define MAX_CMD_DESCRIPTORS_HOST 1024
211#define MAX_RCV_DESCRIPTORS_1G (MAX_RCV_DESCRIPTORS / 4) 211#define MAX_RCV_DESCRIPTORS_1G 2048
212#define MAX_RCV_DESCRIPTORS_10G 8192 212#define MAX_RCV_DESCRIPTORS_10G 4096
213#define MAX_JUMBO_RCV_DESCRIPTORS 1024 213#define MAX_JUMBO_RCV_DESCRIPTORS 512
214#define MAX_LRO_RCV_DESCRIPTORS 64 214#define MAX_LRO_RCV_DESCRIPTORS 8
215#define MAX_RCVSTATUS_DESCRIPTORS MAX_RCV_DESCRIPTORS 215#define MAX_RCVSTATUS_DESCRIPTORS MAX_RCV_DESCRIPTORS
216#define MAX_JUMBO_RCV_DESC MAX_JUMBO_RCV_DESCRIPTORS 216#define MAX_JUMBO_RCV_DESC MAX_JUMBO_RCV_DESCRIPTORS
217#define MAX_RCV_DESC MAX_RCV_DESCRIPTORS 217#define MAX_RCV_DESC MAX_RCV_DESCRIPTORS
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c
index c0bd40fcf708..0894a7be0225 100644
--- a/drivers/net/netxen/netxen_nic_ethtool.c
+++ b/drivers/net/netxen/netxen_nic_ethtool.c
@@ -561,7 +561,10 @@ netxen_nic_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ring)
561 } 561 }
562 ring->tx_pending = adapter->max_tx_desc_count; 562 ring->tx_pending = adapter->max_tx_desc_count;
563 563
564 ring->rx_max_pending = MAX_RCV_DESCRIPTORS; 564 if (adapter->ahw.board_type == NETXEN_NIC_GBE)
565 ring->rx_max_pending = MAX_RCV_DESCRIPTORS_1G;
566 else
567 ring->rx_max_pending = MAX_RCV_DESCRIPTORS_10G;
565 ring->tx_max_pending = MAX_CMD_DESCRIPTORS_HOST; 568 ring->tx_max_pending = MAX_CMD_DESCRIPTORS_HOST;
566 ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS; 569 ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS;
567 ring->rx_mini_max_pending = 0; 570 ring->rx_mini_max_pending = 0;
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index d854f07ef4d3..645d384fe87e 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -735,17 +735,18 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
735 735
736 SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); 736 SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops);
737 737
738 /* ScatterGather support */ 738 netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
739 netdev->features = NETIF_F_SG; 739 netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO);
740 netdev->features |= NETIF_F_IP_CSUM; 740
741 netdev->features |= NETIF_F_TSO;
742 if (NX_IS_REVISION_P3(revision_id)) { 741 if (NX_IS_REVISION_P3(revision_id)) {
743 netdev->features |= NETIF_F_IPV6_CSUM; 742 netdev->features |= (NETIF_F_IPV6_CSUM | NETIF_F_TSO6);
744 netdev->features |= NETIF_F_TSO6; 743 netdev->vlan_features |= (NETIF_F_IPV6_CSUM | NETIF_F_TSO6);
745 } 744 }
746 745
747 if (adapter->pci_using_dac) 746 if (adapter->pci_using_dac) {
748 netdev->features |= NETIF_F_HIGHDMA; 747 netdev->features |= NETIF_F_HIGHDMA;
748 netdev->vlan_features |= NETIF_F_HIGHDMA;
749 }
749 750
750 /* 751 /*
751 * Set the CRB window to invalid. If any register in window 0 is 752 * Set the CRB window to invalid. If any register in window 0 is
@@ -1166,6 +1167,14 @@ static bool netxen_tso_check(struct net_device *netdev,
1166{ 1167{
1167 bool tso = false; 1168 bool tso = false;
1168 u8 opcode = TX_ETHER_PKT; 1169 u8 opcode = TX_ETHER_PKT;
1170 __be16 protocol = skb->protocol;
1171 u16 flags = 0;
1172
1173 if (protocol == __constant_htons(ETH_P_8021Q)) {
1174 struct vlan_ethhdr *vh = (struct vlan_ethhdr *)skb->data;
1175 protocol = vh->h_vlan_encapsulated_proto;
1176 flags = FLAGS_VLAN_TAGGED;
1177 }
1169 1178
1170 if ((netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)) && 1179 if ((netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)) &&
1171 skb_shinfo(skb)->gso_size > 0) { 1180 skb_shinfo(skb)->gso_size > 0) {
@@ -1174,21 +1183,21 @@ static bool netxen_tso_check(struct net_device *netdev,
1174 desc->total_hdr_length = 1183 desc->total_hdr_length =
1175 skb_transport_offset(skb) + tcp_hdrlen(skb); 1184 skb_transport_offset(skb) + tcp_hdrlen(skb);
1176 1185
1177 opcode = (skb->protocol == htons(ETH_P_IPV6)) ? 1186 opcode = (protocol == __constant_htons(ETH_P_IPV6)) ?
1178 TX_TCP_LSO6 : TX_TCP_LSO; 1187 TX_TCP_LSO6 : TX_TCP_LSO;
1179 tso = true; 1188 tso = true;
1180 1189
1181 } else if (skb->ip_summed == CHECKSUM_PARTIAL) { 1190 } else if (skb->ip_summed == CHECKSUM_PARTIAL) {
1182 u8 l4proto; 1191 u8 l4proto;
1183 1192
1184 if (skb->protocol == htons(ETH_P_IP)) { 1193 if (protocol == __constant_htons(ETH_P_IP)) {
1185 l4proto = ip_hdr(skb)->protocol; 1194 l4proto = ip_hdr(skb)->protocol;
1186 1195
1187 if (l4proto == IPPROTO_TCP) 1196 if (l4proto == IPPROTO_TCP)
1188 opcode = TX_TCP_PKT; 1197 opcode = TX_TCP_PKT;
1189 else if(l4proto == IPPROTO_UDP) 1198 else if(l4proto == IPPROTO_UDP)
1190 opcode = TX_UDP_PKT; 1199 opcode = TX_UDP_PKT;
1191 } else if (skb->protocol == htons(ETH_P_IPV6)) { 1200 } else if (protocol == __constant_htons(ETH_P_IPV6)) {
1192 l4proto = ipv6_hdr(skb)->nexthdr; 1201 l4proto = ipv6_hdr(skb)->nexthdr;
1193 1202
1194 if (l4proto == IPPROTO_TCP) 1203 if (l4proto == IPPROTO_TCP)
@@ -1199,7 +1208,7 @@ static bool netxen_tso_check(struct net_device *netdev,
1199 } 1208 }
1200 desc->tcp_hdr_offset = skb_transport_offset(skb); 1209 desc->tcp_hdr_offset = skb_transport_offset(skb);
1201 desc->ip_hdr_offset = skb_network_offset(skb); 1210 desc->ip_hdr_offset = skb_network_offset(skb);
1202 netxen_set_tx_flags_opcode(desc, 0, opcode); 1211 netxen_set_tx_flags_opcode(desc, flags, opcode);
1203 return tso; 1212 return tso;
1204} 1213}
1205 1214
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 11adf6ed4628..811a637695ca 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -296,9 +296,8 @@ static int mdio_bus_suspend(struct device * dev, pm_message_t state)
296 struct phy_driver *phydrv = to_phy_driver(drv); 296 struct phy_driver *phydrv = to_phy_driver(drv);
297 struct phy_device *phydev = to_phy_device(dev); 297 struct phy_device *phydev = to_phy_device(dev);
298 298
299 if ((!device_may_wakeup(phydev->dev.parent)) && 299 if (drv && phydrv->suspend && !device_may_wakeup(phydev->dev.parent))
300 (phydrv && phydrv->suspend)) 300 ret = phydrv->suspend(phydev);
301 ret = phydrv->suspend(phydev);
302 301
303 return ret; 302 return ret;
304} 303}
@@ -310,8 +309,7 @@ static int mdio_bus_resume(struct device * dev)
310 struct phy_driver *phydrv = to_phy_driver(drv); 309 struct phy_driver *phydrv = to_phy_driver(drv);
311 struct phy_device *phydev = to_phy_device(dev); 310 struct phy_device *phydev = to_phy_device(dev);
312 311
313 if ((!device_may_wakeup(phydev->dev.parent)) && 312 if (drv && phydrv->resume && !device_may_wakeup(phydev->dev.parent))
314 (phydrv && phydrv->resume))
315 ret = phydrv->resume(phydev); 313 ret = phydrv->resume(phydev);
316 314
317 return ret; 315 return ret;
diff --git a/drivers/net/phy/smsc.c b/drivers/net/phy/smsc.c
index c05d38d46350..1387187543e4 100644
--- a/drivers/net/phy/smsc.c
+++ b/drivers/net/phy/smsc.c
@@ -81,6 +81,9 @@ static struct phy_driver lan83c185_driver = {
81 .ack_interrupt = smsc_phy_ack_interrupt, 81 .ack_interrupt = smsc_phy_ack_interrupt,
82 .config_intr = smsc_phy_config_intr, 82 .config_intr = smsc_phy_config_intr,
83 83
84 .suspend = genphy_suspend,
85 .resume = genphy_resume,
86
84 .driver = { .owner = THIS_MODULE, } 87 .driver = { .owner = THIS_MODULE, }
85}; 88};
86 89
@@ -102,6 +105,9 @@ static struct phy_driver lan8187_driver = {
102 .ack_interrupt = smsc_phy_ack_interrupt, 105 .ack_interrupt = smsc_phy_ack_interrupt,
103 .config_intr = smsc_phy_config_intr, 106 .config_intr = smsc_phy_config_intr,
104 107
108 .suspend = genphy_suspend,
109 .resume = genphy_resume,
110
105 .driver = { .owner = THIS_MODULE, } 111 .driver = { .owner = THIS_MODULE, }
106}; 112};
107 113
@@ -123,6 +129,9 @@ static struct phy_driver lan8700_driver = {
123 .ack_interrupt = smsc_phy_ack_interrupt, 129 .ack_interrupt = smsc_phy_ack_interrupt,
124 .config_intr = smsc_phy_config_intr, 130 .config_intr = smsc_phy_config_intr,
125 131
132 .suspend = genphy_suspend,
133 .resume = genphy_resume,
134
126 .driver = { .owner = THIS_MODULE, } 135 .driver = { .owner = THIS_MODULE, }
127}; 136};
128 137
@@ -144,6 +153,9 @@ static struct phy_driver lan911x_int_driver = {
144 .ack_interrupt = smsc_phy_ack_interrupt, 153 .ack_interrupt = smsc_phy_ack_interrupt,
145 .config_intr = smsc_phy_config_intr, 154 .config_intr = smsc_phy_config_intr,
146 155
156 .suspend = genphy_suspend,
157 .resume = genphy_resume,
158
147 .driver = { .owner = THIS_MODULE, } 159 .driver = { .owner = THIS_MODULE, }
148}; 160};
149 161
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 5e2dbaee125b..8b3f84685387 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -7535,11 +7535,58 @@ static int tg3_test_msi(struct tg3 *tp)
7535 return err; 7535 return err;
7536} 7536}
7537 7537
7538static int tg3_request_firmware(struct tg3 *tp)
7539{
7540 const __be32 *fw_data;
7541
7542 if (request_firmware(&tp->fw, tp->fw_needed, &tp->pdev->dev)) {
7543 printk(KERN_ERR "%s: Failed to load firmware \"%s\"\n",
7544 tp->dev->name, tp->fw_needed);
7545 return -ENOENT;
7546 }
7547
7548 fw_data = (void *)tp->fw->data;
7549
7550 /* Firmware blob starts with version numbers, followed by
7551 * start address and _full_ length including BSS sections
7552 * (which must be longer than the actual data, of course
7553 */
7554
7555 tp->fw_len = be32_to_cpu(fw_data[2]); /* includes bss */
7556 if (tp->fw_len < (tp->fw->size - 12)) {
7557 printk(KERN_ERR "%s: bogus length %d in \"%s\"\n",
7558 tp->dev->name, tp->fw_len, tp->fw_needed);
7559 release_firmware(tp->fw);
7560 tp->fw = NULL;
7561 return -EINVAL;
7562 }
7563
7564 /* We no longer need firmware; we have it. */
7565 tp->fw_needed = NULL;
7566 return 0;
7567}
7568
7538static int tg3_open(struct net_device *dev) 7569static int tg3_open(struct net_device *dev)
7539{ 7570{
7540 struct tg3 *tp = netdev_priv(dev); 7571 struct tg3 *tp = netdev_priv(dev);
7541 int err; 7572 int err;
7542 7573
7574 if (tp->fw_needed) {
7575 err = tg3_request_firmware(tp);
7576 if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) {
7577 if (err)
7578 return err;
7579 } else if (err) {
7580 printk(KERN_WARNING "%s: TSO capability disabled.\n",
7581 tp->dev->name);
7582 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
7583 } else if (!(tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE)) {
7584 printk(KERN_NOTICE "%s: TSO capability restored.\n",
7585 tp->dev->name);
7586 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
7587 }
7588 }
7589
7543 netif_carrier_off(tp->dev); 7590 netif_carrier_off(tp->dev);
7544 7591
7545 err = tg3_set_power_state(tp, PCI_D0); 7592 err = tg3_set_power_state(tp, PCI_D0);
@@ -12934,7 +12981,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
12934 struct net_device *dev; 12981 struct net_device *dev;
12935 struct tg3 *tp; 12982 struct tg3 *tp;
12936 int err, pm_cap; 12983 int err, pm_cap;
12937 const char *fw_name = NULL;
12938 char str[40]; 12984 char str[40];
12939 u64 dma_mask, persist_dma_mask; 12985 u64 dma_mask, persist_dma_mask;
12940 12986
@@ -13091,7 +13137,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13091 tg3_init_bufmgr_config(tp); 13137 tg3_init_bufmgr_config(tp);
13092 13138
13093 if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) 13139 if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0)
13094 fw_name = FIRMWARE_TG3; 13140 tp->fw_needed = FIRMWARE_TG3;
13095 13141
13096 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { 13142 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) {
13097 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE; 13143 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
@@ -13104,37 +13150,10 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13104 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE; 13150 tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
13105 } else { 13151 } else {
13106 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE | TG3_FLG2_TSO_BUG; 13152 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE | TG3_FLG2_TSO_BUG;
13107 }
13108 if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
13109 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) 13153 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)
13110 fw_name = FIRMWARE_TG3TSO5; 13154 tp->fw_needed = FIRMWARE_TG3TSO5;
13111 else 13155 else
13112 fw_name = FIRMWARE_TG3TSO; 13156 tp->fw_needed = FIRMWARE_TG3TSO;
13113 }
13114
13115 if (fw_name) {
13116 const __be32 *fw_data;
13117
13118 err = request_firmware(&tp->fw, fw_name, &tp->pdev->dev);
13119 if (err) {
13120 printk(KERN_ERR "tg3: Failed to load firmware \"%s\"\n",
13121 fw_name);
13122 goto err_out_iounmap;
13123 }
13124
13125 fw_data = (void *)tp->fw->data;
13126
13127 /* Firmware blob starts with version numbers, followed by
13128 start address and _full_ length including BSS sections
13129 (which must be longer than the actual data, of course */
13130
13131 tp->fw_len = be32_to_cpu(fw_data[2]); /* includes bss */
13132 if (tp->fw_len < (tp->fw->size - 12)) {
13133 printk(KERN_ERR "tg3: bogus length %d in \"%s\"\n",
13134 tp->fw_len, fw_name);
13135 err = -EINVAL;
13136 goto err_out_fw;
13137 }
13138 } 13157 }
13139 13158
13140 /* TSO is on by default on chips that support hardware TSO. 13159 /* TSO is on by default on chips that support hardware TSO.
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
index ae5da603c6af..508def3e077f 100644
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
@@ -2764,6 +2764,7 @@ struct tg3 {
2764 struct ethtool_coalesce coal; 2764 struct ethtool_coalesce coal;
2765 2765
2766 /* firmware info */ 2766 /* firmware info */
2767 const char *fw_needed;
2767 const struct firmware *fw; 2768 const struct firmware *fw;
2768 u32 fw_len; /* includes BSS */ 2769 u32 fw_len; /* includes BSS */
2769}; 2770};
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index 5385d66b306e..ced8f36ebd01 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -94,10 +94,18 @@ static int mcs7830_get_reg(struct usbnet *dev, u16 index, u16 size, void *data)
94{ 94{
95 struct usb_device *xdev = dev->udev; 95 struct usb_device *xdev = dev->udev;
96 int ret; 96 int ret;
97 void *buffer;
98
99 buffer = kmalloc(size, GFP_NOIO);
100 if (buffer == NULL)
101 return -ENOMEM;
97 102
98 ret = usb_control_msg(xdev, usb_rcvctrlpipe(xdev, 0), MCS7830_RD_BREQ, 103 ret = usb_control_msg(xdev, usb_rcvctrlpipe(xdev, 0), MCS7830_RD_BREQ,
99 MCS7830_RD_BMREQ, 0x0000, index, data, 104 MCS7830_RD_BMREQ, 0x0000, index, buffer,
100 size, MCS7830_CTRL_TIMEOUT); 105 size, MCS7830_CTRL_TIMEOUT);
106 memcpy(data, buffer, size);
107 kfree(buffer);
108
101 return ret; 109 return ret;
102} 110}
103 111
@@ -105,10 +113,18 @@ static int mcs7830_set_reg(struct usbnet *dev, u16 index, u16 size, void *data)
105{ 113{
106 struct usb_device *xdev = dev->udev; 114 struct usb_device *xdev = dev->udev;
107 int ret; 115 int ret;
116 void *buffer;
117
118 buffer = kmalloc(size, GFP_NOIO);
119 if (buffer == NULL)
120 return -ENOMEM;
121
122 memcpy(buffer, data, size);
108 123
109 ret = usb_control_msg(xdev, usb_sndctrlpipe(xdev, 0), MCS7830_WR_BREQ, 124 ret = usb_control_msg(xdev, usb_sndctrlpipe(xdev, 0), MCS7830_WR_BREQ,
110 MCS7830_WR_BMREQ, 0x0000, index, data, 125 MCS7830_WR_BMREQ, 0x0000, index, buffer,
111 size, MCS7830_CTRL_TIMEOUT); 126 size, MCS7830_CTRL_TIMEOUT);
127 kfree(buffer);
112 return ret; 128 return ret;
113} 129}
114 130
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index a75f91dc3153..c5691fdb7079 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -1302,7 +1302,7 @@ static void velocity_free_rd_ring(struct velocity_info *vptr)
1302static int velocity_init_td_ring(struct velocity_info *vptr) 1302static int velocity_init_td_ring(struct velocity_info *vptr)
1303{ 1303{
1304 dma_addr_t curr; 1304 dma_addr_t curr;
1305 unsigned int j; 1305 int j;
1306 1306
1307 /* Init the TD ring entries */ 1307 /* Init the TD ring entries */
1308 for (j = 0; j < vptr->tx.numq; j++) { 1308 for (j = 0; j < vptr->tx.numq; j++) {
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 43f6523c40be..63ef2a8905fb 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -24,6 +24,7 @@
24#include <linux/virtio.h> 24#include <linux/virtio.h>
25#include <linux/virtio_net.h> 25#include <linux/virtio_net.h>
26#include <linux/scatterlist.h> 26#include <linux/scatterlist.h>
27#include <linux/if_vlan.h>
27 28
28static int napi_weight = 128; 29static int napi_weight = 128;
29module_param(napi_weight, int, 0444); 30module_param(napi_weight, int, 0444);
@@ -33,7 +34,7 @@ module_param(csum, bool, 0444);
33module_param(gso, bool, 0444); 34module_param(gso, bool, 0444);
34 35
35/* FIXME: MTU in config. */ 36/* FIXME: MTU in config. */
36#define MAX_PACKET_LEN (ETH_HLEN+ETH_DATA_LEN) 37#define MAX_PACKET_LEN (ETH_HLEN + VLAN_HLEN + ETH_DATA_LEN)
37#define GOOD_COPY_LEN 128 38#define GOOD_COPY_LEN 128
38 39
39struct virtnet_info 40struct virtnet_info
diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
index d3d37fed6893..15d9f51b292c 100644
--- a/drivers/net/wimax/i2400m/control.c
+++ b/drivers/net/wimax/i2400m/control.c
@@ -609,7 +609,7 @@ void i2400m_msg_to_dev_cancel_wait(struct i2400m *i2400m, int code)
609 spin_lock_irqsave(&i2400m->rx_lock, flags); 609 spin_lock_irqsave(&i2400m->rx_lock, flags);
610 ack_skb = i2400m->ack_skb; 610 ack_skb = i2400m->ack_skb;
611 if (ack_skb && !IS_ERR(ack_skb)) 611 if (ack_skb && !IS_ERR(ack_skb))
612 kfree(ack_skb); 612 kfree_skb(ack_skb);
613 i2400m->ack_skb = ERR_PTR(code); 613 i2400m->ack_skb = ERR_PTR(code);
614 spin_unlock_irqrestore(&i2400m->rx_lock, flags); 614 spin_unlock_irqrestore(&i2400m->rx_lock, flags);
615} 615}
diff --git a/drivers/net/wimax/i2400m/usb-rx.c b/drivers/net/wimax/i2400m/usb-rx.c
index 074cc1f89853..a314799967cf 100644
--- a/drivers/net/wimax/i2400m/usb-rx.c
+++ b/drivers/net/wimax/i2400m/usb-rx.c
@@ -184,6 +184,8 @@ void i2400mu_rx_size_maybe_shrink(struct i2400mu *i2400mu)
184 * NOTE: this function might realloc the skb (if it is too small), 184 * NOTE: this function might realloc the skb (if it is too small),
185 * so always update with the one returned. 185 * so always update with the one returned.
186 * ERR_PTR() is < 0 on error. 186 * ERR_PTR() is < 0 on error.
187 * Will return NULL if it cannot reallocate -- this can be
188 * considered a transient retryable error.
187 */ 189 */
188static 190static
189struct sk_buff *i2400mu_rx(struct i2400mu *i2400mu, struct sk_buff *rx_skb) 191struct sk_buff *i2400mu_rx(struct i2400mu *i2400mu, struct sk_buff *rx_skb)
@@ -243,8 +245,8 @@ retry:
243 if (printk_ratelimit()) 245 if (printk_ratelimit())
244 dev_err(dev, "RX: Can't reallocate skb to %d; " 246 dev_err(dev, "RX: Can't reallocate skb to %d; "
245 "RX dropped\n", rx_size); 247 "RX dropped\n", rx_size);
246 kfree(rx_skb); 248 kfree_skb(rx_skb);
247 result = 0; 249 rx_skb = NULL;
248 goto out; /* drop it...*/ 250 goto out; /* drop it...*/
249 } 251 }
250 kfree_skb(rx_skb); 252 kfree_skb(rx_skb);
@@ -344,7 +346,8 @@ int i2400mu_rxd(void *_i2400mu)
344 if (IS_ERR(rx_skb)) 346 if (IS_ERR(rx_skb))
345 goto out; 347 goto out;
346 atomic_dec(&i2400mu->rx_pending_count); 348 atomic_dec(&i2400mu->rx_pending_count);
347 if (rx_skb->len == 0) { /* some ignorable condition */ 349 if (rx_skb == NULL || rx_skb->len == 0) {
350 /* some "ignorable" condition */
348 kfree_skb(rx_skb); 351 kfree_skb(rx_skb);
349 continue; 352 continue;
350 } 353 }
diff --git a/drivers/net/wireless/ath9k/rc.c b/drivers/net/wireless/ath9k/rc.c
index 04ab457a8faa..1b71b934bb5e 100644
--- a/drivers/net/wireless/ath9k/rc.c
+++ b/drivers/net/wireless/ath9k/rc.c
@@ -490,7 +490,7 @@ static inline int ath_rc_get_nextvalid_txrate(struct ath_rate_table *rate_table,
490 490
491static int ath_rc_valid_phyrate(u32 phy, u32 capflag, int ignore_cw) 491static int ath_rc_valid_phyrate(u32 phy, u32 capflag, int ignore_cw)
492{ 492{
493 if (WLAN_RC_PHY_HT(phy) & !(capflag & WLAN_RC_HT_FLAG)) 493 if (WLAN_RC_PHY_HT(phy) && !(capflag & WLAN_RC_HT_FLAG))
494 return 0; 494 return 0;
495 if (WLAN_RC_PHY_DS(phy) && !(capflag & WLAN_RC_DS_FLAG)) 495 if (WLAN_RC_PHY_DS(phy) && !(capflag & WLAN_RC_DS_FLAG))
496 return 0; 496 return 0;
diff --git a/drivers/net/wireless/ath9k/regd_common.h b/drivers/net/wireless/ath9k/regd_common.h
index 9112c030b1e8..6df1b3b77c25 100644
--- a/drivers/net/wireless/ath9k/regd_common.h
+++ b/drivers/net/wireless/ath9k/regd_common.h
@@ -228,7 +228,7 @@ enum {
228}; 228};
229 229
230#define REG_DOMAIN_2GHZ_MASK (REQ_MASK & \ 230#define REG_DOMAIN_2GHZ_MASK (REQ_MASK & \
231 (!(ADHOC_NO_11A | DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB))) 231 (~(ADHOC_NO_11A | DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB)))
232#define REG_DOMAIN_5GHZ_MASK REQ_MASK 232#define REG_DOMAIN_5GHZ_MASK REQ_MASK
233 233
234static struct reg_dmn_pair_mapping regDomainPairs[] = { 234static struct reg_dmn_pair_mapping regDomainPairs[] = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
index 9b60a0c5de5f..21c841847d88 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
@@ -638,12 +638,16 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta,
638 s8 scale_action = 0; 638 s8 scale_action = 0;
639 unsigned long flags; 639 unsigned long flags;
640 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; 640 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
641 u16 fc, rate_mask; 641 u16 fc;
642 u16 rate_mask = 0;
642 struct iwl3945_priv *priv = (struct iwl3945_priv *)priv_r; 643 struct iwl3945_priv *priv = (struct iwl3945_priv *)priv_r;
643 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 644 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
644 645
645 IWL_DEBUG_RATE("enter\n"); 646 IWL_DEBUG_RATE("enter\n");
646 647
648 if (sta)
649 rate_mask = sta->supp_rates[sband->band];
650
647 /* Send management frames and broadcast/multicast data using lowest 651 /* Send management frames and broadcast/multicast data using lowest
648 * rate. */ 652 * rate. */
649 fc = le16_to_cpu(hdr->frame_control); 653 fc = le16_to_cpu(hdr->frame_control);
@@ -651,11 +655,15 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta,
651 is_multicast_ether_addr(hdr->addr1) || 655 is_multicast_ether_addr(hdr->addr1) ||
652 !sta || !priv_sta) { 656 !sta || !priv_sta) {
653 IWL_DEBUG_RATE("leave: No STA priv data to update!\n"); 657 IWL_DEBUG_RATE("leave: No STA priv data to update!\n");
654 info->control.rates[0].idx = rate_lowest_index(sband, sta); 658 if (!rate_mask)
659 info->control.rates[0].idx =
660 rate_lowest_index(sband, NULL);
661 else
662 info->control.rates[0].idx =
663 rate_lowest_index(sband, sta);
655 return; 664 return;
656 } 665 }
657 666
658 rate_mask = sta->supp_rates[sband->band];
659 index = min(rs_sta->last_txrate_idx & 0xffff, IWL_RATE_COUNT - 1); 667 index = min(rs_sta->last_txrate_idx & 0xffff, IWL_RATE_COUNT - 1);
660 668
661 if (sband->band == IEEE80211_BAND_5GHZ) 669 if (sband->band == IEEE80211_BAND_5GHZ)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index f3f17929ca0b..27f50471aed8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -944,7 +944,8 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
944 } 944 }
945 945
946 /* See if there's a better rate or modulation mode to try. */ 946 /* See if there's a better rate or modulation mode to try. */
947 rs_rate_scale_perform(priv, hdr, sta, lq_sta); 947 if (sta && sta->supp_rates[sband->band])
948 rs_rate_scale_perform(priv, hdr, sta, lq_sta);
948out: 949out:
949 return; 950 return;
950} 951}
@@ -2101,14 +2102,23 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, void *priv_sta,
2101 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 2102 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
2102 struct iwl_lq_sta *lq_sta = priv_sta; 2103 struct iwl_lq_sta *lq_sta = priv_sta;
2103 int rate_idx; 2104 int rate_idx;
2105 u64 mask_bit = 0;
2104 2106
2105 IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); 2107 IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n");
2106 2108
2109 if (sta)
2110 mask_bit = sta->supp_rates[sband->band];
2111
2107 /* Send management frames and broadcast/multicast data using lowest 2112 /* Send management frames and broadcast/multicast data using lowest
2108 * rate. */ 2113 * rate. */
2109 if (!ieee80211_is_data(hdr->frame_control) || 2114 if (!ieee80211_is_data(hdr->frame_control) ||
2110 is_multicast_ether_addr(hdr->addr1) || !sta || !lq_sta) { 2115 is_multicast_ether_addr(hdr->addr1) || !sta || !lq_sta) {
2111 info->control.rates[0].idx = rate_lowest_index(sband, sta); 2116 if (!mask_bit)
2117 info->control.rates[0].idx =
2118 rate_lowest_index(sband, NULL);
2119 else
2120 info->control.rates[0].idx =
2121 rate_lowest_index(sband, sta);
2112 return; 2122 return;
2113 } 2123 }
2114 2124
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 5da6b35cd26d..0dc8eed16404 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2482,7 +2482,7 @@ static int iwl_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
2482 dev_kfree_skb_any(skb); 2482 dev_kfree_skb_any(skb);
2483 2483
2484 IWL_DEBUG_MACDUMP("leave\n"); 2484 IWL_DEBUG_MACDUMP("leave\n");
2485 return 0; 2485 return NETDEV_TX_OK;
2486} 2486}
2487 2487
2488static int iwl_mac_add_interface(struct ieee80211_hw *hw, 2488static int iwl_mac_add_interface(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/iwlwifi/iwl-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-hcmd.c
index 8c71ad4f88c5..4b35b30e493e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-hcmd.c
@@ -224,7 +224,7 @@ int iwl_send_cmd_sync(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
224 IWL_ERROR("Error: Response NULL in '%s'\n", 224 IWL_ERROR("Error: Response NULL in '%s'\n",
225 get_cmd_string(cmd->id)); 225 get_cmd_string(cmd->id));
226 ret = -EIO; 226 ret = -EIO;
227 goto out; 227 goto cancel;
228 } 228 }
229 229
230 ret = 0; 230 ret = 0;
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index d64580805d6e..95d01984c80e 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -745,7 +745,7 @@ static int iwl3945_send_cmd_sync(struct iwl3945_priv *priv, struct iwl3945_host_
745 IWL_ERROR("Error: Response NULL in '%s'\n", 745 IWL_ERROR("Error: Response NULL in '%s'\n",
746 get_cmd_string(cmd->id)); 746 get_cmd_string(cmd->id));
747 ret = -EIO; 747 ret = -EIO;
748 goto out; 748 goto cancel;
749 } 749 }
750 750
751 ret = 0; 751 ret = 0;
@@ -6538,7 +6538,7 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
6538 dev_kfree_skb_any(skb); 6538 dev_kfree_skb_any(skb);
6539 6539
6540 IWL_DEBUG_MAC80211("leave\n"); 6540 IWL_DEBUG_MAC80211("leave\n");
6541 return 0; 6541 return NETDEV_TX_OK;
6542} 6542}
6543 6543
6544static int iwl3945_mac_add_interface(struct ieee80211_hw *hw, 6544static int iwl3945_mac_add_interface(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/libertas/hostcmd.h b/drivers/net/wireless/libertas/hostcmd.h
index e173b1b46c23..f6a79a653b7b 100644
--- a/drivers/net/wireless/libertas/hostcmd.h
+++ b/drivers/net/wireless/libertas/hostcmd.h
@@ -32,7 +32,7 @@ struct txpd {
32 u8 pktdelay_2ms; 32 u8 pktdelay_2ms;
33 /* reserved */ 33 /* reserved */
34 u8 reserved1; 34 u8 reserved1;
35}; 35} __attribute__ ((packed));
36 36
37/* RxPD Descriptor */ 37/* RxPD Descriptor */
38struct rxpd { 38struct rxpd {
@@ -63,7 +63,7 @@ struct rxpd {
63 /* Pkt Priority */ 63 /* Pkt Priority */
64 u8 priority; 64 u8 priority;
65 u8 reserved[3]; 65 u8 reserved[3];
66}; 66} __attribute__ ((packed));
67 67
68struct cmd_header { 68struct cmd_header {
69 __le16 command; 69 __le16 command;
@@ -97,7 +97,7 @@ struct enc_key {
97struct lbs_offset_value { 97struct lbs_offset_value {
98 u32 offset; 98 u32 offset;
99 u32 value; 99 u32 value;
100}; 100} __attribute__ ((packed));
101 101
102/* Define general data structure */ 102/* Define general data structure */
103/* cmd_DS_GEN */ 103/* cmd_DS_GEN */
@@ -107,7 +107,7 @@ struct cmd_ds_gen {
107 __le16 seqnum; 107 __le16 seqnum;
108 __le16 result; 108 __le16 result;
109 void *cmdresp[0]; 109 void *cmdresp[0];
110}; 110} __attribute__ ((packed));
111 111
112#define S_DS_GEN sizeof(struct cmd_ds_gen) 112#define S_DS_GEN sizeof(struct cmd_ds_gen)
113 113
@@ -163,7 +163,7 @@ struct cmd_ds_802_11_subscribe_event {
163 * bump this up a bit. 163 * bump this up a bit.
164 */ 164 */
165 uint8_t tlv[128]; 165 uint8_t tlv[128];
166}; 166} __attribute__ ((packed));
167 167
168/* 168/*
169 * This scan handle Country Information IE(802.11d compliant) 169 * This scan handle Country Information IE(802.11d compliant)
@@ -180,7 +180,7 @@ struct cmd_ds_802_11_scan {
180 mrvlietypes_chanlistparamset_t ChanListParamSet; 180 mrvlietypes_chanlistparamset_t ChanListParamSet;
181 mrvlietypes_ratesparamset_t OpRateSet; 181 mrvlietypes_ratesparamset_t OpRateSet;
182#endif 182#endif
183}; 183} __attribute__ ((packed));
184 184
185struct cmd_ds_802_11_scan_rsp { 185struct cmd_ds_802_11_scan_rsp {
186 struct cmd_header hdr; 186 struct cmd_header hdr;
@@ -188,7 +188,7 @@ struct cmd_ds_802_11_scan_rsp {
188 __le16 bssdescriptsize; 188 __le16 bssdescriptsize;
189 uint8_t nr_sets; 189 uint8_t nr_sets;
190 uint8_t bssdesc_and_tlvbuffer[0]; 190 uint8_t bssdesc_and_tlvbuffer[0];
191}; 191} __attribute__ ((packed));
192 192
193struct cmd_ds_802_11_get_log { 193struct cmd_ds_802_11_get_log {
194 struct cmd_header hdr; 194 struct cmd_header hdr;
@@ -206,33 +206,33 @@ struct cmd_ds_802_11_get_log {
206 __le32 fcserror; 206 __le32 fcserror;
207 __le32 txframe; 207 __le32 txframe;
208 __le32 wepundecryptable; 208 __le32 wepundecryptable;
209}; 209} __attribute__ ((packed));
210 210
211struct cmd_ds_mac_control { 211struct cmd_ds_mac_control {
212 struct cmd_header hdr; 212 struct cmd_header hdr;
213 __le16 action; 213 __le16 action;
214 u16 reserved; 214 u16 reserved;
215}; 215} __attribute__ ((packed));
216 216
217struct cmd_ds_mac_multicast_adr { 217struct cmd_ds_mac_multicast_adr {
218 struct cmd_header hdr; 218 struct cmd_header hdr;
219 __le16 action; 219 __le16 action;
220 __le16 nr_of_adrs; 220 __le16 nr_of_adrs;
221 u8 maclist[ETH_ALEN * MRVDRV_MAX_MULTICAST_LIST_SIZE]; 221 u8 maclist[ETH_ALEN * MRVDRV_MAX_MULTICAST_LIST_SIZE];
222}; 222} __attribute__ ((packed));
223 223
224struct cmd_ds_802_11_authenticate { 224struct cmd_ds_802_11_authenticate {
225 u8 macaddr[ETH_ALEN]; 225 u8 macaddr[ETH_ALEN];
226 u8 authtype; 226 u8 authtype;
227 u8 reserved[10]; 227 u8 reserved[10];
228}; 228} __attribute__ ((packed));
229 229
230struct cmd_ds_802_11_deauthenticate { 230struct cmd_ds_802_11_deauthenticate {
231 struct cmd_header hdr; 231 struct cmd_header hdr;
232 232
233 u8 macaddr[ETH_ALEN]; 233 u8 macaddr[ETH_ALEN];
234 __le16 reasoncode; 234 __le16 reasoncode;
235}; 235} __attribute__ ((packed));
236 236
237struct cmd_ds_802_11_associate { 237struct cmd_ds_802_11_associate {
238 u8 peerstaaddr[6]; 238 u8 peerstaaddr[6];
@@ -251,7 +251,7 @@ struct cmd_ds_802_11_associate {
251 251
252struct cmd_ds_802_11_associate_rsp { 252struct cmd_ds_802_11_associate_rsp {
253 struct ieeetypes_assocrsp assocRsp; 253 struct ieeetypes_assocrsp assocRsp;
254}; 254} __attribute__ ((packed));
255 255
256struct cmd_ds_802_11_set_wep { 256struct cmd_ds_802_11_set_wep {
257 struct cmd_header hdr; 257 struct cmd_header hdr;
@@ -265,7 +265,7 @@ struct cmd_ds_802_11_set_wep {
265 /* 40, 128bit or TXWEP */ 265 /* 40, 128bit or TXWEP */
266 uint8_t keytype[4]; 266 uint8_t keytype[4];
267 uint8_t keymaterial[4][16]; 267 uint8_t keymaterial[4][16];
268}; 268} __attribute__ ((packed));
269 269
270struct cmd_ds_802_3_get_stat { 270struct cmd_ds_802_3_get_stat {
271 __le32 xmitok; 271 __le32 xmitok;
@@ -274,7 +274,7 @@ struct cmd_ds_802_3_get_stat {
274 __le32 rcverror; 274 __le32 rcverror;
275 __le32 rcvnobuffer; 275 __le32 rcvnobuffer;
276 __le32 rcvcrcerror; 276 __le32 rcvcrcerror;
277}; 277} __attribute__ ((packed));
278 278
279struct cmd_ds_802_11_get_stat { 279struct cmd_ds_802_11_get_stat {
280 __le32 txfragmentcnt; 280 __le32 txfragmentcnt;
@@ -294,7 +294,7 @@ struct cmd_ds_802_11_get_stat {
294 __le32 txbeacon; 294 __le32 txbeacon;
295 __le32 rxbeacon; 295 __le32 rxbeacon;
296 __le32 wepundecryptable; 296 __le32 wepundecryptable;
297}; 297} __attribute__ ((packed));
298 298
299struct cmd_ds_802_11_snmp_mib { 299struct cmd_ds_802_11_snmp_mib {
300 struct cmd_header hdr; 300 struct cmd_header hdr;
@@ -303,58 +303,58 @@ struct cmd_ds_802_11_snmp_mib {
303 __le16 oid; 303 __le16 oid;
304 __le16 bufsize; 304 __le16 bufsize;
305 u8 value[128]; 305 u8 value[128];
306}; 306} __attribute__ ((packed));
307 307
308struct cmd_ds_mac_reg_map { 308struct cmd_ds_mac_reg_map {
309 __le16 buffersize; 309 __le16 buffersize;
310 u8 regmap[128]; 310 u8 regmap[128];
311 __le16 reserved; 311 __le16 reserved;
312}; 312} __attribute__ ((packed));
313 313
314struct cmd_ds_bbp_reg_map { 314struct cmd_ds_bbp_reg_map {
315 __le16 buffersize; 315 __le16 buffersize;
316 u8 regmap[128]; 316 u8 regmap[128];
317 __le16 reserved; 317 __le16 reserved;
318}; 318} __attribute__ ((packed));
319 319
320struct cmd_ds_rf_reg_map { 320struct cmd_ds_rf_reg_map {
321 __le16 buffersize; 321 __le16 buffersize;
322 u8 regmap[64]; 322 u8 regmap[64];
323 __le16 reserved; 323 __le16 reserved;
324}; 324} __attribute__ ((packed));
325 325
326struct cmd_ds_mac_reg_access { 326struct cmd_ds_mac_reg_access {
327 __le16 action; 327 __le16 action;
328 __le16 offset; 328 __le16 offset;
329 __le32 value; 329 __le32 value;
330}; 330} __attribute__ ((packed));
331 331
332struct cmd_ds_bbp_reg_access { 332struct cmd_ds_bbp_reg_access {
333 __le16 action; 333 __le16 action;
334 __le16 offset; 334 __le16 offset;
335 u8 value; 335 u8 value;
336 u8 reserved[3]; 336 u8 reserved[3];
337}; 337} __attribute__ ((packed));
338 338
339struct cmd_ds_rf_reg_access { 339struct cmd_ds_rf_reg_access {
340 __le16 action; 340 __le16 action;
341 __le16 offset; 341 __le16 offset;
342 u8 value; 342 u8 value;
343 u8 reserved[3]; 343 u8 reserved[3];
344}; 344} __attribute__ ((packed));
345 345
346struct cmd_ds_802_11_radio_control { 346struct cmd_ds_802_11_radio_control {
347 struct cmd_header hdr; 347 struct cmd_header hdr;
348 348
349 __le16 action; 349 __le16 action;
350 __le16 control; 350 __le16 control;
351}; 351} __attribute__ ((packed));
352 352
353struct cmd_ds_802_11_beacon_control { 353struct cmd_ds_802_11_beacon_control {
354 __le16 action; 354 __le16 action;
355 __le16 beacon_enable; 355 __le16 beacon_enable;
356 __le16 beacon_period; 356 __le16 beacon_period;
357}; 357} __attribute__ ((packed));
358 358
359struct cmd_ds_802_11_sleep_params { 359struct cmd_ds_802_11_sleep_params {
360 struct cmd_header hdr; 360 struct cmd_header hdr;
@@ -379,7 +379,7 @@ struct cmd_ds_802_11_sleep_params {
379 379
380 /* reserved field, should be set to zero */ 380 /* reserved field, should be set to zero */
381 __le16 reserved; 381 __le16 reserved;
382}; 382} __attribute__ ((packed));
383 383
384struct cmd_ds_802_11_inactivity_timeout { 384struct cmd_ds_802_11_inactivity_timeout {
385 struct cmd_header hdr; 385 struct cmd_header hdr;
@@ -389,7 +389,7 @@ struct cmd_ds_802_11_inactivity_timeout {
389 389
390 /* Inactivity timeout in msec */ 390 /* Inactivity timeout in msec */
391 __le16 timeout; 391 __le16 timeout;
392}; 392} __attribute__ ((packed));
393 393
394struct cmd_ds_802_11_rf_channel { 394struct cmd_ds_802_11_rf_channel {
395 struct cmd_header hdr; 395 struct cmd_header hdr;
@@ -399,7 +399,7 @@ struct cmd_ds_802_11_rf_channel {
399 __le16 rftype; /* unused */ 399 __le16 rftype; /* unused */
400 __le16 reserved; /* unused */ 400 __le16 reserved; /* unused */
401 u8 channellist[32]; /* unused */ 401 u8 channellist[32]; /* unused */
402}; 402} __attribute__ ((packed));
403 403
404struct cmd_ds_802_11_rssi { 404struct cmd_ds_802_11_rssi {
405 /* weighting factor */ 405 /* weighting factor */
@@ -408,21 +408,21 @@ struct cmd_ds_802_11_rssi {
408 __le16 reserved_0; 408 __le16 reserved_0;
409 __le16 reserved_1; 409 __le16 reserved_1;
410 __le16 reserved_2; 410 __le16 reserved_2;
411}; 411} __attribute__ ((packed));
412 412
413struct cmd_ds_802_11_rssi_rsp { 413struct cmd_ds_802_11_rssi_rsp {
414 __le16 SNR; 414 __le16 SNR;
415 __le16 noisefloor; 415 __le16 noisefloor;
416 __le16 avgSNR; 416 __le16 avgSNR;
417 __le16 avgnoisefloor; 417 __le16 avgnoisefloor;
418}; 418} __attribute__ ((packed));
419 419
420struct cmd_ds_802_11_mac_address { 420struct cmd_ds_802_11_mac_address {
421 struct cmd_header hdr; 421 struct cmd_header hdr;
422 422
423 __le16 action; 423 __le16 action;
424 u8 macadd[ETH_ALEN]; 424 u8 macadd[ETH_ALEN];
425}; 425} __attribute__ ((packed));
426 426
427struct cmd_ds_802_11_rf_tx_power { 427struct cmd_ds_802_11_rf_tx_power {
428 struct cmd_header hdr; 428 struct cmd_header hdr;
@@ -431,7 +431,7 @@ struct cmd_ds_802_11_rf_tx_power {
431 __le16 curlevel; 431 __le16 curlevel;
432 s8 maxlevel; 432 s8 maxlevel;
433 s8 minlevel; 433 s8 minlevel;
434}; 434} __attribute__ ((packed));
435 435
436struct cmd_ds_802_11_rf_antenna { 436struct cmd_ds_802_11_rf_antenna {
437 __le16 action; 437 __le16 action;
@@ -439,33 +439,33 @@ struct cmd_ds_802_11_rf_antenna {
439 /* Number of antennas or 0xffff(diversity) */ 439 /* Number of antennas or 0xffff(diversity) */
440 __le16 antennamode; 440 __le16 antennamode;
441 441
442}; 442} __attribute__ ((packed));
443 443
444struct cmd_ds_802_11_monitor_mode { 444struct cmd_ds_802_11_monitor_mode {
445 __le16 action; 445 __le16 action;
446 __le16 mode; 446 __le16 mode;
447}; 447} __attribute__ ((packed));
448 448
449struct cmd_ds_set_boot2_ver { 449struct cmd_ds_set_boot2_ver {
450 struct cmd_header hdr; 450 struct cmd_header hdr;
451 451
452 __le16 action; 452 __le16 action;
453 __le16 version; 453 __le16 version;
454}; 454} __attribute__ ((packed));
455 455
456struct cmd_ds_802_11_fw_wake_method { 456struct cmd_ds_802_11_fw_wake_method {
457 struct cmd_header hdr; 457 struct cmd_header hdr;
458 458
459 __le16 action; 459 __le16 action;
460 __le16 method; 460 __le16 method;
461}; 461} __attribute__ ((packed));
462 462
463struct cmd_ds_802_11_sleep_period { 463struct cmd_ds_802_11_sleep_period {
464 struct cmd_header hdr; 464 struct cmd_header hdr;
465 465
466 __le16 action; 466 __le16 action;
467 __le16 period; 467 __le16 period;
468}; 468} __attribute__ ((packed));
469 469
470struct cmd_ds_802_11_ps_mode { 470struct cmd_ds_802_11_ps_mode {
471 __le16 action; 471 __le16 action;
@@ -473,7 +473,7 @@ struct cmd_ds_802_11_ps_mode {
473 __le16 multipledtim; 473 __le16 multipledtim;
474 __le16 reserved; 474 __le16 reserved;
475 __le16 locallisteninterval; 475 __le16 locallisteninterval;
476}; 476} __attribute__ ((packed));
477 477
478struct cmd_confirm_sleep { 478struct cmd_confirm_sleep {
479 struct cmd_header hdr; 479 struct cmd_header hdr;
@@ -483,7 +483,7 @@ struct cmd_confirm_sleep {
483 __le16 multipledtim; 483 __le16 multipledtim;
484 __le16 reserved; 484 __le16 reserved;
485 __le16 locallisteninterval; 485 __le16 locallisteninterval;
486}; 486} __attribute__ ((packed));
487 487
488struct cmd_ds_802_11_data_rate { 488struct cmd_ds_802_11_data_rate {
489 struct cmd_header hdr; 489 struct cmd_header hdr;
@@ -491,14 +491,14 @@ struct cmd_ds_802_11_data_rate {
491 __le16 action; 491 __le16 action;
492 __le16 reserved; 492 __le16 reserved;
493 u8 rates[MAX_RATES]; 493 u8 rates[MAX_RATES];
494}; 494} __attribute__ ((packed));
495 495
496struct cmd_ds_802_11_rate_adapt_rateset { 496struct cmd_ds_802_11_rate_adapt_rateset {
497 struct cmd_header hdr; 497 struct cmd_header hdr;
498 __le16 action; 498 __le16 action;
499 __le16 enablehwauto; 499 __le16 enablehwauto;
500 __le16 bitmap; 500 __le16 bitmap;
501}; 501} __attribute__ ((packed));
502 502
503struct cmd_ds_802_11_ad_hoc_start { 503struct cmd_ds_802_11_ad_hoc_start {
504 struct cmd_header hdr; 504 struct cmd_header hdr;
@@ -520,7 +520,7 @@ struct cmd_ds_802_11_ad_hoc_result {
520 520
521 u8 pad[3]; 521 u8 pad[3];
522 u8 bssid[ETH_ALEN]; 522 u8 bssid[ETH_ALEN];
523}; 523} __attribute__ ((packed));
524 524
525struct adhoc_bssdesc { 525struct adhoc_bssdesc {
526 u8 bssid[ETH_ALEN]; 526 u8 bssid[ETH_ALEN];
@@ -578,7 +578,7 @@ struct MrvlIEtype_keyParamSet {
578 578
579 /* key material of size keylen */ 579 /* key material of size keylen */
580 u8 key[32]; 580 u8 key[32];
581}; 581} __attribute__ ((packed));
582 582
583#define MAX_WOL_RULES 16 583#define MAX_WOL_RULES 16
584 584
@@ -590,7 +590,7 @@ struct host_wol_rule {
590 __le16 reserve; 590 __le16 reserve;
591 __be32 sig_mask; 591 __be32 sig_mask;
592 __be32 signature; 592 __be32 signature;
593}; 593} __attribute__ ((packed));
594 594
595struct wol_config { 595struct wol_config {
596 uint8_t action; 596 uint8_t action;
@@ -598,8 +598,7 @@ struct wol_config {
598 uint8_t no_rules_in_cmd; 598 uint8_t no_rules_in_cmd;
599 uint8_t result; 599 uint8_t result;
600 struct host_wol_rule rule[MAX_WOL_RULES]; 600 struct host_wol_rule rule[MAX_WOL_RULES];
601}; 601} __attribute__ ((packed));
602
603 602
604struct cmd_ds_host_sleep { 603struct cmd_ds_host_sleep {
605 struct cmd_header hdr; 604 struct cmd_header hdr;
diff --git a/drivers/net/wireless/orinoco/orinoco.c b/drivers/net/wireless/orinoco/orinoco.c
index c3bb85e0251e..45a04faa7818 100644
--- a/drivers/net/wireless/orinoco/orinoco.c
+++ b/drivers/net/wireless/orinoco/orinoco.c
@@ -1673,7 +1673,7 @@ static void print_linkstatus(struct net_device *dev, u16 status)
1673 s = "UNKNOWN"; 1673 s = "UNKNOWN";
1674 } 1674 }
1675 1675
1676 printk(KERN_INFO "%s: New link status: %s (%04x)\n", 1676 printk(KERN_DEBUG "%s: New link status: %s (%04x)\n",
1677 dev->name, s, status); 1677 dev->name, s, status);
1678} 1678}
1679 1679
@@ -5068,33 +5068,30 @@ static int orinoco_ioctl_set_genie(struct net_device *dev,
5068 struct orinoco_private *priv = netdev_priv(dev); 5068 struct orinoco_private *priv = netdev_priv(dev);
5069 u8 *buf; 5069 u8 *buf;
5070 unsigned long flags; 5070 unsigned long flags;
5071 int err = 0;
5072 5071
5073 /* cut off at IEEE80211_MAX_DATA_LEN */ 5072 /* cut off at IEEE80211_MAX_DATA_LEN */
5074 if ((wrqu->data.length > IEEE80211_MAX_DATA_LEN) || 5073 if ((wrqu->data.length > IEEE80211_MAX_DATA_LEN) ||
5075 (wrqu->data.length && (extra == NULL))) 5074 (wrqu->data.length && (extra == NULL)))
5076 return -EINVAL; 5075 return -EINVAL;
5077 5076
5078 if (orinoco_lock(priv, &flags) != 0)
5079 return -EBUSY;
5080
5081 if (wrqu->data.length) { 5077 if (wrqu->data.length) {
5082 buf = kmalloc(wrqu->data.length, GFP_KERNEL); 5078 buf = kmalloc(wrqu->data.length, GFP_KERNEL);
5083 if (buf == NULL) { 5079 if (buf == NULL)
5084 err = -ENOMEM; 5080 return -ENOMEM;
5085 goto out;
5086 }
5087 5081
5088 memcpy(buf, extra, wrqu->data.length); 5082 memcpy(buf, extra, wrqu->data.length);
5089 kfree(priv->wpa_ie); 5083 } else
5090 priv->wpa_ie = buf; 5084 buf = NULL;
5091 priv->wpa_ie_len = wrqu->data.length; 5085
5092 } else { 5086 if (orinoco_lock(priv, &flags) != 0) {
5093 kfree(priv->wpa_ie); 5087 kfree(buf);
5094 priv->wpa_ie = NULL; 5088 return -EBUSY;
5095 priv->wpa_ie_len = 0;
5096 } 5089 }
5097 5090
5091 kfree(priv->wpa_ie);
5092 priv->wpa_ie = buf;
5093 priv->wpa_ie_len = wrqu->data.length;
5094
5098 if (priv->wpa_ie) { 5095 if (priv->wpa_ie) {
5099 /* Looks like wl_lkm wants to check the auth alg, and 5096 /* Looks like wl_lkm wants to check the auth alg, and
5100 * somehow pass it to the firmware. 5097 * somehow pass it to the firmware.
@@ -5103,9 +5100,8 @@ static int orinoco_ioctl_set_genie(struct net_device *dev,
5103 */ 5100 */
5104 } 5101 }
5105 5102
5106out:
5107 orinoco_unlock(priv, &flags); 5103 orinoco_unlock(priv, &flags);
5108 return err; 5104 return 0;
5109} 5105}
5110 5106
5111static int orinoco_ioctl_get_genie(struct net_device *dev, 5107static int orinoco_ioctl_get_genie(struct net_device *dev,
diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
index c6a370fa9bcb..34561e6e816b 100644
--- a/drivers/net/wireless/p54/p54common.c
+++ b/drivers/net/wireless/p54/p54common.c
@@ -451,8 +451,8 @@ static int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len)
451 } 451 }
452 if (err) 452 if (err)
453 goto err; 453 goto err;
454 454 }
455 } 455 break;
456 case PDR_PRISM_ZIF_TX_IQ_CALIBRATION: 456 case PDR_PRISM_ZIF_TX_IQ_CALIBRATION:
457 priv->iq_autocal = kmalloc(data_len, GFP_KERNEL); 457 priv->iq_autocal = kmalloc(data_len, GFP_KERNEL);
458 if (!priv->iq_autocal) { 458 if (!priv->iq_autocal) {
@@ -745,7 +745,7 @@ static void p54_rx_frame_sent(struct ieee80211_hw *dev, struct sk_buff *skb)
745 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(entry); 745 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(entry);
746 struct p54_hdr *entry_hdr; 746 struct p54_hdr *entry_hdr;
747 struct p54_tx_data *entry_data; 747 struct p54_tx_data *entry_data;
748 int pad = 0; 748 unsigned int pad = 0, frame_len;
749 749
750 range = (void *)info->rate_driver_data; 750 range = (void *)info->rate_driver_data;
751 if (range->start_addr != addr) { 751 if (range->start_addr != addr) {
@@ -768,6 +768,7 @@ static void p54_rx_frame_sent(struct ieee80211_hw *dev, struct sk_buff *skb)
768 __skb_unlink(entry, &priv->tx_queue); 768 __skb_unlink(entry, &priv->tx_queue);
769 spin_unlock_irqrestore(&priv->tx_queue.lock, flags); 769 spin_unlock_irqrestore(&priv->tx_queue.lock, flags);
770 770
771 frame_len = entry->len;
771 entry_hdr = (struct p54_hdr *) entry->data; 772 entry_hdr = (struct p54_hdr *) entry->data;
772 entry_data = (struct p54_tx_data *) entry_hdr->data; 773 entry_data = (struct p54_tx_data *) entry_hdr->data;
773 priv->tx_stats[entry_data->hw_queue].len--; 774 priv->tx_stats[entry_data->hw_queue].len--;
@@ -814,15 +815,28 @@ static void p54_rx_frame_sent(struct ieee80211_hw *dev, struct sk_buff *skb)
814 info->status.ack_signal = p54_rssi_to_dbm(dev, 815 info->status.ack_signal = p54_rssi_to_dbm(dev,
815 (int)payload->ack_rssi); 816 (int)payload->ack_rssi);
816 817
817 if (entry_data->key_type == P54_CRYPTO_TKIPMICHAEL) { 818 /* Undo all changes to the frame. */
819 switch (entry_data->key_type) {
820 case P54_CRYPTO_TKIPMICHAEL: {
818 u8 *iv = (u8 *)(entry_data->align + pad + 821 u8 *iv = (u8 *)(entry_data->align + pad +
819 entry_data->crypt_offset); 822 entry_data->crypt_offset);
820 823
821 /* Restore the original TKIP IV. */ 824 /* Restore the original TKIP IV. */
822 iv[2] = iv[0]; 825 iv[2] = iv[0];
823 iv[0] = iv[1]; 826 iv[0] = iv[1];
824 iv[1] = (iv[0] | 0x20) & 0x7f; /* WEPSeed - 8.3.2.2 */ 827 iv[1] = (iv[0] | 0x20) & 0x7f; /* WEPSeed - 8.3.2.2 */
828
829 frame_len -= 12; /* remove TKIP_MMIC + TKIP_ICV */
830 break;
831 }
832 case P54_CRYPTO_AESCCMP:
833 frame_len -= 8; /* remove CCMP_MIC */
834 break;
835 case P54_CRYPTO_WEP:
836 frame_len -= 4; /* remove WEP_ICV */
837 break;
825 } 838 }
839 skb_trim(entry, frame_len);
826 skb_pull(entry, sizeof(*hdr) + pad + sizeof(*entry_data)); 840 skb_pull(entry, sizeof(*hdr) + pad + sizeof(*entry_data));
827 ieee80211_tx_status_irqsafe(dev, entry); 841 ieee80211_tx_status_irqsafe(dev, entry);
828 goto out; 842 goto out;
@@ -1147,7 +1161,7 @@ static int p54_set_tim(struct ieee80211_hw *dev, struct ieee80211_sta *sta,
1147 1161
1148 skb = p54_alloc_skb(dev, P54_HDR_FLAG_CONTROL_OPSET, 1162 skb = p54_alloc_skb(dev, P54_HDR_FLAG_CONTROL_OPSET,
1149 sizeof(struct p54_hdr) + sizeof(*tim), 1163 sizeof(struct p54_hdr) + sizeof(*tim),
1150 P54_CONTROL_TYPE_TIM, GFP_KERNEL); 1164 P54_CONTROL_TYPE_TIM, GFP_ATOMIC);
1151 if (!skb) 1165 if (!skb)
1152 return -ENOMEM; 1166 return -ENOMEM;
1153 1167
@@ -1610,7 +1624,7 @@ static int p54_scan(struct ieee80211_hw *dev, u16 mode, u16 dwell)
1610 1624
1611 err: 1625 err:
1612 printk(KERN_ERR "%s: frequency change failed\n", wiphy_name(dev->wiphy)); 1626 printk(KERN_ERR "%s: frequency change failed\n", wiphy_name(dev->wiphy));
1613 kfree_skb(skb); 1627 p54_free_skb(dev, skb);
1614 return -EINVAL; 1628 return -EINVAL;
1615} 1629}
1616 1630
@@ -2077,7 +2091,7 @@ static int p54_set_key(struct ieee80211_hw *dev, enum set_key_cmd cmd,
2077 algo = P54_CRYPTO_AESCCMP; 2091 algo = P54_CRYPTO_AESCCMP;
2078 break; 2092 break;
2079 default: 2093 default:
2080 return -EINVAL; 2094 return -EOPNOTSUPP;
2081 } 2095 }
2082 } 2096 }
2083 2097
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index 6a6a72f6f82c..5de2ebfb28c7 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -144,11 +144,8 @@ static void p54u_tx_cb(struct urb *urb)
144 struct sk_buff *skb = urb->context; 144 struct sk_buff *skb = urb->context;
145 struct ieee80211_hw *dev = (struct ieee80211_hw *) 145 struct ieee80211_hw *dev = (struct ieee80211_hw *)
146 usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); 146 usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0));
147 struct p54u_priv *priv = dev->priv;
148 147
149 skb_pull(skb, priv->common.tx_hdr_len); 148 p54_free_skb(dev, skb);
150 if (FREE_AFTER_TX(skb))
151 p54_free_skb(dev, skb);
152} 149}
153 150
154static void p54u_tx_dummy_cb(struct urb *urb) { } 151static void p54u_tx_dummy_cb(struct urb *urb) { }
@@ -230,7 +227,10 @@ static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb)
230 p54u_tx_dummy_cb, dev); 227 p54u_tx_dummy_cb, dev);
231 usb_fill_bulk_urb(data_urb, priv->udev, 228 usb_fill_bulk_urb(data_urb, priv->udev,
232 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), 229 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),
233 skb->data, skb->len, p54u_tx_cb, skb); 230 skb->data, skb->len, FREE_AFTER_TX(skb) ?
231 p54u_tx_cb : p54u_tx_dummy_cb, skb);
232 addr_urb->transfer_flags |= URB_ZERO_PACKET;
233 data_urb->transfer_flags |= URB_ZERO_PACKET;
234 234
235 usb_anchor_urb(addr_urb, &priv->submitted); 235 usb_anchor_urb(addr_urb, &priv->submitted);
236 err = usb_submit_urb(addr_urb, GFP_ATOMIC); 236 err = usb_submit_urb(addr_urb, GFP_ATOMIC);
@@ -239,7 +239,7 @@ static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb)
239 goto out; 239 goto out;
240 } 240 }
241 241
242 usb_anchor_urb(addr_urb, &priv->submitted); 242 usb_anchor_urb(data_urb, &priv->submitted);
243 err = usb_submit_urb(data_urb, GFP_ATOMIC); 243 err = usb_submit_urb(data_urb, GFP_ATOMIC);
244 if (err) 244 if (err)
245 usb_unanchor_urb(data_urb); 245 usb_unanchor_urb(data_urb);
@@ -269,28 +269,24 @@ static void p54u_tx_lm87(struct ieee80211_hw *dev, struct sk_buff *skb)
269{ 269{
270 struct p54u_priv *priv = dev->priv; 270 struct p54u_priv *priv = dev->priv;
271 struct urb *data_urb; 271 struct urb *data_urb;
272 struct lm87_tx_hdr *hdr; 272 struct lm87_tx_hdr *hdr = (void *)skb->data - sizeof(*hdr);
273 __le32 checksum;
274 __le32 addr = ((struct p54_hdr *)skb->data)->req_id;
275 273
276 data_urb = usb_alloc_urb(0, GFP_ATOMIC); 274 data_urb = usb_alloc_urb(0, GFP_ATOMIC);
277 if (!data_urb) 275 if (!data_urb)
278 return; 276 return;
279 277
280 checksum = p54u_lm87_chksum((__le32 *)skb->data, skb->len); 278 hdr->chksum = p54u_lm87_chksum((__le32 *)skb->data, skb->len);
281 hdr = (struct lm87_tx_hdr *)skb_push(skb, sizeof(*hdr)); 279 hdr->device_addr = ((struct p54_hdr *)skb->data)->req_id;
282 hdr->chksum = checksum;
283 hdr->device_addr = addr;
284 280
285 usb_fill_bulk_urb(data_urb, priv->udev, 281 usb_fill_bulk_urb(data_urb, priv->udev,
286 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), 282 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),
287 skb->data, skb->len, p54u_tx_cb, skb); 283 hdr, skb->len + sizeof(*hdr), FREE_AFTER_TX(skb) ?
284 p54u_tx_cb : p54u_tx_dummy_cb, skb);
288 data_urb->transfer_flags |= URB_ZERO_PACKET; 285 data_urb->transfer_flags |= URB_ZERO_PACKET;
289 286
290 usb_anchor_urb(data_urb, &priv->submitted); 287 usb_anchor_urb(data_urb, &priv->submitted);
291 if (usb_submit_urb(data_urb, GFP_ATOMIC)) { 288 if (usb_submit_urb(data_urb, GFP_ATOMIC)) {
292 usb_unanchor_urb(data_urb); 289 usb_unanchor_urb(data_urb);
293 skb_pull(skb, sizeof(*hdr));
294 p54_free_skb(dev, skb); 290 p54_free_skb(dev, skb);
295 } 291 }
296 usb_free_urb(data_urb); 292 usb_free_urb(data_urb);
@@ -300,11 +296,9 @@ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb)
300{ 296{
301 struct p54u_priv *priv = dev->priv; 297 struct p54u_priv *priv = dev->priv;
302 struct urb *int_urb, *data_urb; 298 struct urb *int_urb, *data_urb;
303 struct net2280_tx_hdr *hdr; 299 struct net2280_tx_hdr *hdr = (void *)skb->data - sizeof(*hdr);
304 struct net2280_reg_write *reg; 300 struct net2280_reg_write *reg;
305 int err = 0; 301 int err = 0;
306 __le32 addr = ((struct p54_hdr *) skb->data)->req_id;
307 __le16 len = cpu_to_le16(skb->len);
308 302
309 reg = kmalloc(sizeof(*reg), GFP_ATOMIC); 303 reg = kmalloc(sizeof(*reg), GFP_ATOMIC);
310 if (!reg) 304 if (!reg)
@@ -327,10 +321,9 @@ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb)
327 reg->addr = cpu_to_le32(P54U_DEV_BASE); 321 reg->addr = cpu_to_le32(P54U_DEV_BASE);
328 reg->val = cpu_to_le32(ISL38XX_DEV_INT_DATA); 322 reg->val = cpu_to_le32(ISL38XX_DEV_INT_DATA);
329 323
330 hdr = (void *)skb_push(skb, sizeof(*hdr));
331 memset(hdr, 0, sizeof(*hdr)); 324 memset(hdr, 0, sizeof(*hdr));
332 hdr->len = len; 325 hdr->len = cpu_to_le16(skb->len);
333 hdr->device_addr = addr; 326 hdr->device_addr = ((struct p54_hdr *) skb->data)->req_id;
334 327
335 usb_fill_bulk_urb(int_urb, priv->udev, 328 usb_fill_bulk_urb(int_urb, priv->udev,
336 usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg), 329 usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg),
@@ -341,11 +334,13 @@ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb)
341 * free what's inside the transfer_buffer after the callback routine 334 * free what's inside the transfer_buffer after the callback routine
342 * has completed. 335 * has completed.
343 */ 336 */
344 int_urb->transfer_flags |= URB_FREE_BUFFER; 337 int_urb->transfer_flags |= URB_FREE_BUFFER | URB_ZERO_PACKET;
345 338
346 usb_fill_bulk_urb(data_urb, priv->udev, 339 usb_fill_bulk_urb(data_urb, priv->udev,
347 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), 340 usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),
348 skb->data, skb->len, p54u_tx_cb, skb); 341 hdr, skb->len + sizeof(*hdr), FREE_AFTER_TX(skb) ?
342 p54u_tx_cb : p54u_tx_dummy_cb, skb);
343 data_urb->transfer_flags |= URB_ZERO_PACKET;
349 344
350 usb_anchor_urb(int_urb, &priv->submitted); 345 usb_anchor_urb(int_urb, &priv->submitted);
351 err = usb_submit_urb(int_urb, GFP_ATOMIC); 346 err = usb_submit_urb(int_urb, GFP_ATOMIC);
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 607ce9f61b54..ed93ac41297f 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -1649,9 +1649,7 @@ static char *rndis_translate_scan(struct net_device *dev,
1649 char *end_buf, 1649 char *end_buf,
1650 struct ndis_80211_bssid_ex *bssid) 1650 struct ndis_80211_bssid_ex *bssid)
1651{ 1651{
1652#ifdef DEBUG
1653 struct usbnet *usbdev = netdev_priv(dev); 1652 struct usbnet *usbdev = netdev_priv(dev);
1654#endif
1655 u8 *ie; 1653 u8 *ie;
1656 char *current_val; 1654 char *current_val;
1657 int bssid_len, ie_len, i; 1655 int bssid_len, ie_len, i;
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 746a8f36b931..0709decec9c2 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -154,6 +154,7 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
154 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; 154 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
155 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(entry->skb); 155 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(entry->skb);
156 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)entry->skb->data; 156 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)entry->skb->data;
157 struct ieee80211_tx_rate *txrate = &tx_info->control.rates[0];
157 struct ieee80211_rate *rate = 158 struct ieee80211_rate *rate =
158 ieee80211_get_tx_rate(rt2x00dev->hw, tx_info); 159 ieee80211_get_tx_rate(rt2x00dev->hw, tx_info);
159 const struct rt2x00_rate *hwrate; 160 const struct rt2x00_rate *hwrate;
@@ -313,7 +314,7 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
313 * When preamble is enabled we should set the 314 * When preamble is enabled we should set the
314 * preamble bit for the signal. 315 * preamble bit for the signal.
315 */ 316 */
316 if (rate->flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) 317 if (txrate->flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE)
317 txdesc->signal |= 0x08; 318 txdesc->signal |= 0x08;
318 } 319 }
319} 320}
diff --git a/drivers/net/wireless/rt2x00/rt2x00rfkill.c b/drivers/net/wireless/rt2x00/rt2x00rfkill.c
index c3f53a92180a..3298cae1e12d 100644
--- a/drivers/net/wireless/rt2x00/rt2x00rfkill.c
+++ b/drivers/net/wireless/rt2x00/rt2x00rfkill.c
@@ -162,7 +162,7 @@ void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
162 162
163void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev) 163void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
164{ 164{
165 if (!test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->flags)) 165 if (!test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
166 return; 166 return;
167 167
168 cancel_delayed_work_sync(&rt2x00dev->rfkill_work); 168 cancel_delayed_work_sync(&rt2x00dev->rfkill_work);
diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index 6ad6bac37706..22bc07ef2f37 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -273,6 +273,7 @@ static int rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
273 273
274 usb_fill_bulk_urb(urb, priv->udev, usb_sndbulkpipe(priv->udev, ep), 274 usb_fill_bulk_urb(urb, priv->udev, usb_sndbulkpipe(priv->udev, ep),
275 buf, skb->len, rtl8187_tx_cb, skb); 275 buf, skb->len, rtl8187_tx_cb, skb);
276 urb->transfer_flags |= URB_ZERO_PACKET;
276 usb_anchor_urb(urb, &priv->anchored); 277 usb_anchor_urb(urb, &priv->anchored);
277 rc = usb_submit_urb(urb, GFP_ATOMIC); 278 rc = usb_submit_urb(urb, GFP_ATOMIC);
278 if (rc < 0) { 279 if (rc < 0) {
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index b5db57d2fcf5..17527f765b39 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -84,6 +84,7 @@ static struct usb_device_id usb_ids[] = {
84 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B }, 84 { USB_DEVICE(0x0586, 0x340a), .driver_info = DEVICE_ZD1211B },
85 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B }, 85 { USB_DEVICE(0x0471, 0x1237), .driver_info = DEVICE_ZD1211B },
86 { USB_DEVICE(0x07fa, 0x1196), .driver_info = DEVICE_ZD1211B }, 86 { USB_DEVICE(0x07fa, 0x1196), .driver_info = DEVICE_ZD1211B },
87 { USB_DEVICE(0x0df6, 0x0036), .driver_info = DEVICE_ZD1211B },
87 /* "Driverless" devices that need ejecting */ 88 /* "Driverless" devices that need ejecting */
88 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER }, 89 { USB_DEVICE(0x0ace, 0x2011), .driver_info = DEVICE_INSTALLER },
89 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER }, 90 { USB_DEVICE(0x0ace, 0x20ff), .driver_info = DEVICE_INSTALLER },
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index 2e03b6d796d3..e76d715e4342 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -393,16 +393,21 @@ oprofile_write_reserve(struct op_entry *entry, struct pt_regs * const regs,
393 return; 393 return;
394 394
395fail: 395fail:
396 entry->event = NULL;
396 cpu_buf->sample_lost_overflow++; 397 cpu_buf->sample_lost_overflow++;
397} 398}
398 399
399int oprofile_add_data(struct op_entry *entry, unsigned long val) 400int oprofile_add_data(struct op_entry *entry, unsigned long val)
400{ 401{
402 if (!entry->event)
403 return 0;
401 return op_cpu_buffer_add_data(entry, val); 404 return op_cpu_buffer_add_data(entry, val);
402} 405}
403 406
404int oprofile_write_commit(struct op_entry *entry) 407int oprofile_write_commit(struct op_entry *entry)
405{ 408{
409 if (!entry->event)
410 return -EINVAL;
406 return op_cpu_buffer_write_commit(entry); 411 return op_cpu_buffer_write_commit(entry);
407} 412}
408 413
diff --git a/drivers/oprofile/cpu_buffer.h b/drivers/oprofile/cpu_buffer.h
index 63f81c44846a..272995d20293 100644
--- a/drivers/oprofile/cpu_buffer.h
+++ b/drivers/oprofile/cpu_buffer.h
@@ -66,6 +66,13 @@ static inline void op_cpu_buffer_reset(int cpu)
66 cpu_buf->last_task = NULL; 66 cpu_buf->last_task = NULL;
67} 67}
68 68
69/*
70 * op_cpu_buffer_add_data() and op_cpu_buffer_write_commit() may be
71 * called only if op_cpu_buffer_write_reserve() did not return NULL or
72 * entry->event != NULL, otherwise entry->size or entry->event will be
73 * used uninitialized.
74 */
75
69struct op_sample 76struct op_sample
70*op_cpu_buffer_write_reserve(struct op_entry *entry, unsigned long size); 77*op_cpu_buffer_write_reserve(struct op_entry *entry, unsigned long size);
71int op_cpu_buffer_write_commit(struct op_entry *entry); 78int op_cpu_buffer_write_commit(struct op_entry *entry);
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 5482d4ed8256..c2485542f543 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -126,8 +126,10 @@ static int set_lock_status(struct hotplug_slot *hotplug_slot, u8 status)
126 mutex_lock(&slot->ctrl->crit_sect); 126 mutex_lock(&slot->ctrl->crit_sect);
127 127
128 /* has it been >1 sec since our last toggle? */ 128 /* has it been >1 sec since our last toggle? */
129 if ((get_seconds() - slot->last_emi_toggle) < 1) 129 if ((get_seconds() - slot->last_emi_toggle) < 1) {
130 mutex_unlock(&slot->ctrl->crit_sect);
130 return -EINVAL; 131 return -EINVAL;
132 }
131 133
132 /* see what our current state is */ 134 /* see what our current state is */
133 retval = get_lock_status(hotplug_slot, &value); 135 retval = get_lock_status(hotplug_slot, &value);
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index b4a90badd0a6..896a15d70f5b 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -398,21 +398,19 @@ static int msi_capability_init(struct pci_dev *dev)
398 entry->msi_attrib.masked = 1; 398 entry->msi_attrib.masked = 1;
399 entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */ 399 entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */
400 entry->msi_attrib.pos = pos; 400 entry->msi_attrib.pos = pos;
401 if (entry->msi_attrib.maskbit) {
402 entry->mask_base = (void __iomem *)(long)msi_mask_bits_reg(pos,
403 entry->msi_attrib.is_64);
404 }
405 entry->dev = dev; 401 entry->dev = dev;
406 if (entry->msi_attrib.maskbit) { 402 if (entry->msi_attrib.maskbit) {
407 unsigned int maskbits, temp; 403 unsigned int base, maskbits, temp;
404
405 base = msi_mask_bits_reg(pos, entry->msi_attrib.is_64);
406 entry->mask_base = (void __iomem *)(long)base;
407
408 /* All MSIs are unmasked by default, Mask them all */ 408 /* All MSIs are unmasked by default, Mask them all */
409 pci_read_config_dword(dev, 409 pci_read_config_dword(dev, base, &maskbits);
410 msi_mask_bits_reg(pos, entry->msi_attrib.is_64),
411 &maskbits);
412 temp = (1 << multi_msi_capable(control)); 410 temp = (1 << multi_msi_capable(control));
413 temp = ((temp - 1) & ~temp); 411 temp = ((temp - 1) & ~temp);
414 maskbits |= temp; 412 maskbits |= temp;
415 pci_write_config_dword(dev, entry->msi_attrib.is_64, maskbits); 413 pci_write_config_dword(dev, base, maskbits);
416 entry->msi_attrib.maskbits_mask = temp; 414 entry->msi_attrib.maskbits_mask = temp;
417 } 415 }
418 list_add_tail(&entry->list, &dev->msi_list); 416 list_add_tail(&entry->list, &dev->msi_list);
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index c697f2680856..9de07b75b993 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -355,17 +355,27 @@ static int pci_legacy_suspend(struct device *dev, pm_message_t state)
355 int i = 0; 355 int i = 0;
356 356
357 if (drv && drv->suspend) { 357 if (drv && drv->suspend) {
358 pci_dev->state_saved = false;
359
358 i = drv->suspend(pci_dev, state); 360 i = drv->suspend(pci_dev, state);
359 suspend_report_result(drv->suspend, i); 361 suspend_report_result(drv->suspend, i);
360 } else { 362 if (i)
361 pci_save_state(pci_dev); 363 return i;
362 /* 364
363 * This is for compatibility with existing code with legacy PM 365 if (pci_dev->state_saved)
364 * support. 366 goto Fixup;
365 */ 367
366 pci_pm_set_unknown_state(pci_dev); 368 if (WARN_ON_ONCE(pci_dev->current_state != PCI_D0))
369 goto Fixup;
367 } 370 }
368 371
372 pci_save_state(pci_dev);
373 /*
374 * This is for compatibility with existing code with legacy PM support.
375 */
376 pci_pm_set_unknown_state(pci_dev);
377
378 Fixup:
369 pci_fixup_device(pci_fixup_suspend, pci_dev); 379 pci_fixup_device(pci_fixup_suspend, pci_dev);
370 380
371 return i; 381 return i;
@@ -386,81 +396,34 @@ static int pci_legacy_suspend_late(struct device *dev, pm_message_t state)
386 396
387static int pci_legacy_resume_early(struct device *dev) 397static int pci_legacy_resume_early(struct device *dev)
388{ 398{
389 int error = 0;
390 struct pci_dev * pci_dev = to_pci_dev(dev); 399 struct pci_dev * pci_dev = to_pci_dev(dev);
391 struct pci_driver * drv = pci_dev->driver; 400 struct pci_driver * drv = pci_dev->driver;
392 401
393 pci_fixup_device(pci_fixup_resume_early, pci_dev); 402 return drv && drv->resume_early ?
394 403 drv->resume_early(pci_dev) : 0;
395 if (drv && drv->resume_early)
396 error = drv->resume_early(pci_dev);
397 return error;
398} 404}
399 405
400static int pci_legacy_resume(struct device *dev) 406static int pci_legacy_resume(struct device *dev)
401{ 407{
402 int error;
403 struct pci_dev * pci_dev = to_pci_dev(dev); 408 struct pci_dev * pci_dev = to_pci_dev(dev);
404 struct pci_driver * drv = pci_dev->driver; 409 struct pci_driver * drv = pci_dev->driver;
405 410
406 pci_fixup_device(pci_fixup_resume, pci_dev); 411 pci_fixup_device(pci_fixup_resume, pci_dev);
407 412
408 if (drv && drv->resume) { 413 return drv && drv->resume ?
409 error = drv->resume(pci_dev); 414 drv->resume(pci_dev) : pci_pm_reenable_device(pci_dev);
410 } else {
411 /* restore the PCI config space */
412 pci_restore_state(pci_dev);
413 error = pci_pm_reenable_device(pci_dev);
414 }
415 return error;
416} 415}
417 416
418/* Auxiliary functions used by the new power management framework */ 417/* Auxiliary functions used by the new power management framework */
419 418
420static int pci_restore_standard_config(struct pci_dev *pci_dev)
421{
422 struct pci_dev *parent = pci_dev->bus->self;
423 int error = 0;
424
425 /* Check if the device's bus is operational */
426 if (!parent || parent->current_state == PCI_D0) {
427 pci_restore_state(pci_dev);
428 pci_update_current_state(pci_dev, PCI_D0);
429 } else {
430 dev_warn(&pci_dev->dev, "unable to restore config, "
431 "bridge %s in low power state D%d\n", pci_name(parent),
432 parent->current_state);
433 pci_dev->current_state = PCI_UNKNOWN;
434 error = -EAGAIN;
435 }
436
437 return error;
438}
439
440static bool pci_is_bridge(struct pci_dev *pci_dev)
441{
442 return !!(pci_dev->subordinate);
443}
444
445static void pci_pm_default_resume_noirq(struct pci_dev *pci_dev) 419static void pci_pm_default_resume_noirq(struct pci_dev *pci_dev)
446{ 420{
447 if (pci_restore_standard_config(pci_dev)) 421 pci_restore_standard_config(pci_dev);
448 pci_fixup_device(pci_fixup_resume_early, pci_dev); 422 pci_fixup_device(pci_fixup_resume_early, pci_dev);
449} 423}
450 424
451static int pci_pm_default_resume(struct pci_dev *pci_dev) 425static int pci_pm_default_resume(struct pci_dev *pci_dev)
452{ 426{
453 /*
454 * pci_restore_standard_config() should have been called once already,
455 * but it would have failed if the device's parent bridge had not been
456 * in power state D0 at that time. Check it and try again if necessary.
457 */
458 if (pci_dev->current_state == PCI_UNKNOWN) {
459 int error = pci_restore_standard_config(pci_dev);
460 if (error)
461 return error;
462 }
463
464 pci_fixup_device(pci_fixup_resume, pci_dev); 427 pci_fixup_device(pci_fixup_resume, pci_dev);
465 428
466 if (!pci_is_bridge(pci_dev)) 429 if (!pci_is_bridge(pci_dev))
@@ -575,11 +538,11 @@ static int pci_pm_resume_noirq(struct device *dev)
575 struct device_driver *drv = dev->driver; 538 struct device_driver *drv = dev->driver;
576 int error = 0; 539 int error = 0;
577 540
541 pci_pm_default_resume_noirq(pci_dev);
542
578 if (pci_has_legacy_pm_support(pci_dev)) 543 if (pci_has_legacy_pm_support(pci_dev))
579 return pci_legacy_resume_early(dev); 544 return pci_legacy_resume_early(dev);
580 545
581 pci_pm_default_resume_noirq(pci_dev);
582
583 if (drv && drv->pm && drv->pm->resume_noirq) 546 if (drv && drv->pm && drv->pm->resume_noirq)
584 error = drv->pm->resume_noirq(dev); 547 error = drv->pm->resume_noirq(dev);
585 548
@@ -730,11 +693,11 @@ static int pci_pm_restore_noirq(struct device *dev)
730 struct device_driver *drv = dev->driver; 693 struct device_driver *drv = dev->driver;
731 int error = 0; 694 int error = 0;
732 695
696 pci_pm_default_resume_noirq(pci_dev);
697
733 if (pci_has_legacy_pm_support(pci_dev)) 698 if (pci_has_legacy_pm_support(pci_dev))
734 return pci_legacy_resume_early(dev); 699 return pci_legacy_resume_early(dev);
735 700
736 pci_pm_default_resume_noirq(pci_dev);
737
738 if (drv && drv->pm && drv->pm->restore_noirq) 701 if (drv && drv->pm && drv->pm->restore_noirq)
739 error = drv->pm->restore_noirq(dev); 702 error = drv->pm->restore_noirq(dev);
740 703
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index e491fdedf705..17bd9325a245 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -22,7 +22,7 @@
22#include <asm/dma.h> /* isa_dma_bridge_buggy */ 22#include <asm/dma.h> /* isa_dma_bridge_buggy */
23#include "pci.h" 23#include "pci.h"
24 24
25unsigned int pci_pm_d3_delay = 10; 25unsigned int pci_pm_d3_delay = PCI_PM_D3_WAIT;
26 26
27#ifdef CONFIG_PCI_DOMAINS 27#ifdef CONFIG_PCI_DOMAINS
28int pci_domains_supported = 1; 28int pci_domains_supported = 1;
@@ -426,6 +426,7 @@ static inline int platform_pci_sleep_wake(struct pci_dev *dev, bool enable)
426 * given PCI device 426 * given PCI device
427 * @dev: PCI device to handle. 427 * @dev: PCI device to handle.
428 * @state: PCI power state (D0, D1, D2, D3hot) to put the device into. 428 * @state: PCI power state (D0, D1, D2, D3hot) to put the device into.
429 * @wait: If 'true', wait for the device to change its power state
429 * 430 *
430 * RETURN VALUE: 431 * RETURN VALUE:
431 * -EINVAL if the requested state is invalid. 432 * -EINVAL if the requested state is invalid.
@@ -435,7 +436,7 @@ static inline int platform_pci_sleep_wake(struct pci_dev *dev, bool enable)
435 * 0 if device's power state has been successfully changed. 436 * 0 if device's power state has been successfully changed.
436 */ 437 */
437static int 438static int
438pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state) 439pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state, bool wait)
439{ 440{
440 u16 pmcsr; 441 u16 pmcsr;
441 bool need_restore = false; 442 bool need_restore = false;
@@ -480,8 +481,10 @@ pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state)
480 break; 481 break;
481 case PCI_UNKNOWN: /* Boot-up */ 482 case PCI_UNKNOWN: /* Boot-up */
482 if ((pmcsr & PCI_PM_CTRL_STATE_MASK) == PCI_D3hot 483 if ((pmcsr & PCI_PM_CTRL_STATE_MASK) == PCI_D3hot
483 && !(pmcsr & PCI_PM_CTRL_NO_SOFT_RESET)) 484 && !(pmcsr & PCI_PM_CTRL_NO_SOFT_RESET)) {
484 need_restore = true; 485 need_restore = true;
486 wait = true;
487 }
485 /* Fall-through: force to D0 */ 488 /* Fall-through: force to D0 */
486 default: 489 default:
487 pmcsr = 0; 490 pmcsr = 0;
@@ -491,12 +494,15 @@ pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state)
491 /* enter specified state */ 494 /* enter specified state */
492 pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, pmcsr); 495 pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, pmcsr);
493 496
497 if (!wait)
498 return 0;
499
494 /* Mandatory power management transition delays */ 500 /* Mandatory power management transition delays */
495 /* see PCI PM 1.1 5.6.1 table 18 */ 501 /* see PCI PM 1.1 5.6.1 table 18 */
496 if (state == PCI_D3hot || dev->current_state == PCI_D3hot) 502 if (state == PCI_D3hot || dev->current_state == PCI_D3hot)
497 msleep(pci_pm_d3_delay); 503 msleep(pci_pm_d3_delay);
498 else if (state == PCI_D2 || dev->current_state == PCI_D2) 504 else if (state == PCI_D2 || dev->current_state == PCI_D2)
499 udelay(200); 505 udelay(PCI_PM_D2_DELAY);
500 506
501 dev->current_state = state; 507 dev->current_state = state;
502 508
@@ -515,7 +521,7 @@ pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state)
515 if (need_restore) 521 if (need_restore)
516 pci_restore_bars(dev); 522 pci_restore_bars(dev);
517 523
518 if (dev->bus->self) 524 if (wait && dev->bus->self)
519 pcie_aspm_pm_state_change(dev->bus->self); 525 pcie_aspm_pm_state_change(dev->bus->self);
520 526
521 return 0; 527 return 0;
@@ -585,7 +591,7 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
585 if (state == PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3)) 591 if (state == PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3))
586 return 0; 592 return 0;
587 593
588 error = pci_raw_set_power_state(dev, state); 594 error = pci_raw_set_power_state(dev, state, true);
589 595
590 if (state > PCI_D0 && platform_pci_power_manageable(dev)) { 596 if (state > PCI_D0 && platform_pci_power_manageable(dev)) {
591 /* Allow the platform to finalize the transition */ 597 /* Allow the platform to finalize the transition */
@@ -730,6 +736,7 @@ pci_save_state(struct pci_dev *dev)
730 /* XXX: 100% dword access ok here? */ 736 /* XXX: 100% dword access ok here? */
731 for (i = 0; i < 16; i++) 737 for (i = 0; i < 16; i++)
732 pci_read_config_dword(dev, i * 4,&dev->saved_config_space[i]); 738 pci_read_config_dword(dev, i * 4,&dev->saved_config_space[i]);
739 dev->state_saved = true;
733 if ((i = pci_save_pcie_state(dev)) != 0) 740 if ((i = pci_save_pcie_state(dev)) != 0)
734 return i; 741 return i;
735 if ((i = pci_save_pcix_state(dev)) != 0) 742 if ((i = pci_save_pcix_state(dev)) != 0)
@@ -1374,6 +1381,50 @@ void pci_allocate_cap_save_buffers(struct pci_dev *dev)
1374} 1381}
1375 1382
1376/** 1383/**
1384 * pci_restore_standard_config - restore standard config registers of PCI device
1385 * @dev: PCI device to handle
1386 *
1387 * This function assumes that the device's configuration space is accessible.
1388 * If the device needs to be powered up, the function will wait for it to
1389 * change the state.
1390 */
1391int pci_restore_standard_config(struct pci_dev *dev)
1392{
1393 pci_power_t prev_state;
1394 int error;
1395
1396 pci_restore_state(dev);
1397 pci_update_current_state(dev, PCI_D0);
1398
1399 prev_state = dev->current_state;
1400 if (prev_state == PCI_D0)
1401 return 0;
1402
1403 error = pci_raw_set_power_state(dev, PCI_D0, false);
1404 if (error)
1405 return error;
1406
1407 if (pci_is_bridge(dev)) {
1408 if (prev_state > PCI_D1)
1409 mdelay(PCI_PM_BUS_WAIT);
1410 } else {
1411 switch(prev_state) {
1412 case PCI_D3cold:
1413 case PCI_D3hot:
1414 mdelay(pci_pm_d3_delay);
1415 break;
1416 case PCI_D2:
1417 udelay(PCI_PM_D2_DELAY);
1418 break;
1419 }
1420 }
1421
1422 dev->current_state = PCI_D0;
1423
1424 return 0;
1425}
1426
1427/**
1377 * pci_enable_ari - enable ARI forwarding if hardware support it 1428 * pci_enable_ari - enable ARI forwarding if hardware support it
1378 * @dev: the PCI device 1429 * @dev: the PCI device
1379 */ 1430 */
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 1351bb4addde..26ddf78ac300 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -49,6 +49,12 @@ extern void pci_disable_enabled_device(struct pci_dev *dev);
49extern void pci_pm_init(struct pci_dev *dev); 49extern void pci_pm_init(struct pci_dev *dev);
50extern void platform_pci_wakeup_init(struct pci_dev *dev); 50extern void platform_pci_wakeup_init(struct pci_dev *dev);
51extern void pci_allocate_cap_save_buffers(struct pci_dev *dev); 51extern void pci_allocate_cap_save_buffers(struct pci_dev *dev);
52extern int pci_restore_standard_config(struct pci_dev *dev);
53
54static inline bool pci_is_bridge(struct pci_dev *pci_dev)
55{
56 return !!(pci_dev->subordinate);
57}
52 58
53extern int pci_user_read_config_byte(struct pci_dev *dev, int where, u8 *val); 59extern int pci_user_read_config_byte(struct pci_dev *dev, int where, u8 *val);
54extern int pci_user_read_config_word(struct pci_dev *dev, int where, u16 *val); 60extern int pci_user_read_config_word(struct pci_dev *dev, int where, u16 *val);
diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
index d30bb766fcef..b56a704409d2 100644
--- a/drivers/power/pda_power.c
+++ b/drivers/power/pda_power.c
@@ -20,7 +20,7 @@
20 20
21static inline unsigned int get_irq_flags(struct resource *res) 21static inline unsigned int get_irq_flags(struct resource *res)
22{ 22{
23 unsigned int flags = IRQF_DISABLED | IRQF_SHARED; 23 unsigned int flags = IRQF_SAMPLE_RANDOM | IRQF_SHARED;
24 24
25 flags |= res->flags & IRQF_TRIGGER_MASK; 25 flags |= res->flags & IRQF_TRIGGER_MASK;
26 26
diff --git a/drivers/regulator/wm8400-regulator.c b/drivers/regulator/wm8400-regulator.c
index 48b372e038a8..56e23d44ba59 100644
--- a/drivers/regulator/wm8400-regulator.c
+++ b/drivers/regulator/wm8400-regulator.c
@@ -289,7 +289,7 @@ static struct regulator_desc regulators[] = {
289 }, 289 },
290}; 290};
291 291
292static int __init wm8400_regulator_probe(struct platform_device *pdev) 292static int __devinit wm8400_regulator_probe(struct platform_device *pdev)
293{ 293{
294 struct regulator_dev *rdev; 294 struct regulator_dev *rdev;
295 295
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index acca6678cb2b..49c3bfa1afd7 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -70,7 +70,9 @@ static char debug_buffer[255];
70static void lcs_tasklet(unsigned long); 70static void lcs_tasklet(unsigned long);
71static void lcs_start_kernel_thread(struct work_struct *); 71static void lcs_start_kernel_thread(struct work_struct *);
72static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *); 72static void lcs_get_frames_cb(struct lcs_channel *, struct lcs_buffer *);
73#ifdef CONFIG_IP_MULTICAST
73static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *); 74static int lcs_send_delipm(struct lcs_card *, struct lcs_ipm_list *);
75#endif /* CONFIG_IP_MULTICAST */
74static int lcs_recovery(void *ptr); 76static int lcs_recovery(void *ptr);
75 77
76/** 78/**
@@ -1285,6 +1287,8 @@ out:
1285 lcs_clear_thread_running_bit(card, LCS_SET_MC_THREAD); 1287 lcs_clear_thread_running_bit(card, LCS_SET_MC_THREAD);
1286 return 0; 1288 return 0;
1287} 1289}
1290#endif /* CONFIG_IP_MULTICAST */
1291
1288/** 1292/**
1289 * function called by net device to 1293 * function called by net device to
1290 * handle multicast address relevant things 1294 * handle multicast address relevant things
@@ -1292,6 +1296,7 @@ out:
1292static void 1296static void
1293lcs_set_multicast_list(struct net_device *dev) 1297lcs_set_multicast_list(struct net_device *dev)
1294{ 1298{
1299#ifdef CONFIG_IP_MULTICAST
1295 struct lcs_card *card; 1300 struct lcs_card *card;
1296 1301
1297 LCS_DBF_TEXT(4, trace, "setmulti"); 1302 LCS_DBF_TEXT(4, trace, "setmulti");
@@ -1299,9 +1304,8 @@ lcs_set_multicast_list(struct net_device *dev)
1299 1304
1300 if (!lcs_set_thread_start_bit(card, LCS_SET_MC_THREAD)) 1305 if (!lcs_set_thread_start_bit(card, LCS_SET_MC_THREAD))
1301 schedule_work(&card->kernel_thread_starter); 1306 schedule_work(&card->kernel_thread_starter);
1302}
1303
1304#endif /* CONFIG_IP_MULTICAST */ 1307#endif /* CONFIG_IP_MULTICAST */
1308}
1305 1309
1306static long 1310static long
1307lcs_check_irb_error(struct ccw_device *cdev, struct irb *irb) 1311lcs_check_irb_error(struct ccw_device *cdev, struct irb *irb)
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h
index 38c600c0dbbf..3599828b9766 100644
--- a/drivers/serial/sh-sci.h
+++ b/drivers/serial/sh-sci.h
@@ -32,7 +32,9 @@
32#elif defined(CONFIG_CPU_SUBTYPE_SH7720) || \ 32#elif defined(CONFIG_CPU_SUBTYPE_SH7720) || \
33 defined(CONFIG_CPU_SUBTYPE_SH7721) 33 defined(CONFIG_CPU_SUBTYPE_SH7721)
34# define SCSCR_INIT(port) 0x0030 /* TIE=0,RIE=0,TE=1,RE=1 */ 34# define SCSCR_INIT(port) 0x0030 /* TIE=0,RIE=0,TE=1,RE=1 */
35#define SCIF_ORER 0x0200 /* overrun error bit */ 35# define PORT_PTCR 0xA405011EUL
36# define PORT_PVCR 0xA4050122UL
37# define SCIF_ORER 0x0200 /* overrun error bit */
36#elif defined(CONFIG_SH_RTS7751R2D) 38#elif defined(CONFIG_SH_RTS7751R2D)
37# define SCSPTR1 0xFFE0001C /* 8 bit SCIF */ 39# define SCSPTR1 0xFFE0001C /* 8 bit SCIF */
38# define SCSPTR2 0xFFE80020 /* 16 bit SCIF */ 40# define SCSPTR2 0xFFE80020 /* 16 bit SCIF */
@@ -393,6 +395,7 @@ SCIx_FNS(SCSCR, 0x08, 16, 0x08, 16)
393SCIx_FNS(SCxTDR, 0x20, 8, 0x0c, 8) 395SCIx_FNS(SCxTDR, 0x20, 8, 0x0c, 8)
394SCIx_FNS(SCxSR, 0x14, 16, 0x10, 16) 396SCIx_FNS(SCxSR, 0x14, 16, 0x10, 16)
395SCIx_FNS(SCxRDR, 0x24, 8, 0x14, 8) 397SCIx_FNS(SCxRDR, 0x24, 8, 0x14, 8)
398SCIx_FNS(SCSPTR, 0, 0, 0, 0)
396SCIF_FNS(SCTDSR, 0x0c, 8) 399SCIF_FNS(SCTDSR, 0x0c, 8)
397SCIF_FNS(SCFER, 0x10, 16) 400SCIF_FNS(SCFER, 0x10, 16)
398SCIF_FNS(SCFCR, 0x18, 16) 401SCIF_FNS(SCFCR, 0x18, 16)
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 4a6fe01831a8..83a185d52961 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -230,17 +230,6 @@ config SPI_XILINX
230# 230#
231comment "SPI Protocol Masters" 231comment "SPI Protocol Masters"
232 232
233config SPI_AT25
234 tristate "SPI EEPROMs from most vendors"
235 depends on SYSFS
236 help
237 Enable this driver to get read/write support to most SPI EEPROMs,
238 after you configure the board init code to know about each eeprom
239 on your target board.
240
241 This driver can also be built as a module. If so, the module
242 will be called at25.
243
244config SPI_SPIDEV 233config SPI_SPIDEV
245 tristate "User mode SPI device driver support" 234 tristate "User mode SPI device driver support"
246 depends on EXPERIMENTAL 235 depends on EXPERIMENTAL
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index 5e9f521b8844..5d0451936d86 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -33,7 +33,6 @@ obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
33# ... add above this line ... 33# ... add above this line ...
34 34
35# SPI protocol drivers (device/link on bus) 35# SPI protocol drivers (device/link on bus)
36obj-$(CONFIG_SPI_AT25) += at25.o
37obj-$(CONFIG_SPI_SPIDEV) += spidev.o 36obj-$(CONFIG_SPI_SPIDEV) += spidev.o
38obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o 37obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
39# ... add above this line ... 38# ... add above this line ...
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c
index 4bbddb73abd9..f3aaba35e912 100644
--- a/drivers/usb/host/ohci-omap.c
+++ b/drivers/usb/host/ohci-omap.c
@@ -315,14 +315,14 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver,
315 return -ENODEV; 315 return -ENODEV;
316 } 316 }
317 317
318 usb_host_ck = clk_get(0, "usb_hhc_ck"); 318 usb_host_ck = clk_get(&pdev->dev, "usb_hhc_ck");
319 if (IS_ERR(usb_host_ck)) 319 if (IS_ERR(usb_host_ck))
320 return PTR_ERR(usb_host_ck); 320 return PTR_ERR(usb_host_ck);
321 321
322 if (!cpu_is_omap15xx()) 322 if (!cpu_is_omap15xx())
323 usb_dc_ck = clk_get(0, "usb_dc_ck"); 323 usb_dc_ck = clk_get(&pdev->dev, "usb_dc_ck");
324 else 324 else
325 usb_dc_ck = clk_get(0, "lb_ck"); 325 usb_dc_ck = clk_get(&pdev->dev, "lb_ck");
326 326
327 if (IS_ERR(usb_dc_ck)) { 327 if (IS_ERR(usb_dc_ck)) {
328 clk_put(usb_host_ck); 328 clk_put(usb_host_ck);
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 6372f8b17b45..c94f71980c1b 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -2123,6 +2123,18 @@ config FB_PRE_INIT_FB
2123 Select this option if display contents should be inherited as set by 2123 Select this option if display contents should be inherited as set by
2124 the bootloader. 2124 the bootloader.
2125 2125
2126config FB_MX3
2127 tristate "MX3 Framebuffer support"
2128 depends on FB && MX3_IPU
2129 select FB_CFB_FILLRECT
2130 select FB_CFB_COPYAREA
2131 select FB_CFB_IMAGEBLIT
2132 default y
2133 help
2134 This is a framebuffer device for the i.MX31 LCD Controller. So
2135 far only synchronous displays are supported. If you plan to use
2136 an LCD display with your i.MX31 system, say Y here.
2137
2126source "drivers/video/omap/Kconfig" 2138source "drivers/video/omap/Kconfig"
2127 2139
2128source "drivers/video/backlight/Kconfig" 2140source "drivers/video/backlight/Kconfig"
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index be2b657546ef..2a998ca6181d 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -132,6 +132,7 @@ obj-$(CONFIG_FB_VGA16) += vga16fb.o
132obj-$(CONFIG_FB_OF) += offb.o 132obj-$(CONFIG_FB_OF) += offb.o
133obj-$(CONFIG_FB_BF54X_LQ043) += bf54x-lq043fb.o 133obj-$(CONFIG_FB_BF54X_LQ043) += bf54x-lq043fb.o
134obj-$(CONFIG_FB_BFIN_T350MCQB) += bfin-t350mcqb-fb.o 134obj-$(CONFIG_FB_BFIN_T350MCQB) += bfin-t350mcqb-fb.o
135obj-$(CONFIG_FB_MX3) += mx3fb.o
135 136
136# the test framebuffer is last 137# the test framebuffer is last
137obj-$(CONFIG_FB_VIRTUAL) += vfb.o 138obj-$(CONFIG_FB_VIRTUAL) += vfb.o
diff --git a/drivers/video/aty/radeon_i2c.c b/drivers/video/aty/radeon_i2c.c
index 2c5567175dca..359fc64e761a 100644
--- a/drivers/video/aty/radeon_i2c.c
+++ b/drivers/video/aty/radeon_i2c.c
@@ -72,7 +72,6 @@ static int radeon_setup_i2c_bus(struct radeon_i2c_chan *chan, const char *name)
72 snprintf(chan->adapter.name, sizeof(chan->adapter.name), 72 snprintf(chan->adapter.name, sizeof(chan->adapter.name),
73 "radeonfb %s", name); 73 "radeonfb %s", name);
74 chan->adapter.owner = THIS_MODULE; 74 chan->adapter.owner = THIS_MODULE;
75 chan->adapter.id = I2C_HW_B_RADEON;
76 chan->adapter.algo_data = &chan->algo; 75 chan->adapter.algo_data = &chan->algo;
77 chan->adapter.dev.parent = &chan->rinfo->pdev->dev; 76 chan->adapter.dev.parent = &chan->rinfo->pdev->dev;
78 chan->algo.setsda = radeon_gpio_setsda; 77 chan->algo.setsda = radeon_gpio_setsda;
diff --git a/drivers/video/i810/i810-i2c.c b/drivers/video/i810/i810-i2c.c
index 7787c3322ffb..9dd55e5324a1 100644
--- a/drivers/video/i810/i810-i2c.c
+++ b/drivers/video/i810/i810-i2c.c
@@ -90,7 +90,6 @@ static int i810_setup_i2c_bus(struct i810fb_i2c_chan *chan, const char *name)
90 chan->adapter.owner = THIS_MODULE; 90 chan->adapter.owner = THIS_MODULE;
91 chan->adapter.algo_data = &chan->algo; 91 chan->adapter.algo_data = &chan->algo;
92 chan->adapter.dev.parent = &chan->par->dev->dev; 92 chan->adapter.dev.parent = &chan->par->dev->dev;
93 chan->adapter.id = I2C_HW_B_I810;
94 chan->algo.setsda = i810i2c_setsda; 93 chan->algo.setsda = i810i2c_setsda;
95 chan->algo.setscl = i810i2c_setscl; 94 chan->algo.setscl = i810i2c_setscl;
96 chan->algo.getsda = i810i2c_getsda; 95 chan->algo.getsda = i810i2c_getsda;
diff --git a/drivers/video/intelfb/intelfb_i2c.c b/drivers/video/intelfb/intelfb_i2c.c
index 5d896b81f4e0..b3065492bb20 100644
--- a/drivers/video/intelfb/intelfb_i2c.c
+++ b/drivers/video/intelfb/intelfb_i2c.c
@@ -111,7 +111,6 @@ static int intelfb_setup_i2c_bus(struct intelfb_info *dinfo,
111 "intelfb %s", name); 111 "intelfb %s", name);
112 chan->adapter.class = class; 112 chan->adapter.class = class;
113 chan->adapter.owner = THIS_MODULE; 113 chan->adapter.owner = THIS_MODULE;
114 chan->adapter.id = I2C_HW_B_INTELFB;
115 chan->adapter.algo_data = &chan->algo; 114 chan->adapter.algo_data = &chan->algo;
116 chan->adapter.dev.parent = &chan->dinfo->pdev->dev; 115 chan->adapter.dev.parent = &chan->dinfo->pdev->dev;
117 chan->algo.setsda = intelfb_gpio_setsda; 116 chan->algo.setsda = intelfb_gpio_setsda;
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
new file mode 100644
index 000000000000..8a75d05f4334
--- /dev/null
+++ b/drivers/video/mx3fb.c
@@ -0,0 +1,1555 @@
1/*
2 * Copyright (C) 2008
3 * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
4 *
5 * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/module.h>
13#include <linux/kernel.h>
14#include <linux/platform_device.h>
15#include <linux/sched.h>
16#include <linux/errno.h>
17#include <linux/string.h>
18#include <linux/interrupt.h>
19#include <linux/slab.h>
20#include <linux/fb.h>
21#include <linux/delay.h>
22#include <linux/init.h>
23#include <linux/ioport.h>
24#include <linux/dma-mapping.h>
25#include <linux/dmaengine.h>
26#include <linux/console.h>
27#include <linux/clk.h>
28#include <linux/mutex.h>
29
30#include <mach/hardware.h>
31#include <mach/ipu.h>
32#include <mach/mx3fb.h>
33
34#include <asm/io.h>
35#include <asm/uaccess.h>
36
37#define MX3FB_NAME "mx3_sdc_fb"
38
39#define MX3FB_REG_OFFSET 0xB4
40
41/* SDC Registers */
42#define SDC_COM_CONF (0xB4 - MX3FB_REG_OFFSET)
43#define SDC_GW_CTRL (0xB8 - MX3FB_REG_OFFSET)
44#define SDC_FG_POS (0xBC - MX3FB_REG_OFFSET)
45#define SDC_BG_POS (0xC0 - MX3FB_REG_OFFSET)
46#define SDC_CUR_POS (0xC4 - MX3FB_REG_OFFSET)
47#define SDC_PWM_CTRL (0xC8 - MX3FB_REG_OFFSET)
48#define SDC_CUR_MAP (0xCC - MX3FB_REG_OFFSET)
49#define SDC_HOR_CONF (0xD0 - MX3FB_REG_OFFSET)
50#define SDC_VER_CONF (0xD4 - MX3FB_REG_OFFSET)
51#define SDC_SHARP_CONF_1 (0xD8 - MX3FB_REG_OFFSET)
52#define SDC_SHARP_CONF_2 (0xDC - MX3FB_REG_OFFSET)
53
54/* Register bits */
55#define SDC_COM_TFT_COLOR 0x00000001UL
56#define SDC_COM_FG_EN 0x00000010UL
57#define SDC_COM_GWSEL 0x00000020UL
58#define SDC_COM_GLB_A 0x00000040UL
59#define SDC_COM_KEY_COLOR_G 0x00000080UL
60#define SDC_COM_BG_EN 0x00000200UL
61#define SDC_COM_SHARP 0x00001000UL
62
63#define SDC_V_SYNC_WIDTH_L 0x00000001UL
64
65/* Display Interface registers */
66#define DI_DISP_IF_CONF (0x0124 - MX3FB_REG_OFFSET)
67#define DI_DISP_SIG_POL (0x0128 - MX3FB_REG_OFFSET)
68#define DI_SER_DISP1_CONF (0x012C - MX3FB_REG_OFFSET)
69#define DI_SER_DISP2_CONF (0x0130 - MX3FB_REG_OFFSET)
70#define DI_HSP_CLK_PER (0x0134 - MX3FB_REG_OFFSET)
71#define DI_DISP0_TIME_CONF_1 (0x0138 - MX3FB_REG_OFFSET)
72#define DI_DISP0_TIME_CONF_2 (0x013C - MX3FB_REG_OFFSET)
73#define DI_DISP0_TIME_CONF_3 (0x0140 - MX3FB_REG_OFFSET)
74#define DI_DISP1_TIME_CONF_1 (0x0144 - MX3FB_REG_OFFSET)
75#define DI_DISP1_TIME_CONF_2 (0x0148 - MX3FB_REG_OFFSET)
76#define DI_DISP1_TIME_CONF_3 (0x014C - MX3FB_REG_OFFSET)
77#define DI_DISP2_TIME_CONF_1 (0x0150 - MX3FB_REG_OFFSET)
78#define DI_DISP2_TIME_CONF_2 (0x0154 - MX3FB_REG_OFFSET)
79#define DI_DISP2_TIME_CONF_3 (0x0158 - MX3FB_REG_OFFSET)
80#define DI_DISP3_TIME_CONF (0x015C - MX3FB_REG_OFFSET)
81#define DI_DISP0_DB0_MAP (0x0160 - MX3FB_REG_OFFSET)
82#define DI_DISP0_DB1_MAP (0x0164 - MX3FB_REG_OFFSET)
83#define DI_DISP0_DB2_MAP (0x0168 - MX3FB_REG_OFFSET)
84#define DI_DISP0_CB0_MAP (0x016C - MX3FB_REG_OFFSET)
85#define DI_DISP0_CB1_MAP (0x0170 - MX3FB_REG_OFFSET)
86#define DI_DISP0_CB2_MAP (0x0174 - MX3FB_REG_OFFSET)
87#define DI_DISP1_DB0_MAP (0x0178 - MX3FB_REG_OFFSET)
88#define DI_DISP1_DB1_MAP (0x017C - MX3FB_REG_OFFSET)
89#define DI_DISP1_DB2_MAP (0x0180 - MX3FB_REG_OFFSET)
90#define DI_DISP1_CB0_MAP (0x0184 - MX3FB_REG_OFFSET)
91#define DI_DISP1_CB1_MAP (0x0188 - MX3FB_REG_OFFSET)
92#define DI_DISP1_CB2_MAP (0x018C - MX3FB_REG_OFFSET)
93#define DI_DISP2_DB0_MAP (0x0190 - MX3FB_REG_OFFSET)
94#define DI_DISP2_DB1_MAP (0x0194 - MX3FB_REG_OFFSET)
95#define DI_DISP2_DB2_MAP (0x0198 - MX3FB_REG_OFFSET)
96#define DI_DISP2_CB0_MAP (0x019C - MX3FB_REG_OFFSET)
97#define DI_DISP2_CB1_MAP (0x01A0 - MX3FB_REG_OFFSET)
98#define DI_DISP2_CB2_MAP (0x01A4 - MX3FB_REG_OFFSET)
99#define DI_DISP3_B0_MAP (0x01A8 - MX3FB_REG_OFFSET)
100#define DI_DISP3_B1_MAP (0x01AC - MX3FB_REG_OFFSET)
101#define DI_DISP3_B2_MAP (0x01B0 - MX3FB_REG_OFFSET)
102#define DI_DISP_ACC_CC (0x01B4 - MX3FB_REG_OFFSET)
103#define DI_DISP_LLA_CONF (0x01B8 - MX3FB_REG_OFFSET)
104#define DI_DISP_LLA_DATA (0x01BC - MX3FB_REG_OFFSET)
105
106/* DI_DISP_SIG_POL bits */
107#define DI_D3_VSYNC_POL_SHIFT 28
108#define DI_D3_HSYNC_POL_SHIFT 27
109#define DI_D3_DRDY_SHARP_POL_SHIFT 26
110#define DI_D3_CLK_POL_SHIFT 25
111#define DI_D3_DATA_POL_SHIFT 24
112
113/* DI_DISP_IF_CONF bits */
114#define DI_D3_CLK_IDLE_SHIFT 26
115#define DI_D3_CLK_SEL_SHIFT 25
116#define DI_D3_DATAMSK_SHIFT 24
117
118enum ipu_panel {
119 IPU_PANEL_SHARP_TFT,
120 IPU_PANEL_TFT,
121};
122
123struct ipu_di_signal_cfg {
124 unsigned datamask_en:1;
125 unsigned clksel_en:1;
126 unsigned clkidle_en:1;
127 unsigned data_pol:1; /* true = inverted */
128 unsigned clk_pol:1; /* true = rising edge */
129 unsigned enable_pol:1;
130 unsigned Hsync_pol:1; /* true = active high */
131 unsigned Vsync_pol:1;
132};
133
134static const struct fb_videomode mx3fb_modedb[] = {
135 {
136 /* 240x320 @ 60 Hz */
137 .name = "Sharp-QVGA",
138 .refresh = 60,
139 .xres = 240,
140 .yres = 320,
141 .pixclock = 185925,
142 .left_margin = 9,
143 .right_margin = 16,
144 .upper_margin = 7,
145 .lower_margin = 9,
146 .hsync_len = 1,
147 .vsync_len = 1,
148 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_SHARP_MODE |
149 FB_SYNC_CLK_INVERT | FB_SYNC_DATA_INVERT |
150 FB_SYNC_CLK_IDLE_EN,
151 .vmode = FB_VMODE_NONINTERLACED,
152 .flag = 0,
153 }, {
154 /* 240x33 @ 60 Hz */
155 .name = "Sharp-CLI",
156 .refresh = 60,
157 .xres = 240,
158 .yres = 33,
159 .pixclock = 185925,
160 .left_margin = 9,
161 .right_margin = 16,
162 .upper_margin = 7,
163 .lower_margin = 9 + 287,
164 .hsync_len = 1,
165 .vsync_len = 1,
166 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_SHARP_MODE |
167 FB_SYNC_CLK_INVERT | FB_SYNC_DATA_INVERT |
168 FB_SYNC_CLK_IDLE_EN,
169 .vmode = FB_VMODE_NONINTERLACED,
170 .flag = 0,
171 }, {
172 /* 640x480 @ 60 Hz */
173 .name = "NEC-VGA",
174 .refresh = 60,
175 .xres = 640,
176 .yres = 480,
177 .pixclock = 38255,
178 .left_margin = 144,
179 .right_margin = 0,
180 .upper_margin = 34,
181 .lower_margin = 40,
182 .hsync_len = 1,
183 .vsync_len = 1,
184 .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_OE_ACT_HIGH,
185 .vmode = FB_VMODE_NONINTERLACED,
186 .flag = 0,
187 }, {
188 /* NTSC TV output */
189 .name = "TV-NTSC",
190 .refresh = 60,
191 .xres = 640,
192 .yres = 480,
193 .pixclock = 37538,
194 .left_margin = 38,
195 .right_margin = 858 - 640 - 38 - 3,
196 .upper_margin = 36,
197 .lower_margin = 518 - 480 - 36 - 1,
198 .hsync_len = 3,
199 .vsync_len = 1,
200 .sync = 0,
201 .vmode = FB_VMODE_NONINTERLACED,
202 .flag = 0,
203 }, {
204 /* PAL TV output */
205 .name = "TV-PAL",
206 .refresh = 50,
207 .xres = 640,
208 .yres = 480,
209 .pixclock = 37538,
210 .left_margin = 38,
211 .right_margin = 960 - 640 - 38 - 32,
212 .upper_margin = 32,
213 .lower_margin = 555 - 480 - 32 - 3,
214 .hsync_len = 32,
215 .vsync_len = 3,
216 .sync = 0,
217 .vmode = FB_VMODE_NONINTERLACED,
218 .flag = 0,
219 }, {
220 /* TV output VGA mode, 640x480 @ 65 Hz */
221 .name = "TV-VGA",
222 .refresh = 60,
223 .xres = 640,
224 .yres = 480,
225 .pixclock = 40574,
226 .left_margin = 35,
227 .right_margin = 45,
228 .upper_margin = 9,
229 .lower_margin = 1,
230 .hsync_len = 46,
231 .vsync_len = 5,
232 .sync = 0,
233 .vmode = FB_VMODE_NONINTERLACED,
234 .flag = 0,
235 },
236};
237
238struct mx3fb_data {
239 struct fb_info *fbi;
240 int backlight_level;
241 void __iomem *reg_base;
242 spinlock_t lock;
243 struct device *dev;
244
245 uint32_t h_start_width;
246 uint32_t v_start_width;
247};
248
249struct dma_chan_request {
250 struct mx3fb_data *mx3fb;
251 enum ipu_channel id;
252};
253
254/* MX3 specific framebuffer information. */
255struct mx3fb_info {
256 int blank;
257 enum ipu_channel ipu_ch;
258 uint32_t cur_ipu_buf;
259
260 u32 pseudo_palette[16];
261
262 struct completion flip_cmpl;
263 struct mutex mutex; /* Protects fb-ops */
264 struct mx3fb_data *mx3fb;
265 struct idmac_channel *idmac_channel;
266 struct dma_async_tx_descriptor *txd;
267 dma_cookie_t cookie;
268 struct scatterlist sg[2];
269
270 u32 sync; /* preserve var->sync flags */
271};
272
273static void mx3fb_dma_done(void *);
274
275/* Used fb-mode and bpp. Can be set on kernel command line, therefore file-static. */
276static const char *fb_mode;
277static unsigned long default_bpp = 16;
278
279static u32 mx3fb_read_reg(struct mx3fb_data *mx3fb, unsigned long reg)
280{
281 return __raw_readl(mx3fb->reg_base + reg);
282}
283
284static void mx3fb_write_reg(struct mx3fb_data *mx3fb, u32 value, unsigned long reg)
285{
286 __raw_writel(value, mx3fb->reg_base + reg);
287}
288
289static const uint32_t di_mappings[] = {
290 0x1600AAAA, 0x00E05555, 0x00070000, 3, /* RGB888 */
291 0x0005000F, 0x000B000F, 0x0011000F, 1, /* RGB666 */
292 0x0011000F, 0x000B000F, 0x0005000F, 1, /* BGR666 */
293 0x0004003F, 0x000A000F, 0x000F003F, 1 /* RGB565 */
294};
295
296static void sdc_fb_init(struct mx3fb_info *fbi)
297{
298 struct mx3fb_data *mx3fb = fbi->mx3fb;
299 uint32_t reg;
300
301 reg = mx3fb_read_reg(mx3fb, SDC_COM_CONF);
302
303 mx3fb_write_reg(mx3fb, reg | SDC_COM_BG_EN, SDC_COM_CONF);
304}
305
306/* Returns enabled flag before uninit */
307static uint32_t sdc_fb_uninit(struct mx3fb_info *fbi)
308{
309 struct mx3fb_data *mx3fb = fbi->mx3fb;
310 uint32_t reg;
311
312 reg = mx3fb_read_reg(mx3fb, SDC_COM_CONF);
313
314 mx3fb_write_reg(mx3fb, reg & ~SDC_COM_BG_EN, SDC_COM_CONF);
315
316 return reg & SDC_COM_BG_EN;
317}
318
319static void sdc_enable_channel(struct mx3fb_info *mx3_fbi)
320{
321 struct mx3fb_data *mx3fb = mx3_fbi->mx3fb;
322 struct idmac_channel *ichan = mx3_fbi->idmac_channel;
323 struct dma_chan *dma_chan = &ichan->dma_chan;
324 unsigned long flags;
325 dma_cookie_t cookie;
326
327 dev_dbg(mx3fb->dev, "mx3fbi %p, desc %p, sg %p\n", mx3_fbi,
328 to_tx_desc(mx3_fbi->txd), to_tx_desc(mx3_fbi->txd)->sg);
329
330 /* This enables the channel */
331 if (mx3_fbi->cookie < 0) {
332 mx3_fbi->txd = dma_chan->device->device_prep_slave_sg(dma_chan,
333 &mx3_fbi->sg[0], 1, DMA_TO_DEVICE, DMA_PREP_INTERRUPT);
334 if (!mx3_fbi->txd) {
335 dev_err(mx3fb->dev, "Cannot allocate descriptor on %d\n",
336 dma_chan->chan_id);
337 return;
338 }
339
340 mx3_fbi->txd->callback_param = mx3_fbi->txd;
341 mx3_fbi->txd->callback = mx3fb_dma_done;
342
343 cookie = mx3_fbi->txd->tx_submit(mx3_fbi->txd);
344 dev_dbg(mx3fb->dev, "%d: Submit %p #%d [%c]\n", __LINE__,
345 mx3_fbi->txd, cookie, list_empty(&ichan->queue) ? '-' : '+');
346 } else {
347 if (!mx3_fbi->txd || !mx3_fbi->txd->tx_submit) {
348 dev_err(mx3fb->dev, "Cannot enable channel %d\n",
349 dma_chan->chan_id);
350 return;
351 }
352
353 /* Just re-activate the same buffer */
354 dma_async_issue_pending(dma_chan);
355 cookie = mx3_fbi->cookie;
356 dev_dbg(mx3fb->dev, "%d: Re-submit %p #%d [%c]\n", __LINE__,
357 mx3_fbi->txd, cookie, list_empty(&ichan->queue) ? '-' : '+');
358 }
359
360 if (cookie >= 0) {
361 spin_lock_irqsave(&mx3fb->lock, flags);
362 sdc_fb_init(mx3_fbi);
363 mx3_fbi->cookie = cookie;
364 spin_unlock_irqrestore(&mx3fb->lock, flags);
365 }
366
367 /*
368 * Attention! Without this msleep the channel keeps generating
369 * interrupts. Next sdc_set_brightness() is going to be called
370 * from mx3fb_blank().
371 */
372 msleep(2);
373}
374
375static void sdc_disable_channel(struct mx3fb_info *mx3_fbi)
376{
377 struct mx3fb_data *mx3fb = mx3_fbi->mx3fb;
378 uint32_t enabled;
379 unsigned long flags;
380
381 spin_lock_irqsave(&mx3fb->lock, flags);
382
383 enabled = sdc_fb_uninit(mx3_fbi);
384
385 spin_unlock_irqrestore(&mx3fb->lock, flags);
386
387 mx3_fbi->txd->chan->device->device_terminate_all(mx3_fbi->txd->chan);
388 mx3_fbi->txd = NULL;
389 mx3_fbi->cookie = -EINVAL;
390}
391
392/**
393 * sdc_set_window_pos() - set window position of the respective plane.
394 * @mx3fb: mx3fb context.
395 * @channel: IPU DMAC channel ID.
396 * @x_pos: X coordinate relative to the top left corner to place window at.
397 * @y_pos: Y coordinate relative to the top left corner to place window at.
398 * @return: 0 on success or negative error code on failure.
399 */
400static int sdc_set_window_pos(struct mx3fb_data *mx3fb, enum ipu_channel channel,
401 int16_t x_pos, int16_t y_pos)
402{
403 x_pos += mx3fb->h_start_width;
404 y_pos += mx3fb->v_start_width;
405
406 if (channel != IDMAC_SDC_0)
407 return -EINVAL;
408
409 mx3fb_write_reg(mx3fb, (x_pos << 16) | y_pos, SDC_BG_POS);
410 return 0;
411}
412
413/**
414 * sdc_init_panel() - initialize a synchronous LCD panel.
415 * @mx3fb: mx3fb context.
416 * @panel: panel type.
417 * @pixel_clk: desired pixel clock frequency in Hz.
418 * @width: width of panel in pixels.
419 * @height: height of panel in pixels.
420 * @pixel_fmt: pixel format of buffer as FOURCC ASCII code.
421 * @h_start_width: number of pixel clocks between the HSYNC signal pulse
422 * and the start of valid data.
423 * @h_sync_width: width of the HSYNC signal in units of pixel clocks.
424 * @h_end_width: number of pixel clocks between the end of valid data
425 * and the HSYNC signal for next line.
426 * @v_start_width: number of lines between the VSYNC signal pulse and the
427 * start of valid data.
428 * @v_sync_width: width of the VSYNC signal in units of lines
429 * @v_end_width: number of lines between the end of valid data and the
430 * VSYNC signal for next frame.
431 * @sig: bitfield of signal polarities for LCD interface.
432 * @return: 0 on success or negative error code on failure.
433 */
434static int sdc_init_panel(struct mx3fb_data *mx3fb, enum ipu_panel panel,
435 uint32_t pixel_clk,
436 uint16_t width, uint16_t height,
437 enum pixel_fmt pixel_fmt,
438 uint16_t h_start_width, uint16_t h_sync_width,
439 uint16_t h_end_width, uint16_t v_start_width,
440 uint16_t v_sync_width, uint16_t v_end_width,
441 struct ipu_di_signal_cfg sig)
442{
443 unsigned long lock_flags;
444 uint32_t reg;
445 uint32_t old_conf;
446 uint32_t div;
447 struct clk *ipu_clk;
448
449 dev_dbg(mx3fb->dev, "panel size = %d x %d", width, height);
450
451 if (v_sync_width == 0 || h_sync_width == 0)
452 return -EINVAL;
453
454 /* Init panel size and blanking periods */
455 reg = ((uint32_t) (h_sync_width - 1) << 26) |
456 ((uint32_t) (width + h_start_width + h_end_width - 1) << 16);
457 mx3fb_write_reg(mx3fb, reg, SDC_HOR_CONF);
458
459#ifdef DEBUG
460 printk(KERN_CONT " hor_conf %x,", reg);
461#endif
462
463 reg = ((uint32_t) (v_sync_width - 1) << 26) | SDC_V_SYNC_WIDTH_L |
464 ((uint32_t) (height + v_start_width + v_end_width - 1) << 16);
465 mx3fb_write_reg(mx3fb, reg, SDC_VER_CONF);
466
467#ifdef DEBUG
468 printk(KERN_CONT " ver_conf %x\n", reg);
469#endif
470
471 mx3fb->h_start_width = h_start_width;
472 mx3fb->v_start_width = v_start_width;
473
474 switch (panel) {
475 case IPU_PANEL_SHARP_TFT:
476 mx3fb_write_reg(mx3fb, 0x00FD0102L, SDC_SHARP_CONF_1);
477 mx3fb_write_reg(mx3fb, 0x00F500F4L, SDC_SHARP_CONF_2);
478 mx3fb_write_reg(mx3fb, SDC_COM_SHARP | SDC_COM_TFT_COLOR, SDC_COM_CONF);
479 break;
480 case IPU_PANEL_TFT:
481 mx3fb_write_reg(mx3fb, SDC_COM_TFT_COLOR, SDC_COM_CONF);
482 break;
483 default:
484 return -EINVAL;
485 }
486
487 /* Init clocking */
488
489 /*
490 * Calculate divider: fractional part is 4 bits so simply multiple by
491 * 24 to get fractional part, as long as we stay under ~250MHz and on
492 * i.MX31 it (HSP_CLK) is <= 178MHz. Currently 128.267MHz
493 */
494 dev_dbg(mx3fb->dev, "pixel clk = %d\n", pixel_clk);
495
496 ipu_clk = clk_get(mx3fb->dev, "ipu_clk");
497 div = clk_get_rate(ipu_clk) * 16 / pixel_clk;
498 clk_put(ipu_clk);
499
500 if (div < 0x40) { /* Divider less than 4 */
501 dev_dbg(mx3fb->dev,
502 "InitPanel() - Pixel clock divider less than 4\n");
503 div = 0x40;
504 }
505
506 spin_lock_irqsave(&mx3fb->lock, lock_flags);
507
508 /*
509 * DISP3_IF_CLK_DOWN_WR is half the divider value and 2 fraction bits
510 * fewer. Subtract 1 extra from DISP3_IF_CLK_DOWN_WR based on timing
511 * debug. DISP3_IF_CLK_UP_WR is 0
512 */
513 mx3fb_write_reg(mx3fb, (((div / 8) - 1) << 22) | div, DI_DISP3_TIME_CONF);
514
515 /* DI settings */
516 old_conf = mx3fb_read_reg(mx3fb, DI_DISP_IF_CONF) & 0x78FFFFFF;
517 old_conf |= sig.datamask_en << DI_D3_DATAMSK_SHIFT |
518 sig.clksel_en << DI_D3_CLK_SEL_SHIFT |
519 sig.clkidle_en << DI_D3_CLK_IDLE_SHIFT;
520 mx3fb_write_reg(mx3fb, old_conf, DI_DISP_IF_CONF);
521
522 old_conf = mx3fb_read_reg(mx3fb, DI_DISP_SIG_POL) & 0xE0FFFFFF;
523 old_conf |= sig.data_pol << DI_D3_DATA_POL_SHIFT |
524 sig.clk_pol << DI_D3_CLK_POL_SHIFT |
525 sig.enable_pol << DI_D3_DRDY_SHARP_POL_SHIFT |
526 sig.Hsync_pol << DI_D3_HSYNC_POL_SHIFT |
527 sig.Vsync_pol << DI_D3_VSYNC_POL_SHIFT;
528 mx3fb_write_reg(mx3fb, old_conf, DI_DISP_SIG_POL);
529
530 switch (pixel_fmt) {
531 case IPU_PIX_FMT_RGB24:
532 mx3fb_write_reg(mx3fb, di_mappings[0], DI_DISP3_B0_MAP);
533 mx3fb_write_reg(mx3fb, di_mappings[1], DI_DISP3_B1_MAP);
534 mx3fb_write_reg(mx3fb, di_mappings[2], DI_DISP3_B2_MAP);
535 mx3fb_write_reg(mx3fb, mx3fb_read_reg(mx3fb, DI_DISP_ACC_CC) |
536 ((di_mappings[3] - 1) << 12), DI_DISP_ACC_CC);
537 break;
538 case IPU_PIX_FMT_RGB666:
539 mx3fb_write_reg(mx3fb, di_mappings[4], DI_DISP3_B0_MAP);
540 mx3fb_write_reg(mx3fb, di_mappings[5], DI_DISP3_B1_MAP);
541 mx3fb_write_reg(mx3fb, di_mappings[6], DI_DISP3_B2_MAP);
542 mx3fb_write_reg(mx3fb, mx3fb_read_reg(mx3fb, DI_DISP_ACC_CC) |
543 ((di_mappings[7] - 1) << 12), DI_DISP_ACC_CC);
544 break;
545 case IPU_PIX_FMT_BGR666:
546 mx3fb_write_reg(mx3fb, di_mappings[8], DI_DISP3_B0_MAP);
547 mx3fb_write_reg(mx3fb, di_mappings[9], DI_DISP3_B1_MAP);
548 mx3fb_write_reg(mx3fb, di_mappings[10], DI_DISP3_B2_MAP);
549 mx3fb_write_reg(mx3fb, mx3fb_read_reg(mx3fb, DI_DISP_ACC_CC) |
550 ((di_mappings[11] - 1) << 12), DI_DISP_ACC_CC);
551 break;
552 default:
553 mx3fb_write_reg(mx3fb, di_mappings[12], DI_DISP3_B0_MAP);
554 mx3fb_write_reg(mx3fb, di_mappings[13], DI_DISP3_B1_MAP);
555 mx3fb_write_reg(mx3fb, di_mappings[14], DI_DISP3_B2_MAP);
556 mx3fb_write_reg(mx3fb, mx3fb_read_reg(mx3fb, DI_DISP_ACC_CC) |
557 ((di_mappings[15] - 1) << 12), DI_DISP_ACC_CC);
558 break;
559 }
560
561 spin_unlock_irqrestore(&mx3fb->lock, lock_flags);
562
563 dev_dbg(mx3fb->dev, "DI_DISP_IF_CONF = 0x%08X\n",
564 mx3fb_read_reg(mx3fb, DI_DISP_IF_CONF));
565 dev_dbg(mx3fb->dev, "DI_DISP_SIG_POL = 0x%08X\n",
566 mx3fb_read_reg(mx3fb, DI_DISP_SIG_POL));
567 dev_dbg(mx3fb->dev, "DI_DISP3_TIME_CONF = 0x%08X\n",
568 mx3fb_read_reg(mx3fb, DI_DISP3_TIME_CONF));
569
570 return 0;
571}
572
573/**
574 * sdc_set_color_key() - set the transparent color key for SDC graphic plane.
575 * @mx3fb: mx3fb context.
576 * @channel: IPU DMAC channel ID.
577 * @enable: boolean to enable or disable color keyl.
578 * @color_key: 24-bit RGB color to use as transparent color key.
579 * @return: 0 on success or negative error code on failure.
580 */
581static int sdc_set_color_key(struct mx3fb_data *mx3fb, enum ipu_channel channel,
582 bool enable, uint32_t color_key)
583{
584 uint32_t reg, sdc_conf;
585 unsigned long lock_flags;
586
587 spin_lock_irqsave(&mx3fb->lock, lock_flags);
588
589 sdc_conf = mx3fb_read_reg(mx3fb, SDC_COM_CONF);
590 if (channel == IDMAC_SDC_0)
591 sdc_conf &= ~SDC_COM_GWSEL;
592 else
593 sdc_conf |= SDC_COM_GWSEL;
594
595 if (enable) {
596 reg = mx3fb_read_reg(mx3fb, SDC_GW_CTRL) & 0xFF000000L;
597 mx3fb_write_reg(mx3fb, reg | (color_key & 0x00FFFFFFL),
598 SDC_GW_CTRL);
599
600 sdc_conf |= SDC_COM_KEY_COLOR_G;
601 } else {
602 sdc_conf &= ~SDC_COM_KEY_COLOR_G;
603 }
604 mx3fb_write_reg(mx3fb, sdc_conf, SDC_COM_CONF);
605
606 spin_unlock_irqrestore(&mx3fb->lock, lock_flags);
607
608 return 0;
609}
610
611/**
612 * sdc_set_global_alpha() - set global alpha blending modes.
613 * @mx3fb: mx3fb context.
614 * @enable: boolean to enable or disable global alpha blending. If disabled,
615 * per pixel blending is used.
616 * @alpha: global alpha value.
617 * @return: 0 on success or negative error code on failure.
618 */
619static int sdc_set_global_alpha(struct mx3fb_data *mx3fb, bool enable, uint8_t alpha)
620{
621 uint32_t reg;
622 unsigned long lock_flags;
623
624 spin_lock_irqsave(&mx3fb->lock, lock_flags);
625
626 if (enable) {
627 reg = mx3fb_read_reg(mx3fb, SDC_GW_CTRL) & 0x00FFFFFFL;
628 mx3fb_write_reg(mx3fb, reg | ((uint32_t) alpha << 24), SDC_GW_CTRL);
629
630 reg = mx3fb_read_reg(mx3fb, SDC_COM_CONF);
631 mx3fb_write_reg(mx3fb, reg | SDC_COM_GLB_A, SDC_COM_CONF);
632 } else {
633 reg = mx3fb_read_reg(mx3fb, SDC_COM_CONF);
634 mx3fb_write_reg(mx3fb, reg & ~SDC_COM_GLB_A, SDC_COM_CONF);
635 }
636
637 spin_unlock_irqrestore(&mx3fb->lock, lock_flags);
638
639 return 0;
640}
641
642static void sdc_set_brightness(struct mx3fb_data *mx3fb, uint8_t value)
643{
644 /* This might be board-specific */
645 mx3fb_write_reg(mx3fb, 0x03000000UL | value << 16, SDC_PWM_CTRL);
646 return;
647}
648
649static uint32_t bpp_to_pixfmt(int bpp)
650{
651 uint32_t pixfmt = 0;
652 switch (bpp) {
653 case 24:
654 pixfmt = IPU_PIX_FMT_BGR24;
655 break;
656 case 32:
657 pixfmt = IPU_PIX_FMT_BGR32;
658 break;
659 case 16:
660 pixfmt = IPU_PIX_FMT_RGB565;
661 break;
662 }
663 return pixfmt;
664}
665
666static int mx3fb_blank(int blank, struct fb_info *fbi);
667static int mx3fb_map_video_memory(struct fb_info *fbi);
668static int mx3fb_unmap_video_memory(struct fb_info *fbi);
669
670/**
671 * mx3fb_set_fix() - set fixed framebuffer parameters from variable settings.
672 * @info: framebuffer information pointer
673 * @return: 0 on success or negative error code on failure.
674 */
675static int mx3fb_set_fix(struct fb_info *fbi)
676{
677 struct fb_fix_screeninfo *fix = &fbi->fix;
678 struct fb_var_screeninfo *var = &fbi->var;
679
680 strncpy(fix->id, "DISP3 BG", 8);
681
682 fix->line_length = var->xres_virtual * var->bits_per_pixel / 8;
683
684 fix->type = FB_TYPE_PACKED_PIXELS;
685 fix->accel = FB_ACCEL_NONE;
686 fix->visual = FB_VISUAL_TRUECOLOR;
687 fix->xpanstep = 1;
688 fix->ypanstep = 1;
689
690 return 0;
691}
692
693static void mx3fb_dma_done(void *arg)
694{
695 struct idmac_tx_desc *tx_desc = to_tx_desc(arg);
696 struct dma_chan *chan = tx_desc->txd.chan;
697 struct idmac_channel *ichannel = to_idmac_chan(chan);
698 struct mx3fb_data *mx3fb = ichannel->client;
699 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
700
701 dev_dbg(mx3fb->dev, "irq %d callback\n", ichannel->eof_irq);
702
703 /* We only need one interrupt, it will be re-enabled as needed */
704 disable_irq(ichannel->eof_irq);
705
706 complete(&mx3_fbi->flip_cmpl);
707}
708
709/**
710 * mx3fb_set_par() - set framebuffer parameters and change the operating mode.
711 * @fbi: framebuffer information pointer.
712 * @return: 0 on success or negative error code on failure.
713 */
714static int mx3fb_set_par(struct fb_info *fbi)
715{
716 u32 mem_len;
717 struct ipu_di_signal_cfg sig_cfg;
718 enum ipu_panel mode = IPU_PANEL_TFT;
719 struct mx3fb_info *mx3_fbi = fbi->par;
720 struct mx3fb_data *mx3fb = mx3_fbi->mx3fb;
721 struct idmac_channel *ichan = mx3_fbi->idmac_channel;
722 struct idmac_video_param *video = &ichan->params.video;
723 struct scatterlist *sg = mx3_fbi->sg;
724 size_t screen_size;
725
726 dev_dbg(mx3fb->dev, "%s [%c]\n", __func__, list_empty(&ichan->queue) ? '-' : '+');
727
728 mutex_lock(&mx3_fbi->mutex);
729
730 /* Total cleanup */
731 if (mx3_fbi->txd)
732 sdc_disable_channel(mx3_fbi);
733
734 mx3fb_set_fix(fbi);
735
736 mem_len = fbi->var.yres_virtual * fbi->fix.line_length;
737 if (mem_len > fbi->fix.smem_len) {
738 if (fbi->fix.smem_start)
739 mx3fb_unmap_video_memory(fbi);
740
741 fbi->fix.smem_len = mem_len;
742 if (mx3fb_map_video_memory(fbi) < 0) {
743 mutex_unlock(&mx3_fbi->mutex);
744 return -ENOMEM;
745 }
746 }
747
748 screen_size = fbi->fix.line_length * fbi->var.yres;
749
750 sg_init_table(&sg[0], 1);
751 sg_init_table(&sg[1], 1);
752
753 sg_dma_address(&sg[0]) = fbi->fix.smem_start;
754 sg_set_page(&sg[0], virt_to_page(fbi->screen_base),
755 fbi->fix.smem_len,
756 offset_in_page(fbi->screen_base));
757
758 if (mx3_fbi->ipu_ch == IDMAC_SDC_0) {
759 memset(&sig_cfg, 0, sizeof(sig_cfg));
760 if (fbi->var.sync & FB_SYNC_HOR_HIGH_ACT)
761 sig_cfg.Hsync_pol = true;
762 if (fbi->var.sync & FB_SYNC_VERT_HIGH_ACT)
763 sig_cfg.Vsync_pol = true;
764 if (fbi->var.sync & FB_SYNC_CLK_INVERT)
765 sig_cfg.clk_pol = true;
766 if (fbi->var.sync & FB_SYNC_DATA_INVERT)
767 sig_cfg.data_pol = true;
768 if (fbi->var.sync & FB_SYNC_OE_ACT_HIGH)
769 sig_cfg.enable_pol = true;
770 if (fbi->var.sync & FB_SYNC_CLK_IDLE_EN)
771 sig_cfg.clkidle_en = true;
772 if (fbi->var.sync & FB_SYNC_CLK_SEL_EN)
773 sig_cfg.clksel_en = true;
774 if (fbi->var.sync & FB_SYNC_SHARP_MODE)
775 mode = IPU_PANEL_SHARP_TFT;
776
777 dev_dbg(fbi->device, "pixclock = %ul Hz\n",
778 (u32) (PICOS2KHZ(fbi->var.pixclock) * 1000UL));
779
780 if (sdc_init_panel(mx3fb, mode,
781 (PICOS2KHZ(fbi->var.pixclock)) * 1000UL,
782 fbi->var.xres, fbi->var.yres,
783 (fbi->var.sync & FB_SYNC_SWAP_RGB) ?
784 IPU_PIX_FMT_BGR666 : IPU_PIX_FMT_RGB666,
785 fbi->var.left_margin,
786 fbi->var.hsync_len,
787 fbi->var.right_margin +
788 fbi->var.hsync_len,
789 fbi->var.upper_margin,
790 fbi->var.vsync_len,
791 fbi->var.lower_margin +
792 fbi->var.vsync_len, sig_cfg) != 0) {
793 mutex_unlock(&mx3_fbi->mutex);
794 dev_err(fbi->device,
795 "mx3fb: Error initializing panel.\n");
796 return -EINVAL;
797 }
798 }
799
800 sdc_set_window_pos(mx3fb, mx3_fbi->ipu_ch, 0, 0);
801
802 mx3_fbi->cur_ipu_buf = 0;
803
804 video->out_pixel_fmt = bpp_to_pixfmt(fbi->var.bits_per_pixel);
805 video->out_width = fbi->var.xres;
806 video->out_height = fbi->var.yres;
807 video->out_stride = fbi->var.xres_virtual;
808
809 if (mx3_fbi->blank == FB_BLANK_UNBLANK)
810 sdc_enable_channel(mx3_fbi);
811
812 mutex_unlock(&mx3_fbi->mutex);
813
814 return 0;
815}
816
817/**
818 * mx3fb_check_var() - check and adjust framebuffer variable parameters.
819 * @var: framebuffer variable parameters
820 * @fbi: framebuffer information pointer
821 */
822static int mx3fb_check_var(struct fb_var_screeninfo *var, struct fb_info *fbi)
823{
824 struct mx3fb_info *mx3_fbi = fbi->par;
825 u32 vtotal;
826 u32 htotal;
827
828 dev_dbg(fbi->device, "%s\n", __func__);
829
830 if (var->xres_virtual < var->xres)
831 var->xres_virtual = var->xres;
832 if (var->yres_virtual < var->yres)
833 var->yres_virtual = var->yres;
834
835 if ((var->bits_per_pixel != 32) && (var->bits_per_pixel != 24) &&
836 (var->bits_per_pixel != 16))
837 var->bits_per_pixel = default_bpp;
838
839 switch (var->bits_per_pixel) {
840 case 16:
841 var->red.length = 5;
842 var->red.offset = 11;
843 var->red.msb_right = 0;
844
845 var->green.length = 6;
846 var->green.offset = 5;
847 var->green.msb_right = 0;
848
849 var->blue.length = 5;
850 var->blue.offset = 0;
851 var->blue.msb_right = 0;
852
853 var->transp.length = 0;
854 var->transp.offset = 0;
855 var->transp.msb_right = 0;
856 break;
857 case 24:
858 var->red.length = 8;
859 var->red.offset = 16;
860 var->red.msb_right = 0;
861
862 var->green.length = 8;
863 var->green.offset = 8;
864 var->green.msb_right = 0;
865
866 var->blue.length = 8;
867 var->blue.offset = 0;
868 var->blue.msb_right = 0;
869
870 var->transp.length = 0;
871 var->transp.offset = 0;
872 var->transp.msb_right = 0;
873 break;
874 case 32:
875 var->red.length = 8;
876 var->red.offset = 16;
877 var->red.msb_right = 0;
878
879 var->green.length = 8;
880 var->green.offset = 8;
881 var->green.msb_right = 0;
882
883 var->blue.length = 8;
884 var->blue.offset = 0;
885 var->blue.msb_right = 0;
886
887 var->transp.length = 8;
888 var->transp.offset = 24;
889 var->transp.msb_right = 0;
890 break;
891 }
892
893 if (var->pixclock < 1000) {
894 htotal = var->xres + var->right_margin + var->hsync_len +
895 var->left_margin;
896 vtotal = var->yres + var->lower_margin + var->vsync_len +
897 var->upper_margin;
898 var->pixclock = (vtotal * htotal * 6UL) / 100UL;
899 var->pixclock = KHZ2PICOS(var->pixclock);
900 dev_dbg(fbi->device, "pixclock set for 60Hz refresh = %u ps\n",
901 var->pixclock);
902 }
903
904 var->height = -1;
905 var->width = -1;
906 var->grayscale = 0;
907
908 /* Preserve sync flags */
909 var->sync |= mx3_fbi->sync;
910 mx3_fbi->sync |= var->sync;
911
912 return 0;
913}
914
915static u32 chan_to_field(unsigned int chan, struct fb_bitfield *bf)
916{
917 chan &= 0xffff;
918 chan >>= 16 - bf->length;
919 return chan << bf->offset;
920}
921
922static int mx3fb_setcolreg(unsigned int regno, unsigned int red,
923 unsigned int green, unsigned int blue,
924 unsigned int trans, struct fb_info *fbi)
925{
926 struct mx3fb_info *mx3_fbi = fbi->par;
927 u32 val;
928 int ret = 1;
929
930 dev_dbg(fbi->device, "%s\n", __func__);
931
932 mutex_lock(&mx3_fbi->mutex);
933 /*
934 * If greyscale is true, then we convert the RGB value
935 * to greyscale no matter what visual we are using.
936 */
937 if (fbi->var.grayscale)
938 red = green = blue = (19595 * red + 38470 * green +
939 7471 * blue) >> 16;
940 switch (fbi->fix.visual) {
941 case FB_VISUAL_TRUECOLOR:
942 /*
943 * 16-bit True Colour. We encode the RGB value
944 * according to the RGB bitfield information.
945 */
946 if (regno < 16) {
947 u32 *pal = fbi->pseudo_palette;
948
949 val = chan_to_field(red, &fbi->var.red);
950 val |= chan_to_field(green, &fbi->var.green);
951 val |= chan_to_field(blue, &fbi->var.blue);
952
953 pal[regno] = val;
954
955 ret = 0;
956 }
957 break;
958
959 case FB_VISUAL_STATIC_PSEUDOCOLOR:
960 case FB_VISUAL_PSEUDOCOLOR:
961 break;
962 }
963 mutex_unlock(&mx3_fbi->mutex);
964
965 return ret;
966}
967
968/**
969 * mx3fb_blank() - blank the display.
970 */
971static int mx3fb_blank(int blank, struct fb_info *fbi)
972{
973 struct mx3fb_info *mx3_fbi = fbi->par;
974 struct mx3fb_data *mx3fb = mx3_fbi->mx3fb;
975
976 dev_dbg(fbi->device, "%s\n", __func__);
977
978 dev_dbg(fbi->device, "blank = %d\n", blank);
979
980 if (mx3_fbi->blank == blank)
981 return 0;
982
983 mutex_lock(&mx3_fbi->mutex);
984 mx3_fbi->blank = blank;
985
986 switch (blank) {
987 case FB_BLANK_POWERDOWN:
988 case FB_BLANK_VSYNC_SUSPEND:
989 case FB_BLANK_HSYNC_SUSPEND:
990 case FB_BLANK_NORMAL:
991 sdc_disable_channel(mx3_fbi);
992 sdc_set_brightness(mx3fb, 0);
993 break;
994 case FB_BLANK_UNBLANK:
995 sdc_enable_channel(mx3_fbi);
996 sdc_set_brightness(mx3fb, mx3fb->backlight_level);
997 break;
998 }
999 mutex_unlock(&mx3_fbi->mutex);
1000
1001 return 0;
1002}
1003
1004/**
1005 * mx3fb_pan_display() - pan or wrap the display
1006 * @var: variable screen buffer information.
1007 * @info: framebuffer information pointer.
1008 *
1009 * We look only at xoffset, yoffset and the FB_VMODE_YWRAP flag
1010 */
1011static int mx3fb_pan_display(struct fb_var_screeninfo *var,
1012 struct fb_info *fbi)
1013{
1014 struct mx3fb_info *mx3_fbi = fbi->par;
1015 u32 y_bottom;
1016 unsigned long base;
1017 off_t offset;
1018 dma_cookie_t cookie;
1019 struct scatterlist *sg = mx3_fbi->sg;
1020 struct dma_chan *dma_chan = &mx3_fbi->idmac_channel->dma_chan;
1021 struct dma_async_tx_descriptor *txd;
1022 int ret;
1023
1024 dev_dbg(fbi->device, "%s [%c]\n", __func__,
1025 list_empty(&mx3_fbi->idmac_channel->queue) ? '-' : '+');
1026
1027 if (var->xoffset > 0) {
1028 dev_dbg(fbi->device, "x panning not supported\n");
1029 return -EINVAL;
1030 }
1031
1032 if (fbi->var.xoffset == var->xoffset &&
1033 fbi->var.yoffset == var->yoffset)
1034 return 0; /* No change, do nothing */
1035
1036 y_bottom = var->yoffset;
1037
1038 if (!(var->vmode & FB_VMODE_YWRAP))
1039 y_bottom += var->yres;
1040
1041 if (y_bottom > fbi->var.yres_virtual)
1042 return -EINVAL;
1043
1044 mutex_lock(&mx3_fbi->mutex);
1045
1046 offset = (var->yoffset * var->xres_virtual + var->xoffset) *
1047 (var->bits_per_pixel / 8);
1048 base = fbi->fix.smem_start + offset;
1049
1050 dev_dbg(fbi->device, "Updating SDC BG buf %d address=0x%08lX\n",
1051 mx3_fbi->cur_ipu_buf, base);
1052
1053 /*
1054 * We enable the End of Frame interrupt, which will free a tx-descriptor,
1055 * which we will need for the next device_prep_slave_sg(). The
1056 * IRQ-handler will disable the IRQ again.
1057 */
1058 init_completion(&mx3_fbi->flip_cmpl);
1059 enable_irq(mx3_fbi->idmac_channel->eof_irq);
1060
1061 ret = wait_for_completion_timeout(&mx3_fbi->flip_cmpl, HZ / 10);
1062 if (ret <= 0) {
1063 mutex_unlock(&mx3_fbi->mutex);
1064 dev_info(fbi->device, "Panning failed due to %s\n", ret < 0 ?
1065 "user interrupt" : "timeout");
1066 return ret ? : -ETIMEDOUT;
1067 }
1068
1069 mx3_fbi->cur_ipu_buf = !mx3_fbi->cur_ipu_buf;
1070
1071 sg_dma_address(&sg[mx3_fbi->cur_ipu_buf]) = base;
1072 sg_set_page(&sg[mx3_fbi->cur_ipu_buf],
1073 virt_to_page(fbi->screen_base + offset), fbi->fix.smem_len,
1074 offset_in_page(fbi->screen_base + offset));
1075
1076 txd = dma_chan->device->device_prep_slave_sg(dma_chan, sg +
1077 mx3_fbi->cur_ipu_buf, 1, DMA_TO_DEVICE, DMA_PREP_INTERRUPT);
1078 if (!txd) {
1079 dev_err(fbi->device,
1080 "Error preparing a DMA transaction descriptor.\n");
1081 mutex_unlock(&mx3_fbi->mutex);
1082 return -EIO;
1083 }
1084
1085 txd->callback_param = txd;
1086 txd->callback = mx3fb_dma_done;
1087
1088 /*
1089 * Emulate original mx3fb behaviour: each new call to idmac_tx_submit()
1090 * should switch to another buffer
1091 */
1092 cookie = txd->tx_submit(txd);
1093 dev_dbg(fbi->device, "%d: Submit %p #%d\n", __LINE__, txd, cookie);
1094 if (cookie < 0) {
1095 dev_err(fbi->device,
1096 "Error updating SDC buf %d to address=0x%08lX\n",
1097 mx3_fbi->cur_ipu_buf, base);
1098 mutex_unlock(&mx3_fbi->mutex);
1099 return -EIO;
1100 }
1101
1102 if (mx3_fbi->txd)
1103 async_tx_ack(mx3_fbi->txd);
1104 mx3_fbi->txd = txd;
1105
1106 fbi->var.xoffset = var->xoffset;
1107 fbi->var.yoffset = var->yoffset;
1108
1109 if (var->vmode & FB_VMODE_YWRAP)
1110 fbi->var.vmode |= FB_VMODE_YWRAP;
1111 else
1112 fbi->var.vmode &= ~FB_VMODE_YWRAP;
1113
1114 mutex_unlock(&mx3_fbi->mutex);
1115
1116 dev_dbg(fbi->device, "Update complete\n");
1117
1118 return 0;
1119}
1120
1121/*
1122 * This structure contains the pointers to the control functions that are
1123 * invoked by the core framebuffer driver to perform operations like
1124 * blitting, rectangle filling, copy regions and cursor definition.
1125 */
1126static struct fb_ops mx3fb_ops = {
1127 .owner = THIS_MODULE,
1128 .fb_set_par = mx3fb_set_par,
1129 .fb_check_var = mx3fb_check_var,
1130 .fb_setcolreg = mx3fb_setcolreg,
1131 .fb_pan_display = mx3fb_pan_display,
1132 .fb_fillrect = cfb_fillrect,
1133 .fb_copyarea = cfb_copyarea,
1134 .fb_imageblit = cfb_imageblit,
1135 .fb_blank = mx3fb_blank,
1136};
1137
1138#ifdef CONFIG_PM
1139/*
1140 * Power management hooks. Note that we won't be called from IRQ context,
1141 * unlike the blank functions above, so we may sleep.
1142 */
1143
1144/*
1145 * Suspends the framebuffer and blanks the screen. Power management support
1146 */
1147static int mx3fb_suspend(struct platform_device *pdev, pm_message_t state)
1148{
1149 struct mx3fb_data *drv_data = platform_get_drvdata(pdev);
1150 struct mx3fb_info *mx3_fbi = drv_data->fbi->par;
1151
1152 acquire_console_sem();
1153 fb_set_suspend(drv_data->fbi, 1);
1154 release_console_sem();
1155
1156 if (mx3_fbi->blank == FB_BLANK_UNBLANK) {
1157 sdc_disable_channel(mx3_fbi);
1158 sdc_set_brightness(mx3fb, 0);
1159
1160 }
1161 return 0;
1162}
1163
1164/*
1165 * Resumes the framebuffer and unblanks the screen. Power management support
1166 */
1167static int mx3fb_resume(struct platform_device *pdev)
1168{
1169 struct mx3fb_data *drv_data = platform_get_drvdata(pdev);
1170 struct mx3fb_info *mx3_fbi = drv_data->fbi->par;
1171
1172 if (mx3_fbi->blank == FB_BLANK_UNBLANK) {
1173 sdc_enable_channel(mx3_fbi);
1174 sdc_set_brightness(mx3fb, drv_data->backlight_level);
1175 }
1176
1177 acquire_console_sem();
1178 fb_set_suspend(drv_data->fbi, 0);
1179 release_console_sem();
1180
1181 return 0;
1182}
1183#else
1184#define mx3fb_suspend NULL
1185#define mx3fb_resume NULL
1186#endif
1187
1188/*
1189 * Main framebuffer functions
1190 */
1191
1192/**
1193 * mx3fb_map_video_memory() - allocates the DRAM memory for the frame buffer.
1194 * @fbi: framebuffer information pointer
1195 * @return: Error code indicating success or failure
1196 *
1197 * This buffer is remapped into a non-cached, non-buffered, memory region to
1198 * allow palette and pixel writes to occur without flushing the cache. Once this
1199 * area is remapped, all virtual memory access to the video memory should occur
1200 * at the new region.
1201 */
1202static int mx3fb_map_video_memory(struct fb_info *fbi)
1203{
1204 int retval = 0;
1205 dma_addr_t addr;
1206
1207 fbi->screen_base = dma_alloc_writecombine(fbi->device,
1208 fbi->fix.smem_len,
1209 &addr, GFP_DMA);
1210
1211 if (!fbi->screen_base) {
1212 dev_err(fbi->device, "Cannot allocate %u bytes framebuffer memory\n",
1213 fbi->fix.smem_len);
1214 retval = -EBUSY;
1215 goto err0;
1216 }
1217
1218 fbi->fix.smem_start = addr;
1219
1220 dev_dbg(fbi->device, "allocated fb @ p=0x%08x, v=0x%p, size=%d.\n",
1221 (uint32_t) fbi->fix.smem_start, fbi->screen_base, fbi->fix.smem_len);
1222
1223 fbi->screen_size = fbi->fix.smem_len;
1224
1225 /* Clear the screen */
1226 memset((char *)fbi->screen_base, 0, fbi->fix.smem_len);
1227
1228 return 0;
1229
1230err0:
1231 fbi->fix.smem_len = 0;
1232 fbi->fix.smem_start = 0;
1233 fbi->screen_base = NULL;
1234 return retval;
1235}
1236
1237/**
1238 * mx3fb_unmap_video_memory() - de-allocate frame buffer memory.
1239 * @fbi: framebuffer information pointer
1240 * @return: error code indicating success or failure
1241 */
1242static int mx3fb_unmap_video_memory(struct fb_info *fbi)
1243{
1244 dma_free_writecombine(fbi->device, fbi->fix.smem_len,
1245 fbi->screen_base, fbi->fix.smem_start);
1246
1247 fbi->screen_base = 0;
1248 fbi->fix.smem_start = 0;
1249 fbi->fix.smem_len = 0;
1250 return 0;
1251}
1252
1253/**
1254 * mx3fb_init_fbinfo() - initialize framebuffer information object.
1255 * @return: initialized framebuffer structure.
1256 */
1257static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
1258{
1259 struct fb_info *fbi;
1260 struct mx3fb_info *mx3fbi;
1261 int ret;
1262
1263 /* Allocate sufficient memory for the fb structure */
1264 fbi = framebuffer_alloc(sizeof(struct mx3fb_info), dev);
1265 if (!fbi)
1266 return NULL;
1267
1268 mx3fbi = fbi->par;
1269 mx3fbi->cookie = -EINVAL;
1270 mx3fbi->cur_ipu_buf = 0;
1271
1272 fbi->var.activate = FB_ACTIVATE_NOW;
1273
1274 fbi->fbops = ops;
1275 fbi->flags = FBINFO_FLAG_DEFAULT;
1276 fbi->pseudo_palette = mx3fbi->pseudo_palette;
1277
1278 mutex_init(&mx3fbi->mutex);
1279
1280 /* Allocate colormap */
1281 ret = fb_alloc_cmap(&fbi->cmap, 16, 0);
1282 if (ret < 0) {
1283 framebuffer_release(fbi);
1284 return NULL;
1285 }
1286
1287 return fbi;
1288}
1289
1290static int init_fb_chan(struct mx3fb_data *mx3fb, struct idmac_channel *ichan)
1291{
1292 struct device *dev = mx3fb->dev;
1293 struct mx3fb_platform_data *mx3fb_pdata = dev->platform_data;
1294 const char *name = mx3fb_pdata->name;
1295 unsigned int irq;
1296 struct fb_info *fbi;
1297 struct mx3fb_info *mx3fbi;
1298 const struct fb_videomode *mode;
1299 int ret, num_modes;
1300
1301 ichan->client = mx3fb;
1302 irq = ichan->eof_irq;
1303
1304 if (ichan->dma_chan.chan_id != IDMAC_SDC_0)
1305 return -EINVAL;
1306
1307 fbi = mx3fb_init_fbinfo(dev, &mx3fb_ops);
1308 if (!fbi)
1309 return -ENOMEM;
1310
1311 if (!fb_mode)
1312 fb_mode = name;
1313
1314 if (!fb_mode) {
1315 ret = -EINVAL;
1316 goto emode;
1317 }
1318
1319 if (mx3fb_pdata->mode && mx3fb_pdata->num_modes) {
1320 mode = mx3fb_pdata->mode;
1321 num_modes = mx3fb_pdata->num_modes;
1322 } else {
1323 mode = mx3fb_modedb;
1324 num_modes = ARRAY_SIZE(mx3fb_modedb);
1325 }
1326
1327 if (!fb_find_mode(&fbi->var, fbi, fb_mode, mode,
1328 num_modes, NULL, default_bpp)) {
1329 ret = -EBUSY;
1330 goto emode;
1331 }
1332
1333 fb_videomode_to_modelist(mode, num_modes, &fbi->modelist);
1334
1335 /* Default Y virtual size is 2x panel size */
1336 fbi->var.yres_virtual = fbi->var.yres * 2;
1337
1338 mx3fb->fbi = fbi;
1339
1340 /* set Display Interface clock period */
1341 mx3fb_write_reg(mx3fb, 0x00100010L, DI_HSP_CLK_PER);
1342 /* Might need to trigger HSP clock change - see 44.3.3.8.5 */
1343
1344 sdc_set_brightness(mx3fb, 255);
1345 sdc_set_global_alpha(mx3fb, true, 0xFF);
1346 sdc_set_color_key(mx3fb, IDMAC_SDC_0, false, 0);
1347
1348 mx3fbi = fbi->par;
1349 mx3fbi->idmac_channel = ichan;
1350 mx3fbi->ipu_ch = ichan->dma_chan.chan_id;
1351 mx3fbi->mx3fb = mx3fb;
1352 mx3fbi->blank = FB_BLANK_NORMAL;
1353
1354 init_completion(&mx3fbi->flip_cmpl);
1355 disable_irq(ichan->eof_irq);
1356 dev_dbg(mx3fb->dev, "disabling irq %d\n", ichan->eof_irq);
1357 ret = mx3fb_set_par(fbi);
1358 if (ret < 0)
1359 goto esetpar;
1360
1361 mx3fb_blank(FB_BLANK_UNBLANK, fbi);
1362
1363 dev_info(dev, "mx3fb: fb registered, using mode %s\n", fb_mode);
1364
1365 ret = register_framebuffer(fbi);
1366 if (ret < 0)
1367 goto erfb;
1368
1369 return 0;
1370
1371erfb:
1372esetpar:
1373emode:
1374 fb_dealloc_cmap(&fbi->cmap);
1375 framebuffer_release(fbi);
1376
1377 return ret;
1378}
1379
1380static bool chan_filter(struct dma_chan *chan, void *arg)
1381{
1382 struct dma_chan_request *rq = arg;
1383 struct device *dev;
1384 struct mx3fb_platform_data *mx3fb_pdata;
1385
1386 if (!rq)
1387 return false;
1388
1389 dev = rq->mx3fb->dev;
1390 mx3fb_pdata = dev->platform_data;
1391
1392 return rq->id == chan->chan_id &&
1393 mx3fb_pdata->dma_dev == chan->device->dev;
1394}
1395
1396static void release_fbi(struct fb_info *fbi)
1397{
1398 mx3fb_unmap_video_memory(fbi);
1399
1400 fb_dealloc_cmap(&fbi->cmap);
1401
1402 unregister_framebuffer(fbi);
1403 framebuffer_release(fbi);
1404}
1405
1406static int mx3fb_probe(struct platform_device *pdev)
1407{
1408 struct device *dev = &pdev->dev;
1409 int ret;
1410 struct resource *sdc_reg;
1411 struct mx3fb_data *mx3fb;
1412 dma_cap_mask_t mask;
1413 struct dma_chan *chan;
1414 struct dma_chan_request rq;
1415
1416 /*
1417 * Display Interface (DI) and Synchronous Display Controller (SDC)
1418 * registers
1419 */
1420 sdc_reg = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1421 if (!sdc_reg)
1422 return -EINVAL;
1423
1424 mx3fb = kzalloc(sizeof(*mx3fb), GFP_KERNEL);
1425 if (!mx3fb)
1426 return -ENOMEM;
1427
1428 spin_lock_init(&mx3fb->lock);
1429
1430 mx3fb->reg_base = ioremap(sdc_reg->start, resource_size(sdc_reg));
1431 if (!mx3fb->reg_base) {
1432 ret = -ENOMEM;
1433 goto eremap;
1434 }
1435
1436 pr_debug("Remapped %x to %x at %p\n", sdc_reg->start, sdc_reg->end,
1437 mx3fb->reg_base);
1438
1439 /* IDMAC interface */
1440 dmaengine_get();
1441
1442 mx3fb->dev = dev;
1443 platform_set_drvdata(pdev, mx3fb);
1444
1445 rq.mx3fb = mx3fb;
1446
1447 dma_cap_zero(mask);
1448 dma_cap_set(DMA_SLAVE, mask);
1449 dma_cap_set(DMA_PRIVATE, mask);
1450 rq.id = IDMAC_SDC_0;
1451 chan = dma_request_channel(mask, chan_filter, &rq);
1452 if (!chan) {
1453 ret = -EBUSY;
1454 goto ersdc0;
1455 }
1456
1457 ret = init_fb_chan(mx3fb, to_idmac_chan(chan));
1458 if (ret < 0)
1459 goto eisdc0;
1460
1461 mx3fb->backlight_level = 255;
1462
1463 return 0;
1464
1465eisdc0:
1466 dma_release_channel(chan);
1467ersdc0:
1468 dmaengine_put();
1469 iounmap(mx3fb->reg_base);
1470eremap:
1471 kfree(mx3fb);
1472 dev_err(dev, "mx3fb: failed to register fb\n");
1473 return ret;
1474}
1475
1476static int mx3fb_remove(struct platform_device *dev)
1477{
1478 struct mx3fb_data *mx3fb = platform_get_drvdata(dev);
1479 struct fb_info *fbi = mx3fb->fbi;
1480 struct mx3fb_info *mx3_fbi = fbi->par;
1481 struct dma_chan *chan;
1482
1483 chan = &mx3_fbi->idmac_channel->dma_chan;
1484 release_fbi(fbi);
1485
1486 dma_release_channel(chan);
1487 dmaengine_put();
1488
1489 iounmap(mx3fb->reg_base);
1490 kfree(mx3fb);
1491 return 0;
1492}
1493
1494static struct platform_driver mx3fb_driver = {
1495 .driver = {
1496 .name = MX3FB_NAME,
1497 },
1498 .probe = mx3fb_probe,
1499 .remove = mx3fb_remove,
1500 .suspend = mx3fb_suspend,
1501 .resume = mx3fb_resume,
1502};
1503
1504/*
1505 * Parse user specified options (`video=mx3fb:')
1506 * example:
1507 * video=mx3fb:bpp=16
1508 */
1509static int mx3fb_setup(void)
1510{
1511#ifndef MODULE
1512 char *opt, *options = NULL;
1513
1514 if (fb_get_options("mx3fb", &options))
1515 return -ENODEV;
1516
1517 if (!options || !*options)
1518 return 0;
1519
1520 while ((opt = strsep(&options, ",")) != NULL) {
1521 if (!*opt)
1522 continue;
1523 if (!strncmp(opt, "bpp=", 4))
1524 default_bpp = simple_strtoul(opt + 4, NULL, 0);
1525 else
1526 fb_mode = opt;
1527 }
1528#endif
1529
1530 return 0;
1531}
1532
1533static int __init mx3fb_init(void)
1534{
1535 int ret = mx3fb_setup();
1536
1537 if (ret < 0)
1538 return ret;
1539
1540 ret = platform_driver_register(&mx3fb_driver);
1541 return ret;
1542}
1543
1544static void __exit mx3fb_exit(void)
1545{
1546 platform_driver_unregister(&mx3fb_driver);
1547}
1548
1549module_init(mx3fb_init);
1550module_exit(mx3fb_exit);
1551
1552MODULE_AUTHOR("Freescale Semiconductor, Inc.");
1553MODULE_DESCRIPTION("MX3 framebuffer driver");
1554MODULE_ALIAS("platform:" MX3FB_NAME);
1555MODULE_LICENSE("GPL v2");
diff --git a/drivers/video/nvidia/nv_i2c.c b/drivers/video/nvidia/nv_i2c.c
index 6fd7cb8f9b8e..6aaddb4f6788 100644
--- a/drivers/video/nvidia/nv_i2c.c
+++ b/drivers/video/nvidia/nv_i2c.c
@@ -87,7 +87,6 @@ static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
87 87
88 strcpy(chan->adapter.name, name); 88 strcpy(chan->adapter.name, name);
89 chan->adapter.owner = THIS_MODULE; 89 chan->adapter.owner = THIS_MODULE;
90 chan->adapter.id = I2C_HW_B_NVIDIA;
91 chan->adapter.class = i2c_class; 90 chan->adapter.class = i2c_class;
92 chan->adapter.algo_data = &chan->algo; 91 chan->adapter.algo_data = &chan->algo;
93 chan->adapter.dev.parent = &chan->par->pci_dev->dev; 92 chan->adapter.dev.parent = &chan->par->pci_dev->dev;
diff --git a/drivers/video/omap/lcdc.c b/drivers/video/omap/lcdc.c
index 6e2ea7518761..ab3949256677 100644
--- a/drivers/video/omap/lcdc.c
+++ b/drivers/video/omap/lcdc.c
@@ -800,14 +800,14 @@ static int omap_lcdc_init(struct omapfb_device *fbdev, int ext_mode,
800 /* FIXME: 800 /* FIXME:
801 * According to errata some platforms have a clock rate limitiation 801 * According to errata some platforms have a clock rate limitiation
802 */ 802 */
803 lcdc.lcd_ck = clk_get(NULL, "lcd_ck"); 803 lcdc.lcd_ck = clk_get(fbdev->dev, "lcd_ck");
804 if (IS_ERR(lcdc.lcd_ck)) { 804 if (IS_ERR(lcdc.lcd_ck)) {
805 dev_err(fbdev->dev, "unable to access LCD clock\n"); 805 dev_err(fbdev->dev, "unable to access LCD clock\n");
806 r = PTR_ERR(lcdc.lcd_ck); 806 r = PTR_ERR(lcdc.lcd_ck);
807 goto fail0; 807 goto fail0;
808 } 808 }
809 809
810 tc_ck = clk_get(NULL, "tc_ck"); 810 tc_ck = clk_get(fbdev->dev, "tc_ck");
811 if (IS_ERR(tc_ck)) { 811 if (IS_ERR(tc_ck)) {
812 dev_err(fbdev->dev, "unable to access TC clock\n"); 812 dev_err(fbdev->dev, "unable to access TC clock\n");
813 r = PTR_ERR(tc_ck); 813 r = PTR_ERR(tc_ck);
diff --git a/drivers/video/savage/savagefb-i2c.c b/drivers/video/savage/savagefb-i2c.c
index 783d4adffb93..574b29e9f8f2 100644
--- a/drivers/video/savage/savagefb-i2c.c
+++ b/drivers/video/savage/savagefb-i2c.c
@@ -137,7 +137,6 @@ static int savage_setup_i2c_bus(struct savagefb_i2c_chan *chan,
137 if (chan->par) { 137 if (chan->par) {
138 strcpy(chan->adapter.name, name); 138 strcpy(chan->adapter.name, name);
139 chan->adapter.owner = THIS_MODULE; 139 chan->adapter.owner = THIS_MODULE;
140 chan->adapter.id = I2C_HW_B_SAVAGE;
141 chan->adapter.algo_data = &chan->algo; 140 chan->adapter.algo_data = &chan->algo;
142 chan->adapter.dev.parent = &chan->par->pcidev->dev; 141 chan->adapter.dev.parent = &chan->par->pcidev->dev;
143 chan->algo.udelay = 10; 142 chan->algo.udelay = 10;
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 3efa12f9ee50..09a3d5522b43 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -187,10 +187,10 @@ config EP93XX_WATCHDOG
187 187
188config OMAP_WATCHDOG 188config OMAP_WATCHDOG
189 tristate "OMAP Watchdog" 189 tristate "OMAP Watchdog"
190 depends on ARCH_OMAP16XX || ARCH_OMAP24XX 190 depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX
191 help 191 help
192 Support for TI OMAP1610/OMAP1710/OMAP2420 watchdog. Say 'Y' here to 192 Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog. Say 'Y'
193 enable the OMAP1610/OMAP1710 watchdog timer. 193 here to enable the OMAP1610/OMAP1710/OMAP2420/OMAP3430 watchdog timer.
194 194
195config PNX4008_WATCHDOG 195config PNX4008_WATCHDOG
196 tristate "PNX4008 Watchdog" 196 tristate "PNX4008 Watchdog"
diff --git a/drivers/watchdog/at91rm9200_wdt.c b/drivers/watchdog/at91rm9200_wdt.c
index 993e5f52afef..5531691f46ea 100644
--- a/drivers/watchdog/at91rm9200_wdt.c
+++ b/drivers/watchdog/at91rm9200_wdt.c
@@ -13,6 +13,7 @@
13#include <linux/errno.h> 13#include <linux/errno.h>
14#include <linux/fs.h> 14#include <linux/fs.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h>
16#include <linux/kernel.h> 17#include <linux/kernel.h>
17#include <linux/miscdevice.h> 18#include <linux/miscdevice.h>
18#include <linux/module.h> 19#include <linux/module.h>
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 8dc7109d61b7..2ba8f95516a0 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -298,6 +298,14 @@ static int decrease_reservation(unsigned long nr_pages)
298 frame_list[i] = pfn_to_mfn(pfn); 298 frame_list[i] = pfn_to_mfn(pfn);
299 299
300 scrub_page(page); 300 scrub_page(page);
301
302 if (!PageHighMem(page)) {
303 ret = HYPERVISOR_update_va_mapping(
304 (unsigned long)__va(pfn << PAGE_SHIFT),
305 __pte_ma(0), 0);
306 BUG_ON(ret);
307 }
308
301 } 309 }
302 310
303 /* Ensure that ballooned highmem pages don't have kmaps. */ 311 /* Ensure that ballooned highmem pages don't have kmaps. */
diff --git a/drivers/xen/xenfs/xenbus.c b/drivers/xen/xenfs/xenbus.c
index 875a4c59c594..a9592d981b10 100644
--- a/drivers/xen/xenfs/xenbus.c
+++ b/drivers/xen/xenfs/xenbus.c
@@ -291,7 +291,7 @@ static void watch_fired(struct xenbus_watch *watch,
291static int xenbus_write_transaction(unsigned msg_type, 291static int xenbus_write_transaction(unsigned msg_type,
292 struct xenbus_file_priv *u) 292 struct xenbus_file_priv *u)
293{ 293{
294 int rc, ret; 294 int rc;
295 void *reply; 295 void *reply;
296 struct xenbus_transaction_holder *trans = NULL; 296 struct xenbus_transaction_holder *trans = NULL;
297 LIST_HEAD(staging_q); 297 LIST_HEAD(staging_q);
@@ -326,15 +326,14 @@ static int xenbus_write_transaction(unsigned msg_type,
326 } 326 }
327 327
328 mutex_lock(&u->reply_mutex); 328 mutex_lock(&u->reply_mutex);
329 ret = queue_reply(&staging_q, &u->u.msg, sizeof(u->u.msg)); 329 rc = queue_reply(&staging_q, &u->u.msg, sizeof(u->u.msg));
330 if (!ret) 330 if (!rc)
331 ret = queue_reply(&staging_q, reply, u->u.msg.len); 331 rc = queue_reply(&staging_q, reply, u->u.msg.len);
332 if (!ret) { 332 if (!rc) {
333 list_splice_tail(&staging_q, &u->read_buffers); 333 list_splice_tail(&staging_q, &u->read_buffers);
334 wake_up(&u->read_waitq); 334 wake_up(&u->read_waitq);
335 } else { 335 } else {
336 queue_cleanup(&staging_q); 336 queue_cleanup(&staging_q);
337 rc = ret;
338 } 337 }
339 mutex_unlock(&u->reply_mutex); 338 mutex_unlock(&u->reply_mutex);
340 339
diff --git a/fs/9p/Kconfig b/fs/9p/Kconfig
new file mode 100644
index 000000000000..74e0723e90bc
--- /dev/null
+++ b/fs/9p/Kconfig
@@ -0,0 +1,10 @@
1config 9P_FS
2 tristate "Plan 9 Resource Sharing Support (9P2000) (Experimental)"
3 depends on INET && NET_9P && EXPERIMENTAL
4 help
5 If you say Y here, you will get experimental support for
6 Plan 9 resource sharing via the 9P2000 protocol.
7
8 See <http://v9fs.sf.net> for more information.
9
10 If unsure, say N.
diff --git a/fs/Kconfig b/fs/Kconfig
index 51307b0fdf0f..93945dd0b1ae 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -27,141 +27,8 @@ config FS_MBCACHE
27 default y if EXT4_FS=y && EXT4_FS_XATTR 27 default y if EXT4_FS=y && EXT4_FS_XATTR
28 default m if EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR 28 default m if EXT2_FS_XATTR || EXT3_FS_XATTR || EXT4_FS_XATTR
29 29
30config REISERFS_FS 30source "fs/reiserfs/Kconfig"
31 tristate "Reiserfs support" 31source "fs/jfs/Kconfig"
32 help
33 Stores not just filenames but the files themselves in a balanced
34 tree. Uses journalling.
35
36 Balanced trees are more efficient than traditional file system
37 architectural foundations.
38
39 In general, ReiserFS is as fast as ext2, but is very efficient with
40 large directories and small files. Additional patches are needed
41 for NFS and quotas, please see <http://www.namesys.com/> for links.
42
43 It is more easily extended to have features currently found in
44 database and keyword search systems than block allocation based file
45 systems are. The next version will be so extended, and will support
46 plugins consistent with our motto ``It takes more than a license to
47 make source code open.''
48
49 Read <http://www.namesys.com/> to learn more about reiserfs.
50
51 Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com.
52
53 If you like it, you can pay us to add new features to it that you
54 need, buy a support contract, or pay us to port it to another OS.
55
56config REISERFS_CHECK
57 bool "Enable reiserfs debug mode"
58 depends on REISERFS_FS
59 help
60 If you set this to Y, then ReiserFS will perform every check it can
61 possibly imagine of its internal consistency throughout its
62 operation. It will also go substantially slower. More than once we
63 have forgotten that this was on, and then gone despondent over the
64 latest benchmarks.:-) Use of this option allows our team to go all
65 out in checking for consistency when debugging without fear of its
66 effect on end users. If you are on the verge of sending in a bug
67 report, say Y and you might get a useful error message. Almost
68 everyone should say N.
69
70config REISERFS_PROC_INFO
71 bool "Stats in /proc/fs/reiserfs"
72 depends on REISERFS_FS && PROC_FS
73 help
74 Create under /proc/fs/reiserfs a hierarchy of files, displaying
75 various ReiserFS statistics and internal data at the expense of
76 making your kernel or module slightly larger (+8 KB). This also
77 increases the amount of kernel memory required for each mount.
78 Almost everyone but ReiserFS developers and people fine-tuning
79 reiserfs or tracing problems should say N.
80
81config REISERFS_FS_XATTR
82 bool "ReiserFS extended attributes"
83 depends on REISERFS_FS
84 help
85 Extended attributes are name:value pairs associated with inodes by
86 the kernel or by users (see the attr(5) manual page, or visit
87 <http://acl.bestbits.at/> for details).
88
89 If unsure, say N.
90
91config REISERFS_FS_POSIX_ACL
92 bool "ReiserFS POSIX Access Control Lists"
93 depends on REISERFS_FS_XATTR
94 select FS_POSIX_ACL
95 help
96 Posix Access Control Lists (ACLs) support permissions for users and
97 groups beyond the owner/group/world scheme.
98
99 To learn more about Access Control Lists, visit the Posix ACLs for
100 Linux website <http://acl.bestbits.at/>.
101
102 If you don't know what Access Control Lists are, say N
103
104config REISERFS_FS_SECURITY
105 bool "ReiserFS Security Labels"
106 depends on REISERFS_FS_XATTR
107 help
108 Security labels support alternative access control models
109 implemented by security modules like SELinux. This option
110 enables an extended attribute handler for file security
111 labels in the ReiserFS filesystem.
112
113 If you are not using a security module that requires using
114 extended attributes for file security labels, say N.
115
116config JFS_FS
117 tristate "JFS filesystem support"
118 select NLS
119 help
120 This is a port of IBM's Journaled Filesystem . More information is
121 available in the file <file:Documentation/filesystems/jfs.txt>.
122
123 If you do not intend to use the JFS filesystem, say N.
124
125config JFS_POSIX_ACL
126 bool "JFS POSIX Access Control Lists"
127 depends on JFS_FS
128 select FS_POSIX_ACL
129 help
130 Posix Access Control Lists (ACLs) support permissions for users and
131 groups beyond the owner/group/world scheme.
132
133 To learn more about Access Control Lists, visit the Posix ACLs for
134 Linux website <http://acl.bestbits.at/>.
135
136 If you don't know what Access Control Lists are, say N
137
138config JFS_SECURITY
139 bool "JFS Security Labels"
140 depends on JFS_FS
141 help
142 Security labels support alternative access control models
143 implemented by security modules like SELinux. This option
144 enables an extended attribute handler for file security
145 labels in the jfs filesystem.
146
147 If you are not using a security module that requires using
148 extended attributes for file security labels, say N.
149
150config JFS_DEBUG
151 bool "JFS debugging"
152 depends on JFS_FS
153 help
154 If you are experiencing any problems with the JFS filesystem, say
155 Y here. This will result in additional debugging messages to be
156 written to the system log. Under normal circumstances, this
157 results in very little overhead.
158
159config JFS_STATISTICS
160 bool "JFS statistics"
161 depends on JFS_FS
162 help
163 Enabling this option will cause statistics from the JFS file system
164 to be made available to the user in the /proc/fs/jfs/ directory.
165 32
166config FS_POSIX_ACL 33config FS_POSIX_ACL
167# Posix ACL utility routines (for now, only ext2/ext3/jfs/reiserfs/nfs4) 34# Posix ACL utility routines (for now, only ext2/ext3/jfs/reiserfs/nfs4)
@@ -182,111 +49,8 @@ config FILE_LOCKING
182 49
183source "fs/xfs/Kconfig" 50source "fs/xfs/Kconfig"
184source "fs/gfs2/Kconfig" 51source "fs/gfs2/Kconfig"
185 52source "fs/ocfs2/Kconfig"
186config OCFS2_FS 53source "fs/btrfs/Kconfig"
187 tristate "OCFS2 file system support"
188 depends on NET && SYSFS
189 select CONFIGFS_FS
190 select JBD2
191 select CRC32
192 select QUOTA
193 select QUOTA_TREE
194 help
195 OCFS2 is a general purpose extent based shared disk cluster file
196 system with many similarities to ext3. It supports 64 bit inode
197 numbers, and has automatically extending metadata groups which may
198 also make it attractive for non-clustered use.
199
200 You'll want to install the ocfs2-tools package in order to at least
201 get "mount.ocfs2".
202
203 Project web page: http://oss.oracle.com/projects/ocfs2
204 Tools web page: http://oss.oracle.com/projects/ocfs2-tools
205 OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/
206
207 For more information on OCFS2, see the file
208 <file:Documentation/filesystems/ocfs2.txt>.
209
210config OCFS2_FS_O2CB
211 tristate "O2CB Kernelspace Clustering"
212 depends on OCFS2_FS
213 default y
214 help
215 OCFS2 includes a simple kernelspace clustering package, the OCFS2
216 Cluster Base. It only requires a very small userspace component
217 to configure it. This comes with the standard ocfs2-tools package.
218 O2CB is limited to maintaining a cluster for OCFS2 file systems.
219 It cannot manage any other cluster applications.
220
221 It is always safe to say Y here, as the clustering method is
222 run-time selectable.
223
224config OCFS2_FS_USERSPACE_CLUSTER
225 tristate "OCFS2 Userspace Clustering"
226 depends on OCFS2_FS && DLM
227 default y
228 help
229 This option will allow OCFS2 to use userspace clustering services
230 in conjunction with the DLM in fs/dlm. If you are using a
231 userspace cluster manager, say Y here.
232
233 It is safe to say Y, as the clustering method is run-time
234 selectable.
235
236config OCFS2_FS_STATS
237 bool "OCFS2 statistics"
238 depends on OCFS2_FS
239 default y
240 help
241 This option allows some fs statistics to be captured. Enabling
242 this option may increase the memory consumption.
243
244config OCFS2_DEBUG_MASKLOG
245 bool "OCFS2 logging support"
246 depends on OCFS2_FS
247 default y
248 help
249 The ocfs2 filesystem has an extensive logging system. The system
250 allows selection of events to log via files in /sys/o2cb/logmask/.
251 This option will enlarge your kernel, but it allows debugging of
252 ocfs2 filesystem issues.
253
254config OCFS2_DEBUG_FS
255 bool "OCFS2 expensive checks"
256 depends on OCFS2_FS
257 default n
258 help
259 This option will enable expensive consistency checks. Enable
260 this option for debugging only as it is likely to decrease
261 performance of the filesystem.
262
263config OCFS2_FS_POSIX_ACL
264 bool "OCFS2 POSIX Access Control Lists"
265 depends on OCFS2_FS
266 select FS_POSIX_ACL
267 default n
268 help
269 Posix Access Control Lists (ACLs) support permissions for users and
270 groups beyond the owner/group/world scheme.
271
272config BTRFS_FS
273 tristate "Btrfs filesystem (EXPERIMENTAL) Unstable disk format"
274 depends on EXPERIMENTAL
275 select LIBCRC32C
276 select ZLIB_INFLATE
277 select ZLIB_DEFLATE
278 help
279 Btrfs is a new filesystem with extents, writable snapshotting,
280 support for multiple devices and many more features.
281
282 Btrfs is highly experimental, and THE DISK FORMAT IS NOT YET
283 FINALIZED. You should say N here unless you are interested in
284 testing Btrfs with non-critical data.
285
286 To compile this file system support as a module, choose M here. The
287 module will be called btrfs.
288
289 If unsure, say N.
290 54
291endif # BLOCK 55endif # BLOCK
292 56
@@ -348,64 +112,9 @@ config QUOTACTL
348 depends on XFS_QUOTA || QUOTA 112 depends on XFS_QUOTA || QUOTA
349 default y 113 default y
350 114
351config AUTOFS_FS 115source "fs/autofs/Kconfig"
352 tristate "Kernel automounter support" 116source "fs/autofs4/Kconfig"
353 help 117source "fs/fuse/Kconfig"
354 The automounter is a tool to automatically mount remote file systems
355 on demand. This implementation is partially kernel-based to reduce
356 overhead in the already-mounted case; this is unlike the BSD
357 automounter (amd), which is a pure user space daemon.
358
359 To use the automounter you need the user-space tools from the autofs
360 package; you can find the location in <file:Documentation/Changes>.
361 You also want to answer Y to "NFS file system support", below.
362
363 If you want to use the newer version of the automounter with more
364 features, say N here and say Y to "Kernel automounter v4 support",
365 below.
366
367 To compile this support as a module, choose M here: the module will be
368 called autofs.
369
370 If you are not a part of a fairly large, distributed network, you
371 probably do not need an automounter, and can say N here.
372
373config AUTOFS4_FS
374 tristate "Kernel automounter version 4 support (also supports v3)"
375 help
376 The automounter is a tool to automatically mount remote file systems
377 on demand. This implementation is partially kernel-based to reduce
378 overhead in the already-mounted case; this is unlike the BSD
379 automounter (amd), which is a pure user space daemon.
380
381 To use the automounter you need the user-space tools from
382 <ftp://ftp.kernel.org/pub/linux/daemons/autofs/v4/>; you also
383 want to answer Y to "NFS file system support", below.
384
385 To compile this support as a module, choose M here: the module will be
386 called autofs4. You will need to add "alias autofs autofs4" to your
387 modules configuration file.
388
389 If you are not a part of a fairly large, distributed network or
390 don't have a laptop which needs to dynamically reconfigure to the
391 local network, you probably do not need an automounter, and can say
392 N here.
393
394config FUSE_FS
395 tristate "FUSE (Filesystem in Userspace) support"
396 help
397 With FUSE it is possible to implement a fully functional filesystem
398 in a userspace program.
399
400 There's also companion library: libfuse. This library along with
401 utilities is available from the FUSE homepage:
402 <http://fuse.sourceforge.net/>
403
404 See <file:Documentation/filesystems/fuse.txt> for more information.
405 See <file:Documentation/Changes> for needed library/utility version.
406
407 If you want to develop a userspace FS, or if you want to use
408 a filesystem based on FUSE, answer Y or M.
409 118
410config GENERIC_ACL 119config GENERIC_ACL
411 bool 120 bool
@@ -414,64 +123,8 @@ config GENERIC_ACL
414if BLOCK 123if BLOCK
415menu "CD-ROM/DVD Filesystems" 124menu "CD-ROM/DVD Filesystems"
416 125
417config ISO9660_FS 126source "fs/isofs/Kconfig"
418 tristate "ISO 9660 CDROM file system support" 127source "fs/udf/Kconfig"
419 help
420 This is the standard file system used on CD-ROMs. It was previously
421 known as "High Sierra File System" and is called "hsfs" on other
422 Unix systems. The so-called Rock-Ridge extensions which allow for
423 long Unix filenames and symbolic links are also supported by this
424 driver. If you have a CD-ROM drive and want to do more with it than
425 just listen to audio CDs and watch its LEDs, say Y (and read
426 <file:Documentation/filesystems/isofs.txt> and the CD-ROM-HOWTO,
427 available from <http://www.tldp.org/docs.html#howto>), thereby
428 enlarging your kernel by about 27 KB; otherwise say N.
429
430 To compile this file system support as a module, choose M here: the
431 module will be called isofs.
432
433config JOLIET
434 bool "Microsoft Joliet CDROM extensions"
435 depends on ISO9660_FS
436 select NLS
437 help
438 Joliet is a Microsoft extension for the ISO 9660 CD-ROM file system
439 which allows for long filenames in unicode format (unicode is the
440 new 16 bit character code, successor to ASCII, which encodes the
441 characters of almost all languages of the world; see
442 <http://www.unicode.org/> for more information). Say Y here if you
443 want to be able to read Joliet CD-ROMs under Linux.
444
445config ZISOFS
446 bool "Transparent decompression extension"
447 depends on ISO9660_FS
448 select ZLIB_INFLATE
449 help
450 This is a Linux-specific extension to RockRidge which lets you store
451 data in compressed form on a CD-ROM and have it transparently
452 decompressed when the CD-ROM is accessed. See
453 <http://www.kernel.org/pub/linux/utils/fs/zisofs/> for the tools
454 necessary to create such a filesystem. Say Y here if you want to be
455 able to read such compressed CD-ROMs.
456
457config UDF_FS
458 tristate "UDF file system support"
459 select CRC_ITU_T
460 help
461 This is the new file system used on some CD-ROMs and DVDs. Say Y if
462 you intend to mount DVD discs or CDRW's written in packet mode, or
463 if written to by other UDF utilities, such as DirectCD.
464 Please read <file:Documentation/filesystems/udf.txt>.
465
466 To compile this file system support as a module, choose M here: the
467 module will be called udf.
468
469 If unsure, say N.
470
471config UDF_NLS
472 bool
473 default y
474 depends on (UDF_FS=m && NLS) || (UDF_FS=y && NLS=y)
475 128
476endmenu 129endmenu
477endif # BLOCK 130endif # BLOCK
@@ -479,182 +132,8 @@ endif # BLOCK
479if BLOCK 132if BLOCK
480menu "DOS/FAT/NT Filesystems" 133menu "DOS/FAT/NT Filesystems"
481 134
482config FAT_FS 135source "fs/fat/Kconfig"
483 tristate 136source "fs/ntfs/Kconfig"
484 select NLS
485 help
486 If you want to use one of the FAT-based file systems (the MS-DOS and
487 VFAT (Windows 95) file systems), then you must say Y or M here
488 to include FAT support. You will then be able to mount partitions or
489 diskettes with FAT-based file systems and transparently access the
490 files on them, i.e. MSDOS files will look and behave just like all
491 other Unix files.
492
493 This FAT support is not a file system in itself, it only provides
494 the foundation for the other file systems. You will have to say Y or
495 M to at least one of "MSDOS fs support" or "VFAT fs support" in
496 order to make use of it.
497
498 Another way to read and write MSDOS floppies and hard drive
499 partitions from within Linux (but not transparently) is with the
500 mtools ("man mtools") program suite. You don't need to say Y here in
501 order to do that.
502
503 If you need to move large files on floppies between a DOS and a
504 Linux box, say Y here, mount the floppy under Linux with an MSDOS
505 file system and use GNU tar's M option. GNU tar is a program
506 available for Unix and DOS ("man tar" or "info tar").
507
508 The FAT support will enlarge your kernel by about 37 KB. If unsure,
509 say Y.
510
511 To compile this as a module, choose M here: the module will be called
512 fat. Note that if you compile the FAT support as a module, you
513 cannot compile any of the FAT-based file systems into the kernel
514 -- they will have to be modules as well.
515
516config MSDOS_FS
517 tristate "MSDOS fs support"
518 select FAT_FS
519 help
520 This allows you to mount MSDOS partitions of your hard drive (unless
521 they are compressed; to access compressed MSDOS partitions under
522 Linux, you can either use the DOS emulator DOSEMU, described in the
523 DOSEMU-HOWTO, available from
524 <http://www.tldp.org/docs.html#howto>, or try dmsdosfs in
525 <ftp://ibiblio.org/pub/Linux/system/filesystems/dosfs/>. If you
526 intend to use dosemu with a non-compressed MSDOS partition, say Y
527 here) and MSDOS floppies. This means that file access becomes
528 transparent, i.e. the MSDOS files look and behave just like all
529 other Unix files.
530
531 If you have Windows 95 or Windows NT installed on your MSDOS
532 partitions, you should use the VFAT file system (say Y to "VFAT fs
533 support" below), or you will not be able to see the long filenames
534 generated by Windows 95 / Windows NT.
535
536 This option will enlarge your kernel by about 7 KB. If unsure,
537 answer Y. This will only work if you said Y to "DOS FAT fs support"
538 as well. To compile this as a module, choose M here: the module will
539 be called msdos.
540
541config VFAT_FS
542 tristate "VFAT (Windows-95) fs support"
543 select FAT_FS
544 help
545 This option provides support for normal Windows file systems with
546 long filenames. That includes non-compressed FAT-based file systems
547 used by Windows 95, Windows 98, Windows NT 4.0, and the Unix
548 programs from the mtools package.
549
550 The VFAT support enlarges your kernel by about 10 KB and it only
551 works if you said Y to the "DOS FAT fs support" above. Please read
552 the file <file:Documentation/filesystems/vfat.txt> for details. If
553 unsure, say Y.
554
555 To compile this as a module, choose M here: the module will be called
556 vfat.
557
558config FAT_DEFAULT_CODEPAGE
559 int "Default codepage for FAT"
560 depends on MSDOS_FS || VFAT_FS
561 default 437
562 help
563 This option should be set to the codepage of your FAT filesystems.
564 It can be overridden with the "codepage" mount option.
565 See <file:Documentation/filesystems/vfat.txt> for more information.
566
567config FAT_DEFAULT_IOCHARSET
568 string "Default iocharset for FAT"
569 depends on VFAT_FS
570 default "iso8859-1"
571 help
572 Set this to the default input/output character set you'd
573 like FAT to use. It should probably match the character set
574 that most of your FAT filesystems use, and can be overridden
575 with the "iocharset" mount option for FAT filesystems.
576 Note that "utf8" is not recommended for FAT filesystems.
577 If unsure, you shouldn't set "utf8" here.
578 See <file:Documentation/filesystems/vfat.txt> for more information.
579
580config NTFS_FS
581 tristate "NTFS file system support"
582 select NLS
583 help
584 NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
585
586 Saying Y or M here enables read support. There is partial, but
587 safe, write support available. For write support you must also
588 say Y to "NTFS write support" below.
589
590 There are also a number of user-space tools available, called
591 ntfsprogs. These include ntfsundelete and ntfsresize, that work
592 without NTFS support enabled in the kernel.
593
594 This is a rewrite from scratch of Linux NTFS support and replaced
595 the old NTFS code starting with Linux 2.5.11. A backport to
596 the Linux 2.4 kernel series is separately available as a patch
597 from the project web site.
598
599 For more information see <file:Documentation/filesystems/ntfs.txt>
600 and <http://www.linux-ntfs.org/>.
601
602 To compile this file system support as a module, choose M here: the
603 module will be called ntfs.
604
605 If you are not using Windows NT, 2000, XP or 2003 in addition to
606 Linux on your computer it is safe to say N.
607
608config NTFS_DEBUG
609 bool "NTFS debugging support"
610 depends on NTFS_FS
611 help
612 If you are experiencing any problems with the NTFS file system, say
613 Y here. This will result in additional consistency checks to be
614 performed by the driver as well as additional debugging messages to
615 be written to the system log. Note that debugging messages are
616 disabled by default. To enable them, supply the option debug_msgs=1
617 at the kernel command line when booting the kernel or as an option
618 to insmod when loading the ntfs module. Once the driver is active,
619 you can enable debugging messages by doing (as root):
620 echo 1 > /proc/sys/fs/ntfs-debug
621 Replacing the "1" with "0" would disable debug messages.
622
623 If you leave debugging messages disabled, this results in little
624 overhead, but enabling debug messages results in very significant
625 slowdown of the system.
626
627 When reporting bugs, please try to have available a full dump of
628 debugging messages while the misbehaviour was occurring.
629
630config NTFS_RW
631 bool "NTFS write support"
632 depends on NTFS_FS
633 help
634 This enables the partial, but safe, write support in the NTFS driver.
635
636 The only supported operation is overwriting existing files, without
637 changing the file length. No file or directory creation, deletion or
638 renaming is possible. Note only non-resident files can be written to
639 so you may find that some very small files (<500 bytes or so) cannot
640 be written to.
641
642 While we cannot guarantee that it will not damage any data, we have
643 so far not received a single report where the driver would have
644 damaged someones data so we assume it is perfectly safe to use.
645
646 Note: While write support is safe in this version (a rewrite from
647 scratch of the NTFS support), it should be noted that the old NTFS
648 write support, included in Linux 2.5.10 and before (since 1997),
649 is not safe.
650
651 This is currently useful with TopologiLinux. TopologiLinux is run
652 on top of any DOS/Microsoft Windows system without partitioning your
653 hard disk. Unlike other Linux distributions TopologiLinux does not
654 need its own partition. For more information see
655 <http://topologi-linux.sourceforge.net/>
656
657 It is perfectly safe to say N here.
658 137
659endmenu 138endmenu
660endif # BLOCK 139endif # BLOCK
@@ -662,30 +141,7 @@ endif # BLOCK
662menu "Pseudo filesystems" 141menu "Pseudo filesystems"
663 142
664source "fs/proc/Kconfig" 143source "fs/proc/Kconfig"
665 144source "fs/sysfs/Kconfig"
666config SYSFS
667 bool "sysfs file system support" if EMBEDDED
668 default y
669 help
670 The sysfs filesystem is a virtual filesystem that the kernel uses to
671 export internal kernel objects, their attributes, and their
672 relationships to one another.
673
674 Users can use sysfs to ascertain useful information about the running
675 kernel, such as the devices the kernel has discovered on each bus and
676 which driver each is bound to. sysfs can also be used to tune devices
677 and other kernel subsystems.
678
679 Some system agents rely on the information in sysfs to operate.
680 /sbin/hotplug uses device and object attributes in sysfs to assist in
681 delegating policy decisions, like persistently naming devices.
682
683 sysfs is currently used by the block subsystem to mount the root
684 partition. If sysfs is disabled you must specify the boot device on
685 the kernel boot command line via its major and minor numbers. For
686 example, "root=03:01" for /dev/hda1.
687
688 Designers of embedded systems may wish to say N here to conserve space.
689 145
690config TMPFS 146config TMPFS
691 bool "Virtual memory file system support (former shm fs)" 147 bool "Virtual memory file system support (former shm fs)"
@@ -726,17 +182,7 @@ config HUGETLBFS
726config HUGETLB_PAGE 182config HUGETLB_PAGE
727 def_bool HUGETLBFS 183 def_bool HUGETLBFS
728 184
729config CONFIGFS_FS 185source "fs/configfs/Kconfig"
730 tristate "Userspace-driven configuration filesystem"
731 depends on SYSFS
732 help
733 configfs is a ram-based filesystem that provides the converse
734 of sysfs's functionality. Where sysfs is a filesystem-based
735 view of kernel objects, configfs is a filesystem-based manager
736 of kernel objects, or config_items.
737
738 Both sysfs and configfs can and should exist together on the
739 same system. One is not a replacement for the other.
740 186
741endmenu 187endmenu
742 188
@@ -755,425 +201,27 @@ menuconfig MISC_FILESYSTEMS
755 201
756if MISC_FILESYSTEMS 202if MISC_FILESYSTEMS
757 203
758config ADFS_FS 204source "fs/adfs/Kconfig"
759 tristate "ADFS file system support (EXPERIMENTAL)" 205source "fs/affs/Kconfig"
760 depends on BLOCK && EXPERIMENTAL 206source "fs/ecryptfs/Kconfig"
761 help 207source "fs/hfs/Kconfig"
762 The Acorn Disc Filing System is the standard file system of the 208source "fs/hfsplus/Kconfig"
763 RiscOS operating system which runs on Acorn's ARM-based Risc PC 209source "fs/befs/Kconfig"
764 systems and the Acorn Archimedes range of machines. If you say Y 210source "fs/bfs/Kconfig"
765 here, Linux will be able to read from ADFS partitions on hard drives 211source "fs/efs/Kconfig"
766 and from ADFS-formatted floppy discs. If you also want to be able to
767 write to those devices, say Y to "ADFS write support" below.
768
769 The ADFS partition should be the first partition (i.e.,
770 /dev/[hs]d?1) on each of your drives. Please read the file
771 <file:Documentation/filesystems/adfs.txt> for further details.
772
773 To compile this code as a module, choose M here: the module will be
774 called adfs.
775
776 If unsure, say N.
777
778config ADFS_FS_RW
779 bool "ADFS write support (DANGEROUS)"
780 depends on ADFS_FS
781 help
782 If you say Y here, you will be able to write to ADFS partitions on
783 hard drives and ADFS-formatted floppy disks. This is experimental
784 codes, so if you're unsure, say N.
785
786config AFFS_FS
787 tristate "Amiga FFS file system support (EXPERIMENTAL)"
788 depends on BLOCK && EXPERIMENTAL
789 help
790 The Fast File System (FFS) is the common file system used on hard
791 disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y
792 if you want to be able to read and write files from and to an Amiga
793 FFS partition on your hard drive. Amiga floppies however cannot be
794 read with this driver due to an incompatibility of the floppy
795 controller used in an Amiga and the standard floppy controller in
796 PCs and workstations. Read <file:Documentation/filesystems/affs.txt>
797 and <file:fs/affs/Changes>.
798
799 With this driver you can also mount disk files used by Bernd
800 Schmidt's Un*X Amiga Emulator
801 (<http://www.freiburg.linux.de/~uae/>).
802 If you want to do this, you will also need to say Y or M to "Loop
803 device support", above.
804
805 To compile this file system support as a module, choose M here: the
806 module will be called affs. If unsure, say N.
807
808config ECRYPT_FS
809 tristate "eCrypt filesystem layer support (EXPERIMENTAL)"
810 depends on EXPERIMENTAL && KEYS && CRYPTO && NET
811 help
812 Encrypted filesystem that operates on the VFS layer. See
813 <file:Documentation/filesystems/ecryptfs.txt> to learn more about
814 eCryptfs. Userspace components are required and can be
815 obtained from <http://ecryptfs.sf.net>.
816
817 To compile this file system support as a module, choose M here: the
818 module will be called ecryptfs.
819
820config HFS_FS
821 tristate "Apple Macintosh file system support (EXPERIMENTAL)"
822 depends on BLOCK && EXPERIMENTAL
823 select NLS
824 help
825 If you say Y here, you will be able to mount Macintosh-formatted
826 floppy disks and hard drive partitions with full read-write access.
827 Please read <file:Documentation/filesystems/hfs.txt> to learn about
828 the available mount options.
829
830 To compile this file system support as a module, choose M here: the
831 module will be called hfs.
832
833config HFSPLUS_FS
834 tristate "Apple Extended HFS file system support"
835 depends on BLOCK
836 select NLS
837 select NLS_UTF8
838 help
839 If you say Y here, you will be able to mount extended format
840 Macintosh-formatted hard drive partitions with full read-write access.
841
842 This file system is often called HFS+ and was introduced with
843 MacOS 8. It includes all Mac specific filesystem data such as
844 data forks and creator codes, but it also has several UNIX
845 style features such as file ownership and permissions.
846
847config BEFS_FS
848 tristate "BeOS file system (BeFS) support (read only) (EXPERIMENTAL)"
849 depends on BLOCK && EXPERIMENTAL
850 select NLS
851 help
852 The BeOS File System (BeFS) is the native file system of Be, Inc's
853 BeOS. Notable features include support for arbitrary attributes
854 on files and directories, and database-like indices on selected
855 attributes. (Also note that this driver doesn't make those features
856 available at this time). It is a 64 bit filesystem, so it supports
857 extremely large volumes and files.
858
859 If you use this filesystem, you should also say Y to at least one
860 of the NLS (native language support) options below.
861
862 If you don't know what this is about, say N.
863
864 To compile this as a module, choose M here: the module will be
865 called befs.
866
867config BEFS_DEBUG
868 bool "Debug BeFS"
869 depends on BEFS_FS
870 help
871 If you say Y here, you can use the 'debug' mount option to enable
872 debugging output from the driver.
873
874config BFS_FS
875 tristate "BFS file system support (EXPERIMENTAL)"
876 depends on BLOCK && EXPERIMENTAL
877 help
878 Boot File System (BFS) is a file system used under SCO UnixWare to
879 allow the bootloader access to the kernel image and other important
880 files during the boot process. It is usually mounted under /stand
881 and corresponds to the slice marked as "STAND" in the UnixWare
882 partition. You should say Y if you want to read or write the files
883 on your /stand slice from within Linux. You then also need to say Y
884 to "UnixWare slices support", below. More information about the BFS
885 file system is contained in the file
886 <file:Documentation/filesystems/bfs.txt>.
887
888 If you don't know what this is about, say N.
889
890 To compile this as a module, choose M here: the module will be called
891 bfs. Note that the file system of your root partition (the one
892 containing the directory /) cannot be compiled as a module.
893
894
895
896config EFS_FS
897 tristate "EFS file system support (read only) (EXPERIMENTAL)"
898 depends on BLOCK && EXPERIMENTAL
899 help
900 EFS is an older file system used for non-ISO9660 CD-ROMs and hard
901 disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer
902 uses the XFS file system for hard disk partitions however).
903
904 This implementation only offers read-only access. If you don't know
905 what all this is about, it's safe to say N. For more information
906 about EFS see its home page at <http://aeschi.ch.eu.org/efs/>.
907
908 To compile the EFS file system support as a module, choose M here: the
909 module will be called efs.
910
911source "fs/jffs2/Kconfig" 212source "fs/jffs2/Kconfig"
912# UBIFS File system configuration 213# UBIFS File system configuration
913source "fs/ubifs/Kconfig" 214source "fs/ubifs/Kconfig"
914 215source "fs/cramfs/Kconfig"
915config CRAMFS 216source "fs/squashfs/Kconfig"
916 tristate "Compressed ROM file system support (cramfs)" 217source "fs/freevxfs/Kconfig"
917 depends on BLOCK 218source "fs/minix/Kconfig"
918 select ZLIB_INFLATE 219source "fs/omfs/Kconfig"
919 help 220source "fs/hpfs/Kconfig"
920 Saying Y here includes support for CramFs (Compressed ROM File 221source "fs/qnx4/Kconfig"
921 System). CramFs is designed to be a simple, small, and compressed 222source "fs/romfs/Kconfig"
922 file system for ROM based embedded systems. CramFs is read-only, 223source "fs/sysv/Kconfig"
923 limited to 256MB file systems (with 16MB files), and doesn't support 224source "fs/ufs/Kconfig"
924 16/32 bits uid/gid, hard links and timestamps.
925
926 See <file:Documentation/filesystems/cramfs.txt> and
927 <file:fs/cramfs/README> for further information.
928
929 To compile this as a module, choose M here: the module will be called
930 cramfs. Note that the root file system (the one containing the
931 directory /) cannot be compiled as a module.
932
933 If unsure, say N.
934
935config SQUASHFS
936 tristate "SquashFS 4.0 - Squashed file system support"
937 depends on BLOCK
938 select ZLIB_INFLATE
939 help
940 Saying Y here includes support for SquashFS 4.0 (a Compressed
941 Read-Only File System). Squashfs is a highly compressed read-only
942 filesystem for Linux. It uses zlib compression to compress both
943 files, inodes and directories. Inodes in the system are very small
944 and all blocks are packed to minimise data overhead. Block sizes
945 greater than 4K are supported up to a maximum of 1 Mbytes (default
946 block size 128K). SquashFS 4.0 supports 64 bit filesystems and files
947 (larger than 4GB), full uid/gid information, hard links and
948 timestamps.
949
950 Squashfs is intended for general read-only filesystem use, for
951 archival use (i.e. in cases where a .tar.gz file may be used), and in
952 embedded systems where low overhead is needed. Further information
953 and tools are available from http://squashfs.sourceforge.net.
954
955 If you want to compile this as a module ( = code which can be
956 inserted in and removed from the running kernel whenever you want),
957 say M here and read <file:Documentation/modules.txt>. The module
958 will be called squashfs. Note that the root file system (the one
959 containing the directory /) cannot be compiled as a module.
960
961 If unsure, say N.
962
963config SQUASHFS_EMBEDDED
964
965 bool "Additional option for memory-constrained systems"
966 depends on SQUASHFS
967 default n
968 help
969 Saying Y here allows you to specify cache size.
970
971 If unsure, say N.
972
973config SQUASHFS_FRAGMENT_CACHE_SIZE
974 int "Number of fragments cached" if SQUASHFS_EMBEDDED
975 depends on SQUASHFS
976 default "3"
977 help
978 By default SquashFS caches the last 3 fragments read from
979 the filesystem. Increasing this amount may mean SquashFS
980 has to re-read fragments less often from disk, at the expense
981 of extra system memory. Decreasing this amount will mean
982 SquashFS uses less memory at the expense of extra reads from disk.
983
984 Note there must be at least one cached fragment. Anything
985 much more than three will probably not make much difference.
986
987config VXFS_FS
988 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
989 depends on BLOCK
990 help
991 FreeVxFS is a file system driver that support the VERITAS VxFS(TM)
992 file system format. VERITAS VxFS(TM) is the standard file system
993 of SCO UnixWare (and possibly others) and optionally available
994 for Sunsoft Solaris, HP-UX and many other operating systems.
995 Currently only readonly access is supported.
996
997 NOTE: the file system type as used by mount(1), mount(2) and
998 fstab(5) is 'vxfs' as it describes the file system format, not
999 the actual driver.
1000
1001 To compile this as a module, choose M here: the module will be
1002 called freevxfs. If unsure, say N.
1003
1004config MINIX_FS
1005 tristate "Minix file system support"
1006 depends on BLOCK
1007 help
1008 Minix is a simple operating system used in many classes about OS's.
1009 The minix file system (method to organize files on a hard disk
1010 partition or a floppy disk) was the original file system for Linux,
1011 but has been superseded by the second extended file system ext2fs.
1012 You don't want to use the minix file system on your hard disk
1013 because of certain built-in restrictions, but it is sometimes found
1014 on older Linux floppy disks. This option will enlarge your kernel
1015 by about 28 KB. If unsure, say N.
1016
1017 To compile this file system support as a module, choose M here: the
1018 module will be called minix. Note that the file system of your root
1019 partition (the one containing the directory /) cannot be compiled as
1020 a module.
1021
1022config OMFS_FS
1023 tristate "SonicBlue Optimized MPEG File System support"
1024 depends on BLOCK
1025 select CRC_ITU_T
1026 help
1027 This is the proprietary file system used by the Rio Karma music
1028 player and ReplayTV DVR. Despite the name, this filesystem is not
1029 more efficient than a standard FS for MPEG files, in fact likely
1030 the opposite is true. Say Y if you have either of these devices
1031 and wish to mount its disk.
1032
1033 To compile this file system support as a module, choose M here: the
1034 module will be called omfs. If unsure, say N.
1035
1036config HPFS_FS
1037 tristate "OS/2 HPFS file system support"
1038 depends on BLOCK
1039 help
1040 OS/2 is IBM's operating system for PC's, the same as Warp, and HPFS
1041 is the file system used for organizing files on OS/2 hard disk
1042 partitions. Say Y if you want to be able to read files from and
1043 write files to an OS/2 HPFS partition on your hard drive. OS/2
1044 floppies however are in regular MSDOS format, so you don't need this
1045 option in order to be able to read them. Read
1046 <file:Documentation/filesystems/hpfs.txt>.
1047
1048 To compile this file system support as a module, choose M here: the
1049 module will be called hpfs. If unsure, say N.
1050
1051
1052config QNX4FS_FS
1053 tristate "QNX4 file system support (read only)"
1054 depends on BLOCK
1055 help
1056 This is the file system used by the real-time operating systems
1057 QNX 4 and QNX 6 (the latter is also called QNX RTP).
1058 Further information is available at <http://www.qnx.com/>.
1059 Say Y if you intend to mount QNX hard disks or floppies.
1060 Unless you say Y to "QNX4FS read-write support" below, you will
1061 only be able to read these file systems.
1062
1063 To compile this file system support as a module, choose M here: the
1064 module will be called qnx4.
1065
1066 If you don't know whether you need it, then you don't need it:
1067 answer N.
1068
1069config QNX4FS_RW
1070 bool "QNX4FS write support (DANGEROUS)"
1071 depends on QNX4FS_FS && EXPERIMENTAL && BROKEN
1072 help
1073 Say Y if you want to test write support for QNX4 file systems.
1074
1075 It's currently broken, so for now:
1076 answer N.
1077
1078config ROMFS_FS
1079 tristate "ROM file system support"
1080 depends on BLOCK
1081 ---help---
1082 This is a very small read-only file system mainly intended for
1083 initial ram disks of installation disks, but it could be used for
1084 other read-only media as well. Read
1085 <file:Documentation/filesystems/romfs.txt> for details.
1086
1087 To compile this file system support as a module, choose M here: the
1088 module will be called romfs. Note that the file system of your
1089 root partition (the one containing the directory /) cannot be a
1090 module.
1091
1092 If you don't know whether you need it, then you don't need it:
1093 answer N.
1094
1095
1096config SYSV_FS
1097 tristate "System V/Xenix/V7/Coherent file system support"
1098 depends on BLOCK
1099 help
1100 SCO, Xenix and Coherent are commercial Unix systems for Intel
1101 machines, and Version 7 was used on the DEC PDP-11. Saying Y
1102 here would allow you to read from their floppies and hard disk
1103 partitions.
1104
1105 If you have floppies or hard disk partitions like that, it is likely
1106 that they contain binaries from those other Unix systems; in order
1107 to run these binaries, you will want to install linux-abi which is
1108 a set of kernel modules that lets you run SCO, Xenix, Wyse,
1109 UnixWare, Dell Unix and System V programs under Linux. It is
1110 available via FTP (user: ftp) from
1111 <ftp://ftp.openlinux.org/pub/people/hch/linux-abi/>).
1112 NOTE: that will work only for binaries from Intel-based systems;
1113 PDP ones will have to wait until somebody ports Linux to -11 ;-)
1114
1115 If you only intend to mount files from some other Unix over the
1116 network using NFS, you don't need the System V file system support
1117 (but you need NFS file system support obviously).
1118
1119 Note that this option is generally not needed for floppies, since a
1120 good portable way to transport files and directories between unixes
1121 (and even other operating systems) is given by the tar program ("man
1122 tar" or preferably "info tar"). Note also that this option has
1123 nothing whatsoever to do with the option "System V IPC". Read about
1124 the System V file system in
1125 <file:Documentation/filesystems/sysv-fs.txt>.
1126 Saying Y here will enlarge your kernel by about 27 KB.
1127
1128 To compile this as a module, choose M here: the module will be called
1129 sysv.
1130
1131 If you haven't heard about all of this before, it's safe to say N.
1132
1133
1134config UFS_FS
1135 tristate "UFS file system support (read only)"
1136 depends on BLOCK
1137 help
1138 BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD,
1139 OpenBSD and NeXTstep) use a file system called UFS. Some System V
1140 Unixes can create and mount hard disk partitions and diskettes using
1141 this file system as well. Saying Y here will allow you to read from
1142 these partitions; if you also want to write to them, say Y to the
1143 experimental "UFS file system write support", below. Please read the
1144 file <file:Documentation/filesystems/ufs.txt> for more information.
1145
1146 The recently released UFS2 variant (used in FreeBSD 5.x) is
1147 READ-ONLY supported.
1148
1149 Note that this option is generally not needed for floppies, since a
1150 good portable way to transport files and directories between unixes
1151 (and even other operating systems) is given by the tar program ("man
1152 tar" or preferably "info tar").
1153
1154 When accessing NeXTstep files, you may need to convert them from the
1155 NeXT character set to the Latin1 character set; use the program
1156 recode ("info recode") for this purpose.
1157
1158 To compile the UFS file system support as a module, choose M here: the
1159 module will be called ufs.
1160
1161 If you haven't heard about all of this before, it's safe to say N.
1162
1163config UFS_FS_WRITE
1164 bool "UFS file system write support (DANGEROUS)"
1165 depends on UFS_FS && EXPERIMENTAL
1166 help
1167 Say Y here if you want to try writing to UFS partitions. This is
1168 experimental, so you should back up your UFS partitions beforehand.
1169
1170config UFS_DEBUG
1171 bool "UFS debugging"
1172 depends on UFS_FS
1173 help
1174 If you are experiencing any problems with the UFS filesystem, say
1175 Y here. This will result in _many_ additional debugging messages to be
1176 written to the system log.
1177 225
1178endif # MISC_FILESYSTEMS 226endif # MISC_FILESYSTEMS
1179 227
@@ -1193,173 +241,8 @@ menuconfig NETWORK_FILESYSTEMS
1193 241
1194if NETWORK_FILESYSTEMS 242if NETWORK_FILESYSTEMS
1195 243
1196config NFS_FS 244source "fs/nfs/Kconfig"
1197 tristate "NFS client support" 245source "fs/nfsd/Kconfig"
1198 depends on INET
1199 select LOCKD
1200 select SUNRPC
1201 select NFS_ACL_SUPPORT if NFS_V3_ACL
1202 help
1203 Choose Y here if you want to access files residing on other
1204 computers using Sun's Network File System protocol. To compile
1205 this file system support as a module, choose M here: the module
1206 will be called nfs.
1207
1208 To mount file systems exported by NFS servers, you also need to
1209 install the user space mount.nfs command which can be found in
1210 the Linux nfs-utils package, available from http://linux-nfs.org/.
1211 Information about using the mount command is available in the
1212 mount(8) man page. More detail about the Linux NFS client
1213 implementation is available via the nfs(5) man page.
1214
1215 Below you can choose which versions of the NFS protocol are
1216 available in the kernel to mount NFS servers. Support for NFS
1217 version 2 (RFC 1094) is always available when NFS_FS is selected.
1218
1219 To configure a system which mounts its root file system via NFS
1220 at boot time, say Y here, select "Kernel level IP
1221 autoconfiguration" in the NETWORK menu, and select "Root file
1222 system on NFS" below. You cannot compile this file system as a
1223 module in this case.
1224
1225 If unsure, say N.
1226
1227config NFS_V3
1228 bool "NFS client support for NFS version 3"
1229 depends on NFS_FS
1230 help
1231 This option enables support for version 3 of the NFS protocol
1232 (RFC 1813) in the kernel's NFS client.
1233
1234 If unsure, say Y.
1235
1236config NFS_V3_ACL
1237 bool "NFS client support for the NFSv3 ACL protocol extension"
1238 depends on NFS_V3
1239 help
1240 Some NFS servers support an auxiliary NFSv3 ACL protocol that
1241 Sun added to Solaris but never became an official part of the
1242 NFS version 3 protocol. This protocol extension allows
1243 applications on NFS clients to manipulate POSIX Access Control
1244 Lists on files residing on NFS servers. NFS servers enforce
1245 ACLs on local files whether this protocol is available or not.
1246
1247 Choose Y here if your NFS server supports the Solaris NFSv3 ACL
1248 protocol extension and you want your NFS client to allow
1249 applications to access and modify ACLs on files on the server.
1250
1251 Most NFS servers don't support the Solaris NFSv3 ACL protocol
1252 extension. You can choose N here or specify the "noacl" mount
1253 option to prevent your NFS client from trying to use the NFSv3
1254 ACL protocol.
1255
1256 If unsure, say N.
1257
1258config NFS_V4
1259 bool "NFS client support for NFS version 4 (EXPERIMENTAL)"
1260 depends on NFS_FS && EXPERIMENTAL
1261 select RPCSEC_GSS_KRB5
1262 help
1263 This option enables support for version 4 of the NFS protocol
1264 (RFC 3530) in the kernel's NFS client.
1265
1266 To mount NFS servers using NFSv4, you also need to install user
1267 space programs which can be found in the Linux nfs-utils package,
1268 available from http://linux-nfs.org/.
1269
1270 If unsure, say N.
1271
1272config ROOT_NFS
1273 bool "Root file system on NFS"
1274 depends on NFS_FS=y && IP_PNP
1275 help
1276 If you want your system to mount its root file system via NFS,
1277 choose Y here. This is common practice for managing systems
1278 without local permanent storage. For details, read
1279 <file:Documentation/filesystems/nfsroot.txt>.
1280
1281 Most people say N here.
1282
1283config NFSD
1284 tristate "NFS server support"
1285 depends on INET
1286 select LOCKD
1287 select SUNRPC
1288 select EXPORTFS
1289 select NFS_ACL_SUPPORT if NFSD_V2_ACL
1290 help
1291 Choose Y here if you want to allow other computers to access
1292 files residing on this system using Sun's Network File System
1293 protocol. To compile the NFS server support as a module,
1294 choose M here: the module will be called nfsd.
1295
1296 You may choose to use a user-space NFS server instead, in which
1297 case you can choose N here.
1298
1299 To export local file systems using NFS, you also need to install
1300 user space programs which can be found in the Linux nfs-utils
1301 package, available from http://linux-nfs.org/. More detail about
1302 the Linux NFS server implementation is available via the
1303 exports(5) man page.
1304
1305 Below you can choose which versions of the NFS protocol are
1306 available to clients mounting the NFS server on this system.
1307 Support for NFS version 2 (RFC 1094) is always available when
1308 CONFIG_NFSD is selected.
1309
1310 If unsure, say N.
1311
1312config NFSD_V2_ACL
1313 bool
1314 depends on NFSD
1315
1316config NFSD_V3
1317 bool "NFS server support for NFS version 3"
1318 depends on NFSD
1319 help
1320 This option enables support in your system's NFS server for
1321 version 3 of the NFS protocol (RFC 1813).
1322
1323 If unsure, say Y.
1324
1325config NFSD_V3_ACL
1326 bool "NFS server support for the NFSv3 ACL protocol extension"
1327 depends on NFSD_V3
1328 select NFSD_V2_ACL
1329 help
1330 Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
1331 never became an official part of the NFS version 3 protocol.
1332 This protocol extension allows applications on NFS clients to
1333 manipulate POSIX Access Control Lists on files residing on NFS
1334 servers. NFS servers enforce POSIX ACLs on local files whether
1335 this protocol is available or not.
1336
1337 This option enables support in your system's NFS server for the
1338 NFSv3 ACL protocol extension allowing NFS clients to manipulate
1339 POSIX ACLs on files exported by your system's NFS server. NFS
1340 clients which support the Solaris NFSv3 ACL protocol can then
1341 access and modify ACLs on your NFS server.
1342
1343 To store ACLs on your NFS server, you also need to enable ACL-
1344 related CONFIG options for your local file systems of choice.
1345
1346 If unsure, say N.
1347
1348config NFSD_V4
1349 bool "NFS server support for NFS version 4 (EXPERIMENTAL)"
1350 depends on NFSD && PROC_FS && EXPERIMENTAL
1351 select NFSD_V3
1352 select FS_POSIX_ACL
1353 select RPCSEC_GSS_KRB5
1354 help
1355 This option enables support in your system's NFS server for
1356 version 4 of the NFS protocol (RFC 3530).
1357
1358 To export files using NFSv4, you need to install additional user
1359 space programs which can be found in the Linux nfs-utils package,
1360 available from http://linux-nfs.org/.
1361
1362 If unsure, say N.
1363 246
1364config LOCKD 247config LOCKD
1365 tristate 248 tristate
@@ -1381,221 +264,13 @@ config NFS_COMMON
1381 depends on NFSD || NFS_FS 264 depends on NFSD || NFS_FS
1382 default y 265 default y
1383 266
1384config SUNRPC 267source "net/sunrpc/Kconfig"
1385 tristate 268source "fs/smbfs/Kconfig"
1386
1387config SUNRPC_GSS
1388 tristate
1389
1390config SUNRPC_XPRT_RDMA
1391 tristate
1392 depends on SUNRPC && INFINIBAND && EXPERIMENTAL
1393 default SUNRPC && INFINIBAND
1394 help
1395 This option enables an RPC client transport capability that
1396 allows the NFS client to mount servers via an RDMA-enabled
1397 transport.
1398
1399 To compile RPC client RDMA transport support as a module,
1400 choose M here: the module will be called xprtrdma.
1401
1402 If unsure, say N.
1403
1404config SUNRPC_REGISTER_V4
1405 bool "Register local RPC services via rpcbind v4 (EXPERIMENTAL)"
1406 depends on SUNRPC && EXPERIMENTAL
1407 default n
1408 help
1409 Sun added support for registering RPC services at an IPv6
1410 address by creating two new versions of the rpcbind protocol
1411 (RFC 1833).
1412
1413 This option enables support in the kernel RPC server for
1414 registering kernel RPC services via version 4 of the rpcbind
1415 protocol. If you enable this option, you must run a portmapper
1416 daemon that supports rpcbind protocol version 4.
1417
1418 Serving NFS over IPv6 from knfsd (the kernel's NFS server)
1419 requires that you enable this option and use a portmapper that
1420 supports rpcbind version 4.
1421
1422 If unsure, say N to get traditional behavior (register kernel
1423 RPC services using only rpcbind version 2). Distributions
1424 using the legacy Linux portmapper daemon must say N here.
1425
1426config RPCSEC_GSS_KRB5
1427 tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)"
1428 depends on SUNRPC && EXPERIMENTAL
1429 select SUNRPC_GSS
1430 select CRYPTO
1431 select CRYPTO_MD5
1432 select CRYPTO_DES
1433 select CRYPTO_CBC
1434 help
1435 Choose Y here to enable Secure RPC using the Kerberos version 5
1436 GSS-API mechanism (RFC 1964).
1437
1438 Secure RPC calls with Kerberos require an auxiliary user-space
1439 daemon which may be found in the Linux nfs-utils package
1440 available from http://linux-nfs.org/. In addition, user-space
1441 Kerberos support should be installed.
1442
1443 If unsure, say N.
1444
1445config RPCSEC_GSS_SPKM3
1446 tristate "Secure RPC: SPKM3 mechanism (EXPERIMENTAL)"
1447 depends on SUNRPC && EXPERIMENTAL
1448 select SUNRPC_GSS
1449 select CRYPTO
1450 select CRYPTO_MD5
1451 select CRYPTO_DES
1452 select CRYPTO_CAST5
1453 select CRYPTO_CBC
1454 help
1455 Choose Y here to enable Secure RPC using the SPKM3 public key
1456 GSS-API mechansim (RFC 2025).
1457
1458 Secure RPC calls with SPKM3 require an auxiliary userspace
1459 daemon which may be found in the Linux nfs-utils package
1460 available from http://linux-nfs.org/.
1461
1462 If unsure, say N.
1463
1464config SMB_FS
1465 tristate "SMB file system support (OBSOLETE, please use CIFS)"
1466 depends on INET
1467 select NLS
1468 help
1469 SMB (Server Message Block) is the protocol Windows for Workgroups
1470 (WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share
1471 files and printers over local networks. Saying Y here allows you to
1472 mount their file systems (often called "shares" in this context) and
1473 access them just like any other Unix directory. Currently, this
1474 works only if the Windows machines use TCP/IP as the underlying
1475 transport protocol, and not NetBEUI. For details, read
1476 <file:Documentation/filesystems/smbfs.txt> and the SMB-HOWTO,
1477 available from <http://www.tldp.org/docs.html#howto>.
1478
1479 Note: if you just want your box to act as an SMB *server* and make
1480 files and printing services available to Windows clients (which need
1481 to have a TCP/IP stack), you don't need to say Y here; you can use
1482 the program SAMBA (available from <ftp://ftp.samba.org/pub/samba/>)
1483 for that.
1484
1485 General information about how to connect Linux, Windows machines and
1486 Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
1487
1488 To compile the SMB support as a module, choose M here:
1489 the module will be called smbfs. Most people say N, however.
1490
1491config SMB_NLS_DEFAULT
1492 bool "Use a default NLS"
1493 depends on SMB_FS
1494 help
1495 Enabling this will make smbfs use nls translations by default. You
1496 need to specify the local charset (CONFIG_NLS_DEFAULT) in the nls
1497 settings and you need to give the default nls for the SMB server as
1498 CONFIG_SMB_NLS_REMOTE.
1499
1500 The nls settings can be changed at mount time, if your smbmount
1501 supports that, using the codepage and iocharset parameters.
1502
1503 smbmount from samba 2.2.0 or later supports this.
1504
1505config SMB_NLS_REMOTE
1506 string "Default Remote NLS Option"
1507 depends on SMB_NLS_DEFAULT
1508 default "cp437"
1509 help
1510 This setting allows you to specify a default value for which
1511 codepage the server uses. If this field is left blank no
1512 translations will be done by default. The local codepage/charset
1513 default to CONFIG_NLS_DEFAULT.
1514
1515 The nls settings can be changed at mount time, if your smbmount
1516 supports that, using the codepage and iocharset parameters.
1517
1518 smbmount from samba 2.2.0 or later supports this.
1519
1520source "fs/cifs/Kconfig" 269source "fs/cifs/Kconfig"
1521
1522config NCP_FS
1523 tristate "NCP file system support (to mount NetWare volumes)"
1524 depends on IPX!=n || INET
1525 help
1526 NCP (NetWare Core Protocol) is a protocol that runs over IPX and is
1527 used by Novell NetWare clients to talk to file servers. It is to
1528 IPX what NFS is to TCP/IP, if that helps. Saying Y here allows you
1529 to mount NetWare file server volumes and to access them just like
1530 any other Unix directory. For details, please read the file
1531 <file:Documentation/filesystems/ncpfs.txt> in the kernel source and
1532 the IPX-HOWTO from <http://www.tldp.org/docs.html#howto>.
1533
1534 You do not have to say Y here if you want your Linux box to act as a
1535 file *server* for Novell NetWare clients.
1536
1537 General information about how to connect Linux, Windows machines and
1538 Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
1539
1540 To compile this as a module, choose M here: the module will be called
1541 ncpfs. Say N unless you are connected to a Novell network.
1542
1543source "fs/ncpfs/Kconfig" 270source "fs/ncpfs/Kconfig"
1544 271source "fs/coda/Kconfig"
1545config CODA_FS 272source "fs/afs/Kconfig"
1546 tristate "Coda file system support (advanced network fs)" 273source "fs/9p/Kconfig"
1547 depends on INET
1548 help
1549 Coda is an advanced network file system, similar to NFS in that it
1550 enables you to mount file systems of a remote server and access them
1551 with regular Unix commands as if they were sitting on your hard
1552 disk. Coda has several advantages over NFS: support for
1553 disconnected operation (e.g. for laptops), read/write server
1554 replication, security model for authentication and encryption,
1555 persistent client caches and write back caching.
1556
1557 If you say Y here, your Linux box will be able to act as a Coda
1558 *client*. You will need user level code as well, both for the
1559 client and server. Servers are currently user level, i.e. they need
1560 no kernel support. Please read
1561 <file:Documentation/filesystems/coda.txt> and check out the Coda
1562 home page <http://www.coda.cs.cmu.edu/>.
1563
1564 To compile the coda client support as a module, choose M here: the
1565 module will be called coda.
1566
1567config AFS_FS
1568 tristate "Andrew File System support (AFS) (EXPERIMENTAL)"
1569 depends on INET && EXPERIMENTAL
1570 select AF_RXRPC
1571 help
1572 If you say Y here, you will get an experimental Andrew File System
1573 driver. It currently only supports unsecured read-only AFS access.
1574
1575 See <file:Documentation/filesystems/afs.txt> for more information.
1576
1577 If unsure, say N.
1578
1579config AFS_DEBUG
1580 bool "AFS dynamic debugging"
1581 depends on AFS_FS
1582 help
1583 Say Y here to make runtime controllable debugging messages appear.
1584
1585 See <file:Documentation/filesystems/afs.txt> for more information.
1586
1587 If unsure, say N.
1588
1589config 9P_FS
1590 tristate "Plan 9 Resource Sharing Support (9P2000) (Experimental)"
1591 depends on INET && NET_9P && EXPERIMENTAL
1592 help
1593 If you say Y here, you will get experimental support for
1594 Plan 9 resource sharing via the 9P2000 protocol.
1595
1596 See <http://v9fs.sf.net> for more information.
1597
1598 If unsure, say N.
1599 274
1600endif # NETWORK_FILESYSTEMS 275endif # NETWORK_FILESYSTEMS
1601 276
diff --git a/fs/adfs/Kconfig b/fs/adfs/Kconfig
new file mode 100644
index 000000000000..e55182a74605
--- /dev/null
+++ b/fs/adfs/Kconfig
@@ -0,0 +1,27 @@
1config ADFS_FS
2 tristate "ADFS file system support (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 help
5 The Acorn Disc Filing System is the standard file system of the
6 RiscOS operating system which runs on Acorn's ARM-based Risc PC
7 systems and the Acorn Archimedes range of machines. If you say Y
8 here, Linux will be able to read from ADFS partitions on hard drives
9 and from ADFS-formatted floppy discs. If you also want to be able to
10 write to those devices, say Y to "ADFS write support" below.
11
12 The ADFS partition should be the first partition (i.e.,
13 /dev/[hs]d?1) on each of your drives. Please read the file
14 <file:Documentation/filesystems/adfs.txt> for further details.
15
16 To compile this code as a module, choose M here: the module will be
17 called adfs.
18
19 If unsure, say N.
20
21config ADFS_FS_RW
22 bool "ADFS write support (DANGEROUS)"
23 depends on ADFS_FS
24 help
25 If you say Y here, you will be able to write to ADFS partitions on
26 hard drives and ADFS-formatted floppy disks. This is experimental
27 codes, so if you're unsure, say N.
diff --git a/fs/affs/Kconfig b/fs/affs/Kconfig
new file mode 100644
index 000000000000..cfad9afb4762
--- /dev/null
+++ b/fs/affs/Kconfig
@@ -0,0 +1,21 @@
1config AFFS_FS
2 tristate "Amiga FFS file system support (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 help
5 The Fast File System (FFS) is the common file system used on hard
6 disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y
7 if you want to be able to read and write files from and to an Amiga
8 FFS partition on your hard drive. Amiga floppies however cannot be
9 read with this driver due to an incompatibility of the floppy
10 controller used in an Amiga and the standard floppy controller in
11 PCs and workstations. Read <file:Documentation/filesystems/affs.txt>
12 and <file:fs/affs/Changes>.
13
14 With this driver you can also mount disk files used by Bernd
15 Schmidt's Un*X Amiga Emulator
16 (<http://www.freiburg.linux.de/~uae/>).
17 If you want to do this, you will also need to say Y or M to "Loop
18 device support", above.
19
20 To compile this file system support as a module, choose M here: the
21 module will be called affs. If unsure, say N.
diff --git a/fs/afs/Kconfig b/fs/afs/Kconfig
new file mode 100644
index 000000000000..e7b522fe15e1
--- /dev/null
+++ b/fs/afs/Kconfig
@@ -0,0 +1,21 @@
1config AFS_FS
2 tristate "Andrew File System support (AFS) (EXPERIMENTAL)"
3 depends on INET && EXPERIMENTAL
4 select AF_RXRPC
5 help
6 If you say Y here, you will get an experimental Andrew File System
7 driver. It currently only supports unsecured read-only AFS access.
8
9 See <file:Documentation/filesystems/afs.txt> for more information.
10
11 If unsure, say N.
12
13config AFS_DEBUG
14 bool "AFS dynamic debugging"
15 depends on AFS_FS
16 help
17 Say Y here to make runtime controllable debugging messages appear.
18
19 See <file:Documentation/filesystems/afs.txt> for more information.
20
21 If unsure, say N.
diff --git a/fs/autofs/Kconfig b/fs/autofs/Kconfig
new file mode 100644
index 000000000000..5f3bea90911e
--- /dev/null
+++ b/fs/autofs/Kconfig
@@ -0,0 +1,21 @@
1config AUTOFS_FS
2 tristate "Kernel automounter support"
3 help
4 The automounter is a tool to automatically mount remote file systems
5 on demand. This implementation is partially kernel-based to reduce
6 overhead in the already-mounted case; this is unlike the BSD
7 automounter (amd), which is a pure user space daemon.
8
9 To use the automounter you need the user-space tools from the autofs
10 package; you can find the location in <file:Documentation/Changes>.
11 You also want to answer Y to "NFS file system support", below.
12
13 If you want to use the newer version of the automounter with more
14 features, say N here and say Y to "Kernel automounter v4 support",
15 below.
16
17 To compile this support as a module, choose M here: the module will be
18 called autofs.
19
20 If you are not a part of a fairly large, distributed network, you
21 probably do not need an automounter, and can say N here.
diff --git a/fs/autofs4/Kconfig b/fs/autofs4/Kconfig
new file mode 100644
index 000000000000..1204d6384d39
--- /dev/null
+++ b/fs/autofs4/Kconfig
@@ -0,0 +1,20 @@
1config AUTOFS4_FS
2 tristate "Kernel automounter version 4 support (also supports v3)"
3 help
4 The automounter is a tool to automatically mount remote file systems
5 on demand. This implementation is partially kernel-based to reduce
6 overhead in the already-mounted case; this is unlike the BSD
7 automounter (amd), which is a pure user space daemon.
8
9 To use the automounter you need the user-space tools from
10 <ftp://ftp.kernel.org/pub/linux/daemons/autofs/v4/>; you also
11 want to answer Y to "NFS file system support", below.
12
13 To compile this support as a module, choose M here: the module will be
14 called autofs4. You will need to add "alias autofs autofs4" to your
15 modules configuration file.
16
17 If you are not a part of a fairly large, distributed network or
18 don't have a laptop which needs to dynamically reconfigure to the
19 local network, you probably do not need an automounter, and can say
20 N here.
diff --git a/fs/befs/Kconfig b/fs/befs/Kconfig
new file mode 100644
index 000000000000..7835d30f211f
--- /dev/null
+++ b/fs/befs/Kconfig
@@ -0,0 +1,26 @@
1config BEFS_FS
2 tristate "BeOS file system (BeFS) support (read only) (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 select NLS
5 help
6 The BeOS File System (BeFS) is the native file system of Be, Inc's
7 BeOS. Notable features include support for arbitrary attributes
8 on files and directories, and database-like indices on selected
9 attributes. (Also note that this driver doesn't make those features
10 available at this time). It is a 64 bit filesystem, so it supports
11 extremely large volumes and files.
12
13 If you use this filesystem, you should also say Y to at least one
14 of the NLS (native language support) options below.
15
16 If you don't know what this is about, say N.
17
18 To compile this as a module, choose M here: the module will be
19 called befs.
20
21config BEFS_DEBUG
22 bool "Debug BeFS"
23 depends on BEFS_FS
24 help
25 If you say Y here, you can use the 'debug' mount option to enable
26 debugging output from the driver.
diff --git a/fs/bfs/Kconfig b/fs/bfs/Kconfig
new file mode 100644
index 000000000000..c2336c62024f
--- /dev/null
+++ b/fs/bfs/Kconfig
@@ -0,0 +1,19 @@
1config BFS_FS
2 tristate "BFS file system support (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 help
5 Boot File System (BFS) is a file system used under SCO UnixWare to
6 allow the bootloader access to the kernel image and other important
7 files during the boot process. It is usually mounted under /stand
8 and corresponds to the slice marked as "STAND" in the UnixWare
9 partition. You should say Y if you want to read or write the files
10 on your /stand slice from within Linux. You then also need to say Y
11 to "UnixWare slices support", below. More information about the BFS
12 file system is contained in the file
13 <file:Documentation/filesystems/bfs.txt>.
14
15 If you don't know what this is about, say N.
16
17 To compile this as a module, choose M here: the module will be called
18 bfs. Note that the file system of your root partition (the one
19 containing the directory /) cannot be compiled as a module.
diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig
new file mode 100644
index 000000000000..f8fcf999ea1b
--- /dev/null
+++ b/fs/btrfs/Kconfig
@@ -0,0 +1,18 @@
1config BTRFS_FS
2 tristate "Btrfs filesystem (EXPERIMENTAL) Unstable disk format"
3 depends on EXPERIMENTAL
4 select LIBCRC32C
5 select ZLIB_INFLATE
6 select ZLIB_DEFLATE
7 help
8 Btrfs is a new filesystem with extents, writable snapshotting,
9 support for multiple devices and many more features.
10
11 Btrfs is highly experimental, and THE DISK FORMAT IS NOT YET
12 FINALIZED. You should say N here unless you are interested in
13 testing Btrfs with non-critical data.
14
15 To compile this file system support as a module, choose M here. The
16 module will be called btrfs.
17
18 If unsure, say N.
diff --git a/fs/coda/Kconfig b/fs/coda/Kconfig
new file mode 100644
index 000000000000..c0e5a7fad06d
--- /dev/null
+++ b/fs/coda/Kconfig
@@ -0,0 +1,21 @@
1config CODA_FS
2 tristate "Coda file system support (advanced network fs)"
3 depends on INET
4 help
5 Coda is an advanced network file system, similar to NFS in that it
6 enables you to mount file systems of a remote server and access them
7 with regular Unix commands as if they were sitting on your hard
8 disk. Coda has several advantages over NFS: support for
9 disconnected operation (e.g. for laptops), read/write server
10 replication, security model for authentication and encryption,
11 persistent client caches and write back caching.
12
13 If you say Y here, your Linux box will be able to act as a Coda
14 *client*. You will need user level code as well, both for the
15 client and server. Servers are currently user level, i.e. they need
16 no kernel support. Please read
17 <file:Documentation/filesystems/coda.txt> and check out the Coda
18 home page <http://www.coda.cs.cmu.edu/>.
19
20 To compile the coda client support as a module, choose M here: the
21 module will be called coda.
diff --git a/fs/configfs/Kconfig b/fs/configfs/Kconfig
new file mode 100644
index 000000000000..13587cc97a0b
--- /dev/null
+++ b/fs/configfs/Kconfig
@@ -0,0 +1,11 @@
1config CONFIGFS_FS
2 tristate "Userspace-driven configuration filesystem"
3 depends on SYSFS
4 help
5 configfs is a ram-based filesystem that provides the converse
6 of sysfs's functionality. Where sysfs is a filesystem-based
7 view of kernel objects, configfs is a filesystem-based manager
8 of kernel objects, or config_items.
9
10 Both sysfs and configfs can and should exist together on the
11 same system. One is not a replacement for the other.
diff --git a/fs/cramfs/Kconfig b/fs/cramfs/Kconfig
new file mode 100644
index 000000000000..cd06466f365e
--- /dev/null
+++ b/fs/cramfs/Kconfig
@@ -0,0 +1,19 @@
1config CRAMFS
2 tristate "Compressed ROM file system support (cramfs)"
3 depends on BLOCK
4 select ZLIB_INFLATE
5 help
6 Saying Y here includes support for CramFs (Compressed ROM File
7 System). CramFs is designed to be a simple, small, and compressed
8 file system for ROM based embedded systems. CramFs is read-only,
9 limited to 256MB file systems (with 16MB files), and doesn't support
10 16/32 bits uid/gid, hard links and timestamps.
11
12 See <file:Documentation/filesystems/cramfs.txt> and
13 <file:fs/cramfs/README> for further information.
14
15 To compile this as a module, choose M here: the module will be called
16 cramfs. Note that the root file system (the one containing the
17 directory /) cannot be compiled as a module.
18
19 If unsure, say N.
diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
index eba87ff3177b..894a32d438d5 100644
--- a/fs/dlm/plock.c
+++ b/fs/dlm/plock.c
@@ -168,7 +168,7 @@ static int dlm_plock_callback(struct plock_op *op)
168 notify = xop->callback; 168 notify = xop->callback;
169 169
170 if (op->info.rv) { 170 if (op->info.rv) {
171 notify(flc, NULL, op->info.rv); 171 notify(fl, NULL, op->info.rv);
172 goto out; 172 goto out;
173 } 173 }
174 174
@@ -187,7 +187,7 @@ static int dlm_plock_callback(struct plock_op *op)
187 (unsigned long long)op->info.number, file, fl); 187 (unsigned long long)op->info.number, file, fl);
188 } 188 }
189 189
190 rv = notify(flc, NULL, 0); 190 rv = notify(fl, NULL, 0);
191 if (rv) { 191 if (rv) {
192 /* XXX: We need to cancel the fs lock here: */ 192 /* XXX: We need to cancel the fs lock here: */
193 log_print("dlm_plock_callback: lock granted after lock request " 193 log_print("dlm_plock_callback: lock granted after lock request "
@@ -304,7 +304,9 @@ int dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,
304 if (rv == -ENOENT) 304 if (rv == -ENOENT)
305 rv = 0; 305 rv = 0;
306 else if (rv > 0) { 306 else if (rv > 0) {
307 locks_init_lock(fl);
307 fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK; 308 fl->fl_type = (op->info.ex) ? F_WRLCK : F_RDLCK;
309 fl->fl_flags = FL_POSIX;
308 fl->fl_pid = op->info.pid; 310 fl->fl_pid = op->info.pid;
309 fl->fl_start = op->info.start; 311 fl->fl_start = op->info.start;
310 fl->fl_end = op->info.end; 312 fl->fl_end = op->info.end;
diff --git a/fs/dquot.c b/fs/dquot.c
index 48c0571f831d..bca3cac4bee7 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -87,14 +87,17 @@
87#define __DQUOT_PARANOIA 87#define __DQUOT_PARANOIA
88 88
89/* 89/*
90 * There are two quota SMP locks. dq_list_lock protects all lists with quotas 90 * There are three quota SMP locks. dq_list_lock protects all lists with quotas
91 * and quota formats and also dqstats structure containing statistics about the 91 * and quota formats, dqstats structure containing statistics about the lists
92 * lists. dq_data_lock protects data from dq_dqb and also mem_dqinfo structures 92 * dq_data_lock protects data from dq_dqb and also mem_dqinfo structures and
93 * and also guards consistency of dquot->dq_dqb with inode->i_blocks, i_bytes. 93 * also guards consistency of dquot->dq_dqb with inode->i_blocks, i_bytes.
94 * i_blocks and i_bytes updates itself are guarded by i_lock acquired directly 94 * i_blocks and i_bytes updates itself are guarded by i_lock acquired directly
95 * in inode_add_bytes() and inode_sub_bytes(). 95 * in inode_add_bytes() and inode_sub_bytes(). dq_state_lock protects
96 * modifications of quota state (on quotaon and quotaoff) and readers who care
97 * about latest values take it as well.
96 * 98 *
97 * The spinlock ordering is hence: dq_data_lock > dq_list_lock > i_lock 99 * The spinlock ordering is hence: dq_data_lock > dq_list_lock > i_lock,
100 * dq_list_lock > dq_state_lock
98 * 101 *
99 * Note that some things (eg. sb pointer, type, id) doesn't change during 102 * Note that some things (eg. sb pointer, type, id) doesn't change during
100 * the life of the dquot structure and so needn't to be protected by a lock 103 * the life of the dquot structure and so needn't to be protected by a lock
@@ -103,12 +106,7 @@
103 * operation is just reading pointers from inode (or not using them at all) the 106 * operation is just reading pointers from inode (or not using them at all) the
104 * read lock is enough. If pointers are altered function must hold write lock 107 * read lock is enough. If pointers are altered function must hold write lock
105 * (these locking rules also apply for S_NOQUOTA flag in the inode - note that 108 * (these locking rules also apply for S_NOQUOTA flag in the inode - note that
106 * for altering the flag i_mutex is also needed). If operation is holding 109 * for altering the flag i_mutex is also needed).
107 * reference to dquot in other way (e.g. quotactl ops) it must be guarded by
108 * dqonoff_mutex.
109 * This locking assures that:
110 * a) update/access to dquot pointers in inode is serialized
111 * b) everyone is guarded against invalidate_dquots()
112 * 110 *
113 * Each dquot has its dq_lock mutex. Locked dquots might not be referenced 111 * Each dquot has its dq_lock mutex. Locked dquots might not be referenced
114 * from inodes (dquot_alloc_space() and such don't check the dq_lock). 112 * from inodes (dquot_alloc_space() and such don't check the dq_lock).
@@ -122,10 +120,17 @@
122 * Lock ordering (including related VFS locks) is the following: 120 * Lock ordering (including related VFS locks) is the following:
123 * i_mutex > dqonoff_sem > journal_lock > dqptr_sem > dquot->dq_lock > 121 * i_mutex > dqonoff_sem > journal_lock > dqptr_sem > dquot->dq_lock >
124 * dqio_mutex 122 * dqio_mutex
123 * The lock ordering of dqptr_sem imposed by quota code is only dqonoff_sem >
124 * dqptr_sem. But filesystem has to count with the fact that functions such as
125 * dquot_alloc_space() acquire dqptr_sem and they usually have to be called
126 * from inside a transaction to keep filesystem consistency after a crash. Also
127 * filesystems usually want to do some IO on dquot from ->mark_dirty which is
128 * called with dqptr_sem held.
125 * i_mutex on quota files is special (it's below dqio_mutex) 129 * i_mutex on quota files is special (it's below dqio_mutex)
126 */ 130 */
127 131
128static DEFINE_SPINLOCK(dq_list_lock); 132static DEFINE_SPINLOCK(dq_list_lock);
133static DEFINE_SPINLOCK(dq_state_lock);
129DEFINE_SPINLOCK(dq_data_lock); 134DEFINE_SPINLOCK(dq_data_lock);
130 135
131static char *quotatypes[] = INITQFNAMES; 136static char *quotatypes[] = INITQFNAMES;
@@ -428,7 +433,7 @@ static inline void do_destroy_dquot(struct dquot *dquot)
428 * quota is disabled and pointers from inodes removed so there cannot be new 433 * quota is disabled and pointers from inodes removed so there cannot be new
429 * quota users. There can still be some users of quotas due to inodes being 434 * quota users. There can still be some users of quotas due to inodes being
430 * just deleted or pruned by prune_icache() (those are not attached to any 435 * just deleted or pruned by prune_icache() (those are not attached to any
431 * list). We have to wait for such users. 436 * list) or parallel quotactl call. We have to wait for such users.
432 */ 437 */
433static void invalidate_dquots(struct super_block *sb, int type) 438static void invalidate_dquots(struct super_block *sb, int type)
434{ 439{
@@ -600,7 +605,6 @@ static struct shrinker dqcache_shrinker = {
600/* 605/*
601 * Put reference to dquot 606 * Put reference to dquot
602 * NOTE: If you change this function please check whether dqput_blocks() works right... 607 * NOTE: If you change this function please check whether dqput_blocks() works right...
603 * MUST be called with either dqptr_sem or dqonoff_mutex held
604 */ 608 */
605void dqput(struct dquot *dquot) 609void dqput(struct dquot *dquot)
606{ 610{
@@ -697,36 +701,30 @@ static struct dquot *get_empty_dquot(struct super_block *sb, int type)
697} 701}
698 702
699/* 703/*
700 * Check whether dquot is in memory.
701 * MUST be called with either dqptr_sem or dqonoff_mutex held
702 */
703int dquot_is_cached(struct super_block *sb, unsigned int id, int type)
704{
705 unsigned int hashent = hashfn(sb, id, type);
706 int ret = 0;
707
708 if (!sb_has_quota_active(sb, type))
709 return 0;
710 spin_lock(&dq_list_lock);
711 if (find_dquot(hashent, sb, id, type) != NODQUOT)
712 ret = 1;
713 spin_unlock(&dq_list_lock);
714 return ret;
715}
716
717/*
718 * Get reference to dquot 704 * Get reference to dquot
719 * MUST be called with either dqptr_sem or dqonoff_mutex held 705 *
706 * Locking is slightly tricky here. We are guarded from parallel quotaoff()
707 * destroying our dquot by:
708 * a) checking for quota flags under dq_list_lock and
709 * b) getting a reference to dquot before we release dq_list_lock
720 */ 710 */
721struct dquot *dqget(struct super_block *sb, unsigned int id, int type) 711struct dquot *dqget(struct super_block *sb, unsigned int id, int type)
722{ 712{
723 unsigned int hashent = hashfn(sb, id, type); 713 unsigned int hashent = hashfn(sb, id, type);
724 struct dquot *dquot, *empty = NODQUOT; 714 struct dquot *dquot = NODQUOT, *empty = NODQUOT;
725 715
726 if (!sb_has_quota_active(sb, type)) 716 if (!sb_has_quota_active(sb, type))
727 return NODQUOT; 717 return NODQUOT;
728we_slept: 718we_slept:
729 spin_lock(&dq_list_lock); 719 spin_lock(&dq_list_lock);
720 spin_lock(&dq_state_lock);
721 if (!sb_has_quota_active(sb, type)) {
722 spin_unlock(&dq_state_lock);
723 spin_unlock(&dq_list_lock);
724 goto out;
725 }
726 spin_unlock(&dq_state_lock);
727
730 if ((dquot = find_dquot(hashent, sb, id, type)) == NODQUOT) { 728 if ((dquot = find_dquot(hashent, sb, id, type)) == NODQUOT) {
731 if (empty == NODQUOT) { 729 if (empty == NODQUOT) {
732 spin_unlock(&dq_list_lock); 730 spin_unlock(&dq_list_lock);
@@ -735,6 +733,7 @@ we_slept:
735 goto we_slept; 733 goto we_slept;
736 } 734 }
737 dquot = empty; 735 dquot = empty;
736 empty = NODQUOT;
738 dquot->dq_id = id; 737 dquot->dq_id = id;
739 /* all dquots go on the inuse_list */ 738 /* all dquots go on the inuse_list */
740 put_inuse(dquot); 739 put_inuse(dquot);
@@ -749,8 +748,6 @@ we_slept:
749 dqstats.cache_hits++; 748 dqstats.cache_hits++;
750 dqstats.lookups++; 749 dqstats.lookups++;
751 spin_unlock(&dq_list_lock); 750 spin_unlock(&dq_list_lock);
752 if (empty)
753 do_destroy_dquot(empty);
754 } 751 }
755 /* Wait for dq_lock - after this we know that either dquot_release() is already 752 /* Wait for dq_lock - after this we know that either dquot_release() is already
756 * finished or it will be canceled due to dq_count > 1 test */ 753 * finished or it will be canceled due to dq_count > 1 test */
@@ -758,11 +755,15 @@ we_slept:
758 /* Read the dquot and instantiate it (everything done only if needed) */ 755 /* Read the dquot and instantiate it (everything done only if needed) */
759 if (!test_bit(DQ_ACTIVE_B, &dquot->dq_flags) && sb->dq_op->acquire_dquot(dquot) < 0) { 756 if (!test_bit(DQ_ACTIVE_B, &dquot->dq_flags) && sb->dq_op->acquire_dquot(dquot) < 0) {
760 dqput(dquot); 757 dqput(dquot);
761 return NODQUOT; 758 dquot = NODQUOT;
759 goto out;
762 } 760 }
763#ifdef __DQUOT_PARANOIA 761#ifdef __DQUOT_PARANOIA
764 BUG_ON(!dquot->dq_sb); /* Has somebody invalidated entry under us? */ 762 BUG_ON(!dquot->dq_sb); /* Has somebody invalidated entry under us? */
765#endif 763#endif
764out:
765 if (empty)
766 do_destroy_dquot(empty);
766 767
767 return dquot; 768 return dquot;
768} 769}
@@ -1198,63 +1199,76 @@ static int info_bdq_free(struct dquot *dquot, qsize_t space)
1198} 1199}
1199/* 1200/*
1200 * Initialize quota pointers in inode 1201 * Initialize quota pointers in inode
1201 * Transaction must be started at entry 1202 * We do things in a bit complicated way but by that we avoid calling
1203 * dqget() and thus filesystem callbacks under dqptr_sem.
1202 */ 1204 */
1203int dquot_initialize(struct inode *inode, int type) 1205int dquot_initialize(struct inode *inode, int type)
1204{ 1206{
1205 unsigned int id = 0; 1207 unsigned int id = 0;
1206 int cnt, ret = 0; 1208 int cnt, ret = 0;
1209 struct dquot *got[MAXQUOTAS] = { NODQUOT, NODQUOT };
1210 struct super_block *sb = inode->i_sb;
1207 1211
1208 /* First test before acquiring mutex - solves deadlocks when we 1212 /* First test before acquiring mutex - solves deadlocks when we
1209 * re-enter the quota code and are already holding the mutex */ 1213 * re-enter the quota code and are already holding the mutex */
1210 if (IS_NOQUOTA(inode)) 1214 if (IS_NOQUOTA(inode))
1211 return 0; 1215 return 0;
1212 down_write(&sb_dqopt(inode->i_sb)->dqptr_sem); 1216
1217 /* First get references to structures we might need. */
1218 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1219 if (type != -1 && cnt != type)
1220 continue;
1221 switch (cnt) {
1222 case USRQUOTA:
1223 id = inode->i_uid;
1224 break;
1225 case GRPQUOTA:
1226 id = inode->i_gid;
1227 break;
1228 }
1229 got[cnt] = dqget(sb, id, cnt);
1230 }
1231
1232 down_write(&sb_dqopt(sb)->dqptr_sem);
1213 /* Having dqptr_sem we know NOQUOTA flags can't be altered... */ 1233 /* Having dqptr_sem we know NOQUOTA flags can't be altered... */
1214 if (IS_NOQUOTA(inode)) 1234 if (IS_NOQUOTA(inode))
1215 goto out_err; 1235 goto out_err;
1216 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 1236 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1217 if (type != -1 && cnt != type) 1237 if (type != -1 && cnt != type)
1218 continue; 1238 continue;
1239 /* Avoid races with quotaoff() */
1240 if (!sb_has_quota_active(sb, cnt))
1241 continue;
1219 if (inode->i_dquot[cnt] == NODQUOT) { 1242 if (inode->i_dquot[cnt] == NODQUOT) {
1220 switch (cnt) { 1243 inode->i_dquot[cnt] = got[cnt];
1221 case USRQUOTA: 1244 got[cnt] = NODQUOT;
1222 id = inode->i_uid;
1223 break;
1224 case GRPQUOTA:
1225 id = inode->i_gid;
1226 break;
1227 }
1228 inode->i_dquot[cnt] = dqget(inode->i_sb, id, cnt);
1229 } 1245 }
1230 } 1246 }
1231out_err: 1247out_err:
1232 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem); 1248 up_write(&sb_dqopt(sb)->dqptr_sem);
1249 /* Drop unused references */
1250 for (cnt = 0; cnt < MAXQUOTAS; cnt++)
1251 dqput(got[cnt]);
1233 return ret; 1252 return ret;
1234} 1253}
1235 1254
1236/* 1255/*
1237 * Release all quotas referenced by inode 1256 * Release all quotas referenced by inode
1238 * Transaction must be started at an entry
1239 */ 1257 */
1240int dquot_drop_locked(struct inode *inode) 1258int dquot_drop(struct inode *inode)
1241{ 1259{
1242 int cnt; 1260 int cnt;
1261 struct dquot *put[MAXQUOTAS];
1243 1262
1263 down_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1244 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 1264 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1245 if (inode->i_dquot[cnt] != NODQUOT) { 1265 put[cnt] = inode->i_dquot[cnt];
1246 dqput(inode->i_dquot[cnt]); 1266 inode->i_dquot[cnt] = NODQUOT;
1247 inode->i_dquot[cnt] = NODQUOT;
1248 }
1249 } 1267 }
1250 return 0;
1251}
1252
1253int dquot_drop(struct inode *inode)
1254{
1255 down_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1256 dquot_drop_locked(inode);
1257 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem); 1268 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1269
1270 for (cnt = 0; cnt < MAXQUOTAS; cnt++)
1271 dqput(put[cnt]);
1258 return 0; 1272 return 0;
1259} 1273}
1260 1274
@@ -1470,8 +1484,9 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr)
1470 qsize_t space; 1484 qsize_t space;
1471 struct dquot *transfer_from[MAXQUOTAS]; 1485 struct dquot *transfer_from[MAXQUOTAS];
1472 struct dquot *transfer_to[MAXQUOTAS]; 1486 struct dquot *transfer_to[MAXQUOTAS];
1473 int cnt, ret = NO_QUOTA, chuid = (iattr->ia_valid & ATTR_UID) && inode->i_uid != iattr->ia_uid, 1487 int cnt, ret = QUOTA_OK;
1474 chgid = (iattr->ia_valid & ATTR_GID) && inode->i_gid != iattr->ia_gid; 1488 int chuid = iattr->ia_valid & ATTR_UID && inode->i_uid != iattr->ia_uid,
1489 chgid = iattr->ia_valid & ATTR_GID && inode->i_gid != iattr->ia_gid;
1475 char warntype_to[MAXQUOTAS]; 1490 char warntype_to[MAXQUOTAS];
1476 char warntype_from_inodes[MAXQUOTAS], warntype_from_space[MAXQUOTAS]; 1491 char warntype_from_inodes[MAXQUOTAS], warntype_from_space[MAXQUOTAS];
1477 1492
@@ -1479,21 +1494,11 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr)
1479 * re-enter the quota code and are already holding the mutex */ 1494 * re-enter the quota code and are already holding the mutex */
1480 if (IS_NOQUOTA(inode)) 1495 if (IS_NOQUOTA(inode))
1481 return QUOTA_OK; 1496 return QUOTA_OK;
1482 /* Clear the arrays */ 1497 /* Initialize the arrays */
1483 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 1498 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1484 transfer_to[cnt] = transfer_from[cnt] = NODQUOT; 1499 transfer_from[cnt] = NODQUOT;
1500 transfer_to[cnt] = NODQUOT;
1485 warntype_to[cnt] = QUOTA_NL_NOWARN; 1501 warntype_to[cnt] = QUOTA_NL_NOWARN;
1486 }
1487 down_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1488 /* Now recheck reliably when holding dqptr_sem */
1489 if (IS_NOQUOTA(inode)) { /* File without quota accounting? */
1490 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1491 return QUOTA_OK;
1492 }
1493 /* First build the transfer_to list - here we can block on
1494 * reading/instantiating of dquots. We know that the transaction for
1495 * us was already started so we don't violate lock ranking here */
1496 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1497 switch (cnt) { 1502 switch (cnt) {
1498 case USRQUOTA: 1503 case USRQUOTA:
1499 if (!chuid) 1504 if (!chuid)
@@ -1507,6 +1512,13 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr)
1507 break; 1512 break;
1508 } 1513 }
1509 } 1514 }
1515
1516 down_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1517 /* Now recheck reliably when holding dqptr_sem */
1518 if (IS_NOQUOTA(inode)) { /* File without quota accounting? */
1519 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1520 goto put_all;
1521 }
1510 spin_lock(&dq_data_lock); 1522 spin_lock(&dq_data_lock);
1511 space = inode_get_bytes(inode); 1523 space = inode_get_bytes(inode);
1512 /* Build the transfer_from list and check the limits */ 1524 /* Build the transfer_from list and check the limits */
@@ -1517,7 +1529,7 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr)
1517 if (check_idq(transfer_to[cnt], 1, warntype_to + cnt) == 1529 if (check_idq(transfer_to[cnt], 1, warntype_to + cnt) ==
1518 NO_QUOTA || check_bdq(transfer_to[cnt], space, 0, 1530 NO_QUOTA || check_bdq(transfer_to[cnt], space, 0,
1519 warntype_to + cnt) == NO_QUOTA) 1531 warntype_to + cnt) == NO_QUOTA)
1520 goto warn_put_all; 1532 goto over_quota;
1521 } 1533 }
1522 1534
1523 /* 1535 /*
@@ -1545,28 +1557,37 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr)
1545 1557
1546 inode->i_dquot[cnt] = transfer_to[cnt]; 1558 inode->i_dquot[cnt] = transfer_to[cnt];
1547 } 1559 }
1548 ret = QUOTA_OK;
1549warn_put_all:
1550 spin_unlock(&dq_data_lock); 1560 spin_unlock(&dq_data_lock);
1561 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1562
1551 /* Dirtify all the dquots - this can block when journalling */ 1563 /* Dirtify all the dquots - this can block when journalling */
1552 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 1564 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1553 if (transfer_from[cnt]) 1565 if (transfer_from[cnt])
1554 mark_dquot_dirty(transfer_from[cnt]); 1566 mark_dquot_dirty(transfer_from[cnt]);
1555 if (transfer_to[cnt]) 1567 if (transfer_to[cnt]) {
1556 mark_dquot_dirty(transfer_to[cnt]); 1568 mark_dquot_dirty(transfer_to[cnt]);
1569 /* The reference we got is transferred to the inode */
1570 transfer_to[cnt] = NODQUOT;
1571 }
1557 } 1572 }
1573warn_put_all:
1558 flush_warnings(transfer_to, warntype_to); 1574 flush_warnings(transfer_to, warntype_to);
1559 flush_warnings(transfer_from, warntype_from_inodes); 1575 flush_warnings(transfer_from, warntype_from_inodes);
1560 flush_warnings(transfer_from, warntype_from_space); 1576 flush_warnings(transfer_from, warntype_from_space);
1561 1577put_all:
1562 for (cnt = 0; cnt < MAXQUOTAS; cnt++) { 1578 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
1563 if (ret == QUOTA_OK && transfer_from[cnt] != NODQUOT) 1579 dqput(transfer_from[cnt]);
1564 dqput(transfer_from[cnt]); 1580 dqput(transfer_to[cnt]);
1565 if (ret == NO_QUOTA && transfer_to[cnt] != NODQUOT)
1566 dqput(transfer_to[cnt]);
1567 } 1581 }
1568 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1569 return ret; 1582 return ret;
1583over_quota:
1584 spin_unlock(&dq_data_lock);
1585 up_write(&sb_dqopt(inode->i_sb)->dqptr_sem);
1586 /* Clear dquot pointers we don't want to dqput() */
1587 for (cnt = 0; cnt < MAXQUOTAS; cnt++)
1588 transfer_from[cnt] = NODQUOT;
1589 ret = NO_QUOTA;
1590 goto warn_put_all;
1570} 1591}
1571 1592
1572/* Wrapper for transferring ownership of an inode */ 1593/* Wrapper for transferring ownership of an inode */
@@ -1651,19 +1672,24 @@ int vfs_quota_disable(struct super_block *sb, int type, unsigned int flags)
1651 continue; 1672 continue;
1652 1673
1653 if (flags & DQUOT_SUSPENDED) { 1674 if (flags & DQUOT_SUSPENDED) {
1675 spin_lock(&dq_state_lock);
1654 dqopt->flags |= 1676 dqopt->flags |=
1655 dquot_state_flag(DQUOT_SUSPENDED, cnt); 1677 dquot_state_flag(DQUOT_SUSPENDED, cnt);
1678 spin_unlock(&dq_state_lock);
1656 } else { 1679 } else {
1680 spin_lock(&dq_state_lock);
1657 dqopt->flags &= ~dquot_state_flag(flags, cnt); 1681 dqopt->flags &= ~dquot_state_flag(flags, cnt);
1658 /* Turning off suspended quotas? */ 1682 /* Turning off suspended quotas? */
1659 if (!sb_has_quota_loaded(sb, cnt) && 1683 if (!sb_has_quota_loaded(sb, cnt) &&
1660 sb_has_quota_suspended(sb, cnt)) { 1684 sb_has_quota_suspended(sb, cnt)) {
1661 dqopt->flags &= ~dquot_state_flag( 1685 dqopt->flags &= ~dquot_state_flag(
1662 DQUOT_SUSPENDED, cnt); 1686 DQUOT_SUSPENDED, cnt);
1687 spin_unlock(&dq_state_lock);
1663 iput(dqopt->files[cnt]); 1688 iput(dqopt->files[cnt]);
1664 dqopt->files[cnt] = NULL; 1689 dqopt->files[cnt] = NULL;
1665 continue; 1690 continue;
1666 } 1691 }
1692 spin_unlock(&dq_state_lock);
1667 } 1693 }
1668 1694
1669 /* We still have to keep quota loaded? */ 1695 /* We still have to keep quota loaded? */
@@ -1830,7 +1856,9 @@ static int vfs_load_quota_inode(struct inode *inode, int type, int format_id,
1830 } 1856 }
1831 mutex_unlock(&dqopt->dqio_mutex); 1857 mutex_unlock(&dqopt->dqio_mutex);
1832 mutex_unlock(&inode->i_mutex); 1858 mutex_unlock(&inode->i_mutex);
1859 spin_lock(&dq_state_lock);
1833 dqopt->flags |= dquot_state_flag(flags, type); 1860 dqopt->flags |= dquot_state_flag(flags, type);
1861 spin_unlock(&dq_state_lock);
1834 1862
1835 add_dquot_ref(sb, type); 1863 add_dquot_ref(sb, type);
1836 mutex_unlock(&dqopt->dqonoff_mutex); 1864 mutex_unlock(&dqopt->dqonoff_mutex);
@@ -1872,9 +1900,11 @@ static int vfs_quota_on_remount(struct super_block *sb, int type)
1872 } 1900 }
1873 inode = dqopt->files[type]; 1901 inode = dqopt->files[type];
1874 dqopt->files[type] = NULL; 1902 dqopt->files[type] = NULL;
1903 spin_lock(&dq_state_lock);
1875 flags = dqopt->flags & dquot_state_flag(DQUOT_USAGE_ENABLED | 1904 flags = dqopt->flags & dquot_state_flag(DQUOT_USAGE_ENABLED |
1876 DQUOT_LIMITS_ENABLED, type); 1905 DQUOT_LIMITS_ENABLED, type);
1877 dqopt->flags &= ~dquot_state_flag(DQUOT_STATE_FLAGS, type); 1906 dqopt->flags &= ~dquot_state_flag(DQUOT_STATE_FLAGS, type);
1907 spin_unlock(&dq_state_lock);
1878 mutex_unlock(&dqopt->dqonoff_mutex); 1908 mutex_unlock(&dqopt->dqonoff_mutex);
1879 1909
1880 flags = dquot_generic_flag(flags, type); 1910 flags = dquot_generic_flag(flags, type);
@@ -1952,7 +1982,9 @@ int vfs_quota_enable(struct inode *inode, int type, int format_id,
1952 ret = -EBUSY; 1982 ret = -EBUSY;
1953 goto out_lock; 1983 goto out_lock;
1954 } 1984 }
1985 spin_lock(&dq_state_lock);
1955 sb_dqopt(sb)->flags |= dquot_state_flag(flags, type); 1986 sb_dqopt(sb)->flags |= dquot_state_flag(flags, type);
1987 spin_unlock(&dq_state_lock);
1956out_lock: 1988out_lock:
1957 mutex_unlock(&dqopt->dqonoff_mutex); 1989 mutex_unlock(&dqopt->dqonoff_mutex);
1958 return ret; 1990 return ret;
@@ -2039,14 +2071,12 @@ int vfs_get_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *d
2039{ 2071{
2040 struct dquot *dquot; 2072 struct dquot *dquot;
2041 2073
2042 mutex_lock(&sb_dqopt(sb)->dqonoff_mutex); 2074 dquot = dqget(sb, id, type);
2043 if (!(dquot = dqget(sb, id, type))) { 2075 if (dquot == NODQUOT)
2044 mutex_unlock(&sb_dqopt(sb)->dqonoff_mutex);
2045 return -ESRCH; 2076 return -ESRCH;
2046 }
2047 do_get_dqblk(dquot, di); 2077 do_get_dqblk(dquot, di);
2048 dqput(dquot); 2078 dqput(dquot);
2049 mutex_unlock(&sb_dqopt(sb)->dqonoff_mutex); 2079
2050 return 0; 2080 return 0;
2051} 2081}
2052 2082
@@ -2130,7 +2160,6 @@ int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *d
2130 struct dquot *dquot; 2160 struct dquot *dquot;
2131 int rc; 2161 int rc;
2132 2162
2133 mutex_lock(&sb_dqopt(sb)->dqonoff_mutex);
2134 dquot = dqget(sb, id, type); 2163 dquot = dqget(sb, id, type);
2135 if (!dquot) { 2164 if (!dquot) {
2136 rc = -ESRCH; 2165 rc = -ESRCH;
@@ -2139,7 +2168,6 @@ int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *d
2139 rc = do_set_dqblk(dquot, di); 2168 rc = do_set_dqblk(dquot, di);
2140 dqput(dquot); 2169 dqput(dquot);
2141out: 2170out:
2142 mutex_unlock(&sb_dqopt(sb)->dqonoff_mutex);
2143 return rc; 2171 return rc;
2144} 2172}
2145 2173
@@ -2370,11 +2398,9 @@ EXPORT_SYMBOL(dquot_release);
2370EXPORT_SYMBOL(dquot_mark_dquot_dirty); 2398EXPORT_SYMBOL(dquot_mark_dquot_dirty);
2371EXPORT_SYMBOL(dquot_initialize); 2399EXPORT_SYMBOL(dquot_initialize);
2372EXPORT_SYMBOL(dquot_drop); 2400EXPORT_SYMBOL(dquot_drop);
2373EXPORT_SYMBOL(dquot_drop_locked);
2374EXPORT_SYMBOL(vfs_dq_drop); 2401EXPORT_SYMBOL(vfs_dq_drop);
2375EXPORT_SYMBOL(dqget); 2402EXPORT_SYMBOL(dqget);
2376EXPORT_SYMBOL(dqput); 2403EXPORT_SYMBOL(dqput);
2377EXPORT_SYMBOL(dquot_is_cached);
2378EXPORT_SYMBOL(dquot_alloc_space); 2404EXPORT_SYMBOL(dquot_alloc_space);
2379EXPORT_SYMBOL(dquot_alloc_inode); 2405EXPORT_SYMBOL(dquot_alloc_inode);
2380EXPORT_SYMBOL(dquot_free_space); 2406EXPORT_SYMBOL(dquot_free_space);
diff --git a/fs/ecryptfs/Kconfig b/fs/ecryptfs/Kconfig
new file mode 100644
index 000000000000..0c754e64232b
--- /dev/null
+++ b/fs/ecryptfs/Kconfig
@@ -0,0 +1,11 @@
1config ECRYPT_FS
2 tristate "eCrypt filesystem layer support (EXPERIMENTAL)"
3 depends on EXPERIMENTAL && KEYS && CRYPTO && NET
4 help
5 Encrypted filesystem that operates on the VFS layer. See
6 <file:Documentation/filesystems/ecryptfs.txt> to learn more about
7 eCryptfs. Userspace components are required and can be
8 obtained from <http://ecryptfs.sf.net>.
9
10 To compile this file system support as a module, choose M here: the
11 module will be called ecryptfs.
diff --git a/fs/efs/Kconfig b/fs/efs/Kconfig
new file mode 100644
index 000000000000..6ebfc1c207a8
--- /dev/null
+++ b/fs/efs/Kconfig
@@ -0,0 +1,14 @@
1config EFS_FS
2 tristate "EFS file system support (read only) (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 help
5 EFS is an older file system used for non-ISO9660 CD-ROMs and hard
6 disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer
7 uses the XFS file system for hard disk partitions however).
8
9 This implementation only offers read-only access. If you don't know
10 what all this is about, it's safe to say N. For more information
11 about EFS see its home page at <http://aeschi.ch.eu.org/efs/>.
12
13 To compile the EFS file system support as a module, choose M here: the
14 module will be called efs.
diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig
new file mode 100644
index 000000000000..d0a69ff25375
--- /dev/null
+++ b/fs/fat/Kconfig
@@ -0,0 +1,97 @@
1config FAT_FS
2 tristate
3 select NLS
4 help
5 If you want to use one of the FAT-based file systems (the MS-DOS and
6 VFAT (Windows 95) file systems), then you must say Y or M here
7 to include FAT support. You will then be able to mount partitions or
8 diskettes with FAT-based file systems and transparently access the
9 files on them, i.e. MSDOS files will look and behave just like all
10 other Unix files.
11
12 This FAT support is not a file system in itself, it only provides
13 the foundation for the other file systems. You will have to say Y or
14 M to at least one of "MSDOS fs support" or "VFAT fs support" in
15 order to make use of it.
16
17 Another way to read and write MSDOS floppies and hard drive
18 partitions from within Linux (but not transparently) is with the
19 mtools ("man mtools") program suite. You don't need to say Y here in
20 order to do that.
21
22 If you need to move large files on floppies between a DOS and a
23 Linux box, say Y here, mount the floppy under Linux with an MSDOS
24 file system and use GNU tar's M option. GNU tar is a program
25 available for Unix and DOS ("man tar" or "info tar").
26
27 The FAT support will enlarge your kernel by about 37 KB. If unsure,
28 say Y.
29
30 To compile this as a module, choose M here: the module will be called
31 fat. Note that if you compile the FAT support as a module, you
32 cannot compile any of the FAT-based file systems into the kernel
33 -- they will have to be modules as well.
34
35config MSDOS_FS
36 tristate "MSDOS fs support"
37 select FAT_FS
38 help
39 This allows you to mount MSDOS partitions of your hard drive (unless
40 they are compressed; to access compressed MSDOS partitions under
41 Linux, you can either use the DOS emulator DOSEMU, described in the
42 DOSEMU-HOWTO, available from
43 <http://www.tldp.org/docs.html#howto>, or try dmsdosfs in
44 <ftp://ibiblio.org/pub/Linux/system/filesystems/dosfs/>. If you
45 intend to use dosemu with a non-compressed MSDOS partition, say Y
46 here) and MSDOS floppies. This means that file access becomes
47 transparent, i.e. the MSDOS files look and behave just like all
48 other Unix files.
49
50 If you have Windows 95 or Windows NT installed on your MSDOS
51 partitions, you should use the VFAT file system (say Y to "VFAT fs
52 support" below), or you will not be able to see the long filenames
53 generated by Windows 95 / Windows NT.
54
55 This option will enlarge your kernel by about 7 KB. If unsure,
56 answer Y. This will only work if you said Y to "DOS FAT fs support"
57 as well. To compile this as a module, choose M here: the module will
58 be called msdos.
59
60config VFAT_FS
61 tristate "VFAT (Windows-95) fs support"
62 select FAT_FS
63 help
64 This option provides support for normal Windows file systems with
65 long filenames. That includes non-compressed FAT-based file systems
66 used by Windows 95, Windows 98, Windows NT 4.0, and the Unix
67 programs from the mtools package.
68
69 The VFAT support enlarges your kernel by about 10 KB and it only
70 works if you said Y to the "DOS FAT fs support" above. Please read
71 the file <file:Documentation/filesystems/vfat.txt> for details. If
72 unsure, say Y.
73
74 To compile this as a module, choose M here: the module will be called
75 vfat.
76
77config FAT_DEFAULT_CODEPAGE
78 int "Default codepage for FAT"
79 depends on MSDOS_FS || VFAT_FS
80 default 437
81 help
82 This option should be set to the codepage of your FAT filesystems.
83 It can be overridden with the "codepage" mount option.
84 See <file:Documentation/filesystems/vfat.txt> for more information.
85
86config FAT_DEFAULT_IOCHARSET
87 string "Default iocharset for FAT"
88 depends on VFAT_FS
89 default "iso8859-1"
90 help
91 Set this to the default input/output character set you'd
92 like FAT to use. It should probably match the character set
93 that most of your FAT filesystems use, and can be overridden
94 with the "iocharset" mount option for FAT filesystems.
95 Note that "utf8" is not recommended for FAT filesystems.
96 If unsure, you shouldn't set "utf8" here.
97 See <file:Documentation/filesystems/vfat.txt> for more information.
diff --git a/fs/freevxfs/Kconfig b/fs/freevxfs/Kconfig
new file mode 100644
index 000000000000..8dc1cd5c1efe
--- /dev/null
+++ b/fs/freevxfs/Kconfig
@@ -0,0 +1,16 @@
1config VXFS_FS
2 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
3 depends on BLOCK
4 help
5 FreeVxFS is a file system driver that support the VERITAS VxFS(TM)
6 file system format. VERITAS VxFS(TM) is the standard file system
7 of SCO UnixWare (and possibly others) and optionally available
8 for Sunsoft Solaris, HP-UX and many other operating systems.
9 Currently only readonly access is supported.
10
11 NOTE: the file system type as used by mount(1), mount(2) and
12 fstab(5) is 'vxfs' as it describes the file system format, not
13 the actual driver.
14
15 To compile this as a module, choose M here: the module will be
16 called freevxfs. If unsure, say N.
diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
new file mode 100644
index 000000000000..0cf160a94eda
--- /dev/null
+++ b/fs/fuse/Kconfig
@@ -0,0 +1,15 @@
1config FUSE_FS
2 tristate "FUSE (Filesystem in Userspace) support"
3 help
4 With FUSE it is possible to implement a fully functional filesystem
5 in a userspace program.
6
7 There's also companion library: libfuse. This library along with
8 utilities is available from the FUSE homepage:
9 <http://fuse.sourceforge.net/>
10
11 See <file:Documentation/filesystems/fuse.txt> for more information.
12 See <file:Documentation/Changes> for needed library/utility version.
13
14 If you want to develop a userspace FS, or if you want to use
15 a filesystem based on FUSE, answer Y or M.
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index e0c7ada08a1f..ba76b68c52ff 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -281,7 +281,8 @@ __releases(&fc->lock)
281 fc->blocked = 0; 281 fc->blocked = 0;
282 wake_up_all(&fc->blocked_waitq); 282 wake_up_all(&fc->blocked_waitq);
283 } 283 }
284 if (fc->num_background == FUSE_CONGESTION_THRESHOLD) { 284 if (fc->num_background == FUSE_CONGESTION_THRESHOLD &&
285 fc->connected) {
285 clear_bdi_congested(&fc->bdi, READ); 286 clear_bdi_congested(&fc->bdi, READ);
286 clear_bdi_congested(&fc->bdi, WRITE); 287 clear_bdi_congested(&fc->bdi, WRITE);
287 } 288 }
@@ -825,16 +826,21 @@ static int fuse_notify_poll(struct fuse_conn *fc, unsigned int size,
825 struct fuse_copy_state *cs) 826 struct fuse_copy_state *cs)
826{ 827{
827 struct fuse_notify_poll_wakeup_out outarg; 828 struct fuse_notify_poll_wakeup_out outarg;
828 int err; 829 int err = -EINVAL;
829 830
830 if (size != sizeof(outarg)) 831 if (size != sizeof(outarg))
831 return -EINVAL; 832 goto err;
832 833
833 err = fuse_copy_one(cs, &outarg, sizeof(outarg)); 834 err = fuse_copy_one(cs, &outarg, sizeof(outarg));
834 if (err) 835 if (err)
835 return err; 836 goto err;
836 837
838 fuse_copy_finish(cs);
837 return fuse_notify_poll_wakeup(fc, &outarg); 839 return fuse_notify_poll_wakeup(fc, &outarg);
840
841err:
842 fuse_copy_finish(cs);
843 return err;
838} 844}
839 845
840static int fuse_notify(struct fuse_conn *fc, enum fuse_notify_code code, 846static int fuse_notify(struct fuse_conn *fc, enum fuse_notify_code code,
@@ -845,6 +851,7 @@ static int fuse_notify(struct fuse_conn *fc, enum fuse_notify_code code,
845 return fuse_notify_poll(fc, size, cs); 851 return fuse_notify_poll(fc, size, cs);
846 852
847 default: 853 default:
854 fuse_copy_finish(cs);
848 return -EINVAL; 855 return -EINVAL;
849 } 856 }
850} 857}
@@ -923,7 +930,6 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov,
923 */ 930 */
924 if (!oh.unique) { 931 if (!oh.unique) {
925 err = fuse_notify(fc, oh.error, nbytes - sizeof(oh), &cs); 932 err = fuse_notify(fc, oh.error, nbytes - sizeof(oh), &cs);
926 fuse_copy_finish(&cs);
927 return err ? err : nbytes; 933 return err ? err : nbytes;
928 } 934 }
929 935
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index e8162646a9b5..d9fdb7cec538 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -54,7 +54,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
54 ff->reserved_req = fuse_request_alloc(); 54 ff->reserved_req = fuse_request_alloc();
55 if (!ff->reserved_req) { 55 if (!ff->reserved_req) {
56 kfree(ff); 56 kfree(ff);
57 ff = NULL; 57 return NULL;
58 } else { 58 } else {
59 INIT_LIST_HEAD(&ff->write_entry); 59 INIT_LIST_HEAD(&ff->write_entry);
60 atomic_set(&ff->count, 0); 60 atomic_set(&ff->count, 0);
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 47c96fdca1ac..459b73dd45e1 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -292,6 +292,7 @@ static void fuse_put_super(struct super_block *sb)
292 list_del(&fc->entry); 292 list_del(&fc->entry);
293 fuse_ctl_remove_conn(fc); 293 fuse_ctl_remove_conn(fc);
294 mutex_unlock(&fuse_mutex); 294 mutex_unlock(&fuse_mutex);
295 bdi_destroy(&fc->bdi);
295 fuse_conn_put(fc); 296 fuse_conn_put(fc);
296} 297}
297 298
@@ -532,7 +533,6 @@ void fuse_conn_put(struct fuse_conn *fc)
532 if (fc->destroy_req) 533 if (fc->destroy_req)
533 fuse_request_free(fc->destroy_req); 534 fuse_request_free(fc->destroy_req);
534 mutex_destroy(&fc->inst_mutex); 535 mutex_destroy(&fc->inst_mutex);
535 bdi_destroy(&fc->bdi);
536 fc->release(fc); 536 fc->release(fc);
537 } 537 }
538} 538}
@@ -805,16 +805,18 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
805 int err; 805 int err;
806 int is_bdev = sb->s_bdev != NULL; 806 int is_bdev = sb->s_bdev != NULL;
807 807
808 err = -EINVAL;
808 if (sb->s_flags & MS_MANDLOCK) 809 if (sb->s_flags & MS_MANDLOCK)
809 return -EINVAL; 810 goto err;
810 811
811 if (!parse_fuse_opt((char *) data, &d, is_bdev)) 812 if (!parse_fuse_opt((char *) data, &d, is_bdev))
812 return -EINVAL; 813 goto err;
813 814
814 if (is_bdev) { 815 if (is_bdev) {
815#ifdef CONFIG_BLOCK 816#ifdef CONFIG_BLOCK
817 err = -EINVAL;
816 if (!sb_set_blocksize(sb, d.blksize)) 818 if (!sb_set_blocksize(sb, d.blksize))
817 return -EINVAL; 819 goto err;
818#endif 820#endif
819 } else { 821 } else {
820 sb->s_blocksize = PAGE_CACHE_SIZE; 822 sb->s_blocksize = PAGE_CACHE_SIZE;
@@ -826,20 +828,22 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
826 sb->s_export_op = &fuse_export_operations; 828 sb->s_export_op = &fuse_export_operations;
827 829
828 file = fget(d.fd); 830 file = fget(d.fd);
831 err = -EINVAL;
829 if (!file) 832 if (!file)
830 return -EINVAL; 833 goto err;
831 834
832 if (file->f_op != &fuse_dev_operations) 835 if (file->f_op != &fuse_dev_operations)
833 return -EINVAL; 836 goto err_fput;
834 837
835 fc = kmalloc(sizeof(*fc), GFP_KERNEL); 838 fc = kmalloc(sizeof(*fc), GFP_KERNEL);
839 err = -ENOMEM;
836 if (!fc) 840 if (!fc)
837 return -ENOMEM; 841 goto err_fput;
838 842
839 err = fuse_conn_init(fc, sb); 843 err = fuse_conn_init(fc, sb);
840 if (err) { 844 if (err) {
841 kfree(fc); 845 kfree(fc);
842 return err; 846 goto err_fput;
843 } 847 }
844 848
845 fc->release = fuse_free_conn; 849 fc->release = fuse_free_conn;
@@ -854,12 +858,12 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
854 err = -ENOMEM; 858 err = -ENOMEM;
855 root = fuse_get_root_inode(sb, d.rootmode); 859 root = fuse_get_root_inode(sb, d.rootmode);
856 if (!root) 860 if (!root)
857 goto err; 861 goto err_put_conn;
858 862
859 root_dentry = d_alloc_root(root); 863 root_dentry = d_alloc_root(root);
860 if (!root_dentry) { 864 if (!root_dentry) {
861 iput(root); 865 iput(root);
862 goto err; 866 goto err_put_conn;
863 } 867 }
864 868
865 init_req = fuse_request_alloc(); 869 init_req = fuse_request_alloc();
@@ -903,9 +907,11 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
903 fuse_request_free(init_req); 907 fuse_request_free(init_req);
904 err_put_root: 908 err_put_root:
905 dput(root_dentry); 909 dput(root_dentry);
906 err: 910 err_put_conn:
907 fput(file);
908 fuse_conn_put(fc); 911 fuse_conn_put(fc);
912 err_fput:
913 fput(file);
914 err:
909 return err; 915 return err;
910} 916}
911 917
diff --git a/fs/hfs/Kconfig b/fs/hfs/Kconfig
new file mode 100644
index 000000000000..b77c5bc20f8a
--- /dev/null
+++ b/fs/hfs/Kconfig
@@ -0,0 +1,12 @@
1config HFS_FS
2 tristate "Apple Macintosh file system support (EXPERIMENTAL)"
3 depends on BLOCK && EXPERIMENTAL
4 select NLS
5 help
6 If you say Y here, you will be able to mount Macintosh-formatted
7 floppy disks and hard drive partitions with full read-write access.
8 Please read <file:Documentation/filesystems/hfs.txt> to learn about
9 the available mount options.
10
11 To compile this file system support as a module, choose M here: the
12 module will be called hfs.
diff --git a/fs/hfsplus/Kconfig b/fs/hfsplus/Kconfig
new file mode 100644
index 000000000000..a63371815aab
--- /dev/null
+++ b/fs/hfsplus/Kconfig
@@ -0,0 +1,13 @@
1config HFSPLUS_FS
2 tristate "Apple Extended HFS file system support"
3 depends on BLOCK
4 select NLS
5 select NLS_UTF8
6 help
7 If you say Y here, you will be able to mount extended format
8 Macintosh-formatted hard drive partitions with full read-write access.
9
10 This file system is often called HFS+ and was introduced with
11 MacOS 8. It includes all Mac specific filesystem data such as
12 data forks and creator codes, but it also has several UNIX
13 style features such as file ownership and permissions.
diff --git a/fs/hpfs/Kconfig b/fs/hpfs/Kconfig
new file mode 100644
index 000000000000..56bd15c5bf6c
--- /dev/null
+++ b/fs/hpfs/Kconfig
@@ -0,0 +1,14 @@
1config HPFS_FS
2 tristate "OS/2 HPFS file system support"
3 depends on BLOCK
4 help
5 OS/2 is IBM's operating system for PC's, the same as Warp, and HPFS
6 is the file system used for organizing files on OS/2 hard disk
7 partitions. Say Y if you want to be able to read files from and
8 write files to an OS/2 HPFS partition on your hard drive. OS/2
9 floppies however are in regular MSDOS format, so you don't need this
10 option in order to be able to read them. Read
11 <file:Documentation/filesystems/hpfs.txt>.
12
13 To compile this file system support as a module, choose M here: the
14 module will be called hpfs. If unsure, say N.
diff --git a/fs/isofs/Kconfig b/fs/isofs/Kconfig
new file mode 100644
index 000000000000..8ab9878e3671
--- /dev/null
+++ b/fs/isofs/Kconfig
@@ -0,0 +1,39 @@
1config ISO9660_FS
2 tristate "ISO 9660 CDROM file system support"
3 help
4 This is the standard file system used on CD-ROMs. It was previously
5 known as "High Sierra File System" and is called "hsfs" on other
6 Unix systems. The so-called Rock-Ridge extensions which allow for
7 long Unix filenames and symbolic links are also supported by this
8 driver. If you have a CD-ROM drive and want to do more with it than
9 just listen to audio CDs and watch its LEDs, say Y (and read
10 <file:Documentation/filesystems/isofs.txt> and the CD-ROM-HOWTO,
11 available from <http://www.tldp.org/docs.html#howto>), thereby
12 enlarging your kernel by about 27 KB; otherwise say N.
13
14 To compile this file system support as a module, choose M here: the
15 module will be called isofs.
16
17config JOLIET
18 bool "Microsoft Joliet CDROM extensions"
19 depends on ISO9660_FS
20 select NLS
21 help
22 Joliet is a Microsoft extension for the ISO 9660 CD-ROM file system
23 which allows for long filenames in unicode format (unicode is the
24 new 16 bit character code, successor to ASCII, which encodes the
25 characters of almost all languages of the world; see
26 <http://www.unicode.org/> for more information). Say Y here if you
27 want to be able to read Joliet CD-ROMs under Linux.
28
29config ZISOFS
30 bool "Transparent decompression extension"
31 depends on ISO9660_FS
32 select ZLIB_INFLATE
33 help
34 This is a Linux-specific extension to RockRidge which lets you store
35 data in compressed form on a CD-ROM and have it transparently
36 decompressed when the CD-ROM is accessed. See
37 <http://www.kernel.org/pub/linux/utils/fs/zisofs/> for the tools
38 necessary to create such a filesystem. Say Y here if you want to be
39 able to read such compressed CD-ROMs.
diff --git a/fs/jfs/Kconfig b/fs/jfs/Kconfig
new file mode 100644
index 000000000000..9ff619a6f9cc
--- /dev/null
+++ b/fs/jfs/Kconfig
@@ -0,0 +1,49 @@
1config JFS_FS
2 tristate "JFS filesystem support"
3 select NLS
4 help
5 This is a port of IBM's Journaled Filesystem . More information is
6 available in the file <file:Documentation/filesystems/jfs.txt>.
7
8 If you do not intend to use the JFS filesystem, say N.
9
10config JFS_POSIX_ACL
11 bool "JFS POSIX Access Control Lists"
12 depends on JFS_FS
13 select FS_POSIX_ACL
14 help
15 Posix Access Control Lists (ACLs) support permissions for users and
16 groups beyond the owner/group/world scheme.
17
18 To learn more about Access Control Lists, visit the Posix ACLs for
19 Linux website <http://acl.bestbits.at/>.
20
21 If you don't know what Access Control Lists are, say N
22
23config JFS_SECURITY
24 bool "JFS Security Labels"
25 depends on JFS_FS
26 help
27 Security labels support alternative access control models
28 implemented by security modules like SELinux. This option
29 enables an extended attribute handler for file security
30 labels in the jfs filesystem.
31
32 If you are not using a security module that requires using
33 extended attributes for file security labels, say N.
34
35config JFS_DEBUG
36 bool "JFS debugging"
37 depends on JFS_FS
38 help
39 If you are experiencing any problems with the JFS filesystem, say
40 Y here. This will result in additional debugging messages to be
41 written to the system log. Under normal circumstances, this
42 results in very little overhead.
43
44config JFS_STATISTICS
45 bool "JFS statistics"
46 depends on JFS_FS
47 help
48 Enabling this option will cause statistics from the JFS file system
49 to be made available to the user in the /proc/fs/jfs/ directory.
diff --git a/fs/minix/Kconfig b/fs/minix/Kconfig
new file mode 100644
index 000000000000..0fd7ca994264
--- /dev/null
+++ b/fs/minix/Kconfig
@@ -0,0 +1,17 @@
1config MINIX_FS
2 tristate "Minix file system support"
3 depends on BLOCK
4 help
5 Minix is a simple operating system used in many classes about OS's.
6 The minix file system (method to organize files on a hard disk
7 partition or a floppy disk) was the original file system for Linux,
8 but has been superseded by the second extended file system ext2fs.
9 You don't want to use the minix file system on your hard disk
10 because of certain built-in restrictions, but it is sometimes found
11 on older Linux floppy disks. This option will enlarge your kernel
12 by about 28 KB. If unsure, say N.
13
14 To compile this file system support as a module, choose M here: the
15 module will be called minix. Note that the file system of your root
16 partition (the one containing the directory /) cannot be compiled as
17 a module.
diff --git a/fs/ncpfs/Kconfig b/fs/ncpfs/Kconfig
index 142808427b25..c931cf22a1f6 100644
--- a/fs/ncpfs/Kconfig
+++ b/fs/ncpfs/Kconfig
@@ -1,6 +1,27 @@
1# 1#
2# NCP Filesystem configuration 2# NCP Filesystem configuration
3# 3#
4config NCP_FS
5 tristate "NCP file system support (to mount NetWare volumes)"
6 depends on IPX!=n || INET
7 help
8 NCP (NetWare Core Protocol) is a protocol that runs over IPX and is
9 used by Novell NetWare clients to talk to file servers. It is to
10 IPX what NFS is to TCP/IP, if that helps. Saying Y here allows you
11 to mount NetWare file server volumes and to access them just like
12 any other Unix directory. For details, please read the file
13 <file:Documentation/filesystems/ncpfs.txt> in the kernel source and
14 the IPX-HOWTO from <http://www.tldp.org/docs.html#howto>.
15
16 You do not have to say Y here if you want your Linux box to act as a
17 file *server* for Novell NetWare clients.
18
19 General information about how to connect Linux, Windows machines and
20 Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
21
22 To compile this as a module, choose M here: the module will be called
23 ncpfs. Say N unless you are connected to a Novell network.
24
4config NCPFS_PACKET_SIGNING 25config NCPFS_PACKET_SIGNING
5 bool "Packet signatures" 26 bool "Packet signatures"
6 depends on NCP_FS 27 depends on NCP_FS
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
new file mode 100644
index 000000000000..36fe20d6eba2
--- /dev/null
+++ b/fs/nfs/Kconfig
@@ -0,0 +1,86 @@
1config NFS_FS
2 tristate "NFS client support"
3 depends on INET
4 select LOCKD
5 select SUNRPC
6 select NFS_ACL_SUPPORT if NFS_V3_ACL
7 help
8 Choose Y here if you want to access files residing on other
9 computers using Sun's Network File System protocol. To compile
10 this file system support as a module, choose M here: the module
11 will be called nfs.
12
13 To mount file systems exported by NFS servers, you also need to
14 install the user space mount.nfs command which can be found in
15 the Linux nfs-utils package, available from http://linux-nfs.org/.
16 Information about using the mount command is available in the
17 mount(8) man page. More detail about the Linux NFS client
18 implementation is available via the nfs(5) man page.
19
20 Below you can choose which versions of the NFS protocol are
21 available in the kernel to mount NFS servers. Support for NFS
22 version 2 (RFC 1094) is always available when NFS_FS is selected.
23
24 To configure a system which mounts its root file system via NFS
25 at boot time, say Y here, select "Kernel level IP
26 autoconfiguration" in the NETWORK menu, and select "Root file
27 system on NFS" below. You cannot compile this file system as a
28 module in this case.
29
30 If unsure, say N.
31
32config NFS_V3
33 bool "NFS client support for NFS version 3"
34 depends on NFS_FS
35 help
36 This option enables support for version 3 of the NFS protocol
37 (RFC 1813) in the kernel's NFS client.
38
39 If unsure, say Y.
40
41config NFS_V3_ACL
42 bool "NFS client support for the NFSv3 ACL protocol extension"
43 depends on NFS_V3
44 help
45 Some NFS servers support an auxiliary NFSv3 ACL protocol that
46 Sun added to Solaris but never became an official part of the
47 NFS version 3 protocol. This protocol extension allows
48 applications on NFS clients to manipulate POSIX Access Control
49 Lists on files residing on NFS servers. NFS servers enforce
50 ACLs on local files whether this protocol is available or not.
51
52 Choose Y here if your NFS server supports the Solaris NFSv3 ACL
53 protocol extension and you want your NFS client to allow
54 applications to access and modify ACLs on files on the server.
55
56 Most NFS servers don't support the Solaris NFSv3 ACL protocol
57 extension. You can choose N here or specify the "noacl" mount
58 option to prevent your NFS client from trying to use the NFSv3
59 ACL protocol.
60
61 If unsure, say N.
62
63config NFS_V4
64 bool "NFS client support for NFS version 4 (EXPERIMENTAL)"
65 depends on NFS_FS && EXPERIMENTAL
66 select RPCSEC_GSS_KRB5
67 help
68 This option enables support for version 4 of the NFS protocol
69 (RFC 3530) in the kernel's NFS client.
70
71 To mount NFS servers using NFSv4, you also need to install user
72 space programs which can be found in the Linux nfs-utils package,
73 available from http://linux-nfs.org/.
74
75 If unsure, say N.
76
77config ROOT_NFS
78 bool "Root file system on NFS"
79 depends on NFS_FS=y && IP_PNP
80 help
81 If you want your system to mount its root file system via NFS,
82 choose Y here. This is common practice for managing systems
83 without local permanent storage. For details, read
84 <file:Documentation/filesystems/nfsroot.txt>.
85
86 Most people say N here.
diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
new file mode 100644
index 000000000000..44d7d04dab95
--- /dev/null
+++ b/fs/nfsd/Kconfig
@@ -0,0 +1,80 @@
1config NFSD
2 tristate "NFS server support"
3 depends on INET
4 select LOCKD
5 select SUNRPC
6 select EXPORTFS
7 select NFS_ACL_SUPPORT if NFSD_V2_ACL
8 help
9 Choose Y here if you want to allow other computers to access
10 files residing on this system using Sun's Network File System
11 protocol. To compile the NFS server support as a module,
12 choose M here: the module will be called nfsd.
13
14 You may choose to use a user-space NFS server instead, in which
15 case you can choose N here.
16
17 To export local file systems using NFS, you also need to install
18 user space programs which can be found in the Linux nfs-utils
19 package, available from http://linux-nfs.org/. More detail about
20 the Linux NFS server implementation is available via the
21 exports(5) man page.
22
23 Below you can choose which versions of the NFS protocol are
24 available to clients mounting the NFS server on this system.
25 Support for NFS version 2 (RFC 1094) is always available when
26 CONFIG_NFSD is selected.
27
28 If unsure, say N.
29
30config NFSD_V2_ACL
31 bool
32 depends on NFSD
33
34config NFSD_V3
35 bool "NFS server support for NFS version 3"
36 depends on NFSD
37 help
38 This option enables support in your system's NFS server for
39 version 3 of the NFS protocol (RFC 1813).
40
41 If unsure, say Y.
42
43config NFSD_V3_ACL
44 bool "NFS server support for the NFSv3 ACL protocol extension"
45 depends on NFSD_V3
46 select NFSD_V2_ACL
47 help
48 Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
49 never became an official part of the NFS version 3 protocol.
50 This protocol extension allows applications on NFS clients to
51 manipulate POSIX Access Control Lists on files residing on NFS
52 servers. NFS servers enforce POSIX ACLs on local files whether
53 this protocol is available or not.
54
55 This option enables support in your system's NFS server for the
56 NFSv3 ACL protocol extension allowing NFS clients to manipulate
57 POSIX ACLs on files exported by your system's NFS server. NFS
58 clients which support the Solaris NFSv3 ACL protocol can then
59 access and modify ACLs on your NFS server.
60
61 To store ACLs on your NFS server, you also need to enable ACL-
62 related CONFIG options for your local file systems of choice.
63
64 If unsure, say N.
65
66config NFSD_V4
67 bool "NFS server support for NFS version 4 (EXPERIMENTAL)"
68 depends on NFSD && PROC_FS && EXPERIMENTAL
69 select NFSD_V3
70 select FS_POSIX_ACL
71 select RPCSEC_GSS_KRB5
72 help
73 This option enables support in your system's NFS server for
74 version 4 of the NFS protocol (RFC 3530).
75
76 To export files using NFSv4, you need to install additional user
77 space programs which can be found in the Linux nfs-utils package,
78 available from http://linux-nfs.org/.
79
80 If unsure, say N.
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index d53a1838d6e8..bed766e435b5 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -427,10 +427,61 @@ static unsigned int inotify_poll(struct file *file, poll_table *wait)
427 return ret; 427 return ret;
428} 428}
429 429
430/*
431 * Get an inotify_kernel_event if one exists and is small
432 * enough to fit in "count". Return an error pointer if
433 * not large enough.
434 *
435 * Called with the device ev_mutex held.
436 */
437static struct inotify_kernel_event *get_one_event(struct inotify_device *dev,
438 size_t count)
439{
440 size_t event_size = sizeof(struct inotify_event);
441 struct inotify_kernel_event *kevent;
442
443 if (list_empty(&dev->events))
444 return NULL;
445
446 kevent = inotify_dev_get_event(dev);
447 if (kevent->name)
448 event_size += kevent->event.len;
449
450 if (event_size > count)
451 return ERR_PTR(-EINVAL);
452
453 remove_kevent(dev, kevent);
454 return kevent;
455}
456
457/*
458 * Copy an event to user space, returning how much we copied.
459 *
460 * We already checked that the event size is smaller than the
461 * buffer we had in "get_one_event()" above.
462 */
463static ssize_t copy_event_to_user(struct inotify_kernel_event *kevent,
464 char __user *buf)
465{
466 size_t event_size = sizeof(struct inotify_event);
467
468 if (copy_to_user(buf, &kevent->event, event_size))
469 return -EFAULT;
470
471 if (kevent->name) {
472 buf += event_size;
473
474 if (copy_to_user(buf, kevent->name, kevent->event.len))
475 return -EFAULT;
476
477 event_size += kevent->event.len;
478 }
479 return event_size;
480}
481
430static ssize_t inotify_read(struct file *file, char __user *buf, 482static ssize_t inotify_read(struct file *file, char __user *buf,
431 size_t count, loff_t *pos) 483 size_t count, loff_t *pos)
432{ 484{
433 size_t event_size = sizeof (struct inotify_event);
434 struct inotify_device *dev; 485 struct inotify_device *dev;
435 char __user *start; 486 char __user *start;
436 int ret; 487 int ret;
@@ -440,81 +491,43 @@ static ssize_t inotify_read(struct file *file, char __user *buf,
440 dev = file->private_data; 491 dev = file->private_data;
441 492
442 while (1) { 493 while (1) {
494 struct inotify_kernel_event *kevent;
443 495
444 prepare_to_wait(&dev->wq, &wait, TASK_INTERRUPTIBLE); 496 prepare_to_wait(&dev->wq, &wait, TASK_INTERRUPTIBLE);
445 497
446 mutex_lock(&dev->ev_mutex); 498 mutex_lock(&dev->ev_mutex);
447 if (!list_empty(&dev->events)) { 499 kevent = get_one_event(dev, count);
448 ret = 0;
449 break;
450 }
451 mutex_unlock(&dev->ev_mutex); 500 mutex_unlock(&dev->ev_mutex);
452 501
453 if (file->f_flags & O_NONBLOCK) { 502 if (kevent) {
454 ret = -EAGAIN; 503 ret = PTR_ERR(kevent);
455 break; 504 if (IS_ERR(kevent))
456 } 505 break;
457 506 ret = copy_event_to_user(kevent, buf);
458 if (signal_pending(current)) { 507 free_kevent(kevent);
459 ret = -EINTR; 508 if (ret < 0)
460 break; 509 break;
510 buf += ret;
511 count -= ret;
512 continue;
461 } 513 }
462 514
463 schedule(); 515 ret = -EAGAIN;
464 } 516 if (file->f_flags & O_NONBLOCK)
465
466 finish_wait(&dev->wq, &wait);
467 if (ret)
468 return ret;
469
470 while (1) {
471 struct inotify_kernel_event *kevent;
472
473 ret = buf - start;
474 if (list_empty(&dev->events))
475 break; 517 break;
476 518 ret = -EINTR;
477 kevent = inotify_dev_get_event(dev); 519 if (signal_pending(current))
478 if (event_size + kevent->event.len > count) {
479 if (ret == 0 && count > 0) {
480 /*
481 * could not get a single event because we
482 * didn't have enough buffer space.
483 */
484 ret = -EINVAL;
485 }
486 break; 520 break;
487 }
488 remove_kevent(dev, kevent);
489 521
490 /* 522 if (start != buf)
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);
495
496 if (copy_to_user(buf, &kevent->event, event_size)) {
497 ret = -EFAULT;
498 break; 523 break;
499 }
500 buf += event_size;
501 count -= event_size;
502
503 if (kevent->name) {
504 if (copy_to_user(buf, kevent->name, kevent->event.len)){
505 ret = -EFAULT;
506 break;
507 }
508 buf += kevent->event.len;
509 count -= kevent->event.len;
510 }
511
512 free_kevent(kevent);
513 524
514 mutex_lock(&dev->ev_mutex); 525 schedule();
515 } 526 }
516 mutex_unlock(&dev->ev_mutex);
517 527
528 finish_wait(&dev->wq, &wait);
529 if (start != buf && ret != -EFAULT)
530 ret = buf - start;
518 return ret; 531 return ret;
519} 532}
520 533
diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig
new file mode 100644
index 000000000000..f5a868cc9152
--- /dev/null
+++ b/fs/ntfs/Kconfig
@@ -0,0 +1,78 @@
1config NTFS_FS
2 tristate "NTFS file system support"
3 select NLS
4 help
5 NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
6
7 Saying Y or M here enables read support. There is partial, but
8 safe, write support available. For write support you must also
9 say Y to "NTFS write support" below.
10
11 There are also a number of user-space tools available, called
12 ntfsprogs. These include ntfsundelete and ntfsresize, that work
13 without NTFS support enabled in the kernel.
14
15 This is a rewrite from scratch of Linux NTFS support and replaced
16 the old NTFS code starting with Linux 2.5.11. A backport to
17 the Linux 2.4 kernel series is separately available as a patch
18 from the project web site.
19
20 For more information see <file:Documentation/filesystems/ntfs.txt>
21 and <http://www.linux-ntfs.org/>.
22
23 To compile this file system support as a module, choose M here: the
24 module will be called ntfs.
25
26 If you are not using Windows NT, 2000, XP or 2003 in addition to
27 Linux on your computer it is safe to say N.
28
29config NTFS_DEBUG
30 bool "NTFS debugging support"
31 depends on NTFS_FS
32 help
33 If you are experiencing any problems with the NTFS file system, say
34 Y here. This will result in additional consistency checks to be
35 performed by the driver as well as additional debugging messages to
36 be written to the system log. Note that debugging messages are
37 disabled by default. To enable them, supply the option debug_msgs=1
38 at the kernel command line when booting the kernel or as an option
39 to insmod when loading the ntfs module. Once the driver is active,
40 you can enable debugging messages by doing (as root):
41 echo 1 > /proc/sys/fs/ntfs-debug
42 Replacing the "1" with "0" would disable debug messages.
43
44 If you leave debugging messages disabled, this results in little
45 overhead, but enabling debug messages results in very significant
46 slowdown of the system.
47
48 When reporting bugs, please try to have available a full dump of
49 debugging messages while the misbehaviour was occurring.
50
51config NTFS_RW
52 bool "NTFS write support"
53 depends on NTFS_FS
54 help
55 This enables the partial, but safe, write support in the NTFS driver.
56
57 The only supported operation is overwriting existing files, without
58 changing the file length. No file or directory creation, deletion or
59 renaming is possible. Note only non-resident files can be written to
60 so you may find that some very small files (<500 bytes or so) cannot
61 be written to.
62
63 While we cannot guarantee that it will not damage any data, we have
64 so far not received a single report where the driver would have
65 damaged someones data so we assume it is perfectly safe to use.
66
67 Note: While write support is safe in this version (a rewrite from
68 scratch of the NTFS support), it should be noted that the old NTFS
69 write support, included in Linux 2.5.10 and before (since 1997),
70 is not safe.
71
72 This is currently useful with TopologiLinux. TopologiLinux is run
73 on top of any DOS/Microsoft Windows system without partitioning your
74 hard disk. Unlike other Linux distributions TopologiLinux does not
75 need its own partition. For more information see
76 <http://topologi-linux.sourceforge.net/>
77
78 It is perfectly safe to say N here.
diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig
new file mode 100644
index 000000000000..701b7a3a872e
--- /dev/null
+++ b/fs/ocfs2/Kconfig
@@ -0,0 +1,85 @@
1config OCFS2_FS
2 tristate "OCFS2 file system support"
3 depends on NET && SYSFS
4 select CONFIGFS_FS
5 select JBD2
6 select CRC32
7 select QUOTA
8 select QUOTA_TREE
9 help
10 OCFS2 is a general purpose extent based shared disk cluster file
11 system with many similarities to ext3. It supports 64 bit inode
12 numbers, and has automatically extending metadata groups which may
13 also make it attractive for non-clustered use.
14
15 You'll want to install the ocfs2-tools package in order to at least
16 get "mount.ocfs2".
17
18 Project web page: http://oss.oracle.com/projects/ocfs2
19 Tools web page: http://oss.oracle.com/projects/ocfs2-tools
20 OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/
21
22 For more information on OCFS2, see the file
23 <file:Documentation/filesystems/ocfs2.txt>.
24
25config OCFS2_FS_O2CB
26 tristate "O2CB Kernelspace Clustering"
27 depends on OCFS2_FS
28 default y
29 help
30 OCFS2 includes a simple kernelspace clustering package, the OCFS2
31 Cluster Base. It only requires a very small userspace component
32 to configure it. This comes with the standard ocfs2-tools package.
33 O2CB is limited to maintaining a cluster for OCFS2 file systems.
34 It cannot manage any other cluster applications.
35
36 It is always safe to say Y here, as the clustering method is
37 run-time selectable.
38
39config OCFS2_FS_USERSPACE_CLUSTER
40 tristate "OCFS2 Userspace Clustering"
41 depends on OCFS2_FS && DLM
42 default y
43 help
44 This option will allow OCFS2 to use userspace clustering services
45 in conjunction with the DLM in fs/dlm. If you are using a
46 userspace cluster manager, say Y here.
47
48 It is safe to say Y, as the clustering method is run-time
49 selectable.
50
51config OCFS2_FS_STATS
52 bool "OCFS2 statistics"
53 depends on OCFS2_FS
54 default y
55 help
56 This option allows some fs statistics to be captured. Enabling
57 this option may increase the memory consumption.
58
59config OCFS2_DEBUG_MASKLOG
60 bool "OCFS2 logging support"
61 depends on OCFS2_FS
62 default y
63 help
64 The ocfs2 filesystem has an extensive logging system. The system
65 allows selection of events to log via files in /sys/o2cb/logmask/.
66 This option will enlarge your kernel, but it allows debugging of
67 ocfs2 filesystem issues.
68
69config OCFS2_DEBUG_FS
70 bool "OCFS2 expensive checks"
71 depends on OCFS2_FS
72 default n
73 help
74 This option will enable expensive consistency checks. Enable
75 this option for debugging only as it is likely to decrease
76 performance of the filesystem.
77
78config OCFS2_FS_POSIX_ACL
79 bool "OCFS2 POSIX Access Control Lists"
80 depends on OCFS2_FS
81 select FS_POSIX_ACL
82 default n
83 help
84 Posix Access Control Lists (ACLs) support permissions for users and
85 groups beyond the owner/group/world scheme.
diff --git a/fs/ocfs2/quota_global.c b/fs/ocfs2/quota_global.c
index 6aff8f2d3e49..f4efa89baee5 100644
--- a/fs/ocfs2/quota_global.c
+++ b/fs/ocfs2/quota_global.c
@@ -810,171 +810,6 @@ out:
810 return status; 810 return status;
811} 811}
812 812
813/* This is difficult. We have to lock quota inode and start transaction
814 * in this function but we don't want to take the penalty of exlusive
815 * quota file lock when we are just going to use cached structures. So
816 * we just take read lock check whether we have dquot cached and if so,
817 * we don't have to take the write lock... */
818static int ocfs2_dquot_initialize(struct inode *inode, int type)
819{
820 handle_t *handle = NULL;
821 int status = 0;
822 struct super_block *sb = inode->i_sb;
823 struct ocfs2_mem_dqinfo *oinfo;
824 int exclusive = 0;
825 int cnt;
826 qid_t id;
827
828 mlog_entry_void();
829
830 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
831 if (type != -1 && cnt != type)
832 continue;
833 if (!sb_has_quota_active(sb, cnt))
834 continue;
835 oinfo = sb_dqinfo(sb, cnt)->dqi_priv;
836 status = ocfs2_lock_global_qf(oinfo, 0);
837 if (status < 0)
838 goto out;
839 /* This is just a performance optimization not a reliable test.
840 * Since we hold an inode lock, noone can actually release
841 * the structure until we are finished with initialization. */
842 if (inode->i_dquot[cnt] != NODQUOT) {
843 ocfs2_unlock_global_qf(oinfo, 0);
844 continue;
845 }
846 /* When we have inode lock, we know that no dquot_release() can
847 * run and thus we can safely check whether we need to
848 * read+modify global file to get quota information or whether
849 * our node already has it. */
850 if (cnt == USRQUOTA)
851 id = inode->i_uid;
852 else if (cnt == GRPQUOTA)
853 id = inode->i_gid;
854 else
855 BUG();
856 /* Obtain exclusion from quota off... */
857 down_write(&sb_dqopt(sb)->dqptr_sem);
858 exclusive = !dquot_is_cached(sb, id, cnt);
859 up_write(&sb_dqopt(sb)->dqptr_sem);
860 if (exclusive) {
861 status = ocfs2_lock_global_qf(oinfo, 1);
862 if (status < 0) {
863 exclusive = 0;
864 mlog_errno(status);
865 goto out_ilock;
866 }
867 handle = ocfs2_start_trans(OCFS2_SB(sb),
868 ocfs2_calc_qinit_credits(sb, cnt));
869 if (IS_ERR(handle)) {
870 status = PTR_ERR(handle);
871 mlog_errno(status);
872 goto out_ilock;
873 }
874 }
875 dquot_initialize(inode, cnt);
876 if (exclusive) {
877 ocfs2_commit_trans(OCFS2_SB(sb), handle);
878 ocfs2_unlock_global_qf(oinfo, 1);
879 }
880 ocfs2_unlock_global_qf(oinfo, 0);
881 }
882 mlog_exit(0);
883 return 0;
884out_ilock:
885 if (exclusive)
886 ocfs2_unlock_global_qf(oinfo, 1);
887 ocfs2_unlock_global_qf(oinfo, 0);
888out:
889 mlog_exit(status);
890 return status;
891}
892
893static int ocfs2_dquot_drop_slow(struct inode *inode)
894{
895 int status = 0;
896 int cnt;
897 int got_lock[MAXQUOTAS] = {0, 0};
898 handle_t *handle;
899 struct super_block *sb = inode->i_sb;
900 struct ocfs2_mem_dqinfo *oinfo;
901
902 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
903 if (!sb_has_quota_active(sb, cnt))
904 continue;
905 oinfo = sb_dqinfo(sb, cnt)->dqi_priv;
906 status = ocfs2_lock_global_qf(oinfo, 1);
907 if (status < 0)
908 goto out;
909 got_lock[cnt] = 1;
910 }
911 handle = ocfs2_start_trans(OCFS2_SB(sb),
912 ocfs2_calc_qinit_credits(sb, USRQUOTA) +
913 ocfs2_calc_qinit_credits(sb, GRPQUOTA));
914 if (IS_ERR(handle)) {
915 status = PTR_ERR(handle);
916 mlog_errno(status);
917 goto out;
918 }
919 dquot_drop(inode);
920 ocfs2_commit_trans(OCFS2_SB(sb), handle);
921out:
922 for (cnt = 0; cnt < MAXQUOTAS; cnt++)
923 if (got_lock[cnt]) {
924 oinfo = sb_dqinfo(sb, cnt)->dqi_priv;
925 ocfs2_unlock_global_qf(oinfo, 1);
926 }
927 return status;
928}
929
930/* See the comment before ocfs2_dquot_initialize. */
931static int ocfs2_dquot_drop(struct inode *inode)
932{
933 int status = 0;
934 struct super_block *sb = inode->i_sb;
935 struct ocfs2_mem_dqinfo *oinfo;
936 int exclusive = 0;
937 int cnt;
938 int got_lock[MAXQUOTAS] = {0, 0};
939
940 mlog_entry_void();
941 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
942 if (!sb_has_quota_active(sb, cnt))
943 continue;
944 oinfo = sb_dqinfo(sb, cnt)->dqi_priv;
945 status = ocfs2_lock_global_qf(oinfo, 0);
946 if (status < 0)
947 goto out;
948 got_lock[cnt] = 1;
949 }
950 /* Lock against anyone releasing references so that when when we check
951 * we know we are not going to be last ones to release dquot */
952 down_write(&sb_dqopt(sb)->dqptr_sem);
953 /* Urgh, this is a terrible hack :( */
954 for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
955 if (inode->i_dquot[cnt] != NODQUOT &&
956 atomic_read(&inode->i_dquot[cnt]->dq_count) > 1) {
957 exclusive = 1;
958 break;
959 }
960 }
961 if (!exclusive)
962 dquot_drop_locked(inode);
963 up_write(&sb_dqopt(sb)->dqptr_sem);
964out:
965 for (cnt = 0; cnt < MAXQUOTAS; cnt++)
966 if (got_lock[cnt]) {
967 oinfo = sb_dqinfo(sb, cnt)->dqi_priv;
968 ocfs2_unlock_global_qf(oinfo, 0);
969 }
970 /* In case we bailed out because we had to do expensive locking
971 * do it now... */
972 if (exclusive)
973 status = ocfs2_dquot_drop_slow(inode);
974 mlog_exit(status);
975 return status;
976}
977
978static struct dquot *ocfs2_alloc_dquot(struct super_block *sb, int type) 813static struct dquot *ocfs2_alloc_dquot(struct super_block *sb, int type)
979{ 814{
980 struct ocfs2_dquot *dquot = 815 struct ocfs2_dquot *dquot =
@@ -991,8 +826,8 @@ static void ocfs2_destroy_dquot(struct dquot *dquot)
991} 826}
992 827
993struct dquot_operations ocfs2_quota_operations = { 828struct dquot_operations ocfs2_quota_operations = {
994 .initialize = ocfs2_dquot_initialize, 829 .initialize = dquot_initialize,
995 .drop = ocfs2_dquot_drop, 830 .drop = dquot_drop,
996 .alloc_space = dquot_alloc_space, 831 .alloc_space = dquot_alloc_space,
997 .alloc_inode = dquot_alloc_inode, 832 .alloc_inode = dquot_alloc_inode,
998 .free_space = dquot_free_space, 833 .free_space = dquot_free_space,
diff --git a/fs/omfs/Kconfig b/fs/omfs/Kconfig
new file mode 100644
index 000000000000..b1b9a0aba6fd
--- /dev/null
+++ b/fs/omfs/Kconfig
@@ -0,0 +1,13 @@
1config OMFS_FS
2 tristate "SonicBlue Optimized MPEG File System support"
3 depends on BLOCK
4 select CRC_ITU_T
5 help
6 This is the proprietary file system used by the Rio Karma music
7 player and ReplayTV DVR. Despite the name, this filesystem is not
8 more efficient than a standard FS for MPEG files, in fact likely
9 the opposite is true. Say Y if you have either of these devices
10 and wish to mount its disk.
11
12 To compile this file system support as a module, choose M here: the
13 module will be called omfs. If unsure, say N.
diff --git a/fs/qnx4/Kconfig b/fs/qnx4/Kconfig
new file mode 100644
index 000000000000..be8e0e1445b6
--- /dev/null
+++ b/fs/qnx4/Kconfig
@@ -0,0 +1,25 @@
1config QNX4FS_FS
2 tristate "QNX4 file system support (read only)"
3 depends on BLOCK
4 help
5 This is the file system used by the real-time operating systems
6 QNX 4 and QNX 6 (the latter is also called QNX RTP).
7 Further information is available at <http://www.qnx.com/>.
8 Say Y if you intend to mount QNX hard disks or floppies.
9 Unless you say Y to "QNX4FS read-write support" below, you will
10 only be able to read these file systems.
11
12 To compile this file system support as a module, choose M here: the
13 module will be called qnx4.
14
15 If you don't know whether you need it, then you don't need it:
16 answer N.
17
18config QNX4FS_RW
19 bool "QNX4FS write support (DANGEROUS)"
20 depends on QNX4FS_FS && EXPERIMENTAL && BROKEN
21 help
22 Say Y if you want to test write support for QNX4 file systems.
23
24 It's currently broken, so for now:
25 answer N.
diff --git a/fs/reiserfs/Kconfig b/fs/reiserfs/Kconfig
new file mode 100644
index 000000000000..949b8c6addc8
--- /dev/null
+++ b/fs/reiserfs/Kconfig
@@ -0,0 +1,85 @@
1config REISERFS_FS
2 tristate "Reiserfs support"
3 help
4 Stores not just filenames but the files themselves in a balanced
5 tree. Uses journalling.
6
7 Balanced trees are more efficient than traditional file system
8 architectural foundations.
9
10 In general, ReiserFS is as fast as ext2, but is very efficient with
11 large directories and small files. Additional patches are needed
12 for NFS and quotas, please see <http://www.namesys.com/> for links.
13
14 It is more easily extended to have features currently found in
15 database and keyword search systems than block allocation based file
16 systems are. The next version will be so extended, and will support
17 plugins consistent with our motto ``It takes more than a license to
18 make source code open.''
19
20 Read <http://www.namesys.com/> to learn more about reiserfs.
21
22 Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com.
23
24 If you like it, you can pay us to add new features to it that you
25 need, buy a support contract, or pay us to port it to another OS.
26
27config REISERFS_CHECK
28 bool "Enable reiserfs debug mode"
29 depends on REISERFS_FS
30 help
31 If you set this to Y, then ReiserFS will perform every check it can
32 possibly imagine of its internal consistency throughout its
33 operation. It will also go substantially slower. More than once we
34 have forgotten that this was on, and then gone despondent over the
35 latest benchmarks.:-) Use of this option allows our team to go all
36 out in checking for consistency when debugging without fear of its
37 effect on end users. If you are on the verge of sending in a bug
38 report, say Y and you might get a useful error message. Almost
39 everyone should say N.
40
41config REISERFS_PROC_INFO
42 bool "Stats in /proc/fs/reiserfs"
43 depends on REISERFS_FS && PROC_FS
44 help
45 Create under /proc/fs/reiserfs a hierarchy of files, displaying
46 various ReiserFS statistics and internal data at the expense of
47 making your kernel or module slightly larger (+8 KB). This also
48 increases the amount of kernel memory required for each mount.
49 Almost everyone but ReiserFS developers and people fine-tuning
50 reiserfs or tracing problems should say N.
51
52config REISERFS_FS_XATTR
53 bool "ReiserFS extended attributes"
54 depends on REISERFS_FS
55 help
56 Extended attributes are name:value pairs associated with inodes by
57 the kernel or by users (see the attr(5) manual page, or visit
58 <http://acl.bestbits.at/> for details).
59
60 If unsure, say N.
61
62config REISERFS_FS_POSIX_ACL
63 bool "ReiserFS POSIX Access Control Lists"
64 depends on REISERFS_FS_XATTR
65 select FS_POSIX_ACL
66 help
67 Posix Access Control Lists (ACLs) support permissions for users and
68 groups beyond the owner/group/world scheme.
69
70 To learn more about Access Control Lists, visit the Posix ACLs for
71 Linux website <http://acl.bestbits.at/>.
72
73 If you don't know what Access Control Lists are, say N
74
75config REISERFS_FS_SECURITY
76 bool "ReiserFS Security Labels"
77 depends on REISERFS_FS_XATTR
78 help
79 Security labels support alternative access control models
80 implemented by security modules like SELinux. This option
81 enables an extended attribute handler for file security
82 labels in the ReiserFS filesystem.
83
84 If you are not using a security module that requires using
85 extended attributes for file security labels, say N.
diff --git a/fs/romfs/Kconfig b/fs/romfs/Kconfig
new file mode 100644
index 000000000000..1a17020f9faf
--- /dev/null
+++ b/fs/romfs/Kconfig
@@ -0,0 +1,16 @@
1config ROMFS_FS
2 tristate "ROM file system support"
3 depends on BLOCK
4 ---help---
5 This is a very small read-only file system mainly intended for
6 initial ram disks of installation disks, but it could be used for
7 other read-only media as well. Read
8 <file:Documentation/filesystems/romfs.txt> for details.
9
10 To compile this file system support as a module, choose M here: the
11 module will be called romfs. Note that the file system of your
12 root partition (the one containing the directory /) cannot be a
13 module.
14
15 If you don't know whether you need it, then you don't need it:
16 answer N.
diff --git a/fs/smbfs/Kconfig b/fs/smbfs/Kconfig
new file mode 100644
index 000000000000..e668127c8b2e
--- /dev/null
+++ b/fs/smbfs/Kconfig
@@ -0,0 +1,55 @@
1config SMB_FS
2 tristate "SMB file system support (OBSOLETE, please use CIFS)"
3 depends on INET
4 select NLS
5 help
6 SMB (Server Message Block) is the protocol Windows for Workgroups
7 (WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share
8 files and printers over local networks. Saying Y here allows you to
9 mount their file systems (often called "shares" in this context) and
10 access them just like any other Unix directory. Currently, this
11 works only if the Windows machines use TCP/IP as the underlying
12 transport protocol, and not NetBEUI. For details, read
13 <file:Documentation/filesystems/smbfs.txt> and the SMB-HOWTO,
14 available from <http://www.tldp.org/docs.html#howto>.
15
16 Note: if you just want your box to act as an SMB *server* and make
17 files and printing services available to Windows clients (which need
18 to have a TCP/IP stack), you don't need to say Y here; you can use
19 the program SAMBA (available from <ftp://ftp.samba.org/pub/samba/>)
20 for that.
21
22 General information about how to connect Linux, Windows machines and
23 Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
24
25 To compile the SMB support as a module, choose M here:
26 the module will be called smbfs. Most people say N, however.
27
28config SMB_NLS_DEFAULT
29 bool "Use a default NLS"
30 depends on SMB_FS
31 help
32 Enabling this will make smbfs use nls translations by default. You
33 need to specify the local charset (CONFIG_NLS_DEFAULT) in the nls
34 settings and you need to give the default nls for the SMB server as
35 CONFIG_SMB_NLS_REMOTE.
36
37 The nls settings can be changed at mount time, if your smbmount
38 supports that, using the codepage and iocharset parameters.
39
40 smbmount from samba 2.2.0 or later supports this.
41
42config SMB_NLS_REMOTE
43 string "Default Remote NLS Option"
44 depends on SMB_NLS_DEFAULT
45 default "cp437"
46 help
47 This setting allows you to specify a default value for which
48 codepage the server uses. If this field is left blank no
49 translations will be done by default. The local codepage/charset
50 default to CONFIG_NLS_DEFAULT.
51
52 The nls settings can be changed at mount time, if your smbmount
53 supports that, using the codepage and iocharset parameters.
54
55 smbmount from samba 2.2.0 or later supports this.
diff --git a/fs/squashfs/Kconfig b/fs/squashfs/Kconfig
new file mode 100644
index 000000000000..25a00d19d686
--- /dev/null
+++ b/fs/squashfs/Kconfig
@@ -0,0 +1,51 @@
1config SQUASHFS
2 tristate "SquashFS 4.0 - Squashed file system support"
3 depends on BLOCK
4 select ZLIB_INFLATE
5 help
6 Saying Y here includes support for SquashFS 4.0 (a Compressed
7 Read-Only File System). Squashfs is a highly compressed read-only
8 filesystem for Linux. It uses zlib compression to compress both
9 files, inodes and directories. Inodes in the system are very small
10 and all blocks are packed to minimise data overhead. Block sizes
11 greater than 4K are supported up to a maximum of 1 Mbytes (default
12 block size 128K). SquashFS 4.0 supports 64 bit filesystems and files
13 (larger than 4GB), full uid/gid information, hard links and
14 timestamps.
15
16 Squashfs is intended for general read-only filesystem use, for
17 archival use (i.e. in cases where a .tar.gz file may be used), and in
18 embedded systems where low overhead is needed. Further information
19 and tools are available from http://squashfs.sourceforge.net.
20
21 If you want to compile this as a module ( = code which can be
22 inserted in and removed from the running kernel whenever you want),
23 say M here and read <file:Documentation/modules.txt>. The module
24 will be called squashfs. Note that the root file system (the one
25 containing the directory /) cannot be compiled as a module.
26
27 If unsure, say N.
28
29config SQUASHFS_EMBEDDED
30
31 bool "Additional option for memory-constrained systems"
32 depends on SQUASHFS
33 default n
34 help
35 Saying Y here allows you to specify cache size.
36
37 If unsure, say N.
38
39config SQUASHFS_FRAGMENT_CACHE_SIZE
40 int "Number of fragments cached" if SQUASHFS_EMBEDDED
41 depends on SQUASHFS
42 default "3"
43 help
44 By default SquashFS caches the last 3 fragments read from
45 the filesystem. Increasing this amount may mean SquashFS
46 has to re-read fragments less often from disk, at the expense
47 of extra system memory. Decreasing this amount will mean
48 SquashFS uses less memory at the expense of extra reads from disk.
49
50 Note there must be at least one cached fragment. Anything
51 much more than three will probably not make much difference.
diff --git a/fs/sysfs/Kconfig b/fs/sysfs/Kconfig
new file mode 100644
index 000000000000..f4b67588b9d6
--- /dev/null
+++ b/fs/sysfs/Kconfig
@@ -0,0 +1,23 @@
1config SYSFS
2 bool "sysfs file system support" if EMBEDDED
3 default y
4 help
5 The sysfs filesystem is a virtual filesystem that the kernel uses to
6 export internal kernel objects, their attributes, and their
7 relationships to one another.
8
9 Users can use sysfs to ascertain useful information about the running
10 kernel, such as the devices the kernel has discovered on each bus and
11 which driver each is bound to. sysfs can also be used to tune devices
12 and other kernel subsystems.
13
14 Some system agents rely on the information in sysfs to operate.
15 /sbin/hotplug uses device and object attributes in sysfs to assist in
16 delegating policy decisions, like persistently naming devices.
17
18 sysfs is currently used by the block subsystem to mount the root
19 partition. If sysfs is disabled you must specify the boot device on
20 the kernel boot command line via its major and minor numbers. For
21 example, "root=03:01" for /dev/hda1.
22
23 Designers of embedded systems may wish to say N here to conserve space.
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
index 66f6e58a7e4b..f2c478c3424e 100644
--- a/fs/sysfs/bin.c
+++ b/fs/sysfs/bin.c
@@ -63,6 +63,9 @@ read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off)
63 int count = min_t(size_t, bytes, PAGE_SIZE); 63 int count = min_t(size_t, bytes, PAGE_SIZE);
64 char *temp; 64 char *temp;
65 65
66 if (!bytes)
67 return 0;
68
66 if (size) { 69 if (size) {
67 if (offs > size) 70 if (offs > size)
68 return 0; 71 return 0;
@@ -131,6 +134,9 @@ static ssize_t write(struct file *file, const char __user *userbuf,
131 int count = min_t(size_t, bytes, PAGE_SIZE); 134 int count = min_t(size_t, bytes, PAGE_SIZE);
132 char *temp; 135 char *temp;
133 136
137 if (!bytes)
138 return 0;
139
134 if (size) { 140 if (size) {
135 if (offs > size) 141 if (offs > size)
136 return 0; 142 return 0;
diff --git a/fs/sysv/Kconfig b/fs/sysv/Kconfig
new file mode 100644
index 000000000000..33aeb4b75db1
--- /dev/null
+++ b/fs/sysv/Kconfig
@@ -0,0 +1,36 @@
1config SYSV_FS
2 tristate "System V/Xenix/V7/Coherent file system support"
3 depends on BLOCK
4 help
5 SCO, Xenix and Coherent are commercial Unix systems for Intel
6 machines, and Version 7 was used on the DEC PDP-11. Saying Y
7 here would allow you to read from their floppies and hard disk
8 partitions.
9
10 If you have floppies or hard disk partitions like that, it is likely
11 that they contain binaries from those other Unix systems; in order
12 to run these binaries, you will want to install linux-abi which is
13 a set of kernel modules that lets you run SCO, Xenix, Wyse,
14 UnixWare, Dell Unix and System V programs under Linux. It is
15 available via FTP (user: ftp) from
16 <ftp://ftp.openlinux.org/pub/people/hch/linux-abi/>).
17 NOTE: that will work only for binaries from Intel-based systems;
18 PDP ones will have to wait until somebody ports Linux to -11 ;-)
19
20 If you only intend to mount files from some other Unix over the
21 network using NFS, you don't need the System V file system support
22 (but you need NFS file system support obviously).
23
24 Note that this option is generally not needed for floppies, since a
25 good portable way to transport files and directories between unixes
26 (and even other operating systems) is given by the tar program ("man
27 tar" or preferably "info tar"). Note also that this option has
28 nothing whatsoever to do with the option "System V IPC". Read about
29 the System V file system in
30 <file:Documentation/filesystems/sysv-fs.txt>.
31 Saying Y here will enlarge your kernel by about 27 KB.
32
33 To compile this as a module, choose M here: the module will be called
34 sysv.
35
36 If you haven't heard about all of this before, it's safe to say N.
diff --git a/fs/udf/Kconfig b/fs/udf/Kconfig
new file mode 100644
index 000000000000..0e0e99bd6bce
--- /dev/null
+++ b/fs/udf/Kconfig
@@ -0,0 +1,18 @@
1config UDF_FS
2 tristate "UDF file system support"
3 select CRC_ITU_T
4 help
5 This is the new file system used on some CD-ROMs and DVDs. Say Y if
6 you intend to mount DVD discs or CDRW's written in packet mode, or
7 if written to by other UDF utilities, such as DirectCD.
8 Please read <file:Documentation/filesystems/udf.txt>.
9
10 To compile this file system support as a module, choose M here: the
11 module will be called udf.
12
13 If unsure, say N.
14
15config UDF_NLS
16 bool
17 default y
18 depends on (UDF_FS=m && NLS) || (UDF_FS=y && NLS=y)
diff --git a/fs/ufs/Kconfig b/fs/ufs/Kconfig
new file mode 100644
index 000000000000..e4f10a40768a
--- /dev/null
+++ b/fs/ufs/Kconfig
@@ -0,0 +1,43 @@
1config UFS_FS
2 tristate "UFS file system support (read only)"
3 depends on BLOCK
4 help
5 BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD,
6 OpenBSD and NeXTstep) use a file system called UFS. Some System V
7 Unixes can create and mount hard disk partitions and diskettes using
8 this file system as well. Saying Y here will allow you to read from
9 these partitions; if you also want to write to them, say Y to the
10 experimental "UFS file system write support", below. Please read the
11 file <file:Documentation/filesystems/ufs.txt> for more information.
12
13 The recently released UFS2 variant (used in FreeBSD 5.x) is
14 READ-ONLY supported.
15
16 Note that this option is generally not needed for floppies, since a
17 good portable way to transport files and directories between unixes
18 (and even other operating systems) is given by the tar program ("man
19 tar" or preferably "info tar").
20
21 When accessing NeXTstep files, you may need to convert them from the
22 NeXT character set to the Latin1 character set; use the program
23 recode ("info recode") for this purpose.
24
25 To compile the UFS file system support as a module, choose M here: the
26 module will be called ufs.
27
28 If you haven't heard about all of this before, it's safe to say N.
29
30config UFS_FS_WRITE
31 bool "UFS file system write support (DANGEROUS)"
32 depends on UFS_FS && EXPERIMENTAL
33 help
34 Say Y here if you want to try writing to UFS partitions. This is
35 experimental, so you should back up your UFS partitions beforehand.
36
37config UFS_DEBUG
38 bool "UFS debugging"
39 depends on UFS_FS
40 help
41 If you are experiencing any problems with the UFS filesystem, say
42 Y here. This will result in _many_ additional debugging messages to be
43 written to the system log.
diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig
index 3f53dd101f99..29228f5899cd 100644
--- a/fs/xfs/Kconfig
+++ b/fs/xfs/Kconfig
@@ -1,6 +1,7 @@
1config XFS_FS 1config XFS_FS
2 tristate "XFS filesystem support" 2 tristate "XFS filesystem support"
3 depends on BLOCK 3 depends on BLOCK
4 select EXPORTFS
4 help 5 help
5 XFS is a high performance journaling filesystem which originated 6 XFS is a high performance journaling filesystem which originated
6 on the SGI IRIX platform. It is completely multi-threaded, can 7 on the SGI IRIX platform. It is completely multi-threaded, can
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
index e5be1e0be802..4bd112313f33 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl.c
@@ -50,12 +50,14 @@
50#include "xfs_vnodeops.h" 50#include "xfs_vnodeops.h"
51#include "xfs_quota.h" 51#include "xfs_quota.h"
52#include "xfs_inode_item.h" 52#include "xfs_inode_item.h"
53#include "xfs_export.h"
53 54
54#include <linux/capability.h> 55#include <linux/capability.h>
55#include <linux/dcache.h> 56#include <linux/dcache.h>
56#include <linux/mount.h> 57#include <linux/mount.h>
57#include <linux/namei.h> 58#include <linux/namei.h>
58#include <linux/pagemap.h> 59#include <linux/pagemap.h>
60#include <linux/exportfs.h>
59 61
60/* 62/*
61 * xfs_find_handle maps from userspace xfs_fsop_handlereq structure to 63 * xfs_find_handle maps from userspace xfs_fsop_handlereq structure to
@@ -164,97 +166,69 @@ xfs_find_handle(
164 return 0; 166 return 0;
165} 167}
166 168
167
168/* 169/*
169 * Convert userspace handle data into inode. 170 * No need to do permission checks on the various pathname components
170 * 171 * as the handle operations are privileged.
171 * We use the fact that all the fsop_handlereq ioctl calls have a data
172 * structure argument whose first component is always a xfs_fsop_handlereq_t,
173 * so we can pass that sub structure into this handy, shared routine.
174 *
175 * If no error, caller must always iput the returned inode.
176 */ 172 */
177STATIC int 173STATIC int
178xfs_vget_fsop_handlereq( 174xfs_handle_acceptable(
179 xfs_mount_t *mp, 175 void *context,
180 struct inode *parinode, /* parent inode pointer */ 176 struct dentry *dentry)
181 xfs_fsop_handlereq_t *hreq, 177{
182 struct inode **inode) 178 return 1;
179}
180
181/*
182 * Convert userspace handle data into a dentry.
183 */
184struct dentry *
185xfs_handle_to_dentry(
186 struct file *parfilp,
187 void __user *uhandle,
188 u32 hlen)
183{ 189{
184 void __user *hanp;
185 size_t hlen;
186 xfs_fid_t *xfid;
187 xfs_handle_t *handlep;
188 xfs_handle_t handle; 190 xfs_handle_t handle;
189 xfs_inode_t *ip; 191 struct xfs_fid64 fid;
190 xfs_ino_t ino;
191 __u32 igen;
192 int error;
193 192
194 /* 193 /*
195 * Only allow handle opens under a directory. 194 * Only allow handle opens under a directory.
196 */ 195 */
197 if (!S_ISDIR(parinode->i_mode)) 196 if (!S_ISDIR(parfilp->f_path.dentry->d_inode->i_mode))
198 return XFS_ERROR(ENOTDIR); 197 return ERR_PTR(-ENOTDIR);
199 198
200 hanp = hreq->ihandle; 199 if (hlen != sizeof(xfs_handle_t))
201 hlen = hreq->ihandlen; 200 return ERR_PTR(-EINVAL);
202 handlep = &handle; 201 if (copy_from_user(&handle, uhandle, hlen))
203 202 return ERR_PTR(-EFAULT);
204 if (hlen < sizeof(handlep->ha_fsid) || hlen > sizeof(*handlep)) 203 if (handle.ha_fid.fid_len !=
205 return XFS_ERROR(EINVAL); 204 sizeof(handle.ha_fid) - sizeof(handle.ha_fid.fid_len))
206 if (copy_from_user(handlep, hanp, hlen)) 205 return ERR_PTR(-EINVAL);
207 return XFS_ERROR(EFAULT); 206
208 if (hlen < sizeof(*handlep)) 207 memset(&fid, 0, sizeof(struct fid));
209 memset(((char *)handlep) + hlen, 0, sizeof(*handlep) - hlen); 208 fid.ino = handle.ha_fid.fid_ino;
210 if (hlen > sizeof(handlep->ha_fsid)) { 209 fid.gen = handle.ha_fid.fid_gen;
211 if (handlep->ha_fid.fid_len != 210
212 (hlen - sizeof(handlep->ha_fsid) - 211 return exportfs_decode_fh(parfilp->f_path.mnt, (struct fid *)&fid, 3,
213 sizeof(handlep->ha_fid.fid_len)) || 212 FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG,
214 handlep->ha_fid.fid_pad) 213 xfs_handle_acceptable, NULL);
215 return XFS_ERROR(EINVAL); 214}
216 }
217
218 /*
219 * Crack the handle, obtain the inode # & generation #
220 */
221 xfid = (struct xfs_fid *)&handlep->ha_fid;
222 if (xfid->fid_len == sizeof(*xfid) - sizeof(xfid->fid_len)) {
223 ino = xfid->fid_ino;
224 igen = xfid->fid_gen;
225 } else {
226 return XFS_ERROR(EINVAL);
227 }
228
229 /*
230 * Get the XFS inode, building a Linux inode to go with it.
231 */
232 error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, 0);
233 if (error)
234 return error;
235 if (ip == NULL)
236 return XFS_ERROR(EIO);
237 if (ip->i_d.di_gen != igen) {
238 xfs_iput_new(ip, XFS_ILOCK_SHARED);
239 return XFS_ERROR(ENOENT);
240 }
241
242 xfs_iunlock(ip, XFS_ILOCK_SHARED);
243 215
244 *inode = VFS_I(ip); 216STATIC struct dentry *
245 return 0; 217xfs_handlereq_to_dentry(
218 struct file *parfilp,
219 xfs_fsop_handlereq_t *hreq)
220{
221 return xfs_handle_to_dentry(parfilp, hreq->ihandle, hreq->ihandlen);
246} 222}
247 223
248int 224int
249xfs_open_by_handle( 225xfs_open_by_handle(
250 xfs_mount_t *mp,
251 xfs_fsop_handlereq_t *hreq,
252 struct file *parfilp, 226 struct file *parfilp,
253 struct inode *parinode) 227 xfs_fsop_handlereq_t *hreq)
254{ 228{
255 const struct cred *cred = current_cred(); 229 const struct cred *cred = current_cred();
256 int error; 230 int error;
257 int new_fd; 231 int fd;
258 int permflag; 232 int permflag;
259 struct file *filp; 233 struct file *filp;
260 struct inode *inode; 234 struct inode *inode;
@@ -263,19 +237,21 @@ xfs_open_by_handle(
263 if (!capable(CAP_SYS_ADMIN)) 237 if (!capable(CAP_SYS_ADMIN))
264 return -XFS_ERROR(EPERM); 238 return -XFS_ERROR(EPERM);
265 239
266 error = xfs_vget_fsop_handlereq(mp, parinode, hreq, &inode); 240 dentry = xfs_handlereq_to_dentry(parfilp, hreq);
267 if (error) 241 if (IS_ERR(dentry))
268 return -error; 242 return PTR_ERR(dentry);
243 inode = dentry->d_inode;
269 244
270 /* Restrict xfs_open_by_handle to directories & regular files. */ 245 /* Restrict xfs_open_by_handle to directories & regular files. */
271 if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) { 246 if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) {
272 iput(inode); 247 error = -XFS_ERROR(EPERM);
273 return -XFS_ERROR(EINVAL); 248 goto out_dput;
274 } 249 }
275 250
276#if BITS_PER_LONG != 32 251#if BITS_PER_LONG != 32
277 hreq->oflags |= O_LARGEFILE; 252 hreq->oflags |= O_LARGEFILE;
278#endif 253#endif
254
279 /* Put open permission in namei format. */ 255 /* Put open permission in namei format. */
280 permflag = hreq->oflags; 256 permflag = hreq->oflags;
281 if ((permflag+1) & O_ACCMODE) 257 if ((permflag+1) & O_ACCMODE)
@@ -285,50 +261,45 @@ xfs_open_by_handle(
285 261
286 if ((!(permflag & O_APPEND) || (permflag & O_TRUNC)) && 262 if ((!(permflag & O_APPEND) || (permflag & O_TRUNC)) &&
287 (permflag & FMODE_WRITE) && IS_APPEND(inode)) { 263 (permflag & FMODE_WRITE) && IS_APPEND(inode)) {
288 iput(inode); 264 error = -XFS_ERROR(EPERM);
289 return -XFS_ERROR(EPERM); 265 goto out_dput;
290 } 266 }
291 267
292 if ((permflag & FMODE_WRITE) && IS_IMMUTABLE(inode)) { 268 if ((permflag & FMODE_WRITE) && IS_IMMUTABLE(inode)) {
293 iput(inode); 269 error = -XFS_ERROR(EACCES);
294 return -XFS_ERROR(EACCES); 270 goto out_dput;
295 } 271 }
296 272
297 /* Can't write directories. */ 273 /* Can't write directories. */
298 if ( S_ISDIR(inode->i_mode) && (permflag & FMODE_WRITE)) { 274 if (S_ISDIR(inode->i_mode) && (permflag & FMODE_WRITE)) {
299 iput(inode); 275 error = -XFS_ERROR(EISDIR);
300 return -XFS_ERROR(EISDIR); 276 goto out_dput;
301 } 277 }
302 278
303 if ((new_fd = get_unused_fd()) < 0) { 279 fd = get_unused_fd();
304 iput(inode); 280 if (fd < 0) {
305 return new_fd; 281 error = fd;
282 goto out_dput;
306 } 283 }
307 284
308 dentry = d_obtain_alias(inode); 285 filp = dentry_open(dentry, mntget(parfilp->f_path.mnt),
309 if (IS_ERR(dentry)) { 286 hreq->oflags, cred);
310 put_unused_fd(new_fd);
311 return PTR_ERR(dentry);
312 }
313
314 /* Ensure umount returns EBUSY on umounts while this file is open. */
315 mntget(parfilp->f_path.mnt);
316
317 /* Create file pointer. */
318 filp = dentry_open(dentry, parfilp->f_path.mnt, hreq->oflags, cred);
319 if (IS_ERR(filp)) { 287 if (IS_ERR(filp)) {
320 put_unused_fd(new_fd); 288 put_unused_fd(fd);
321 return -XFS_ERROR(-PTR_ERR(filp)); 289 return PTR_ERR(filp);
322 } 290 }
323 291
324 if (inode->i_mode & S_IFREG) { 292 if (inode->i_mode & S_IFREG) {
325 /* invisible operation should not change atime */
326 filp->f_flags |= O_NOATIME; 293 filp->f_flags |= O_NOATIME;
327 filp->f_mode |= FMODE_NOCMTIME; 294 filp->f_mode |= FMODE_NOCMTIME;
328 } 295 }
329 296
330 fd_install(new_fd, filp); 297 fd_install(fd, filp);
331 return new_fd; 298 return fd;
299
300 out_dput:
301 dput(dentry);
302 return error;
332} 303}
333 304
334/* 305/*
@@ -359,11 +330,10 @@ do_readlink(
359 330
360int 331int
361xfs_readlink_by_handle( 332xfs_readlink_by_handle(
362 xfs_mount_t *mp, 333 struct file *parfilp,
363 xfs_fsop_handlereq_t *hreq, 334 xfs_fsop_handlereq_t *hreq)
364 struct inode *parinode)
365{ 335{
366 struct inode *inode; 336 struct dentry *dentry;
367 __u32 olen; 337 __u32 olen;
368 void *link; 338 void *link;
369 int error; 339 int error;
@@ -371,26 +341,28 @@ xfs_readlink_by_handle(
371 if (!capable(CAP_SYS_ADMIN)) 341 if (!capable(CAP_SYS_ADMIN))
372 return -XFS_ERROR(EPERM); 342 return -XFS_ERROR(EPERM);
373 343
374 error = xfs_vget_fsop_handlereq(mp, parinode, hreq, &inode); 344 dentry = xfs_handlereq_to_dentry(parfilp, hreq);
375 if (error) 345 if (IS_ERR(dentry))
376 return -error; 346 return PTR_ERR(dentry);
377 347
378 /* Restrict this handle operation to symlinks only. */ 348 /* Restrict this handle operation to symlinks only. */
379 if (!S_ISLNK(inode->i_mode)) { 349 if (!S_ISLNK(dentry->d_inode->i_mode)) {
380 error = -XFS_ERROR(EINVAL); 350 error = -XFS_ERROR(EINVAL);
381 goto out_iput; 351 goto out_dput;
382 } 352 }
383 353
384 if (copy_from_user(&olen, hreq->ohandlen, sizeof(__u32))) { 354 if (copy_from_user(&olen, hreq->ohandlen, sizeof(__u32))) {
385 error = -XFS_ERROR(EFAULT); 355 error = -XFS_ERROR(EFAULT);
386 goto out_iput; 356 goto out_dput;
387 } 357 }
388 358
389 link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); 359 link = kmalloc(MAXPATHLEN+1, GFP_KERNEL);
390 if (!link) 360 if (!link) {
391 goto out_iput; 361 error = -XFS_ERROR(ENOMEM);
362 goto out_dput;
363 }
392 364
393 error = -xfs_readlink(XFS_I(inode), link); 365 error = -xfs_readlink(XFS_I(dentry->d_inode), link);
394 if (error) 366 if (error)
395 goto out_kfree; 367 goto out_kfree;
396 error = do_readlink(hreq->ohandle, olen, link); 368 error = do_readlink(hreq->ohandle, olen, link);
@@ -399,32 +371,31 @@ xfs_readlink_by_handle(
399 371
400 out_kfree: 372 out_kfree:
401 kfree(link); 373 kfree(link);
402 out_iput: 374 out_dput:
403 iput(inode); 375 dput(dentry);
404 return error; 376 return error;
405} 377}
406 378
407STATIC int 379STATIC int
408xfs_fssetdm_by_handle( 380xfs_fssetdm_by_handle(
409 xfs_mount_t *mp, 381 struct file *parfilp,
410 void __user *arg, 382 void __user *arg)
411 struct inode *parinode)
412{ 383{
413 int error; 384 int error;
414 struct fsdmidata fsd; 385 struct fsdmidata fsd;
415 xfs_fsop_setdm_handlereq_t dmhreq; 386 xfs_fsop_setdm_handlereq_t dmhreq;
416 struct inode *inode; 387 struct dentry *dentry;
417 388
418 if (!capable(CAP_MKNOD)) 389 if (!capable(CAP_MKNOD))
419 return -XFS_ERROR(EPERM); 390 return -XFS_ERROR(EPERM);
420 if (copy_from_user(&dmhreq, arg, sizeof(xfs_fsop_setdm_handlereq_t))) 391 if (copy_from_user(&dmhreq, arg, sizeof(xfs_fsop_setdm_handlereq_t)))
421 return -XFS_ERROR(EFAULT); 392 return -XFS_ERROR(EFAULT);
422 393
423 error = xfs_vget_fsop_handlereq(mp, parinode, &dmhreq.hreq, &inode); 394 dentry = xfs_handlereq_to_dentry(parfilp, &dmhreq.hreq);
424 if (error) 395 if (IS_ERR(dentry))
425 return -error; 396 return PTR_ERR(dentry);
426 397
427 if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) { 398 if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) {
428 error = -XFS_ERROR(EPERM); 399 error = -XFS_ERROR(EPERM);
429 goto out; 400 goto out;
430 } 401 }
@@ -434,24 +405,23 @@ xfs_fssetdm_by_handle(
434 goto out; 405 goto out;
435 } 406 }
436 407
437 error = -xfs_set_dmattrs(XFS_I(inode), fsd.fsd_dmevmask, 408 error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask,
438 fsd.fsd_dmstate); 409 fsd.fsd_dmstate);
439 410
440 out: 411 out:
441 iput(inode); 412 dput(dentry);
442 return error; 413 return error;
443} 414}
444 415
445STATIC int 416STATIC int
446xfs_attrlist_by_handle( 417xfs_attrlist_by_handle(
447 xfs_mount_t *mp, 418 struct file *parfilp,
448 void __user *arg, 419 void __user *arg)
449 struct inode *parinode)
450{ 420{
451 int error; 421 int error = -ENOMEM;
452 attrlist_cursor_kern_t *cursor; 422 attrlist_cursor_kern_t *cursor;
453 xfs_fsop_attrlist_handlereq_t al_hreq; 423 xfs_fsop_attrlist_handlereq_t al_hreq;
454 struct inode *inode; 424 struct dentry *dentry;
455 char *kbuf; 425 char *kbuf;
456 426
457 if (!capable(CAP_SYS_ADMIN)) 427 if (!capable(CAP_SYS_ADMIN))
@@ -467,16 +437,16 @@ xfs_attrlist_by_handle(
467 if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) 437 if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE))
468 return -XFS_ERROR(EINVAL); 438 return -XFS_ERROR(EINVAL);
469 439
470 error = xfs_vget_fsop_handlereq(mp, parinode, &al_hreq.hreq, &inode); 440 dentry = xfs_handlereq_to_dentry(parfilp, &al_hreq.hreq);
471 if (error) 441 if (IS_ERR(dentry))
472 goto out; 442 return PTR_ERR(dentry);
473 443
474 kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL); 444 kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL);
475 if (!kbuf) 445 if (!kbuf)
476 goto out_vn_rele; 446 goto out_dput;
477 447
478 cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; 448 cursor = (attrlist_cursor_kern_t *)&al_hreq.pos;
479 error = xfs_attr_list(XFS_I(inode), kbuf, al_hreq.buflen, 449 error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen,
480 al_hreq.flags, cursor); 450 al_hreq.flags, cursor);
481 if (error) 451 if (error)
482 goto out_kfree; 452 goto out_kfree;
@@ -486,10 +456,9 @@ xfs_attrlist_by_handle(
486 456
487 out_kfree: 457 out_kfree:
488 kfree(kbuf); 458 kfree(kbuf);
489 out_vn_rele: 459 out_dput:
490 iput(inode); 460 dput(dentry);
491 out: 461 return error;
492 return -error;
493} 462}
494 463
495int 464int
@@ -564,15 +533,13 @@ xfs_attrmulti_attr_remove(
564 533
565STATIC int 534STATIC int
566xfs_attrmulti_by_handle( 535xfs_attrmulti_by_handle(
567 xfs_mount_t *mp,
568 void __user *arg,
569 struct file *parfilp, 536 struct file *parfilp,
570 struct inode *parinode) 537 void __user *arg)
571{ 538{
572 int error; 539 int error;
573 xfs_attr_multiop_t *ops; 540 xfs_attr_multiop_t *ops;
574 xfs_fsop_attrmulti_handlereq_t am_hreq; 541 xfs_fsop_attrmulti_handlereq_t am_hreq;
575 struct inode *inode; 542 struct dentry *dentry;
576 unsigned int i, size; 543 unsigned int i, size;
577 char *attr_name; 544 char *attr_name;
578 545
@@ -581,19 +548,19 @@ xfs_attrmulti_by_handle(
581 if (copy_from_user(&am_hreq, arg, sizeof(xfs_fsop_attrmulti_handlereq_t))) 548 if (copy_from_user(&am_hreq, arg, sizeof(xfs_fsop_attrmulti_handlereq_t)))
582 return -XFS_ERROR(EFAULT); 549 return -XFS_ERROR(EFAULT);
583 550
584 error = xfs_vget_fsop_handlereq(mp, parinode, &am_hreq.hreq, &inode); 551 dentry = xfs_handlereq_to_dentry(parfilp, &am_hreq.hreq);
585 if (error) 552 if (IS_ERR(dentry))
586 goto out; 553 return PTR_ERR(dentry);
587 554
588 error = E2BIG; 555 error = E2BIG;
589 size = am_hreq.opcount * sizeof(xfs_attr_multiop_t); 556 size = am_hreq.opcount * sizeof(xfs_attr_multiop_t);
590 if (!size || size > 16 * PAGE_SIZE) 557 if (!size || size > 16 * PAGE_SIZE)
591 goto out_vn_rele; 558 goto out_dput;
592 559
593 error = ENOMEM; 560 error = ENOMEM;
594 ops = kmalloc(size, GFP_KERNEL); 561 ops = kmalloc(size, GFP_KERNEL);
595 if (!ops) 562 if (!ops)
596 goto out_vn_rele; 563 goto out_dput;
597 564
598 error = EFAULT; 565 error = EFAULT;
599 if (copy_from_user(ops, am_hreq.ops, size)) 566 if (copy_from_user(ops, am_hreq.ops, size))
@@ -615,25 +582,28 @@ xfs_attrmulti_by_handle(
615 582
616 switch (ops[i].am_opcode) { 583 switch (ops[i].am_opcode) {
617 case ATTR_OP_GET: 584 case ATTR_OP_GET:
618 ops[i].am_error = xfs_attrmulti_attr_get(inode, 585 ops[i].am_error = xfs_attrmulti_attr_get(
619 attr_name, ops[i].am_attrvalue, 586 dentry->d_inode, attr_name,
620 &ops[i].am_length, ops[i].am_flags); 587 ops[i].am_attrvalue, &ops[i].am_length,
588 ops[i].am_flags);
621 break; 589 break;
622 case ATTR_OP_SET: 590 case ATTR_OP_SET:
623 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); 591 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
624 if (ops[i].am_error) 592 if (ops[i].am_error)
625 break; 593 break;
626 ops[i].am_error = xfs_attrmulti_attr_set(inode, 594 ops[i].am_error = xfs_attrmulti_attr_set(
627 attr_name, ops[i].am_attrvalue, 595 dentry->d_inode, attr_name,
628 ops[i].am_length, ops[i].am_flags); 596 ops[i].am_attrvalue, ops[i].am_length,
597 ops[i].am_flags);
629 mnt_drop_write(parfilp->f_path.mnt); 598 mnt_drop_write(parfilp->f_path.mnt);
630 break; 599 break;
631 case ATTR_OP_REMOVE: 600 case ATTR_OP_REMOVE:
632 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); 601 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
633 if (ops[i].am_error) 602 if (ops[i].am_error)
634 break; 603 break;
635 ops[i].am_error = xfs_attrmulti_attr_remove(inode, 604 ops[i].am_error = xfs_attrmulti_attr_remove(
636 attr_name, ops[i].am_flags); 605 dentry->d_inode, attr_name,
606 ops[i].am_flags);
637 mnt_drop_write(parfilp->f_path.mnt); 607 mnt_drop_write(parfilp->f_path.mnt);
638 break; 608 break;
639 default: 609 default:
@@ -647,9 +617,8 @@ xfs_attrmulti_by_handle(
647 kfree(attr_name); 617 kfree(attr_name);
648 out_kfree_ops: 618 out_kfree_ops:
649 kfree(ops); 619 kfree(ops);
650 out_vn_rele: 620 out_dput:
651 iput(inode); 621 dput(dentry);
652 out:
653 return -error; 622 return -error;
654} 623}
655 624
@@ -1440,23 +1409,23 @@ xfs_file_ioctl(
1440 1409
1441 if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) 1410 if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t)))
1442 return -XFS_ERROR(EFAULT); 1411 return -XFS_ERROR(EFAULT);
1443 return xfs_open_by_handle(mp, &hreq, filp, inode); 1412 return xfs_open_by_handle(filp, &hreq);
1444 } 1413 }
1445 case XFS_IOC_FSSETDM_BY_HANDLE: 1414 case XFS_IOC_FSSETDM_BY_HANDLE:
1446 return xfs_fssetdm_by_handle(mp, arg, inode); 1415 return xfs_fssetdm_by_handle(filp, arg);
1447 1416
1448 case XFS_IOC_READLINK_BY_HANDLE: { 1417 case XFS_IOC_READLINK_BY_HANDLE: {
1449 xfs_fsop_handlereq_t hreq; 1418 xfs_fsop_handlereq_t hreq;
1450 1419
1451 if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) 1420 if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t)))
1452 return -XFS_ERROR(EFAULT); 1421 return -XFS_ERROR(EFAULT);
1453 return xfs_readlink_by_handle(mp, &hreq, inode); 1422 return xfs_readlink_by_handle(filp, &hreq);
1454 } 1423 }
1455 case XFS_IOC_ATTRLIST_BY_HANDLE: 1424 case XFS_IOC_ATTRLIST_BY_HANDLE:
1456 return xfs_attrlist_by_handle(mp, arg, inode); 1425 return xfs_attrlist_by_handle(filp, arg);
1457 1426
1458 case XFS_IOC_ATTRMULTI_BY_HANDLE: 1427 case XFS_IOC_ATTRMULTI_BY_HANDLE:
1459 return xfs_attrmulti_by_handle(mp, arg, filp, inode); 1428 return xfs_attrmulti_by_handle(filp, arg);
1460 1429
1461 case XFS_IOC_SWAPEXT: { 1430 case XFS_IOC_SWAPEXT: {
1462 struct xfs_swapext sxp; 1431 struct xfs_swapext sxp;
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.h b/fs/xfs/linux-2.6/xfs_ioctl.h
index 8c16bf2d7e03..7bd7c6afc1eb 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.h
+++ b/fs/xfs/linux-2.6/xfs_ioctl.h
@@ -34,16 +34,13 @@ xfs_find_handle(
34 34
35extern int 35extern int
36xfs_open_by_handle( 36xfs_open_by_handle(
37 xfs_mount_t *mp,
38 xfs_fsop_handlereq_t *hreq,
39 struct file *parfilp, 37 struct file *parfilp,
40 struct inode *parinode); 38 xfs_fsop_handlereq_t *hreq);
41 39
42extern int 40extern int
43xfs_readlink_by_handle( 41xfs_readlink_by_handle(
44 xfs_mount_t *mp, 42 struct file *parfilp,
45 xfs_fsop_handlereq_t *hreq, 43 xfs_fsop_handlereq_t *hreq);
46 struct inode *parinode);
47 44
48extern int 45extern int
49xfs_attrmulti_attr_get( 46xfs_attrmulti_attr_get(
@@ -67,6 +64,12 @@ xfs_attrmulti_attr_remove(
67 char *name, 64 char *name,
68 __uint32_t flags); 65 __uint32_t flags);
69 66
67extern struct dentry *
68xfs_handle_to_dentry(
69 struct file *parfilp,
70 void __user *uhandle,
71 u32 hlen);
72
70extern long 73extern long
71xfs_file_ioctl( 74xfs_file_ioctl(
72 struct file *filp, 75 struct file *filp,
diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c
index 50903ad3182e..c70c4e3db790 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl32.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl32.c
@@ -17,6 +17,7 @@
17 */ 17 */
18#include <linux/compat.h> 18#include <linux/compat.h>
19#include <linux/ioctl.h> 19#include <linux/ioctl.h>
20#include <linux/mount.h>
20#include <asm/uaccess.h> 21#include <asm/uaccess.h>
21#include "xfs.h" 22#include "xfs.h"
22#include "xfs_fs.h" 23#include "xfs_fs.h"
@@ -340,96 +341,24 @@ xfs_compat_handlereq_copyin(
340 return 0; 341 return 0;
341} 342}
342 343
343/* 344STATIC struct dentry *
344 * Convert userspace handle data into inode. 345xfs_compat_handlereq_to_dentry(
345 * 346 struct file *parfilp,
346 * We use the fact that all the fsop_handlereq ioctl calls have a data 347 compat_xfs_fsop_handlereq_t *hreq)
347 * structure argument whose first component is always a xfs_fsop_handlereq_t,
348 * so we can pass that sub structure into this handy, shared routine.
349 *
350 * If no error, caller must always iput the returned inode.
351 */
352STATIC int
353xfs_vget_fsop_handlereq_compat(
354 xfs_mount_t *mp,
355 struct inode *parinode, /* parent inode pointer */
356 compat_xfs_fsop_handlereq_t *hreq,
357 struct inode **inode)
358{ 348{
359 void __user *hanp; 349 return xfs_handle_to_dentry(parfilp,
360 size_t hlen; 350 compat_ptr(hreq->ihandle), hreq->ihandlen);
361 xfs_fid_t *xfid;
362 xfs_handle_t *handlep;
363 xfs_handle_t handle;
364 xfs_inode_t *ip;
365 xfs_ino_t ino;
366 __u32 igen;
367 int error;
368
369 /*
370 * Only allow handle opens under a directory.
371 */
372 if (!S_ISDIR(parinode->i_mode))
373 return XFS_ERROR(ENOTDIR);
374
375 hanp = compat_ptr(hreq->ihandle);
376 hlen = hreq->ihandlen;
377 handlep = &handle;
378
379 if (hlen < sizeof(handlep->ha_fsid) || hlen > sizeof(*handlep))
380 return XFS_ERROR(EINVAL);
381 if (copy_from_user(handlep, hanp, hlen))
382 return XFS_ERROR(EFAULT);
383 if (hlen < sizeof(*handlep))
384 memset(((char *)handlep) + hlen, 0, sizeof(*handlep) - hlen);
385 if (hlen > sizeof(handlep->ha_fsid)) {
386 if (handlep->ha_fid.fid_len !=
387 (hlen - sizeof(handlep->ha_fsid) -
388 sizeof(handlep->ha_fid.fid_len)) ||
389 handlep->ha_fid.fid_pad)
390 return XFS_ERROR(EINVAL);
391 }
392
393 /*
394 * Crack the handle, obtain the inode # & generation #
395 */
396 xfid = (struct xfs_fid *)&handlep->ha_fid;
397 if (xfid->fid_len == sizeof(*xfid) - sizeof(xfid->fid_len)) {
398 ino = xfid->fid_ino;
399 igen = xfid->fid_gen;
400 } else {
401 return XFS_ERROR(EINVAL);
402 }
403
404 /*
405 * Get the XFS inode, building a Linux inode to go with it.
406 */
407 error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, 0);
408 if (error)
409 return error;
410 if (ip == NULL)
411 return XFS_ERROR(EIO);
412 if (ip->i_d.di_gen != igen) {
413 xfs_iput_new(ip, XFS_ILOCK_SHARED);
414 return XFS_ERROR(ENOENT);
415 }
416
417 xfs_iunlock(ip, XFS_ILOCK_SHARED);
418
419 *inode = VFS_I(ip);
420 return 0;
421} 351}
422 352
423STATIC int 353STATIC int
424xfs_compat_attrlist_by_handle( 354xfs_compat_attrlist_by_handle(
425 xfs_mount_t *mp, 355 struct file *parfilp,
426 void __user *arg, 356 void __user *arg)
427 struct inode *parinode)
428{ 357{
429 int error; 358 int error;
430 attrlist_cursor_kern_t *cursor; 359 attrlist_cursor_kern_t *cursor;
431 compat_xfs_fsop_attrlist_handlereq_t al_hreq; 360 compat_xfs_fsop_attrlist_handlereq_t al_hreq;
432 struct inode *inode; 361 struct dentry *dentry;
433 char *kbuf; 362 char *kbuf;
434 363
435 if (!capable(CAP_SYS_ADMIN)) 364 if (!capable(CAP_SYS_ADMIN))
@@ -446,17 +375,17 @@ xfs_compat_attrlist_by_handle(
446 if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) 375 if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE))
447 return -XFS_ERROR(EINVAL); 376 return -XFS_ERROR(EINVAL);
448 377
449 error = xfs_vget_fsop_handlereq_compat(mp, parinode, &al_hreq.hreq, 378 dentry = xfs_compat_handlereq_to_dentry(parfilp, &al_hreq.hreq);
450 &inode); 379 if (IS_ERR(dentry))
451 if (error) 380 return PTR_ERR(dentry);
452 goto out;
453 381
382 error = -ENOMEM;
454 kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL); 383 kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL);
455 if (!kbuf) 384 if (!kbuf)
456 goto out_vn_rele; 385 goto out_dput;
457 386
458 cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; 387 cursor = (attrlist_cursor_kern_t *)&al_hreq.pos;
459 error = xfs_attr_list(XFS_I(inode), kbuf, al_hreq.buflen, 388 error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen,
460 al_hreq.flags, cursor); 389 al_hreq.flags, cursor);
461 if (error) 390 if (error)
462 goto out_kfree; 391 goto out_kfree;
@@ -466,22 +395,20 @@ xfs_compat_attrlist_by_handle(
466 395
467 out_kfree: 396 out_kfree:
468 kfree(kbuf); 397 kfree(kbuf);
469 out_vn_rele: 398 out_dput:
470 iput(inode); 399 dput(dentry);
471 out: 400 return error;
472 return -error;
473} 401}
474 402
475STATIC int 403STATIC int
476xfs_compat_attrmulti_by_handle( 404xfs_compat_attrmulti_by_handle(
477 xfs_mount_t *mp, 405 struct file *parfilp,
478 void __user *arg, 406 void __user *arg)
479 struct inode *parinode)
480{ 407{
481 int error; 408 int error;
482 compat_xfs_attr_multiop_t *ops; 409 compat_xfs_attr_multiop_t *ops;
483 compat_xfs_fsop_attrmulti_handlereq_t am_hreq; 410 compat_xfs_fsop_attrmulti_handlereq_t am_hreq;
484 struct inode *inode; 411 struct dentry *dentry;
485 unsigned int i, size; 412 unsigned int i, size;
486 char *attr_name; 413 char *attr_name;
487 414
@@ -491,20 +418,19 @@ xfs_compat_attrmulti_by_handle(
491 sizeof(compat_xfs_fsop_attrmulti_handlereq_t))) 418 sizeof(compat_xfs_fsop_attrmulti_handlereq_t)))
492 return -XFS_ERROR(EFAULT); 419 return -XFS_ERROR(EFAULT);
493 420
494 error = xfs_vget_fsop_handlereq_compat(mp, parinode, &am_hreq.hreq, 421 dentry = xfs_compat_handlereq_to_dentry(parfilp, &am_hreq.hreq);
495 &inode); 422 if (IS_ERR(dentry))
496 if (error) 423 return PTR_ERR(dentry);
497 goto out;
498 424
499 error = E2BIG; 425 error = E2BIG;
500 size = am_hreq.opcount * sizeof(compat_xfs_attr_multiop_t); 426 size = am_hreq.opcount * sizeof(compat_xfs_attr_multiop_t);
501 if (!size || size > 16 * PAGE_SIZE) 427 if (!size || size > 16 * PAGE_SIZE)
502 goto out_vn_rele; 428 goto out_dput;
503 429
504 error = ENOMEM; 430 error = ENOMEM;
505 ops = kmalloc(size, GFP_KERNEL); 431 ops = kmalloc(size, GFP_KERNEL);
506 if (!ops) 432 if (!ops)
507 goto out_vn_rele; 433 goto out_dput;
508 434
509 error = EFAULT; 435 error = EFAULT;
510 if (copy_from_user(ops, compat_ptr(am_hreq.ops), size)) 436 if (copy_from_user(ops, compat_ptr(am_hreq.ops), size))
@@ -527,20 +453,29 @@ xfs_compat_attrmulti_by_handle(
527 453
528 switch (ops[i].am_opcode) { 454 switch (ops[i].am_opcode) {
529 case ATTR_OP_GET: 455 case ATTR_OP_GET:
530 ops[i].am_error = xfs_attrmulti_attr_get(inode, 456 ops[i].am_error = xfs_attrmulti_attr_get(
531 attr_name, 457 dentry->d_inode, attr_name,
532 compat_ptr(ops[i].am_attrvalue), 458 compat_ptr(ops[i].am_attrvalue),
533 &ops[i].am_length, ops[i].am_flags); 459 &ops[i].am_length, ops[i].am_flags);
534 break; 460 break;
535 case ATTR_OP_SET: 461 case ATTR_OP_SET:
536 ops[i].am_error = xfs_attrmulti_attr_set(inode, 462 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
537 attr_name, 463 if (ops[i].am_error)
464 break;
465 ops[i].am_error = xfs_attrmulti_attr_set(
466 dentry->d_inode, attr_name,
538 compat_ptr(ops[i].am_attrvalue), 467 compat_ptr(ops[i].am_attrvalue),
539 ops[i].am_length, ops[i].am_flags); 468 ops[i].am_length, ops[i].am_flags);
469 mnt_drop_write(parfilp->f_path.mnt);
540 break; 470 break;
541 case ATTR_OP_REMOVE: 471 case ATTR_OP_REMOVE:
542 ops[i].am_error = xfs_attrmulti_attr_remove(inode, 472 ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
543 attr_name, ops[i].am_flags); 473 if (ops[i].am_error)
474 break;
475 ops[i].am_error = xfs_attrmulti_attr_remove(
476 dentry->d_inode, attr_name,
477 ops[i].am_flags);
478 mnt_drop_write(parfilp->f_path.mnt);
544 break; 479 break;
545 default: 480 default:
546 ops[i].am_error = EINVAL; 481 ops[i].am_error = EINVAL;
@@ -553,22 +488,20 @@ xfs_compat_attrmulti_by_handle(
553 kfree(attr_name); 488 kfree(attr_name);
554 out_kfree_ops: 489 out_kfree_ops:
555 kfree(ops); 490 kfree(ops);
556 out_vn_rele: 491 out_dput:
557 iput(inode); 492 dput(dentry);
558 out:
559 return -error; 493 return -error;
560} 494}
561 495
562STATIC int 496STATIC int
563xfs_compat_fssetdm_by_handle( 497xfs_compat_fssetdm_by_handle(
564 xfs_mount_t *mp, 498 struct file *parfilp,
565 void __user *arg, 499 void __user *arg)
566 struct inode *parinode)
567{ 500{
568 int error; 501 int error;
569 struct fsdmidata fsd; 502 struct fsdmidata fsd;
570 compat_xfs_fsop_setdm_handlereq_t dmhreq; 503 compat_xfs_fsop_setdm_handlereq_t dmhreq;
571 struct inode *inode; 504 struct dentry *dentry;
572 505
573 if (!capable(CAP_MKNOD)) 506 if (!capable(CAP_MKNOD))
574 return -XFS_ERROR(EPERM); 507 return -XFS_ERROR(EPERM);
@@ -576,12 +509,11 @@ xfs_compat_fssetdm_by_handle(
576 sizeof(compat_xfs_fsop_setdm_handlereq_t))) 509 sizeof(compat_xfs_fsop_setdm_handlereq_t)))
577 return -XFS_ERROR(EFAULT); 510 return -XFS_ERROR(EFAULT);
578 511
579 error = xfs_vget_fsop_handlereq_compat(mp, parinode, &dmhreq.hreq, 512 dentry = xfs_compat_handlereq_to_dentry(parfilp, &dmhreq.hreq);
580 &inode); 513 if (IS_ERR(dentry))
581 if (error) 514 return PTR_ERR(dentry);
582 return -error;
583 515
584 if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) { 516 if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) {
585 error = -XFS_ERROR(EPERM); 517 error = -XFS_ERROR(EPERM);
586 goto out; 518 goto out;
587 } 519 }
@@ -591,11 +523,11 @@ xfs_compat_fssetdm_by_handle(
591 goto out; 523 goto out;
592 } 524 }
593 525
594 error = -xfs_set_dmattrs(XFS_I(inode), fsd.fsd_dmevmask, 526 error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask,
595 fsd.fsd_dmstate); 527 fsd.fsd_dmstate);
596 528
597out: 529out:
598 iput(inode); 530 dput(dentry);
599 return error; 531 return error;
600} 532}
601 533
@@ -722,21 +654,21 @@ xfs_file_compat_ioctl(
722 654
723 if (xfs_compat_handlereq_copyin(&hreq, arg)) 655 if (xfs_compat_handlereq_copyin(&hreq, arg))
724 return -XFS_ERROR(EFAULT); 656 return -XFS_ERROR(EFAULT);
725 return xfs_open_by_handle(mp, &hreq, filp, inode); 657 return xfs_open_by_handle(filp, &hreq);
726 } 658 }
727 case XFS_IOC_READLINK_BY_HANDLE_32: { 659 case XFS_IOC_READLINK_BY_HANDLE_32: {
728 struct xfs_fsop_handlereq hreq; 660 struct xfs_fsop_handlereq hreq;
729 661
730 if (xfs_compat_handlereq_copyin(&hreq, arg)) 662 if (xfs_compat_handlereq_copyin(&hreq, arg))
731 return -XFS_ERROR(EFAULT); 663 return -XFS_ERROR(EFAULT);
732 return xfs_readlink_by_handle(mp, &hreq, inode); 664 return xfs_readlink_by_handle(filp, &hreq);
733 } 665 }
734 case XFS_IOC_ATTRLIST_BY_HANDLE_32: 666 case XFS_IOC_ATTRLIST_BY_HANDLE_32:
735 return xfs_compat_attrlist_by_handle(mp, arg, inode); 667 return xfs_compat_attrlist_by_handle(filp, arg);
736 case XFS_IOC_ATTRMULTI_BY_HANDLE_32: 668 case XFS_IOC_ATTRMULTI_BY_HANDLE_32:
737 return xfs_compat_attrmulti_by_handle(mp, arg, inode); 669 return xfs_compat_attrmulti_by_handle(filp, arg);
738 case XFS_IOC_FSSETDM_BY_HANDLE_32: 670 case XFS_IOC_FSSETDM_BY_HANDLE_32:
739 return xfs_compat_fssetdm_by_handle(mp, arg, inode); 671 return xfs_compat_fssetdm_by_handle(filp, arg);
740 default: 672 default:
741 return -XFS_ERROR(ENOIOCTLCMD); 673 return -XFS_ERROR(ENOIOCTLCMD);
742 } 674 }
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 95a971080368..c71e226da7f5 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1197,6 +1197,7 @@ xfs_fs_remount(
1197 struct xfs_mount *mp = XFS_M(sb); 1197 struct xfs_mount *mp = XFS_M(sb);
1198 substring_t args[MAX_OPT_ARGS]; 1198 substring_t args[MAX_OPT_ARGS];
1199 char *p; 1199 char *p;
1200 int error;
1200 1201
1201 while ((p = strsep(&options, ",")) != NULL) { 1202 while ((p = strsep(&options, ",")) != NULL) {
1202 int token; 1203 int token;
@@ -1247,11 +1248,25 @@ xfs_fs_remount(
1247 } 1248 }
1248 } 1249 }
1249 1250
1250 /* rw/ro -> rw */ 1251 /* ro -> rw */
1251 if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) { 1252 if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) {
1252 mp->m_flags &= ~XFS_MOUNT_RDONLY; 1253 mp->m_flags &= ~XFS_MOUNT_RDONLY;
1253 if (mp->m_flags & XFS_MOUNT_BARRIER) 1254 if (mp->m_flags & XFS_MOUNT_BARRIER)
1254 xfs_mountfs_check_barriers(mp); 1255 xfs_mountfs_check_barriers(mp);
1256
1257 /*
1258 * If this is the first remount to writeable state we
1259 * might have some superblock changes to update.
1260 */
1261 if (mp->m_update_flags) {
1262 error = xfs_mount_log_sb(mp, mp->m_update_flags);
1263 if (error) {
1264 cmn_err(CE_WARN,
1265 "XFS: failed to write sb changes");
1266 return error;
1267 }
1268 mp->m_update_flags = 0;
1269 }
1255 } 1270 }
1256 1271
1257 /* rw -> ro */ 1272 /* rw -> ro */
diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c
index 591ca6602bfb..6543c0b29753 100644
--- a/fs/xfs/quota/xfs_dquot.c
+++ b/fs/xfs/quota/xfs_dquot.c
@@ -73,6 +73,8 @@ int xfs_dqreq_num;
73int xfs_dqerror_mod = 33; 73int xfs_dqerror_mod = 33;
74#endif 74#endif
75 75
76static struct lock_class_key xfs_dquot_other_class;
77
76/* 78/*
77 * Allocate and initialize a dquot. We don't always allocate fresh memory; 79 * Allocate and initialize a dquot. We don't always allocate fresh memory;
78 * we try to reclaim a free dquot if the number of incore dquots are above 80 * we try to reclaim a free dquot if the number of incore dquots are above
@@ -139,7 +141,15 @@ xfs_qm_dqinit(
139 ASSERT(dqp->q_trace); 141 ASSERT(dqp->q_trace);
140 xfs_dqtrace_entry(dqp, "DQRECLAIMED_INIT"); 142 xfs_dqtrace_entry(dqp, "DQRECLAIMED_INIT");
141#endif 143#endif
142 } 144 }
145
146 /*
147 * In either case we need to make sure group quotas have a different
148 * lock class than user quotas, to make sure lockdep knows we can
149 * locks of one of each at the same time.
150 */
151 if (!(type & XFS_DQ_USER))
152 lockdep_set_class(&dqp->q_qlock, &xfs_dquot_other_class);
143 153
144 /* 154 /*
145 * log item gets initialized later 155 * log item gets initialized later
@@ -421,7 +431,7 @@ xfs_qm_dqalloc(
421 /* 431 /*
422 * Initialize the bmap freelist prior to calling bmapi code. 432 * Initialize the bmap freelist prior to calling bmapi code.
423 */ 433 */
424 XFS_BMAP_INIT(&flist, &firstblock); 434 xfs_bmap_init(&flist, &firstblock);
425 xfs_ilock(quotip, XFS_ILOCK_EXCL); 435 xfs_ilock(quotip, XFS_ILOCK_EXCL);
426 /* 436 /*
427 * Return if this type of quotas is turned off while we didn't 437 * Return if this type of quotas is turned off while we didn't
@@ -1383,6 +1393,12 @@ xfs_dqunlock_nonotify(
1383 mutex_unlock(&(dqp->q_qlock)); 1393 mutex_unlock(&(dqp->q_qlock));
1384} 1394}
1385 1395
1396/*
1397 * Lock two xfs_dquot structures.
1398 *
1399 * To avoid deadlocks we always lock the quota structure with
1400 * the lowerd id first.
1401 */
1386void 1402void
1387xfs_dqlock2( 1403xfs_dqlock2(
1388 xfs_dquot_t *d1, 1404 xfs_dquot_t *d1,
@@ -1392,18 +1408,16 @@ xfs_dqlock2(
1392 ASSERT(d1 != d2); 1408 ASSERT(d1 != d2);
1393 if (be32_to_cpu(d1->q_core.d_id) > 1409 if (be32_to_cpu(d1->q_core.d_id) >
1394 be32_to_cpu(d2->q_core.d_id)) { 1410 be32_to_cpu(d2->q_core.d_id)) {
1395 xfs_dqlock(d2); 1411 mutex_lock(&d2->q_qlock);
1396 xfs_dqlock(d1); 1412 mutex_lock_nested(&d1->q_qlock, XFS_QLOCK_NESTED);
1397 } else { 1413 } else {
1398 xfs_dqlock(d1); 1414 mutex_lock(&d1->q_qlock);
1399 xfs_dqlock(d2); 1415 mutex_lock_nested(&d2->q_qlock, XFS_QLOCK_NESTED);
1400 }
1401 } else {
1402 if (d1) {
1403 xfs_dqlock(d1);
1404 } else if (d2) {
1405 xfs_dqlock(d2);
1406 } 1416 }
1417 } else if (d1) {
1418 mutex_lock(&d1->q_qlock);
1419 } else if (d2) {
1420 mutex_lock(&d2->q_qlock);
1407 } 1421 }
1408} 1422}
1409 1423
diff --git a/fs/xfs/quota/xfs_dquot.h b/fs/xfs/quota/xfs_dquot.h
index 7e455337e2ba..d443e93b4331 100644
--- a/fs/xfs/quota/xfs_dquot.h
+++ b/fs/xfs/quota/xfs_dquot.h
@@ -97,6 +97,16 @@ typedef struct xfs_dquot {
97#define dq_hashlist q_lists.dqm_hashlist 97#define dq_hashlist q_lists.dqm_hashlist
98#define dq_flags q_lists.dqm_flags 98#define dq_flags q_lists.dqm_flags
99 99
100/*
101 * Lock hierachy for q_qlock:
102 * XFS_QLOCK_NORMAL is the implicit default,
103 * XFS_QLOCK_NESTED is the dquot with the higher id in xfs_dqlock2
104 */
105enum {
106 XFS_QLOCK_NORMAL = 0,
107 XFS_QLOCK_NESTED,
108};
109
100#define XFS_DQHOLD(dqp) ((dqp)->q_nrefs++) 110#define XFS_DQHOLD(dqp) ((dqp)->q_nrefs++)
101 111
102#ifdef DEBUG 112#ifdef DEBUG
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c
index 6b13960cf318..7a2beb64314f 100644
--- a/fs/xfs/quota/xfs_qm.c
+++ b/fs/xfs/quota/xfs_qm.c
@@ -1070,6 +1070,13 @@ xfs_qm_sync(
1070 return 0; 1070 return 0;
1071} 1071}
1072 1072
1073/*
1074 * The hash chains and the mplist use the same xfs_dqhash structure as
1075 * their list head, but we can take the mplist qh_lock and one of the
1076 * hash qh_locks at the same time without any problem as they aren't
1077 * related.
1078 */
1079static struct lock_class_key xfs_quota_mplist_class;
1073 1080
1074/* 1081/*
1075 * This initializes all the quota information that's kept in the 1082 * This initializes all the quota information that's kept in the
@@ -1105,6 +1112,8 @@ xfs_qm_init_quotainfo(
1105 } 1112 }
1106 1113
1107 xfs_qm_list_init(&qinf->qi_dqlist, "mpdqlist", 0); 1114 xfs_qm_list_init(&qinf->qi_dqlist, "mpdqlist", 0);
1115 lockdep_set_class(&qinf->qi_dqlist.qh_lock, &xfs_quota_mplist_class);
1116
1108 qinf->qi_dqreclaims = 0; 1117 qinf->qi_dqreclaims = 0;
1109 1118
1110 /* mutex used to serialize quotaoffs */ 1119 /* mutex used to serialize quotaoffs */
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h
index d3b3cf742999..143d63ecb20a 100644
--- a/fs/xfs/xfs_ag.h
+++ b/fs/xfs/xfs_ag.h
@@ -244,8 +244,8 @@ typedef struct xfs_perag
244#define XFS_AG_CHECK_DADDR(mp,d,len) \ 244#define XFS_AG_CHECK_DADDR(mp,d,len) \
245 ((len) == 1 ? \ 245 ((len) == 1 ? \
246 ASSERT((d) == XFS_SB_DADDR || \ 246 ASSERT((d) == XFS_SB_DADDR || \
247 XFS_DADDR_TO_AGBNO(mp, d) != XFS_SB_DADDR) : \ 247 xfs_daddr_to_agbno(mp, d) != XFS_SB_DADDR) : \
248 ASSERT(XFS_DADDR_TO_AGNO(mp, d) == \ 248 ASSERT(xfs_daddr_to_agno(mp, d) == \
249 XFS_DADDR_TO_AGNO(mp, (d) + (len) - 1))) 249 xfs_daddr_to_agno(mp, (d) + (len) - 1)))
250 250
251#endif /* __XFS_AG_H__ */ 251#endif /* __XFS_AG_H__ */
diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c
index 733cb75a8c5d..c10c3a292d30 100644
--- a/fs/xfs/xfs_alloc_btree.c
+++ b/fs/xfs/xfs_alloc_btree.c
@@ -115,7 +115,7 @@ xfs_allocbt_free_block(
115 xfs_agblock_t bno; 115 xfs_agblock_t bno;
116 int error; 116 int error;
117 117
118 bno = XFS_DADDR_TO_AGBNO(cur->bc_mp, XFS_BUF_ADDR(bp)); 118 bno = xfs_daddr_to_agbno(cur->bc_mp, XFS_BUF_ADDR(bp));
119 error = xfs_alloc_put_freelist(cur->bc_tp, agbp, NULL, bno, 1); 119 error = xfs_alloc_put_freelist(cur->bc_tp, agbp, NULL, bno, 1);
120 if (error) 120 if (error)
121 return error; 121 return error;
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c
index f7cdc28aff41..5fde1654b430 100644
--- a/fs/xfs/xfs_attr.c
+++ b/fs/xfs/xfs_attr.c
@@ -374,7 +374,7 @@ xfs_attr_set_int(xfs_inode_t *dp, struct xfs_name *name,
374 * It won't fit in the shortform, transform to a leaf block. 374 * It won't fit in the shortform, transform to a leaf block.
375 * GROT: another possible req'mt for a double-split btree op. 375 * GROT: another possible req'mt for a double-split btree op.
376 */ 376 */
377 XFS_BMAP_INIT(args.flist, args.firstblock); 377 xfs_bmap_init(args.flist, args.firstblock);
378 error = xfs_attr_shortform_to_leaf(&args); 378 error = xfs_attr_shortform_to_leaf(&args);
379 if (!error) { 379 if (!error) {
380 error = xfs_bmap_finish(&args.trans, args.flist, 380 error = xfs_bmap_finish(&args.trans, args.flist,
@@ -956,7 +956,7 @@ xfs_attr_leaf_addname(xfs_da_args_t *args)
956 * Commit that transaction so that the node_addname() call 956 * Commit that transaction so that the node_addname() call
957 * can manage its own transactions. 957 * can manage its own transactions.
958 */ 958 */
959 XFS_BMAP_INIT(args->flist, args->firstblock); 959 xfs_bmap_init(args->flist, args->firstblock);
960 error = xfs_attr_leaf_to_node(args); 960 error = xfs_attr_leaf_to_node(args);
961 if (!error) { 961 if (!error) {
962 error = xfs_bmap_finish(&args->trans, args->flist, 962 error = xfs_bmap_finish(&args->trans, args->flist,
@@ -1057,7 +1057,7 @@ xfs_attr_leaf_addname(xfs_da_args_t *args)
1057 * If the result is small enough, shrink it all into the inode. 1057 * If the result is small enough, shrink it all into the inode.
1058 */ 1058 */
1059 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { 1059 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) {
1060 XFS_BMAP_INIT(args->flist, args->firstblock); 1060 xfs_bmap_init(args->flist, args->firstblock);
1061 error = xfs_attr_leaf_to_shortform(bp, args, forkoff); 1061 error = xfs_attr_leaf_to_shortform(bp, args, forkoff);
1062 /* bp is gone due to xfs_da_shrink_inode */ 1062 /* bp is gone due to xfs_da_shrink_inode */
1063 if (!error) { 1063 if (!error) {
@@ -1135,7 +1135,7 @@ xfs_attr_leaf_removename(xfs_da_args_t *args)
1135 * If the result is small enough, shrink it all into the inode. 1135 * If the result is small enough, shrink it all into the inode.
1136 */ 1136 */
1137 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { 1137 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) {
1138 XFS_BMAP_INIT(args->flist, args->firstblock); 1138 xfs_bmap_init(args->flist, args->firstblock);
1139 error = xfs_attr_leaf_to_shortform(bp, args, forkoff); 1139 error = xfs_attr_leaf_to_shortform(bp, args, forkoff);
1140 /* bp is gone due to xfs_da_shrink_inode */ 1140 /* bp is gone due to xfs_da_shrink_inode */
1141 if (!error) { 1141 if (!error) {
@@ -1290,7 +1290,7 @@ restart:
1290 * have been a b-tree. 1290 * have been a b-tree.
1291 */ 1291 */
1292 xfs_da_state_free(state); 1292 xfs_da_state_free(state);
1293 XFS_BMAP_INIT(args->flist, args->firstblock); 1293 xfs_bmap_init(args->flist, args->firstblock);
1294 error = xfs_attr_leaf_to_node(args); 1294 error = xfs_attr_leaf_to_node(args);
1295 if (!error) { 1295 if (!error) {
1296 error = xfs_bmap_finish(&args->trans, 1296 error = xfs_bmap_finish(&args->trans,
@@ -1331,7 +1331,7 @@ restart:
1331 * in the index/blkno/rmtblkno/rmtblkcnt fields and 1331 * in the index/blkno/rmtblkno/rmtblkcnt fields and
1332 * in the index2/blkno2/rmtblkno2/rmtblkcnt2 fields. 1332 * in the index2/blkno2/rmtblkno2/rmtblkcnt2 fields.
1333 */ 1333 */
1334 XFS_BMAP_INIT(args->flist, args->firstblock); 1334 xfs_bmap_init(args->flist, args->firstblock);
1335 error = xfs_da_split(state); 1335 error = xfs_da_split(state);
1336 if (!error) { 1336 if (!error) {
1337 error = xfs_bmap_finish(&args->trans, args->flist, 1337 error = xfs_bmap_finish(&args->trans, args->flist,
@@ -1443,7 +1443,7 @@ restart:
1443 * Check to see if the tree needs to be collapsed. 1443 * Check to see if the tree needs to be collapsed.
1444 */ 1444 */
1445 if (retval && (state->path.active > 1)) { 1445 if (retval && (state->path.active > 1)) {
1446 XFS_BMAP_INIT(args->flist, args->firstblock); 1446 xfs_bmap_init(args->flist, args->firstblock);
1447 error = xfs_da_join(state); 1447 error = xfs_da_join(state);
1448 if (!error) { 1448 if (!error) {
1449 error = xfs_bmap_finish(&args->trans, 1449 error = xfs_bmap_finish(&args->trans,
@@ -1579,7 +1579,7 @@ xfs_attr_node_removename(xfs_da_args_t *args)
1579 * Check to see if the tree needs to be collapsed. 1579 * Check to see if the tree needs to be collapsed.
1580 */ 1580 */
1581 if (retval && (state->path.active > 1)) { 1581 if (retval && (state->path.active > 1)) {
1582 XFS_BMAP_INIT(args->flist, args->firstblock); 1582 xfs_bmap_init(args->flist, args->firstblock);
1583 error = xfs_da_join(state); 1583 error = xfs_da_join(state);
1584 if (!error) { 1584 if (!error) {
1585 error = xfs_bmap_finish(&args->trans, args->flist, 1585 error = xfs_bmap_finish(&args->trans, args->flist,
@@ -1630,7 +1630,7 @@ xfs_attr_node_removename(xfs_da_args_t *args)
1630 == XFS_ATTR_LEAF_MAGIC); 1630 == XFS_ATTR_LEAF_MAGIC);
1631 1631
1632 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { 1632 if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) {
1633 XFS_BMAP_INIT(args->flist, args->firstblock); 1633 xfs_bmap_init(args->flist, args->firstblock);
1634 error = xfs_attr_leaf_to_shortform(bp, args, forkoff); 1634 error = xfs_attr_leaf_to_shortform(bp, args, forkoff);
1635 /* bp is gone due to xfs_da_shrink_inode */ 1635 /* bp is gone due to xfs_da_shrink_inode */
1636 if (!error) { 1636 if (!error) {
@@ -2069,7 +2069,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
2069 /* 2069 /*
2070 * Allocate a single extent, up to the size of the value. 2070 * Allocate a single extent, up to the size of the value.
2071 */ 2071 */
2072 XFS_BMAP_INIT(args->flist, args->firstblock); 2072 xfs_bmap_init(args->flist, args->firstblock);
2073 nmap = 1; 2073 nmap = 1;
2074 error = xfs_bmapi(args->trans, dp, (xfs_fileoff_t)lblkno, 2074 error = xfs_bmapi(args->trans, dp, (xfs_fileoff_t)lblkno,
2075 blkcnt, 2075 blkcnt,
@@ -2123,7 +2123,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
2123 /* 2123 /*
2124 * Try to remember where we decided to put the value. 2124 * Try to remember where we decided to put the value.
2125 */ 2125 */
2126 XFS_BMAP_INIT(args->flist, args->firstblock); 2126 xfs_bmap_init(args->flist, args->firstblock);
2127 nmap = 1; 2127 nmap = 1;
2128 error = xfs_bmapi(NULL, dp, (xfs_fileoff_t)lblkno, 2128 error = xfs_bmapi(NULL, dp, (xfs_fileoff_t)lblkno,
2129 args->rmtblkcnt, 2129 args->rmtblkcnt,
@@ -2188,7 +2188,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
2188 /* 2188 /*
2189 * Try to remember where we decided to put the value. 2189 * Try to remember where we decided to put the value.
2190 */ 2190 */
2191 XFS_BMAP_INIT(args->flist, args->firstblock); 2191 xfs_bmap_init(args->flist, args->firstblock);
2192 nmap = 1; 2192 nmap = 1;
2193 error = xfs_bmapi(NULL, args->dp, (xfs_fileoff_t)lblkno, 2193 error = xfs_bmapi(NULL, args->dp, (xfs_fileoff_t)lblkno,
2194 args->rmtblkcnt, 2194 args->rmtblkcnt,
@@ -2229,7 +2229,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
2229 blkcnt = args->rmtblkcnt; 2229 blkcnt = args->rmtblkcnt;
2230 done = 0; 2230 done = 0;
2231 while (!done) { 2231 while (!done) {
2232 XFS_BMAP_INIT(args->flist, args->firstblock); 2232 xfs_bmap_init(args->flist, args->firstblock);
2233 error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt, 2233 error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt,
2234 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 2234 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
2235 1, args->firstblock, args->flist, 2235 1, args->firstblock, args->flist,
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 138308e70d14..c852cd65aaea 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -595,9 +595,9 @@ xfs_bmap_add_extent(
595 xfs_iext_insert(ifp, 0, 1, new); 595 xfs_iext_insert(ifp, 0, 1, new);
596 ASSERT(cur == NULL); 596 ASSERT(cur == NULL);
597 ifp->if_lastex = 0; 597 ifp->if_lastex = 0;
598 if (!ISNULLSTARTBLOCK(new->br_startblock)) { 598 if (!isnullstartblock(new->br_startblock)) {
599 XFS_IFORK_NEXT_SET(ip, whichfork, 1); 599 XFS_IFORK_NEXT_SET(ip, whichfork, 1);
600 logflags = XFS_ILOG_CORE | XFS_ILOG_FEXT(whichfork); 600 logflags = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
601 } else 601 } else
602 logflags = 0; 602 logflags = 0;
603 /* DELTA: single new extent */ 603 /* DELTA: single new extent */
@@ -613,7 +613,7 @@ xfs_bmap_add_extent(
613 /* 613 /*
614 * Any kind of new delayed allocation goes here. 614 * Any kind of new delayed allocation goes here.
615 */ 615 */
616 else if (ISNULLSTARTBLOCK(new->br_startblock)) { 616 else if (isnullstartblock(new->br_startblock)) {
617 if (cur) 617 if (cur)
618 ASSERT((cur->bc_private.b.flags & 618 ASSERT((cur->bc_private.b.flags &
619 XFS_BTCUR_BPRV_WASDEL) == 0); 619 XFS_BTCUR_BPRV_WASDEL) == 0);
@@ -644,11 +644,11 @@ xfs_bmap_add_extent(
644 * in a delayed or unwritten allocation with a real one, or 644 * in a delayed or unwritten allocation with a real one, or
645 * converting real back to unwritten. 645 * converting real back to unwritten.
646 */ 646 */
647 if (!ISNULLSTARTBLOCK(new->br_startblock) && 647 if (!isnullstartblock(new->br_startblock) &&
648 new->br_startoff + new->br_blockcount > prev.br_startoff) { 648 new->br_startoff + new->br_blockcount > prev.br_startoff) {
649 if (prev.br_state != XFS_EXT_UNWRITTEN && 649 if (prev.br_state != XFS_EXT_UNWRITTEN &&
650 ISNULLSTARTBLOCK(prev.br_startblock)) { 650 isnullstartblock(prev.br_startblock)) {
651 da_old = STARTBLOCKVAL(prev.br_startblock); 651 da_old = startblockval(prev.br_startblock);
652 if (cur) 652 if (cur)
653 ASSERT(cur->bc_private.b.flags & 653 ASSERT(cur->bc_private.b.flags &
654 XFS_BTCUR_BPRV_WASDEL); 654 XFS_BTCUR_BPRV_WASDEL);
@@ -803,7 +803,7 @@ xfs_bmap_add_extent_delay_real(
803 */ 803 */
804 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) { 804 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) {
805 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &LEFT); 805 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &LEFT);
806 STATE_SET(LEFT_DELAY, ISNULLSTARTBLOCK(LEFT.br_startblock)); 806 STATE_SET(LEFT_DELAY, isnullstartblock(LEFT.br_startblock));
807 } 807 }
808 STATE_SET(LEFT_CONTIG, 808 STATE_SET(LEFT_CONTIG,
809 STATE_TEST(LEFT_VALID) && !STATE_TEST(LEFT_DELAY) && 809 STATE_TEST(LEFT_VALID) && !STATE_TEST(LEFT_DELAY) &&
@@ -820,7 +820,7 @@ xfs_bmap_add_extent_delay_real(
820 idx < 820 idx <
821 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t) - 1)) { 821 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t) - 1)) {
822 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx + 1), &RIGHT); 822 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx + 1), &RIGHT);
823 STATE_SET(RIGHT_DELAY, ISNULLSTARTBLOCK(RIGHT.br_startblock)); 823 STATE_SET(RIGHT_DELAY, isnullstartblock(RIGHT.br_startblock));
824 } 824 }
825 STATE_SET(RIGHT_CONTIG, 825 STATE_SET(RIGHT_CONTIG,
826 STATE_TEST(RIGHT_VALID) && !STATE_TEST(RIGHT_DELAY) && 826 STATE_TEST(RIGHT_VALID) && !STATE_TEST(RIGHT_DELAY) &&
@@ -1019,8 +1019,8 @@ xfs_bmap_add_extent_delay_real(
1019 goto done; 1019 goto done;
1020 } 1020 }
1021 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 1021 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
1022 STARTBLOCKVAL(PREV.br_startblock)); 1022 startblockval(PREV.br_startblock));
1023 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 1023 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1024 XFS_BMAP_TRACE_POST_UPDATE("LF|LC", ip, idx, XFS_DATA_FORK); 1024 XFS_BMAP_TRACE_POST_UPDATE("LF|LC", ip, idx, XFS_DATA_FORK);
1025 *dnew = temp; 1025 *dnew = temp;
1026 /* DELTA: The boundary between two in-core extents moved. */ 1026 /* DELTA: The boundary between two in-core extents moved. */
@@ -1067,10 +1067,10 @@ xfs_bmap_add_extent_delay_real(
1067 goto done; 1067 goto done;
1068 } 1068 }
1069 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 1069 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
1070 STARTBLOCKVAL(PREV.br_startblock) - 1070 startblockval(PREV.br_startblock) -
1071 (cur ? cur->bc_private.b.allocated : 0)); 1071 (cur ? cur->bc_private.b.allocated : 0));
1072 ep = xfs_iext_get_ext(ifp, idx + 1); 1072 ep = xfs_iext_get_ext(ifp, idx + 1);
1073 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 1073 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1074 XFS_BMAP_TRACE_POST_UPDATE("LF", ip, idx + 1, XFS_DATA_FORK); 1074 XFS_BMAP_TRACE_POST_UPDATE("LF", ip, idx + 1, XFS_DATA_FORK);
1075 *dnew = temp; 1075 *dnew = temp;
1076 /* DELTA: One in-core extent is split in two. */ 1076 /* DELTA: One in-core extent is split in two. */
@@ -1110,8 +1110,8 @@ xfs_bmap_add_extent_delay_real(
1110 goto done; 1110 goto done;
1111 } 1111 }
1112 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 1112 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
1113 STARTBLOCKVAL(PREV.br_startblock)); 1113 startblockval(PREV.br_startblock));
1114 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 1114 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1115 XFS_BMAP_TRACE_POST_UPDATE("RF|RC", ip, idx, XFS_DATA_FORK); 1115 XFS_BMAP_TRACE_POST_UPDATE("RF|RC", ip, idx, XFS_DATA_FORK);
1116 *dnew = temp; 1116 *dnew = temp;
1117 /* DELTA: The boundary between two in-core extents moved. */ 1117 /* DELTA: The boundary between two in-core extents moved. */
@@ -1157,10 +1157,10 @@ xfs_bmap_add_extent_delay_real(
1157 goto done; 1157 goto done;
1158 } 1158 }
1159 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 1159 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
1160 STARTBLOCKVAL(PREV.br_startblock) - 1160 startblockval(PREV.br_startblock) -
1161 (cur ? cur->bc_private.b.allocated : 0)); 1161 (cur ? cur->bc_private.b.allocated : 0));
1162 ep = xfs_iext_get_ext(ifp, idx); 1162 ep = xfs_iext_get_ext(ifp, idx);
1163 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 1163 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1164 XFS_BMAP_TRACE_POST_UPDATE("RF", ip, idx, XFS_DATA_FORK); 1164 XFS_BMAP_TRACE_POST_UPDATE("RF", ip, idx, XFS_DATA_FORK);
1165 *dnew = temp; 1165 *dnew = temp;
1166 /* DELTA: One in-core extent is split in two. */ 1166 /* DELTA: One in-core extent is split in two. */
@@ -1213,7 +1213,7 @@ xfs_bmap_add_extent_delay_real(
1213 } 1213 }
1214 temp = xfs_bmap_worst_indlen(ip, temp); 1214 temp = xfs_bmap_worst_indlen(ip, temp);
1215 temp2 = xfs_bmap_worst_indlen(ip, temp2); 1215 temp2 = xfs_bmap_worst_indlen(ip, temp2);
1216 diff = (int)(temp + temp2 - STARTBLOCKVAL(PREV.br_startblock) - 1216 diff = (int)(temp + temp2 - startblockval(PREV.br_startblock) -
1217 (cur ? cur->bc_private.b.allocated : 0)); 1217 (cur ? cur->bc_private.b.allocated : 0));
1218 if (diff > 0 && 1218 if (diff > 0 &&
1219 xfs_mod_incore_sb(ip->i_mount, XFS_SBS_FDBLOCKS, -((int64_t)diff), rsvd)) { 1219 xfs_mod_incore_sb(ip->i_mount, XFS_SBS_FDBLOCKS, -((int64_t)diff), rsvd)) {
@@ -1241,11 +1241,11 @@ xfs_bmap_add_extent_delay_real(
1241 } 1241 }
1242 } 1242 }
1243 ep = xfs_iext_get_ext(ifp, idx); 1243 ep = xfs_iext_get_ext(ifp, idx);
1244 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 1244 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1245 XFS_BMAP_TRACE_POST_UPDATE("0", ip, idx, XFS_DATA_FORK); 1245 XFS_BMAP_TRACE_POST_UPDATE("0", ip, idx, XFS_DATA_FORK);
1246 XFS_BMAP_TRACE_PRE_UPDATE("0", ip, idx + 2, XFS_DATA_FORK); 1246 XFS_BMAP_TRACE_PRE_UPDATE("0", ip, idx + 2, XFS_DATA_FORK);
1247 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx + 2), 1247 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx + 2),
1248 NULLSTARTBLOCK((int)temp2)); 1248 nullstartblock((int)temp2));
1249 XFS_BMAP_TRACE_POST_UPDATE("0", ip, idx + 2, XFS_DATA_FORK); 1249 XFS_BMAP_TRACE_POST_UPDATE("0", ip, idx + 2, XFS_DATA_FORK);
1250 *dnew = temp + temp2; 1250 *dnew = temp + temp2;
1251 /* DELTA: One in-core extent is split in three. */ 1251 /* DELTA: One in-core extent is split in three. */
@@ -1365,7 +1365,7 @@ xfs_bmap_add_extent_unwritten_real(
1365 */ 1365 */
1366 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) { 1366 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) {
1367 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &LEFT); 1367 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &LEFT);
1368 STATE_SET(LEFT_DELAY, ISNULLSTARTBLOCK(LEFT.br_startblock)); 1368 STATE_SET(LEFT_DELAY, isnullstartblock(LEFT.br_startblock));
1369 } 1369 }
1370 STATE_SET(LEFT_CONTIG, 1370 STATE_SET(LEFT_CONTIG,
1371 STATE_TEST(LEFT_VALID) && !STATE_TEST(LEFT_DELAY) && 1371 STATE_TEST(LEFT_VALID) && !STATE_TEST(LEFT_DELAY) &&
@@ -1382,7 +1382,7 @@ xfs_bmap_add_extent_unwritten_real(
1382 idx < 1382 idx <
1383 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t) - 1)) { 1383 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t) - 1)) {
1384 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx + 1), &RIGHT); 1384 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx + 1), &RIGHT);
1385 STATE_SET(RIGHT_DELAY, ISNULLSTARTBLOCK(RIGHT.br_startblock)); 1385 STATE_SET(RIGHT_DELAY, isnullstartblock(RIGHT.br_startblock));
1386 } 1386 }
1387 STATE_SET(RIGHT_CONTIG, 1387 STATE_SET(RIGHT_CONTIG,
1388 STATE_TEST(RIGHT_VALID) && !STATE_TEST(RIGHT_DELAY) && 1388 STATE_TEST(RIGHT_VALID) && !STATE_TEST(RIGHT_DELAY) &&
@@ -1889,13 +1889,13 @@ xfs_bmap_add_extent_hole_delay(
1889 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); 1889 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK);
1890 ep = xfs_iext_get_ext(ifp, idx); 1890 ep = xfs_iext_get_ext(ifp, idx);
1891 state = 0; 1891 state = 0;
1892 ASSERT(ISNULLSTARTBLOCK(new->br_startblock)); 1892 ASSERT(isnullstartblock(new->br_startblock));
1893 /* 1893 /*
1894 * Check and set flags if this segment has a left neighbor 1894 * Check and set flags if this segment has a left neighbor
1895 */ 1895 */
1896 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) { 1896 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) {
1897 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &left); 1897 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &left);
1898 STATE_SET(LEFT_DELAY, ISNULLSTARTBLOCK(left.br_startblock)); 1898 STATE_SET(LEFT_DELAY, isnullstartblock(left.br_startblock));
1899 } 1899 }
1900 /* 1900 /*
1901 * Check and set flags if the current (right) segment exists. 1901 * Check and set flags if the current (right) segment exists.
@@ -1905,7 +1905,7 @@ xfs_bmap_add_extent_hole_delay(
1905 idx < 1905 idx <
1906 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t))) { 1906 ip->i_df.if_bytes / (uint)sizeof(xfs_bmbt_rec_t))) {
1907 xfs_bmbt_get_all(ep, &right); 1907 xfs_bmbt_get_all(ep, &right);
1908 STATE_SET(RIGHT_DELAY, ISNULLSTARTBLOCK(right.br_startblock)); 1908 STATE_SET(RIGHT_DELAY, isnullstartblock(right.br_startblock));
1909 } 1909 }
1910 /* 1910 /*
1911 * Set contiguity flags on the left and right neighbors. 1911 * Set contiguity flags on the left and right neighbors.
@@ -1938,12 +1938,12 @@ xfs_bmap_add_extent_hole_delay(
1938 XFS_BMAP_TRACE_PRE_UPDATE("LC|RC", ip, idx - 1, 1938 XFS_BMAP_TRACE_PRE_UPDATE("LC|RC", ip, idx - 1,
1939 XFS_DATA_FORK); 1939 XFS_DATA_FORK);
1940 xfs_bmbt_set_blockcount(xfs_iext_get_ext(ifp, idx - 1), temp); 1940 xfs_bmbt_set_blockcount(xfs_iext_get_ext(ifp, idx - 1), temp);
1941 oldlen = STARTBLOCKVAL(left.br_startblock) + 1941 oldlen = startblockval(left.br_startblock) +
1942 STARTBLOCKVAL(new->br_startblock) + 1942 startblockval(new->br_startblock) +
1943 STARTBLOCKVAL(right.br_startblock); 1943 startblockval(right.br_startblock);
1944 newlen = xfs_bmap_worst_indlen(ip, temp); 1944 newlen = xfs_bmap_worst_indlen(ip, temp);
1945 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx - 1), 1945 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx - 1),
1946 NULLSTARTBLOCK((int)newlen)); 1946 nullstartblock((int)newlen));
1947 XFS_BMAP_TRACE_POST_UPDATE("LC|RC", ip, idx - 1, 1947 XFS_BMAP_TRACE_POST_UPDATE("LC|RC", ip, idx - 1,
1948 XFS_DATA_FORK); 1948 XFS_DATA_FORK);
1949 XFS_BMAP_TRACE_DELETE("LC|RC", ip, idx, 1, XFS_DATA_FORK); 1949 XFS_BMAP_TRACE_DELETE("LC|RC", ip, idx, 1, XFS_DATA_FORK);
@@ -1964,11 +1964,11 @@ xfs_bmap_add_extent_hole_delay(
1964 XFS_BMAP_TRACE_PRE_UPDATE("LC", ip, idx - 1, 1964 XFS_BMAP_TRACE_PRE_UPDATE("LC", ip, idx - 1,
1965 XFS_DATA_FORK); 1965 XFS_DATA_FORK);
1966 xfs_bmbt_set_blockcount(xfs_iext_get_ext(ifp, idx - 1), temp); 1966 xfs_bmbt_set_blockcount(xfs_iext_get_ext(ifp, idx - 1), temp);
1967 oldlen = STARTBLOCKVAL(left.br_startblock) + 1967 oldlen = startblockval(left.br_startblock) +
1968 STARTBLOCKVAL(new->br_startblock); 1968 startblockval(new->br_startblock);
1969 newlen = xfs_bmap_worst_indlen(ip, temp); 1969 newlen = xfs_bmap_worst_indlen(ip, temp);
1970 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx - 1), 1970 xfs_bmbt_set_startblock(xfs_iext_get_ext(ifp, idx - 1),
1971 NULLSTARTBLOCK((int)newlen)); 1971 nullstartblock((int)newlen));
1972 XFS_BMAP_TRACE_POST_UPDATE("LC", ip, idx - 1, 1972 XFS_BMAP_TRACE_POST_UPDATE("LC", ip, idx - 1,
1973 XFS_DATA_FORK); 1973 XFS_DATA_FORK);
1974 ip->i_df.if_lastex = idx - 1; 1974 ip->i_df.if_lastex = idx - 1;
@@ -1985,11 +1985,11 @@ xfs_bmap_add_extent_hole_delay(
1985 */ 1985 */
1986 XFS_BMAP_TRACE_PRE_UPDATE("RC", ip, idx, XFS_DATA_FORK); 1986 XFS_BMAP_TRACE_PRE_UPDATE("RC", ip, idx, XFS_DATA_FORK);
1987 temp = new->br_blockcount + right.br_blockcount; 1987 temp = new->br_blockcount + right.br_blockcount;
1988 oldlen = STARTBLOCKVAL(new->br_startblock) + 1988 oldlen = startblockval(new->br_startblock) +
1989 STARTBLOCKVAL(right.br_startblock); 1989 startblockval(right.br_startblock);
1990 newlen = xfs_bmap_worst_indlen(ip, temp); 1990 newlen = xfs_bmap_worst_indlen(ip, temp);
1991 xfs_bmbt_set_allf(ep, new->br_startoff, 1991 xfs_bmbt_set_allf(ep, new->br_startoff,
1992 NULLSTARTBLOCK((int)newlen), temp, right.br_state); 1992 nullstartblock((int)newlen), temp, right.br_state);
1993 XFS_BMAP_TRACE_POST_UPDATE("RC", ip, idx, XFS_DATA_FORK); 1993 XFS_BMAP_TRACE_POST_UPDATE("RC", ip, idx, XFS_DATA_FORK);
1994 ip->i_df.if_lastex = idx; 1994 ip->i_df.if_lastex = idx;
1995 /* DELTA: One in-core extent grew into a hole. */ 1995 /* DELTA: One in-core extent grew into a hole. */
@@ -2085,7 +2085,7 @@ xfs_bmap_add_extent_hole_real(
2085 */ 2085 */
2086 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) { 2086 if (STATE_SET_TEST(LEFT_VALID, idx > 0)) {
2087 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &left); 2087 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx - 1), &left);
2088 STATE_SET(LEFT_DELAY, ISNULLSTARTBLOCK(left.br_startblock)); 2088 STATE_SET(LEFT_DELAY, isnullstartblock(left.br_startblock));
2089 } 2089 }
2090 /* 2090 /*
2091 * Check and set flags if this segment has a current value. 2091 * Check and set flags if this segment has a current value.
@@ -2095,7 +2095,7 @@ xfs_bmap_add_extent_hole_real(
2095 idx < 2095 idx <
2096 ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))) { 2096 ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))) {
2097 xfs_bmbt_get_all(ep, &right); 2097 xfs_bmbt_get_all(ep, &right);
2098 STATE_SET(RIGHT_DELAY, ISNULLSTARTBLOCK(right.br_startblock)); 2098 STATE_SET(RIGHT_DELAY, isnullstartblock(right.br_startblock));
2099 } 2099 }
2100 /* 2100 /*
2101 * We're inserting a real allocation between "left" and "right". 2101 * We're inserting a real allocation between "left" and "right".
@@ -2143,7 +2143,7 @@ xfs_bmap_add_extent_hole_real(
2143 XFS_IFORK_NEXT_SET(ip, whichfork, 2143 XFS_IFORK_NEXT_SET(ip, whichfork,
2144 XFS_IFORK_NEXTENTS(ip, whichfork) - 1); 2144 XFS_IFORK_NEXTENTS(ip, whichfork) - 1);
2145 if (cur == NULL) { 2145 if (cur == NULL) {
2146 rval = XFS_ILOG_CORE | XFS_ILOG_FEXT(whichfork); 2146 rval = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
2147 } else { 2147 } else {
2148 rval = XFS_ILOG_CORE; 2148 rval = XFS_ILOG_CORE;
2149 if ((error = xfs_bmbt_lookup_eq(cur, 2149 if ((error = xfs_bmbt_lookup_eq(cur,
@@ -2185,7 +2185,7 @@ xfs_bmap_add_extent_hole_real(
2185 XFS_BMAP_TRACE_POST_UPDATE("LC", ip, idx - 1, whichfork); 2185 XFS_BMAP_TRACE_POST_UPDATE("LC", ip, idx - 1, whichfork);
2186 ifp->if_lastex = idx - 1; 2186 ifp->if_lastex = idx - 1;
2187 if (cur == NULL) { 2187 if (cur == NULL) {
2188 rval = XFS_ILOG_FEXT(whichfork); 2188 rval = xfs_ilog_fext(whichfork);
2189 } else { 2189 } else {
2190 rval = 0; 2190 rval = 0;
2191 if ((error = xfs_bmbt_lookup_eq(cur, 2191 if ((error = xfs_bmbt_lookup_eq(cur,
@@ -2220,7 +2220,7 @@ xfs_bmap_add_extent_hole_real(
2220 XFS_BMAP_TRACE_POST_UPDATE("RC", ip, idx, whichfork); 2220 XFS_BMAP_TRACE_POST_UPDATE("RC", ip, idx, whichfork);
2221 ifp->if_lastex = idx; 2221 ifp->if_lastex = idx;
2222 if (cur == NULL) { 2222 if (cur == NULL) {
2223 rval = XFS_ILOG_FEXT(whichfork); 2223 rval = xfs_ilog_fext(whichfork);
2224 } else { 2224 } else {
2225 rval = 0; 2225 rval = 0;
2226 if ((error = xfs_bmbt_lookup_eq(cur, 2226 if ((error = xfs_bmbt_lookup_eq(cur,
@@ -2254,7 +2254,7 @@ xfs_bmap_add_extent_hole_real(
2254 XFS_IFORK_NEXT_SET(ip, whichfork, 2254 XFS_IFORK_NEXT_SET(ip, whichfork,
2255 XFS_IFORK_NEXTENTS(ip, whichfork) + 1); 2255 XFS_IFORK_NEXTENTS(ip, whichfork) + 1);
2256 if (cur == NULL) { 2256 if (cur == NULL) {
2257 rval = XFS_ILOG_CORE | XFS_ILOG_FEXT(whichfork); 2257 rval = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
2258 } else { 2258 } else {
2259 rval = XFS_ILOG_CORE; 2259 rval = XFS_ILOG_CORE;
2260 if ((error = xfs_bmbt_lookup_eq(cur, 2260 if ((error = xfs_bmbt_lookup_eq(cur,
@@ -2482,7 +2482,7 @@ xfs_bmap_adjacent(
2482 * try to use it's last block as our starting point. 2482 * try to use it's last block as our starting point.
2483 */ 2483 */
2484 if (ap->eof && ap->prevp->br_startoff != NULLFILEOFF && 2484 if (ap->eof && ap->prevp->br_startoff != NULLFILEOFF &&
2485 !ISNULLSTARTBLOCK(ap->prevp->br_startblock) && 2485 !isnullstartblock(ap->prevp->br_startblock) &&
2486 ISVALID(ap->prevp->br_startblock + ap->prevp->br_blockcount, 2486 ISVALID(ap->prevp->br_startblock + ap->prevp->br_blockcount,
2487 ap->prevp->br_startblock)) { 2487 ap->prevp->br_startblock)) {
2488 ap->rval = ap->prevp->br_startblock + ap->prevp->br_blockcount; 2488 ap->rval = ap->prevp->br_startblock + ap->prevp->br_blockcount;
@@ -2511,7 +2511,7 @@ xfs_bmap_adjacent(
2511 * start block based on it. 2511 * start block based on it.
2512 */ 2512 */
2513 if (ap->prevp->br_startoff != NULLFILEOFF && 2513 if (ap->prevp->br_startoff != NULLFILEOFF &&
2514 !ISNULLSTARTBLOCK(ap->prevp->br_startblock) && 2514 !isnullstartblock(ap->prevp->br_startblock) &&
2515 (prevbno = ap->prevp->br_startblock + 2515 (prevbno = ap->prevp->br_startblock +
2516 ap->prevp->br_blockcount) && 2516 ap->prevp->br_blockcount) &&
2517 ISVALID(prevbno, ap->prevp->br_startblock)) { 2517 ISVALID(prevbno, ap->prevp->br_startblock)) {
@@ -2552,7 +2552,7 @@ xfs_bmap_adjacent(
2552 * If there's a following (right) block, select a requested 2552 * If there's a following (right) block, select a requested
2553 * start block based on it. 2553 * start block based on it.
2554 */ 2554 */
2555 if (!ISNULLSTARTBLOCK(ap->gotp->br_startblock)) { 2555 if (!isnullstartblock(ap->gotp->br_startblock)) {
2556 /* 2556 /*
2557 * Calculate gap to start of next block. 2557 * Calculate gap to start of next block.
2558 */ 2558 */
@@ -3082,7 +3082,7 @@ xfs_bmap_btree_to_extents(
3082 ASSERT(ifp->if_broot == NULL); 3082 ASSERT(ifp->if_broot == NULL);
3083 ASSERT((ifp->if_flags & XFS_IFBROOT) == 0); 3083 ASSERT((ifp->if_flags & XFS_IFBROOT) == 0);
3084 XFS_IFORK_FMT_SET(ip, whichfork, XFS_DINODE_FMT_EXTENTS); 3084 XFS_IFORK_FMT_SET(ip, whichfork, XFS_DINODE_FMT_EXTENTS);
3085 *logflagsp = XFS_ILOG_CORE | XFS_ILOG_FEXT(whichfork); 3085 *logflagsp = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
3086 return 0; 3086 return 0;
3087} 3087}
3088 3088
@@ -3136,8 +3136,8 @@ xfs_bmap_del_extent(
3136 del_endoff = del->br_startoff + del->br_blockcount; 3136 del_endoff = del->br_startoff + del->br_blockcount;
3137 got_endoff = got.br_startoff + got.br_blockcount; 3137 got_endoff = got.br_startoff + got.br_blockcount;
3138 ASSERT(got_endoff >= del_endoff); 3138 ASSERT(got_endoff >= del_endoff);
3139 delay = ISNULLSTARTBLOCK(got.br_startblock); 3139 delay = isnullstartblock(got.br_startblock);
3140 ASSERT(ISNULLSTARTBLOCK(del->br_startblock) == delay); 3140 ASSERT(isnullstartblock(del->br_startblock) == delay);
3141 flags = 0; 3141 flags = 0;
3142 qfield = 0; 3142 qfield = 0;
3143 error = 0; 3143 error = 0;
@@ -3189,7 +3189,7 @@ xfs_bmap_del_extent(
3189 } 3189 }
3190 da_old = da_new = 0; 3190 da_old = da_new = 0;
3191 } else { 3191 } else {
3192 da_old = STARTBLOCKVAL(got.br_startblock); 3192 da_old = startblockval(got.br_startblock);
3193 da_new = 0; 3193 da_new = 0;
3194 nblks = 0; 3194 nblks = 0;
3195 do_fx = 0; 3195 do_fx = 0;
@@ -3213,7 +3213,7 @@ xfs_bmap_del_extent(
3213 XFS_IFORK_NEXTENTS(ip, whichfork) - 1); 3213 XFS_IFORK_NEXTENTS(ip, whichfork) - 1);
3214 flags |= XFS_ILOG_CORE; 3214 flags |= XFS_ILOG_CORE;
3215 if (!cur) { 3215 if (!cur) {
3216 flags |= XFS_ILOG_FEXT(whichfork); 3216 flags |= xfs_ilog_fext(whichfork);
3217 break; 3217 break;
3218 } 3218 }
3219 if ((error = xfs_btree_delete(cur, &i))) 3219 if ((error = xfs_btree_delete(cur, &i)))
@@ -3233,7 +3233,7 @@ xfs_bmap_del_extent(
3233 if (delay) { 3233 if (delay) {
3234 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 3234 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
3235 da_old); 3235 da_old);
3236 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 3236 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
3237 XFS_BMAP_TRACE_POST_UPDATE("2", ip, idx, 3237 XFS_BMAP_TRACE_POST_UPDATE("2", ip, idx,
3238 whichfork); 3238 whichfork);
3239 da_new = temp; 3239 da_new = temp;
@@ -3242,7 +3242,7 @@ xfs_bmap_del_extent(
3242 xfs_bmbt_set_startblock(ep, del_endblock); 3242 xfs_bmbt_set_startblock(ep, del_endblock);
3243 XFS_BMAP_TRACE_POST_UPDATE("2", ip, idx, whichfork); 3243 XFS_BMAP_TRACE_POST_UPDATE("2", ip, idx, whichfork);
3244 if (!cur) { 3244 if (!cur) {
3245 flags |= XFS_ILOG_FEXT(whichfork); 3245 flags |= xfs_ilog_fext(whichfork);
3246 break; 3246 break;
3247 } 3247 }
3248 if ((error = xfs_bmbt_update(cur, del_endoff, del_endblock, 3248 if ((error = xfs_bmbt_update(cur, del_endoff, del_endblock,
@@ -3262,7 +3262,7 @@ xfs_bmap_del_extent(
3262 if (delay) { 3262 if (delay) {
3263 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp), 3263 temp = XFS_FILBLKS_MIN(xfs_bmap_worst_indlen(ip, temp),
3264 da_old); 3264 da_old);
3265 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 3265 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
3266 XFS_BMAP_TRACE_POST_UPDATE("1", ip, idx, 3266 XFS_BMAP_TRACE_POST_UPDATE("1", ip, idx,
3267 whichfork); 3267 whichfork);
3268 da_new = temp; 3268 da_new = temp;
@@ -3270,7 +3270,7 @@ xfs_bmap_del_extent(
3270 } 3270 }
3271 XFS_BMAP_TRACE_POST_UPDATE("1", ip, idx, whichfork); 3271 XFS_BMAP_TRACE_POST_UPDATE("1", ip, idx, whichfork);
3272 if (!cur) { 3272 if (!cur) {
3273 flags |= XFS_ILOG_FEXT(whichfork); 3273 flags |= xfs_ilog_fext(whichfork);
3274 break; 3274 break;
3275 } 3275 }
3276 if ((error = xfs_bmbt_update(cur, got.br_startoff, 3276 if ((error = xfs_bmbt_update(cur, got.br_startoff,
@@ -3345,22 +3345,22 @@ xfs_bmap_del_extent(
3345 } 3345 }
3346 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 3346 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
3347 } else 3347 } else
3348 flags |= XFS_ILOG_FEXT(whichfork); 3348 flags |= xfs_ilog_fext(whichfork);
3349 XFS_IFORK_NEXT_SET(ip, whichfork, 3349 XFS_IFORK_NEXT_SET(ip, whichfork,
3350 XFS_IFORK_NEXTENTS(ip, whichfork) + 1); 3350 XFS_IFORK_NEXTENTS(ip, whichfork) + 1);
3351 } else { 3351 } else {
3352 ASSERT(whichfork == XFS_DATA_FORK); 3352 ASSERT(whichfork == XFS_DATA_FORK);
3353 temp = xfs_bmap_worst_indlen(ip, temp); 3353 temp = xfs_bmap_worst_indlen(ip, temp);
3354 xfs_bmbt_set_startblock(ep, NULLSTARTBLOCK((int)temp)); 3354 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
3355 temp2 = xfs_bmap_worst_indlen(ip, temp2); 3355 temp2 = xfs_bmap_worst_indlen(ip, temp2);
3356 new.br_startblock = NULLSTARTBLOCK((int)temp2); 3356 new.br_startblock = nullstartblock((int)temp2);
3357 da_new = temp + temp2; 3357 da_new = temp + temp2;
3358 while (da_new > da_old) { 3358 while (da_new > da_old) {
3359 if (temp) { 3359 if (temp) {
3360 temp--; 3360 temp--;
3361 da_new--; 3361 da_new--;
3362 xfs_bmbt_set_startblock(ep, 3362 xfs_bmbt_set_startblock(ep,
3363 NULLSTARTBLOCK((int)temp)); 3363 nullstartblock((int)temp));
3364 } 3364 }
3365 if (da_new == da_old) 3365 if (da_new == da_old)
3366 break; 3366 break;
@@ -3368,7 +3368,7 @@ xfs_bmap_del_extent(
3368 temp2--; 3368 temp2--;
3369 da_new--; 3369 da_new--;
3370 new.br_startblock = 3370 new.br_startblock =
3371 NULLSTARTBLOCK((int)temp2); 3371 nullstartblock((int)temp2);
3372 } 3372 }
3373 } 3373 }
3374 } 3374 }
@@ -3545,7 +3545,7 @@ xfs_bmap_extents_to_btree(
3545 nextents = ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t); 3545 nextents = ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t);
3546 for (cnt = i = 0; i < nextents; i++) { 3546 for (cnt = i = 0; i < nextents; i++) {
3547 ep = xfs_iext_get_ext(ifp, i); 3547 ep = xfs_iext_get_ext(ifp, i);
3548 if (!ISNULLSTARTBLOCK(xfs_bmbt_get_startblock(ep))) { 3548 if (!isnullstartblock(xfs_bmbt_get_startblock(ep))) {
3549 arp->l0 = cpu_to_be64(ep->l0); 3549 arp->l0 = cpu_to_be64(ep->l0);
3550 arp->l1 = cpu_to_be64(ep->l1); 3550 arp->l1 = cpu_to_be64(ep->l1);
3551 arp++; cnt++; 3551 arp++; cnt++;
@@ -3572,7 +3572,7 @@ xfs_bmap_extents_to_btree(
3572 xfs_btree_log_recs(cur, abp, 1, be16_to_cpu(ablock->bb_numrecs)); 3572 xfs_btree_log_recs(cur, abp, 1, be16_to_cpu(ablock->bb_numrecs));
3573 ASSERT(*curp == NULL); 3573 ASSERT(*curp == NULL);
3574 *curp = cur; 3574 *curp = cur;
3575 *logflagsp = XFS_ILOG_CORE | XFS_ILOG_FBROOT(whichfork); 3575 *logflagsp = XFS_ILOG_CORE | xfs_ilog_fbroot(whichfork);
3576 return 0; 3576 return 0;
3577} 3577}
3578 3578
@@ -3676,7 +3676,7 @@ xfs_bmap_local_to_extents(
3676 ip->i_d.di_nblocks = 1; 3676 ip->i_d.di_nblocks = 1;
3677 XFS_TRANS_MOD_DQUOT_BYINO(args.mp, tp, ip, 3677 XFS_TRANS_MOD_DQUOT_BYINO(args.mp, tp, ip,
3678 XFS_TRANS_DQ_BCOUNT, 1L); 3678 XFS_TRANS_DQ_BCOUNT, 1L);
3679 flags |= XFS_ILOG_FEXT(whichfork); 3679 flags |= xfs_ilog_fext(whichfork);
3680 } else { 3680 } else {
3681 ASSERT(XFS_IFORK_NEXTENTS(ip, whichfork) == 0); 3681 ASSERT(XFS_IFORK_NEXTENTS(ip, whichfork) == 0);
3682 xfs_bmap_forkoff_reset(ip->i_mount, ip, whichfork); 3682 xfs_bmap_forkoff_reset(ip->i_mount, ip, whichfork);
@@ -4082,7 +4082,7 @@ xfs_bmap_add_attrfork(
4082 XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); 4082 XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t);
4083 ip->i_afp->if_flags = XFS_IFEXTENTS; 4083 ip->i_afp->if_flags = XFS_IFEXTENTS;
4084 logflags = 0; 4084 logflags = 0;
4085 XFS_BMAP_INIT(&flist, &firstblock); 4085 xfs_bmap_init(&flist, &firstblock);
4086 switch (ip->i_d.di_format) { 4086 switch (ip->i_d.di_format) {
4087 case XFS_DINODE_FMT_LOCAL: 4087 case XFS_DINODE_FMT_LOCAL:
4088 error = xfs_bmap_add_attrfork_local(tp, ip, &firstblock, &flist, 4088 error = xfs_bmap_add_attrfork_local(tp, ip, &firstblock, &flist,
@@ -4162,7 +4162,7 @@ xfs_bmap_add_free(
4162 ASSERT(bno != NULLFSBLOCK); 4162 ASSERT(bno != NULLFSBLOCK);
4163 ASSERT(len > 0); 4163 ASSERT(len > 0);
4164 ASSERT(len <= MAXEXTLEN); 4164 ASSERT(len <= MAXEXTLEN);
4165 ASSERT(!ISNULLSTARTBLOCK(bno)); 4165 ASSERT(!isnullstartblock(bno));
4166 agno = XFS_FSB_TO_AGNO(mp, bno); 4166 agno = XFS_FSB_TO_AGNO(mp, bno);
4167 agbno = XFS_FSB_TO_AGBNO(mp, bno); 4167 agbno = XFS_FSB_TO_AGBNO(mp, bno);
4168 ASSERT(agno < mp->m_sb.sb_agcount); 4168 ASSERT(agno < mp->m_sb.sb_agcount);
@@ -4909,7 +4909,7 @@ xfs_bmapi(
4909 got.br_startoff = end; 4909 got.br_startoff = end;
4910 inhole = eof || got.br_startoff > bno; 4910 inhole = eof || got.br_startoff > bno;
4911 wasdelay = wr && !inhole && !(flags & XFS_BMAPI_DELAY) && 4911 wasdelay = wr && !inhole && !(flags & XFS_BMAPI_DELAY) &&
4912 ISNULLSTARTBLOCK(got.br_startblock); 4912 isnullstartblock(got.br_startblock);
4913 /* 4913 /*
4914 * First, deal with the hole before the allocated space 4914 * First, deal with the hole before the allocated space
4915 * that we found, if any. 4915 * that we found, if any.
@@ -5028,7 +5028,7 @@ xfs_bmapi(
5028 } 5028 }
5029 5029
5030 ip->i_delayed_blks += alen; 5030 ip->i_delayed_blks += alen;
5031 abno = NULLSTARTBLOCK(indlen); 5031 abno = nullstartblock(indlen);
5032 } else { 5032 } else {
5033 /* 5033 /*
5034 * If first time, allocate and fill in 5034 * If first time, allocate and fill in
@@ -5144,8 +5144,8 @@ xfs_bmapi(
5144 aoff + alen); 5144 aoff + alen);
5145#ifdef DEBUG 5145#ifdef DEBUG
5146 if (flags & XFS_BMAPI_DELAY) { 5146 if (flags & XFS_BMAPI_DELAY) {
5147 ASSERT(ISNULLSTARTBLOCK(got.br_startblock)); 5147 ASSERT(isnullstartblock(got.br_startblock));
5148 ASSERT(STARTBLOCKVAL(got.br_startblock) > 0); 5148 ASSERT(startblockval(got.br_startblock) > 0);
5149 } 5149 }
5150 ASSERT(got.br_state == XFS_EXT_NORM || 5150 ASSERT(got.br_state == XFS_EXT_NORM ||
5151 got.br_state == XFS_EXT_UNWRITTEN); 5151 got.br_state == XFS_EXT_UNWRITTEN);
@@ -5179,7 +5179,7 @@ xfs_bmapi(
5179 ASSERT((bno >= obno) || (n == 0)); 5179 ASSERT((bno >= obno) || (n == 0));
5180 ASSERT(bno < end); 5180 ASSERT(bno < end);
5181 mval->br_startoff = bno; 5181 mval->br_startoff = bno;
5182 if (ISNULLSTARTBLOCK(got.br_startblock)) { 5182 if (isnullstartblock(got.br_startblock)) {
5183 ASSERT(!wr || (flags & XFS_BMAPI_DELAY)); 5183 ASSERT(!wr || (flags & XFS_BMAPI_DELAY));
5184 mval->br_startblock = DELAYSTARTBLOCK; 5184 mval->br_startblock = DELAYSTARTBLOCK;
5185 } else 5185 } else
@@ -5201,7 +5201,7 @@ xfs_bmapi(
5201 ASSERT(mval->br_blockcount <= len); 5201 ASSERT(mval->br_blockcount <= len);
5202 } else { 5202 } else {
5203 *mval = got; 5203 *mval = got;
5204 if (ISNULLSTARTBLOCK(mval->br_startblock)) { 5204 if (isnullstartblock(mval->br_startblock)) {
5205 ASSERT(!wr || (flags & XFS_BMAPI_DELAY)); 5205 ASSERT(!wr || (flags & XFS_BMAPI_DELAY));
5206 mval->br_startblock = DELAYSTARTBLOCK; 5206 mval->br_startblock = DELAYSTARTBLOCK;
5207 } 5207 }
@@ -5329,12 +5329,12 @@ error0:
5329 * Log everything. Do this after conversion, there's no point in 5329 * Log everything. Do this after conversion, there's no point in
5330 * logging the extent records if we've converted to btree format. 5330 * logging the extent records if we've converted to btree format.
5331 */ 5331 */
5332 if ((logflags & XFS_ILOG_FEXT(whichfork)) && 5332 if ((logflags & xfs_ilog_fext(whichfork)) &&
5333 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_EXTENTS) 5333 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_EXTENTS)
5334 logflags &= ~XFS_ILOG_FEXT(whichfork); 5334 logflags &= ~xfs_ilog_fext(whichfork);
5335 else if ((logflags & XFS_ILOG_FBROOT(whichfork)) && 5335 else if ((logflags & xfs_ilog_fbroot(whichfork)) &&
5336 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE) 5336 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE)
5337 logflags &= ~XFS_ILOG_FBROOT(whichfork); 5337 logflags &= ~xfs_ilog_fbroot(whichfork);
5338 /* 5338 /*
5339 * Log whatever the flags say, even if error. Otherwise we might miss 5339 * Log whatever the flags say, even if error. Otherwise we might miss
5340 * detecting a case where the data is changed, there's an error, 5340 * detecting a case where the data is changed, there's an error,
@@ -5411,7 +5411,7 @@ xfs_bmapi_single(
5411 *fsb = NULLFSBLOCK; 5411 *fsb = NULLFSBLOCK;
5412 return 0; 5412 return 0;
5413 } 5413 }
5414 ASSERT(!ISNULLSTARTBLOCK(got.br_startblock)); 5414 ASSERT(!isnullstartblock(got.br_startblock));
5415 ASSERT(bno < got.br_startoff + got.br_blockcount); 5415 ASSERT(bno < got.br_startoff + got.br_blockcount);
5416 *fsb = got.br_startblock + (bno - got.br_startoff); 5416 *fsb = got.br_startblock + (bno - got.br_startoff);
5417 ifp->if_lastex = lastx; 5417 ifp->if_lastex = lastx;
@@ -5543,7 +5543,7 @@ xfs_bunmapi(
5543 */ 5543 */
5544 ASSERT(ep != NULL); 5544 ASSERT(ep != NULL);
5545 del = got; 5545 del = got;
5546 wasdel = ISNULLSTARTBLOCK(del.br_startblock); 5546 wasdel = isnullstartblock(del.br_startblock);
5547 if (got.br_startoff < start) { 5547 if (got.br_startoff < start) {
5548 del.br_startoff = start; 5548 del.br_startoff = start;
5549 del.br_blockcount -= start - got.br_startoff; 5549 del.br_blockcount -= start - got.br_startoff;
@@ -5638,7 +5638,7 @@ xfs_bunmapi(
5638 xfs_bmbt_get_all(xfs_iext_get_ext(ifp, 5638 xfs_bmbt_get_all(xfs_iext_get_ext(ifp,
5639 lastx - 1), &prev); 5639 lastx - 1), &prev);
5640 ASSERT(prev.br_state == XFS_EXT_NORM); 5640 ASSERT(prev.br_state == XFS_EXT_NORM);
5641 ASSERT(!ISNULLSTARTBLOCK(prev.br_startblock)); 5641 ASSERT(!isnullstartblock(prev.br_startblock));
5642 ASSERT(del.br_startblock == 5642 ASSERT(del.br_startblock ==
5643 prev.br_startblock + prev.br_blockcount); 5643 prev.br_startblock + prev.br_blockcount);
5644 if (prev.br_startoff < start) { 5644 if (prev.br_startoff < start) {
@@ -5666,7 +5666,7 @@ xfs_bunmapi(
5666 } 5666 }
5667 } 5667 }
5668 if (wasdel) { 5668 if (wasdel) {
5669 ASSERT(STARTBLOCKVAL(del.br_startblock) > 0); 5669 ASSERT(startblockval(del.br_startblock) > 0);
5670 /* Update realtime/data freespace, unreserve quota */ 5670 /* Update realtime/data freespace, unreserve quota */
5671 if (isrt) { 5671 if (isrt) {
5672 xfs_filblks_t rtexts; 5672 xfs_filblks_t rtexts;
@@ -5782,12 +5782,12 @@ error0:
5782 * Log everything. Do this after conversion, there's no point in 5782 * Log everything. Do this after conversion, there's no point in
5783 * logging the extent records if we've converted to btree format. 5783 * logging the extent records if we've converted to btree format.
5784 */ 5784 */
5785 if ((logflags & XFS_ILOG_FEXT(whichfork)) && 5785 if ((logflags & xfs_ilog_fext(whichfork)) &&
5786 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_EXTENTS) 5786 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_EXTENTS)
5787 logflags &= ~XFS_ILOG_FEXT(whichfork); 5787 logflags &= ~xfs_ilog_fext(whichfork);
5788 else if ((logflags & XFS_ILOG_FBROOT(whichfork)) && 5788 else if ((logflags & xfs_ilog_fbroot(whichfork)) &&
5789 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE) 5789 XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE)
5790 logflags &= ~XFS_ILOG_FBROOT(whichfork); 5790 logflags &= ~xfs_ilog_fbroot(whichfork);
5791 /* 5791 /*
5792 * Log inode even in the error case, if the transaction 5792 * Log inode even in the error case, if the transaction
5793 * is dirty we'll need to shut down the filesystem. 5793 * is dirty we'll need to shut down the filesystem.
@@ -5838,7 +5838,7 @@ xfs_getbmapx_fix_eof_hole(
5838 if (startblock == DELAYSTARTBLOCK) 5838 if (startblock == DELAYSTARTBLOCK)
5839 out->bmv_block = -2; 5839 out->bmv_block = -2;
5840 else 5840 else
5841 out->bmv_block = XFS_FSB_TO_DB(ip, startblock); 5841 out->bmv_block = xfs_fsb_to_db(ip, startblock);
5842 fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset); 5842 fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset);
5843 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); 5843 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK);
5844 if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) && 5844 if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) &&
@@ -5979,7 +5979,7 @@ xfs_getbmap(
5979 if (nex > XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1) 5979 if (nex > XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1)
5980 nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1; 5980 nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1;
5981 5981
5982 bmapi_flags = XFS_BMAPI_AFLAG(whichfork) | 5982 bmapi_flags = xfs_bmapi_aflag(whichfork) |
5983 ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE); 5983 ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE);
5984 5984
5985 /* 5985 /*
@@ -6098,7 +6098,7 @@ xfs_bmap_isaeof(
6098 */ 6098 */
6099 *aeof = (off >= s.br_startoff && 6099 *aeof = (off >= s.br_startoff &&
6100 off < s.br_startoff + s.br_blockcount && 6100 off < s.br_startoff + s.br_blockcount &&
6101 ISNULLSTARTBLOCK(s.br_startblock)) || 6101 isnullstartblock(s.br_startblock)) ||
6102 off >= s.br_startoff + s.br_blockcount; 6102 off >= s.br_startoff + s.br_blockcount;
6103 return 0; 6103 return 0;
6104} 6104}
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h
index 284571c05ed0..be2979d88d32 100644
--- a/fs/xfs/xfs_bmap.h
+++ b/fs/xfs/xfs_bmap.h
@@ -95,7 +95,6 @@ typedef struct xfs_bmap_free
95 /* need write cache flushing and no */ 95 /* need write cache flushing and no */
96 /* additional allocation alignments */ 96 /* additional allocation alignments */
97 97
98#define XFS_BMAPI_AFLAG(w) xfs_bmapi_aflag(w)
99static inline int xfs_bmapi_aflag(int w) 98static inline int xfs_bmapi_aflag(int w)
100{ 99{
101 return (w == XFS_ATTR_FORK ? XFS_BMAPI_ATTRFORK : 0); 100 return (w == XFS_ATTR_FORK ? XFS_BMAPI_ATTRFORK : 0);
@@ -107,7 +106,6 @@ static inline int xfs_bmapi_aflag(int w)
107#define DELAYSTARTBLOCK ((xfs_fsblock_t)-1LL) 106#define DELAYSTARTBLOCK ((xfs_fsblock_t)-1LL)
108#define HOLESTARTBLOCK ((xfs_fsblock_t)-2LL) 107#define HOLESTARTBLOCK ((xfs_fsblock_t)-2LL)
109 108
110#define XFS_BMAP_INIT(flp,fbp) xfs_bmap_init(flp,fbp)
111static inline void xfs_bmap_init(xfs_bmap_free_t *flp, xfs_fsblock_t *fbp) 109static inline void xfs_bmap_init(xfs_bmap_free_t *flp, xfs_fsblock_t *fbp)
112{ 110{
113 ((flp)->xbf_first = NULL, (flp)->xbf_count = 0, \ 111 ((flp)->xbf_first = NULL, (flp)->xbf_count = 0, \
diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c
index ba6b08c2fb02..0760d352586f 100644
--- a/fs/xfs/xfs_bmap_btree.c
+++ b/fs/xfs/xfs_bmap_btree.c
@@ -121,7 +121,7 @@ __xfs_bmbt_get_all(
121 121
122 b = (((xfs_dfsbno_t)l0 & xfs_mask64lo(9)) << 43) | 122 b = (((xfs_dfsbno_t)l0 & xfs_mask64lo(9)) << 43) |
123 (((xfs_dfsbno_t)l1) >> 21); 123 (((xfs_dfsbno_t)l1) >> 21);
124 ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); 124 ASSERT((b >> 32) == 0 || isnulldstartblock(b));
125 s->br_startblock = (xfs_fsblock_t)b; 125 s->br_startblock = (xfs_fsblock_t)b;
126 } 126 }
127#else /* !DEBUG */ 127#else /* !DEBUG */
@@ -172,7 +172,7 @@ xfs_bmbt_get_startblock(
172 172
173 b = (((xfs_dfsbno_t)r->l0 & xfs_mask64lo(9)) << 43) | 173 b = (((xfs_dfsbno_t)r->l0 & xfs_mask64lo(9)) << 43) |
174 (((xfs_dfsbno_t)r->l1) >> 21); 174 (((xfs_dfsbno_t)r->l1) >> 21);
175 ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); 175 ASSERT((b >> 32) == 0 || isnulldstartblock(b));
176 return (xfs_fsblock_t)b; 176 return (xfs_fsblock_t)b;
177#else /* !DEBUG */ 177#else /* !DEBUG */
178 return (xfs_fsblock_t)(((xfs_dfsbno_t)r->l1) >> 21); 178 return (xfs_fsblock_t)(((xfs_dfsbno_t)r->l1) >> 21);
@@ -261,7 +261,7 @@ xfs_bmbt_set_allf(
261 ((xfs_bmbt_rec_base_t)blockcount & 261 ((xfs_bmbt_rec_base_t)blockcount &
262 (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); 262 (xfs_bmbt_rec_base_t)xfs_mask64lo(21));
263#else /* !XFS_BIG_BLKNOS */ 263#else /* !XFS_BIG_BLKNOS */
264 if (ISNULLSTARTBLOCK(startblock)) { 264 if (isnullstartblock(startblock)) {
265 r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | 265 r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
266 ((xfs_bmbt_rec_base_t)startoff << 9) | 266 ((xfs_bmbt_rec_base_t)startoff << 9) |
267 (xfs_bmbt_rec_base_t)xfs_mask64lo(9); 267 (xfs_bmbt_rec_base_t)xfs_mask64lo(9);
@@ -321,7 +321,7 @@ xfs_bmbt_disk_set_allf(
321 ((xfs_bmbt_rec_base_t)blockcount & 321 ((xfs_bmbt_rec_base_t)blockcount &
322 (xfs_bmbt_rec_base_t)xfs_mask64lo(21))); 322 (xfs_bmbt_rec_base_t)xfs_mask64lo(21)));
323#else /* !XFS_BIG_BLKNOS */ 323#else /* !XFS_BIG_BLKNOS */
324 if (ISNULLSTARTBLOCK(startblock)) { 324 if (isnullstartblock(startblock)) {
325 r->l0 = cpu_to_be64( 325 r->l0 = cpu_to_be64(
326 ((xfs_bmbt_rec_base_t)extent_flag << 63) | 326 ((xfs_bmbt_rec_base_t)extent_flag << 63) |
327 ((xfs_bmbt_rec_base_t)startoff << 9) | 327 ((xfs_bmbt_rec_base_t)startoff << 9) |
@@ -382,7 +382,7 @@ xfs_bmbt_set_startblock(
382 r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)) | 382 r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)) |
383 (xfs_bmbt_rec_base_t)(v << 21); 383 (xfs_bmbt_rec_base_t)(v << 21);
384#else /* !XFS_BIG_BLKNOS */ 384#else /* !XFS_BIG_BLKNOS */
385 if (ISNULLSTARTBLOCK(v)) { 385 if (isnullstartblock(v)) {
386 r->l0 |= (xfs_bmbt_rec_base_t)xfs_mask64lo(9); 386 r->l0 |= (xfs_bmbt_rec_base_t)xfs_mask64lo(9);
387 r->l1 = (xfs_bmbt_rec_base_t)xfs_mask64hi(11) | 387 r->l1 = (xfs_bmbt_rec_base_t)xfs_mask64hi(11) |
388 ((xfs_bmbt_rec_base_t)v << 21) | 388 ((xfs_bmbt_rec_base_t)v << 21) |
diff --git a/fs/xfs/xfs_bmap_btree.h b/fs/xfs/xfs_bmap_btree.h
index a4555abb6622..0e8df007615e 100644
--- a/fs/xfs/xfs_bmap_btree.h
+++ b/fs/xfs/xfs_bmap_btree.h
@@ -76,26 +76,22 @@ typedef struct xfs_bmbt_rec_host {
76#define DSTARTBLOCKMASK \ 76#define DSTARTBLOCKMASK \
77 (((((xfs_dfsbno_t)1) << DSTARTBLOCKMASKBITS) - 1) << STARTBLOCKVALBITS) 77 (((((xfs_dfsbno_t)1) << DSTARTBLOCKMASKBITS) - 1) << STARTBLOCKVALBITS)
78 78
79#define ISNULLSTARTBLOCK(x) isnullstartblock(x)
80static inline int isnullstartblock(xfs_fsblock_t x) 79static inline int isnullstartblock(xfs_fsblock_t x)
81{ 80{
82 return ((x) & STARTBLOCKMASK) == STARTBLOCKMASK; 81 return ((x) & STARTBLOCKMASK) == STARTBLOCKMASK;
83} 82}
84 83
85#define ISNULLDSTARTBLOCK(x) isnulldstartblock(x)
86static inline int isnulldstartblock(xfs_dfsbno_t x) 84static inline int isnulldstartblock(xfs_dfsbno_t x)
87{ 85{
88 return ((x) & DSTARTBLOCKMASK) == DSTARTBLOCKMASK; 86 return ((x) & DSTARTBLOCKMASK) == DSTARTBLOCKMASK;
89} 87}
90 88
91#define NULLSTARTBLOCK(k) nullstartblock(k)
92static inline xfs_fsblock_t nullstartblock(int k) 89static inline xfs_fsblock_t nullstartblock(int k)
93{ 90{
94 ASSERT(k < (1 << STARTBLOCKVALBITS)); 91 ASSERT(k < (1 << STARTBLOCKVALBITS));
95 return STARTBLOCKMASK | (k); 92 return STARTBLOCKMASK | (k);
96} 93}
97 94
98#define STARTBLOCKVAL(x) startblockval(x)
99static inline xfs_filblks_t startblockval(xfs_fsblock_t x) 95static inline xfs_filblks_t startblockval(xfs_fsblock_t x)
100{ 96{
101 return (xfs_filblks_t)((x) & ~STARTBLOCKMASK); 97 return (xfs_filblks_t)((x) & ~STARTBLOCKMASK);
diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c
index 2c3ef20f8842..e73c332eb23f 100644
--- a/fs/xfs/xfs_btree.c
+++ b/fs/xfs/xfs_btree.c
@@ -843,7 +843,7 @@ xfs_btree_ptr_is_null(
843 union xfs_btree_ptr *ptr) 843 union xfs_btree_ptr *ptr)
844{ 844{
845 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) 845 if (cur->bc_flags & XFS_BTREE_LONG_PTRS)
846 return be64_to_cpu(ptr->l) == NULLFSBLOCK; 846 return be64_to_cpu(ptr->l) == NULLDFSBNO;
847 else 847 else
848 return be32_to_cpu(ptr->s) == NULLAGBLOCK; 848 return be32_to_cpu(ptr->s) == NULLAGBLOCK;
849} 849}
@@ -854,7 +854,7 @@ xfs_btree_set_ptr_null(
854 union xfs_btree_ptr *ptr) 854 union xfs_btree_ptr *ptr)
855{ 855{
856 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) 856 if (cur->bc_flags & XFS_BTREE_LONG_PTRS)
857 ptr->l = cpu_to_be64(NULLFSBLOCK); 857 ptr->l = cpu_to_be64(NULLDFSBNO);
858 else 858 else
859 ptr->s = cpu_to_be32(NULLAGBLOCK); 859 ptr->s = cpu_to_be32(NULLAGBLOCK);
860} 860}
@@ -918,8 +918,8 @@ xfs_btree_init_block(
918 new->bb_numrecs = cpu_to_be16(numrecs); 918 new->bb_numrecs = cpu_to_be16(numrecs);
919 919
920 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { 920 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) {
921 new->bb_u.l.bb_leftsib = cpu_to_be64(NULLFSBLOCK); 921 new->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO);
922 new->bb_u.l.bb_rightsib = cpu_to_be64(NULLFSBLOCK); 922 new->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO);
923 } else { 923 } else {
924 new->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); 924 new->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK);
925 new->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); 925 new->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK);
@@ -960,7 +960,7 @@ xfs_btree_buf_to_ptr(
960 ptr->l = cpu_to_be64(XFS_DADDR_TO_FSB(cur->bc_mp, 960 ptr->l = cpu_to_be64(XFS_DADDR_TO_FSB(cur->bc_mp,
961 XFS_BUF_ADDR(bp))); 961 XFS_BUF_ADDR(bp)));
962 else { 962 else {
963 ptr->s = cpu_to_be32(XFS_DADDR_TO_AGBNO(cur->bc_mp, 963 ptr->s = cpu_to_be32(xfs_daddr_to_agbno(cur->bc_mp,
964 XFS_BUF_ADDR(bp))); 964 XFS_BUF_ADDR(bp)));
965 } 965 }
966} 966}
@@ -971,7 +971,7 @@ xfs_btree_ptr_to_daddr(
971 union xfs_btree_ptr *ptr) 971 union xfs_btree_ptr *ptr)
972{ 972{
973 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { 973 if (cur->bc_flags & XFS_BTREE_LONG_PTRS) {
974 ASSERT(be64_to_cpu(ptr->l) != NULLFSBLOCK); 974 ASSERT(be64_to_cpu(ptr->l) != NULLDFSBNO);
975 975
976 return XFS_FSB_TO_DADDR(cur->bc_mp, be64_to_cpu(ptr->l)); 976 return XFS_FSB_TO_DADDR(cur->bc_mp, be64_to_cpu(ptr->l));
977 } else { 977 } else {
@@ -2454,7 +2454,7 @@ xfs_btree_new_iroot(
2454 xfs_btree_log_ptrs(cur, cbp, 1, be16_to_cpu(cblock->bb_numrecs)); 2454 xfs_btree_log_ptrs(cur, cbp, 1, be16_to_cpu(cblock->bb_numrecs));
2455 2455
2456 *logflags |= 2456 *logflags |=
2457 XFS_ILOG_CORE | XFS_ILOG_FBROOT(cur->bc_private.b.whichfork); 2457 XFS_ILOG_CORE | xfs_ilog_fbroot(cur->bc_private.b.whichfork);
2458 *stat = 1; 2458 *stat = 1;
2459 XFS_BTREE_TRACE_CURSOR(cur, XBT_EXIT); 2459 XFS_BTREE_TRACE_CURSOR(cur, XBT_EXIT);
2460 return 0; 2460 return 0;
@@ -3048,7 +3048,7 @@ xfs_btree_kill_iroot(
3048 cur->bc_bufs[level - 1] = NULL; 3048 cur->bc_bufs[level - 1] = NULL;
3049 be16_add_cpu(&block->bb_level, -1); 3049 be16_add_cpu(&block->bb_level, -1);
3050 xfs_trans_log_inode(cur->bc_tp, ip, 3050 xfs_trans_log_inode(cur->bc_tp, ip,
3051 XFS_ILOG_CORE | XFS_ILOG_FBROOT(cur->bc_private.b.whichfork)); 3051 XFS_ILOG_CORE | xfs_ilog_fbroot(cur->bc_private.b.whichfork));
3052 cur->bc_nlevels--; 3052 cur->bc_nlevels--;
3053out0: 3053out0:
3054 XFS_BTREE_TRACE_CURSOR(cur, XBT_EXIT); 3054 XFS_BTREE_TRACE_CURSOR(cur, XBT_EXIT);
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index a11a8390bf6c..c45f74ff1a5b 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -1597,7 +1597,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1597 nmap = 1; 1597 nmap = 1;
1598 ASSERT(args->firstblock != NULL); 1598 ASSERT(args->firstblock != NULL);
1599 if ((error = xfs_bmapi(tp, dp, bno, count, 1599 if ((error = xfs_bmapi(tp, dp, bno, count,
1600 XFS_BMAPI_AFLAG(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA| 1600 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|
1601 XFS_BMAPI_CONTIG, 1601 XFS_BMAPI_CONTIG,
1602 args->firstblock, args->total, &map, &nmap, 1602 args->firstblock, args->total, &map, &nmap,
1603 args->flist, NULL))) { 1603 args->flist, NULL))) {
@@ -1618,7 +1618,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1618 nmap = MIN(XFS_BMAP_MAX_NMAP, count); 1618 nmap = MIN(XFS_BMAP_MAX_NMAP, count);
1619 c = (int)(bno + count - b); 1619 c = (int)(bno + count - b);
1620 if ((error = xfs_bmapi(tp, dp, b, c, 1620 if ((error = xfs_bmapi(tp, dp, b, c,
1621 XFS_BMAPI_AFLAG(w)|XFS_BMAPI_WRITE| 1621 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|
1622 XFS_BMAPI_METADATA, 1622 XFS_BMAPI_METADATA,
1623 args->firstblock, args->total, 1623 args->firstblock, args->total,
1624 &mapp[mapi], &nmap, args->flist, 1624 &mapp[mapi], &nmap, args->flist,
@@ -1882,7 +1882,7 @@ xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno,
1882 * the last block to the place we want to kill. 1882 * the last block to the place we want to kill.
1883 */ 1883 */
1884 if ((error = xfs_bunmapi(tp, dp, dead_blkno, count, 1884 if ((error = xfs_bunmapi(tp, dp, dead_blkno, count,
1885 XFS_BMAPI_AFLAG(w)|XFS_BMAPI_METADATA, 1885 xfs_bmapi_aflag(w)|XFS_BMAPI_METADATA,
1886 0, args->firstblock, args->flist, NULL, 1886 0, args->firstblock, args->flist, NULL,
1887 &done)) == ENOSPC) { 1887 &done)) == ENOSPC) {
1888 if (w != XFS_DATA_FORK) 1888 if (w != XFS_DATA_FORK)
@@ -1987,7 +1987,7 @@ xfs_da_do_buf(
1987 if ((error = xfs_bmapi(trans, dp, (xfs_fileoff_t)bno, 1987 if ((error = xfs_bmapi(trans, dp, (xfs_fileoff_t)bno,
1988 nfsb, 1988 nfsb,
1989 XFS_BMAPI_METADATA | 1989 XFS_BMAPI_METADATA |
1990 XFS_BMAPI_AFLAG(whichfork), 1990 xfs_bmapi_aflag(whichfork),
1991 NULL, 0, mapp, &nmap, NULL, NULL))) 1991 NULL, 0, mapp, &nmap, NULL, NULL)))
1992 goto exit0; 1992 goto exit0;
1993 } 1993 }
diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
index e6ebbaeb4dc6..ab016e5ae7be 100644
--- a/fs/xfs/xfs_ialloc.c
+++ b/fs/xfs/xfs_ialloc.c
@@ -357,7 +357,7 @@ xfs_ialloc_ag_alloc(
357 int ioffset = i << args.mp->m_sb.sb_inodelog; 357 int ioffset = i << args.mp->m_sb.sb_inodelog;
358 uint isize = sizeof(struct xfs_dinode); 358 uint isize = sizeof(struct xfs_dinode);
359 359
360 free = XFS_MAKE_IPTR(args.mp, fbuf, i); 360 free = xfs_make_iptr(args.mp, fbuf, i);
361 free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC); 361 free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC);
362 free->di_version = version; 362 free->di_version = version;
363 free->di_gen = cpu_to_be32(gen); 363 free->di_gen = cpu_to_be32(gen);
@@ -937,7 +937,7 @@ nextag:
937 } 937 }
938 } 938 }
939 } 939 }
940 offset = XFS_IALLOC_FIND_FREE(&rec.ir_free); 940 offset = xfs_ialloc_find_free(&rec.ir_free);
941 ASSERT(offset >= 0); 941 ASSERT(offset >= 0);
942 ASSERT(offset < XFS_INODES_PER_CHUNK); 942 ASSERT(offset < XFS_INODES_PER_CHUNK);
943 ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % 943 ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
@@ -1279,7 +1279,7 @@ xfs_imap(
1279 offset = XFS_INO_TO_OFFSET(mp, ino); 1279 offset = XFS_INO_TO_OFFSET(mp, ino);
1280 ASSERT(offset < mp->m_sb.sb_inopblock); 1280 ASSERT(offset < mp->m_sb.sb_inopblock);
1281 1281
1282 cluster_agbno = XFS_DADDR_TO_AGBNO(mp, imap->im_blkno); 1282 cluster_agbno = xfs_daddr_to_agbno(mp, imap->im_blkno);
1283 offset += (agbno - cluster_agbno) * mp->m_sb.sb_inopblock; 1283 offset += (agbno - cluster_agbno) * mp->m_sb.sb_inopblock;
1284 1284
1285 imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); 1285 imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster);
diff --git a/fs/xfs/xfs_ialloc.h b/fs/xfs/xfs_ialloc.h
index 50f558a4e0a8..aeee8278f92c 100644
--- a/fs/xfs/xfs_ialloc.h
+++ b/fs/xfs/xfs_ialloc.h
@@ -39,7 +39,6 @@ struct xfs_trans;
39/* 39/*
40 * Make an inode pointer out of the buffer/offset. 40 * Make an inode pointer out of the buffer/offset.
41 */ 41 */
42#define XFS_MAKE_IPTR(mp,b,o) xfs_make_iptr(mp,b,o)
43static inline struct xfs_dinode * 42static inline struct xfs_dinode *
44xfs_make_iptr(struct xfs_mount *mp, struct xfs_buf *b, int o) 43xfs_make_iptr(struct xfs_mount *mp, struct xfs_buf *b, int o)
45{ 44{
@@ -50,7 +49,6 @@ xfs_make_iptr(struct xfs_mount *mp, struct xfs_buf *b, int o)
50/* 49/*
51 * Find a free (set) bit in the inode bitmask. 50 * Find a free (set) bit in the inode bitmask.
52 */ 51 */
53#define XFS_IALLOC_FIND_FREE(fp) xfs_ialloc_find_free(fp)
54static inline int xfs_ialloc_find_free(xfs_inofree_t *fp) 52static inline int xfs_ialloc_find_free(xfs_inofree_t *fp)
55{ 53{
56 return xfs_lowbit64(*fp); 54 return xfs_lowbit64(*fp);
diff --git a/fs/xfs/xfs_ialloc_btree.h b/fs/xfs/xfs_ialloc_btree.h
index 37e5dd01a577..5580e255ff06 100644
--- a/fs/xfs/xfs_ialloc_btree.h
+++ b/fs/xfs/xfs_ialloc_btree.h
@@ -36,7 +36,6 @@ typedef __uint64_t xfs_inofree_t;
36#define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3) 36#define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3)
37#define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) 37#define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1)
38 38
39#define XFS_INOBT_MASKN(i,n) xfs_inobt_maskn(i,n)
40static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) 39static inline xfs_inofree_t xfs_inobt_maskn(int i, int n)
41{ 40{
42 return (((n) >= XFS_INODES_PER_CHUNK ? \ 41 return (((n) >= XFS_INODES_PER_CHUNK ? \
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 5a5e035e5d38..e7ae08d1df48 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -424,6 +424,19 @@ xfs_iformat(
424 case XFS_DINODE_FMT_LOCAL: 424 case XFS_DINODE_FMT_LOCAL:
425 atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); 425 atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip);
426 size = be16_to_cpu(atp->hdr.totsize); 426 size = be16_to_cpu(atp->hdr.totsize);
427
428 if (unlikely(size < sizeof(struct xfs_attr_sf_hdr))) {
429 xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
430 "corrupt inode %Lu "
431 "(bad attr fork size %Ld).",
432 (unsigned long long) ip->i_ino,
433 (long long) size);
434 XFS_CORRUPTION_ERROR("xfs_iformat(8)",
435 XFS_ERRLEVEL_LOW,
436 ip->i_mount, dip);
437 return XFS_ERROR(EFSCORRUPTED);
438 }
439
427 error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, size); 440 error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, size);
428 break; 441 break;
429 case XFS_DINODE_FMT_EXTENTS: 442 case XFS_DINODE_FMT_EXTENTS:
@@ -1601,10 +1614,10 @@ xfs_itruncate_finish(
1601 * in this file with garbage in them once recovery 1614 * in this file with garbage in them once recovery
1602 * runs. 1615 * runs.
1603 */ 1616 */
1604 XFS_BMAP_INIT(&free_list, &first_block); 1617 xfs_bmap_init(&free_list, &first_block);
1605 error = xfs_bunmapi(ntp, ip, 1618 error = xfs_bunmapi(ntp, ip,
1606 first_unmap_block, unmap_len, 1619 first_unmap_block, unmap_len,
1607 XFS_BMAPI_AFLAG(fork) | 1620 xfs_bmapi_aflag(fork) |
1608 (sync ? 0 : XFS_BMAPI_ASYNC), 1621 (sync ? 0 : XFS_BMAPI_ASYNC),
1609 XFS_ITRUNC_MAX_EXTENTS, 1622 XFS_ITRUNC_MAX_EXTENTS,
1610 &first_block, &free_list, 1623 &first_block, &free_list,
@@ -2557,7 +2570,7 @@ xfs_iextents_copy(
2557 for (i = 0; i < nrecs; i++) { 2570 for (i = 0; i < nrecs; i++) {
2558 xfs_bmbt_rec_host_t *ep = xfs_iext_get_ext(ifp, i); 2571 xfs_bmbt_rec_host_t *ep = xfs_iext_get_ext(ifp, i);
2559 start_block = xfs_bmbt_get_startblock(ep); 2572 start_block = xfs_bmbt_get_startblock(ep);
2560 if (ISNULLSTARTBLOCK(start_block)) { 2573 if (isnullstartblock(start_block)) {
2561 /* 2574 /*
2562 * It's a delayed allocation extent, so skip it. 2575 * It's a delayed allocation extent, so skip it.
2563 */ 2576 */
diff --git a/fs/xfs/xfs_inode_item.h b/fs/xfs/xfs_inode_item.h
index 1ff04cc323ad..9957d0602d54 100644
--- a/fs/xfs/xfs_inode_item.h
+++ b/fs/xfs/xfs_inode_item.h
@@ -111,20 +111,16 @@ typedef struct xfs_inode_log_format_64 {
111 111
112#define XFS_ILI_IOLOCKED_ANY (XFS_ILI_IOLOCKED_EXCL | XFS_ILI_IOLOCKED_SHARED) 112#define XFS_ILI_IOLOCKED_ANY (XFS_ILI_IOLOCKED_EXCL | XFS_ILI_IOLOCKED_SHARED)
113 113
114
115#define XFS_ILOG_FBROOT(w) xfs_ilog_fbroot(w)
116static inline int xfs_ilog_fbroot(int w) 114static inline int xfs_ilog_fbroot(int w)
117{ 115{
118 return (w == XFS_DATA_FORK ? XFS_ILOG_DBROOT : XFS_ILOG_ABROOT); 116 return (w == XFS_DATA_FORK ? XFS_ILOG_DBROOT : XFS_ILOG_ABROOT);
119} 117}
120 118
121#define XFS_ILOG_FEXT(w) xfs_ilog_fext(w)
122static inline int xfs_ilog_fext(int w) 119static inline int xfs_ilog_fext(int w)
123{ 120{
124 return (w == XFS_DATA_FORK ? XFS_ILOG_DEXT : XFS_ILOG_AEXT); 121 return (w == XFS_DATA_FORK ? XFS_ILOG_DEXT : XFS_ILOG_AEXT);
125} 122}
126 123
127#define XFS_ILOG_FDATA(w) xfs_ilog_fdata(w)
128static inline int xfs_ilog_fdata(int w) 124static inline int xfs_ilog_fdata(int w)
129{ 125{
130 return (w == XFS_DATA_FORK ? XFS_ILOG_DDATA : XFS_ILOG_ADATA); 126 return (w == XFS_DATA_FORK ? XFS_ILOG_DDATA : XFS_ILOG_ADATA);
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 911062cf73a6..08ce72316bfe 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -155,7 +155,7 @@ xfs_imap_to_bmap(
155 iomapp->iomap_bn = IOMAP_DADDR_NULL; 155 iomapp->iomap_bn = IOMAP_DADDR_NULL;
156 iomapp->iomap_flags |= IOMAP_DELAY; 156 iomapp->iomap_flags |= IOMAP_DELAY;
157 } else { 157 } else {
158 iomapp->iomap_bn = XFS_FSB_TO_DB(ip, start_block); 158 iomapp->iomap_bn = xfs_fsb_to_db(ip, start_block);
159 if (ISUNWRITTEN(imap)) 159 if (ISUNWRITTEN(imap))
160 iomapp->iomap_flags |= IOMAP_UNWRITTEN; 160 iomapp->iomap_flags |= IOMAP_UNWRITTEN;
161 } 161 }
@@ -261,7 +261,7 @@ xfs_iomap(
261 xfs_iunlock(ip, lockmode); 261 xfs_iunlock(ip, lockmode);
262 lockmode = 0; 262 lockmode = 0;
263 263
264 if (nimaps && !ISNULLSTARTBLOCK(imap.br_startblock)) { 264 if (nimaps && !isnullstartblock(imap.br_startblock)) {
265 xfs_iomap_map_trace(XFS_IOMAP_WRITE_MAP, ip, 265 xfs_iomap_map_trace(XFS_IOMAP_WRITE_MAP, ip,
266 offset, count, iomapp, &imap, flags); 266 offset, count, iomapp, &imap, flags);
267 break; 267 break;
@@ -491,7 +491,7 @@ xfs_iomap_write_direct(
491 /* 491 /*
492 * Issue the xfs_bmapi() call to allocate the blocks 492 * Issue the xfs_bmapi() call to allocate the blocks
493 */ 493 */
494 XFS_BMAP_INIT(&free_list, &firstfsb); 494 xfs_bmap_init(&free_list, &firstfsb);
495 nimaps = 1; 495 nimaps = 1;
496 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag, 496 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag,
497 &firstfsb, 0, &imap, &nimaps, &free_list, NULL); 497 &firstfsb, 0, &imap, &nimaps, &free_list, NULL);
@@ -751,7 +751,7 @@ xfs_iomap_write_allocate(
751 xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); 751 xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
752 xfs_trans_ihold(tp, ip); 752 xfs_trans_ihold(tp, ip);
753 753
754 XFS_BMAP_INIT(&free_list, &first_block); 754 xfs_bmap_init(&free_list, &first_block);
755 755
756 /* 756 /*
757 * it is possible that the extents have changed since 757 * it is possible that the extents have changed since
@@ -911,7 +911,7 @@ xfs_iomap_write_unwritten(
911 /* 911 /*
912 * Modify the unwritten extent state of the buffer. 912 * Modify the unwritten extent state of the buffer.
913 */ 913 */
914 XFS_BMAP_INIT(&free_list, &firstfsb); 914 xfs_bmap_init(&free_list, &firstfsb);
915 nimaps = 1; 915 nimaps = 1;
916 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, 916 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb,
917 XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb, 917 XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb,
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index e19d0a8d5618..cf98a805ec90 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -453,7 +453,7 @@ xfs_bulkstat(
453 (chunkidx = agino - gino + 1) < 453 (chunkidx = agino - gino + 1) <
454 XFS_INODES_PER_CHUNK && 454 XFS_INODES_PER_CHUNK &&
455 /* there are some left allocated */ 455 /* there are some left allocated */
456 XFS_INOBT_MASKN(chunkidx, 456 xfs_inobt_maskn(chunkidx,
457 XFS_INODES_PER_CHUNK - chunkidx) & ~gfree) { 457 XFS_INODES_PER_CHUNK - chunkidx) & ~gfree) {
458 /* 458 /*
459 * Grab the chunk record. Mark all the 459 * Grab the chunk record. Mark all the
@@ -464,7 +464,7 @@ xfs_bulkstat(
464 if (XFS_INOBT_MASK(i) & ~gfree) 464 if (XFS_INOBT_MASK(i) & ~gfree)
465 gcnt++; 465 gcnt++;
466 } 466 }
467 gfree |= XFS_INOBT_MASKN(0, chunkidx); 467 gfree |= xfs_inobt_maskn(0, chunkidx);
468 irbp->ir_startino = gino; 468 irbp->ir_startino = gino;
469 irbp->ir_freecount = gcnt; 469 irbp->ir_freecount = gcnt;
470 irbp->ir_free = gfree; 470 irbp->ir_free = gfree;
@@ -535,7 +535,7 @@ xfs_bulkstat(
535 chunkidx < XFS_INODES_PER_CHUNK; 535 chunkidx < XFS_INODES_PER_CHUNK;
536 chunkidx += nicluster, 536 chunkidx += nicluster,
537 agbno += nbcluster) { 537 agbno += nbcluster) {
538 if (XFS_INOBT_MASKN(chunkidx, 538 if (xfs_inobt_maskn(chunkidx,
539 nicluster) & ~gfree) 539 nicluster) & ~gfree)
540 xfs_btree_reada_bufs(mp, agno, 540 xfs_btree_reada_bufs(mp, agno,
541 agbno, nbcluster); 541 agbno, nbcluster);
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 3c97c6463a4e..35300250e86d 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -45,7 +45,6 @@
45#include "xfs_fsops.h" 45#include "xfs_fsops.h"
46#include "xfs_utils.h" 46#include "xfs_utils.h"
47 47
48STATIC int xfs_mount_log_sb(xfs_mount_t *, __int64_t);
49STATIC int xfs_uuid_mount(xfs_mount_t *); 48STATIC int xfs_uuid_mount(xfs_mount_t *);
50STATIC void xfs_unmountfs_wait(xfs_mount_t *); 49STATIC void xfs_unmountfs_wait(xfs_mount_t *);
51 50
@@ -682,7 +681,7 @@ xfs_initialize_perag_data(xfs_mount_t *mp, xfs_agnumber_t agcount)
682 * Update alignment values based on mount options and sb values 681 * Update alignment values based on mount options and sb values
683 */ 682 */
684STATIC int 683STATIC int
685xfs_update_alignment(xfs_mount_t *mp, __uint64_t *update_flags) 684xfs_update_alignment(xfs_mount_t *mp)
686{ 685{
687 xfs_sb_t *sbp = &(mp->m_sb); 686 xfs_sb_t *sbp = &(mp->m_sb);
688 687
@@ -736,11 +735,11 @@ xfs_update_alignment(xfs_mount_t *mp, __uint64_t *update_flags)
736 if (xfs_sb_version_hasdalign(sbp)) { 735 if (xfs_sb_version_hasdalign(sbp)) {
737 if (sbp->sb_unit != mp->m_dalign) { 736 if (sbp->sb_unit != mp->m_dalign) {
738 sbp->sb_unit = mp->m_dalign; 737 sbp->sb_unit = mp->m_dalign;
739 *update_flags |= XFS_SB_UNIT; 738 mp->m_update_flags |= XFS_SB_UNIT;
740 } 739 }
741 if (sbp->sb_width != mp->m_swidth) { 740 if (sbp->sb_width != mp->m_swidth) {
742 sbp->sb_width = mp->m_swidth; 741 sbp->sb_width = mp->m_swidth;
743 *update_flags |= XFS_SB_WIDTH; 742 mp->m_update_flags |= XFS_SB_WIDTH;
744 } 743 }
745 } 744 }
746 } else if ((mp->m_flags & XFS_MOUNT_NOALIGN) != XFS_MOUNT_NOALIGN && 745 } else if ((mp->m_flags & XFS_MOUNT_NOALIGN) != XFS_MOUNT_NOALIGN &&
@@ -905,7 +904,6 @@ xfs_mountfs(
905 xfs_sb_t *sbp = &(mp->m_sb); 904 xfs_sb_t *sbp = &(mp->m_sb);
906 xfs_inode_t *rip; 905 xfs_inode_t *rip;
907 __uint64_t resblks; 906 __uint64_t resblks;
908 __int64_t update_flags = 0LL;
909 uint quotamount, quotaflags; 907 uint quotamount, quotaflags;
910 int uuid_mounted = 0; 908 int uuid_mounted = 0;
911 int error = 0; 909 int error = 0;
@@ -933,7 +931,7 @@ xfs_mountfs(
933 "XFS: correcting sb_features alignment problem"); 931 "XFS: correcting sb_features alignment problem");
934 sbp->sb_features2 |= sbp->sb_bad_features2; 932 sbp->sb_features2 |= sbp->sb_bad_features2;
935 sbp->sb_bad_features2 = sbp->sb_features2; 933 sbp->sb_bad_features2 = sbp->sb_features2;
936 update_flags |= XFS_SB_FEATURES2 | XFS_SB_BAD_FEATURES2; 934 mp->m_update_flags |= XFS_SB_FEATURES2 | XFS_SB_BAD_FEATURES2;
937 935
938 /* 936 /*
939 * Re-check for ATTR2 in case it was found in bad_features2 937 * Re-check for ATTR2 in case it was found in bad_features2
@@ -947,11 +945,11 @@ xfs_mountfs(
947 if (xfs_sb_version_hasattr2(&mp->m_sb) && 945 if (xfs_sb_version_hasattr2(&mp->m_sb) &&
948 (mp->m_flags & XFS_MOUNT_NOATTR2)) { 946 (mp->m_flags & XFS_MOUNT_NOATTR2)) {
949 xfs_sb_version_removeattr2(&mp->m_sb); 947 xfs_sb_version_removeattr2(&mp->m_sb);
950 update_flags |= XFS_SB_FEATURES2; 948 mp->m_update_flags |= XFS_SB_FEATURES2;
951 949
952 /* update sb_versionnum for the clearing of the morebits */ 950 /* update sb_versionnum for the clearing of the morebits */
953 if (!sbp->sb_features2) 951 if (!sbp->sb_features2)
954 update_flags |= XFS_SB_VERSIONNUM; 952 mp->m_update_flags |= XFS_SB_VERSIONNUM;
955 } 953 }
956 954
957 /* 955 /*
@@ -960,7 +958,7 @@ xfs_mountfs(
960 * allocator alignment is within an ag, therefore ag has 958 * allocator alignment is within an ag, therefore ag has
961 * to be aligned at stripe boundary. 959 * to be aligned at stripe boundary.
962 */ 960 */
963 error = xfs_update_alignment(mp, &update_flags); 961 error = xfs_update_alignment(mp);
964 if (error) 962 if (error)
965 goto error1; 963 goto error1;
966 964
@@ -1137,10 +1135,12 @@ xfs_mountfs(
1137 } 1135 }
1138 1136
1139 /* 1137 /*
1140 * If fs is not mounted readonly, then update the superblock changes. 1138 * If this is a read-only mount defer the superblock updates until
1139 * the next remount into writeable mode. Otherwise we would never
1140 * perform the update e.g. for the root filesystem.
1141 */ 1141 */
1142 if (update_flags && !(mp->m_flags & XFS_MOUNT_RDONLY)) { 1142 if (mp->m_update_flags && !(mp->m_flags & XFS_MOUNT_RDONLY)) {
1143 error = xfs_mount_log_sb(mp, update_flags); 1143 error = xfs_mount_log_sb(mp, mp->m_update_flags);
1144 if (error) { 1144 if (error) {
1145 cmn_err(CE_WARN, "XFS: failed to write sb changes"); 1145 cmn_err(CE_WARN, "XFS: failed to write sb changes");
1146 goto error4; 1146 goto error4;
@@ -1820,7 +1820,7 @@ xfs_uuid_mount(
1820 * be altered by the mount options, as well as any potential sb_features2 1820 * be altered by the mount options, as well as any potential sb_features2
1821 * fixup. Only the first superblock is updated. 1821 * fixup. Only the first superblock is updated.
1822 */ 1822 */
1823STATIC int 1823int
1824xfs_mount_log_sb( 1824xfs_mount_log_sb(
1825 xfs_mount_t *mp, 1825 xfs_mount_t *mp,
1826 __int64_t fields) 1826 __int64_t fields)
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index c1e028467327..f5e9937f9bdb 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -44,9 +44,9 @@ typedef struct xfs_trans_reservations {
44 44
45#ifndef __KERNEL__ 45#ifndef __KERNEL__
46 46
47#define XFS_DADDR_TO_AGNO(mp,d) \ 47#define xfs_daddr_to_agno(mp,d) \
48 ((xfs_agnumber_t)(XFS_BB_TO_FSBT(mp, d) / (mp)->m_sb.sb_agblocks)) 48 ((xfs_agnumber_t)(XFS_BB_TO_FSBT(mp, d) / (mp)->m_sb.sb_agblocks))
49#define XFS_DADDR_TO_AGBNO(mp,d) \ 49#define xfs_daddr_to_agbno(mp,d) \
50 ((xfs_agblock_t)(XFS_BB_TO_FSBT(mp, d) % (mp)->m_sb.sb_agblocks)) 50 ((xfs_agblock_t)(XFS_BB_TO_FSBT(mp, d) % (mp)->m_sb.sb_agblocks))
51 51
52#else /* __KERNEL__ */ 52#else /* __KERNEL__ */
@@ -327,6 +327,8 @@ typedef struct xfs_mount {
327 spinlock_t m_sync_lock; /* work item list lock */ 327 spinlock_t m_sync_lock; /* work item list lock */
328 int m_sync_seq; /* sync thread generation no. */ 328 int m_sync_seq; /* sync thread generation no. */
329 wait_queue_head_t m_wait_single_sync_task; 329 wait_queue_head_t m_wait_single_sync_task;
330 __int64_t m_update_flags; /* sb flags we need to update
331 on the next remount,rw */
330} xfs_mount_t; 332} xfs_mount_t;
331 333
332/* 334/*
@@ -439,7 +441,6 @@ void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname,
439 */ 441 */
440#define XFS_MFSI_QUIET 0x40 /* Be silent if mount errors found */ 442#define XFS_MFSI_QUIET 0x40 /* Be silent if mount errors found */
441 443
442#define XFS_DADDR_TO_AGNO(mp,d) xfs_daddr_to_agno(mp,d)
443static inline xfs_agnumber_t 444static inline xfs_agnumber_t
444xfs_daddr_to_agno(struct xfs_mount *mp, xfs_daddr_t d) 445xfs_daddr_to_agno(struct xfs_mount *mp, xfs_daddr_t d)
445{ 446{
@@ -448,7 +449,6 @@ xfs_daddr_to_agno(struct xfs_mount *mp, xfs_daddr_t d)
448 return (xfs_agnumber_t) ld; 449 return (xfs_agnumber_t) ld;
449} 450}
450 451
451#define XFS_DADDR_TO_AGBNO(mp,d) xfs_daddr_to_agbno(mp,d)
452static inline xfs_agblock_t 452static inline xfs_agblock_t
453xfs_daddr_to_agbno(struct xfs_mount *mp, xfs_daddr_t d) 453xfs_daddr_to_agbno(struct xfs_mount *mp, xfs_daddr_t d)
454{ 454{
@@ -514,6 +514,7 @@ extern int xfs_mod_incore_sb_unlocked(xfs_mount_t *, xfs_sb_field_t,
514 int64_t, int); 514 int64_t, int);
515extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, 515extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *,
516 uint, int); 516 uint, int);
517extern int xfs_mount_log_sb(xfs_mount_t *, __int64_t);
517extern struct xfs_buf *xfs_getsb(xfs_mount_t *, int); 518extern struct xfs_buf *xfs_getsb(xfs_mount_t *, int);
518extern int xfs_readsb(xfs_mount_t *, int); 519extern int xfs_readsb(xfs_mount_t *, int);
519extern void xfs_freesb(xfs_mount_t *); 520extern void xfs_freesb(xfs_mount_t *);
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c
index 86471bb40fd4..58f85e9cd11d 100644
--- a/fs/xfs/xfs_rename.c
+++ b/fs/xfs/xfs_rename.c
@@ -147,7 +147,7 @@ xfs_rename(
147 xfs_sort_for_rename(src_dp, target_dp, src_ip, target_ip, 147 xfs_sort_for_rename(src_dp, target_dp, src_ip, target_ip,
148 inodes, &num_inodes); 148 inodes, &num_inodes);
149 149
150 XFS_BMAP_INIT(&free_list, &first_block); 150 xfs_bmap_init(&free_list, &first_block);
151 tp = xfs_trans_alloc(mp, XFS_TRANS_RENAME); 151 tp = xfs_trans_alloc(mp, XFS_TRANS_RENAME);
152 cancel_flags = XFS_TRANS_RELEASE_LOG_RES; 152 cancel_flags = XFS_TRANS_RELEASE_LOG_RES;
153 spaceres = XFS_RENAME_SPACE_RES(mp, target_name->len); 153 spaceres = XFS_RENAME_SPACE_RES(mp, target_name->len);
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index edf12c7b834c..c5bb86f3ec05 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -120,7 +120,7 @@ xfs_growfs_rt_alloc(
120 if ((error = xfs_trans_iget(mp, tp, ino, 0, 120 if ((error = xfs_trans_iget(mp, tp, ino, 0,
121 XFS_ILOCK_EXCL, &ip))) 121 XFS_ILOCK_EXCL, &ip)))
122 goto error_cancel; 122 goto error_cancel;
123 XFS_BMAP_INIT(&flist, &firstblock); 123 xfs_bmap_init(&flist, &firstblock);
124 /* 124 /*
125 * Allocate blocks to the bitmap file. 125 * Allocate blocks to the bitmap file.
126 */ 126 */
diff --git a/fs/xfs/xfs_rw.h b/fs/xfs/xfs_rw.h
index f87db5344ce6..f76c003ec55d 100644
--- a/fs/xfs/xfs_rw.h
+++ b/fs/xfs/xfs_rw.h
@@ -28,7 +28,6 @@ struct xfs_mount;
28 * file is a real time file or not, because the bmap code 28 * file is a real time file or not, because the bmap code
29 * does. 29 * does.
30 */ 30 */
31#define XFS_FSB_TO_DB(ip,fsb) xfs_fsb_to_db(ip,fsb)
32static inline xfs_daddr_t 31static inline xfs_daddr_t
33xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb) 32xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb)
34{ 33{
diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h
index 1ed71916e4c9..1b017c657494 100644
--- a/fs/xfs/xfs_sb.h
+++ b/fs/xfs/xfs_sb.h
@@ -505,7 +505,7 @@ static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp)
505 505
506#define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d)) 506#define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d))
507#define XFS_DADDR_TO_FSB(mp,d) XFS_AGB_TO_FSB(mp, \ 507#define XFS_DADDR_TO_FSB(mp,d) XFS_AGB_TO_FSB(mp, \
508 XFS_DADDR_TO_AGNO(mp,d), XFS_DADDR_TO_AGBNO(mp,d)) 508 xfs_daddr_to_agno(mp,d), xfs_daddr_to_agbno(mp,d))
509#define XFS_FSB_TO_DADDR(mp,fsbno) XFS_AGB_TO_DADDR(mp, \ 509#define XFS_FSB_TO_DADDR(mp,fsbno) XFS_AGB_TO_DADDR(mp, \
510 XFS_FSB_TO_AGNO(mp,fsbno), XFS_FSB_TO_AGBNO(mp,fsbno)) 510 XFS_FSB_TO_AGNO(mp,fsbno), XFS_FSB_TO_AGBNO(mp,fsbno))
511 511
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index f07bf8768c3a..0e55c5d7db5f 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -862,7 +862,7 @@ xfs_inactive_symlink_rmt(
862 * Find the block(s) so we can inval and unmap them. 862 * Find the block(s) so we can inval and unmap them.
863 */ 863 */
864 done = 0; 864 done = 0;
865 XFS_BMAP_INIT(&free_list, &first_block); 865 xfs_bmap_init(&free_list, &first_block);
866 nmaps = ARRAY_SIZE(mval); 866 nmaps = ARRAY_SIZE(mval);
867 if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size), 867 if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size),
868 XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps, 868 XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps,
@@ -1288,7 +1288,7 @@ xfs_inactive(
1288 /* 1288 /*
1289 * Free the inode. 1289 * Free the inode.
1290 */ 1290 */
1291 XFS_BMAP_INIT(&free_list, &first_block); 1291 xfs_bmap_init(&free_list, &first_block);
1292 error = xfs_ifree(tp, ip, &free_list); 1292 error = xfs_ifree(tp, ip, &free_list);
1293 if (error) { 1293 if (error) {
1294 /* 1294 /*
@@ -1461,7 +1461,7 @@ xfs_create(
1461 xfs_ilock(dp, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT); 1461 xfs_ilock(dp, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT);
1462 unlock_dp_on_error = B_TRUE; 1462 unlock_dp_on_error = B_TRUE;
1463 1463
1464 XFS_BMAP_INIT(&free_list, &first_block); 1464 xfs_bmap_init(&free_list, &first_block);
1465 1465
1466 ASSERT(ip == NULL); 1466 ASSERT(ip == NULL);
1467 1467
@@ -1879,7 +1879,7 @@ xfs_remove(
1879 } 1879 }
1880 } 1880 }
1881 1881
1882 XFS_BMAP_INIT(&free_list, &first_block); 1882 xfs_bmap_init(&free_list, &first_block);
1883 error = xfs_dir_removename(tp, dp, name, ip->i_ino, 1883 error = xfs_dir_removename(tp, dp, name, ip->i_ino,
1884 &first_block, &free_list, resblks); 1884 &first_block, &free_list, resblks);
1885 if (error) { 1885 if (error) {
@@ -2059,7 +2059,7 @@ xfs_link(
2059 if (error) 2059 if (error)
2060 goto error_return; 2060 goto error_return;
2061 2061
2062 XFS_BMAP_INIT(&free_list, &first_block); 2062 xfs_bmap_init(&free_list, &first_block);
2063 2063
2064 error = xfs_dir_createname(tp, tdp, target_name, sip->i_ino, 2064 error = xfs_dir_createname(tp, tdp, target_name, sip->i_ino,
2065 &first_block, &free_list, resblks); 2065 &first_block, &free_list, resblks);
@@ -2231,7 +2231,7 @@ xfs_mkdir(
2231 xfs_trans_ijoin(tp, dp, XFS_ILOCK_EXCL); 2231 xfs_trans_ijoin(tp, dp, XFS_ILOCK_EXCL);
2232 unlock_dp_on_error = B_FALSE; 2232 unlock_dp_on_error = B_FALSE;
2233 2233
2234 XFS_BMAP_INIT(&free_list, &first_block); 2234 xfs_bmap_init(&free_list, &first_block);
2235 2235
2236 error = xfs_dir_createname(tp, dp, dir_name, cdp->i_ino, 2236 error = xfs_dir_createname(tp, dp, dir_name, cdp->i_ino,
2237 &first_block, &free_list, resblks ? 2237 &first_block, &free_list, resblks ?
@@ -2438,7 +2438,7 @@ xfs_symlink(
2438 * Initialize the bmap freelist prior to calling either 2438 * Initialize the bmap freelist prior to calling either
2439 * bmapi or the directory create code. 2439 * bmapi or the directory create code.
2440 */ 2440 */
2441 XFS_BMAP_INIT(&free_list, &first_block); 2441 xfs_bmap_init(&free_list, &first_block);
2442 2442
2443 /* 2443 /*
2444 * Allocate an inode for the symlink. 2444 * Allocate an inode for the symlink.
@@ -2860,7 +2860,7 @@ retry:
2860 /* 2860 /*
2861 * Issue the xfs_bmapi() call to allocate the blocks 2861 * Issue the xfs_bmapi() call to allocate the blocks
2862 */ 2862 */
2863 XFS_BMAP_INIT(&free_list, &firstfsb); 2863 xfs_bmap_init(&free_list, &firstfsb);
2864 error = xfs_bmapi(tp, ip, startoffset_fsb, 2864 error = xfs_bmapi(tp, ip, startoffset_fsb,
2865 allocatesize_fsb, bmapi_flag, 2865 allocatesize_fsb, bmapi_flag,
2866 &firstfsb, 0, imapp, &nimaps, 2866 &firstfsb, 0, imapp, &nimaps,
@@ -2980,7 +2980,7 @@ xfs_zero_remaining_bytes(
2980 XFS_BUF_UNDONE(bp); 2980 XFS_BUF_UNDONE(bp);
2981 XFS_BUF_UNWRITE(bp); 2981 XFS_BUF_UNWRITE(bp);
2982 XFS_BUF_READ(bp); 2982 XFS_BUF_READ(bp);
2983 XFS_BUF_SET_ADDR(bp, XFS_FSB_TO_DB(ip, imap.br_startblock)); 2983 XFS_BUF_SET_ADDR(bp, xfs_fsb_to_db(ip, imap.br_startblock));
2984 xfsbdstrat(mp, bp); 2984 xfsbdstrat(mp, bp);
2985 error = xfs_iowait(bp); 2985 error = xfs_iowait(bp);
2986 if (error) { 2986 if (error) {
@@ -3186,7 +3186,7 @@ xfs_free_file_space(
3186 /* 3186 /*
3187 * issue the bunmapi() call to free the blocks 3187 * issue the bunmapi() call to free the blocks
3188 */ 3188 */
3189 XFS_BMAP_INIT(&free_list, &firstfsb); 3189 xfs_bmap_init(&free_list, &firstfsb);
3190 error = xfs_bunmapi(tp, ip, startoffset_fsb, 3190 error = xfs_bunmapi(tp, ip, startoffset_fsb,
3191 endoffset_fsb - startoffset_fsb, 3191 endoffset_fsb - startoffset_fsb,
3192 0, 2, &firstfsb, &free_list, NULL, &done); 3192 0, 2, &firstfsb, &free_list, NULL, &done);
diff --git a/include/asm-m68k/auxvec.h b/include/asm-m68k/auxvec.h
deleted file mode 100644
index 844d6d52204b..000000000000
--- a/include/asm-m68k/auxvec.h
+++ /dev/null
@@ -1,4 +0,0 @@
1#ifndef __ASMm68k_AUXVEC_H
2#define __ASMm68k_AUXVEC_H
3
4#endif
diff --git a/include/asm-m68k/device.h b/include/asm-m68k/device.h
deleted file mode 100644
index d8f9872b0e2d..000000000000
--- a/include/asm-m68k/device.h
+++ /dev/null
@@ -1,7 +0,0 @@
1/*
2 * Arch specific extensions to struct device
3 *
4 * This file is released under the GPLv2
5 */
6#include <asm-generic/device.h>
7
diff --git a/include/asm-m68k/emergency-restart.h b/include/asm-m68k/emergency-restart.h
deleted file mode 100644
index 108d8c48e42e..000000000000
--- a/include/asm-m68k/emergency-restart.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _ASM_EMERGENCY_RESTART_H
2#define _ASM_EMERGENCY_RESTART_H
3
4#include <asm-generic/emergency-restart.h>
5
6#endif /* _ASM_EMERGENCY_RESTART_H */
diff --git a/include/asm-m68k/futex.h b/include/asm-m68k/futex.h
deleted file mode 100644
index 6a332a9f099c..000000000000
--- a/include/asm-m68k/futex.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _ASM_FUTEX_H
2#define _ASM_FUTEX_H
3
4#include <asm-generic/futex.h>
5
6#endif
diff --git a/include/asm-m68k/ioctl.h b/include/asm-m68k/ioctl.h
deleted file mode 100644
index b279fe06dfe5..000000000000
--- a/include/asm-m68k/ioctl.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-generic/ioctl.h>
diff --git a/include/asm-m68k/irq_regs.h b/include/asm-m68k/irq_regs.h
deleted file mode 100644
index 3dd9c0b70270..000000000000
--- a/include/asm-m68k/irq_regs.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-generic/irq_regs.h>
diff --git a/include/asm-m68k/kdebug.h b/include/asm-m68k/kdebug.h
deleted file mode 100644
index 6ece1b037665..000000000000
--- a/include/asm-m68k/kdebug.h
+++ /dev/null
@@ -1 +0,0 @@
1#include <asm-generic/kdebug.h>
diff --git a/include/asm-m68k/mutex.h b/include/asm-m68k/mutex.h
deleted file mode 100644
index 458c1f7fbc18..000000000000
--- a/include/asm-m68k/mutex.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/*
2 * Pull in the generic implementation for the mutex fastpath.
3 *
4 * TODO: implement optimized primitives instead, or leave the generic
5 * implementation in place, or pick the atomic_xchg() based generic
6 * implementation. (see asm-generic/mutex-xchg.h for details)
7 */
8
9#include <asm-generic/mutex-dec.h>
diff --git a/include/asm-m68k/topology.h b/include/asm-m68k/topology.h
deleted file mode 100644
index ca173e9f26ff..000000000000
--- a/include/asm-m68k/topology.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _ASM_M68K_TOPOLOGY_H
2#define _ASM_M68K_TOPOLOGY_H
3
4#include <asm-generic/topology.h>
5
6#endif /* _ASM_M68K_TOPOLOGY_H */
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 47809ac94bc3..d54de24bf371 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -528,7 +528,8 @@ struct drm_mode_group {
528 * 528 *
529 */ 529 */
530struct drm_mode_config { 530struct drm_mode_config {
531 struct mutex mutex; /* protects configuration and IDR */ 531 struct mutex mutex; /* protects configuration (mode lists etc.) */
532 struct mutex idr_mutex; /* for IDR management */
532 struct idr crtc_idr; /* use this idr for all IDs, fb, crtc, connector, modes - just makes life easier */ 533 struct idr crtc_idr; /* use this idr for all IDs, fb, crtc, connector, modes - just makes life easier */
533 /* this is limited to one for now */ 534 /* this is limited to one for now */
534 int num_fb; 535 int num_fb;
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index 23936b16426b..af0e01d4c663 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -162,6 +162,13 @@ static inline struct dentry *debugfs_create_x32(const char *name, mode_t mode,
162 return ERR_PTR(-ENODEV); 162 return ERR_PTR(-ENODEV);
163} 163}
164 164
165static inline struct dentry *debugfs_create_size_t(const char *name, mode_t mode,
166 struct dentry *parent,
167 size_t *value)
168{
169 return ERR_PTR(-ENODEV);
170}
171
165static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, 172static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode,
166 struct dentry *parent, 173 struct dentry *parent,
167 u32 *value) 174 u32 *value)
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index c73f1e2b59b7..3e0f64c335c8 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -297,6 +297,11 @@ static inline void async_tx_ack(struct dma_async_tx_descriptor *tx)
297 tx->flags |= DMA_CTRL_ACK; 297 tx->flags |= DMA_CTRL_ACK;
298} 298}
299 299
300static inline void async_tx_clear_ack(struct dma_async_tx_descriptor *tx)
301{
302 tx->flags &= ~DMA_CTRL_ACK;
303}
304
300static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx) 305static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx)
301{ 306{
302 return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK; 307 return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK;
@@ -400,11 +405,16 @@ static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie,
400enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); 405enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
401#ifdef CONFIG_DMA_ENGINE 406#ifdef CONFIG_DMA_ENGINE
402enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); 407enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx);
408void dma_issue_pending_all(void);
403#else 409#else
404static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) 410static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx)
405{ 411{
406 return DMA_SUCCESS; 412 return DMA_SUCCESS;
407} 413}
414static inline void dma_issue_pending_all(void)
415{
416 do { } while (0);
417}
408#endif 418#endif
409 419
410/* --- DMA device --- */ 420/* --- DMA device --- */
@@ -413,7 +423,6 @@ int dma_async_device_register(struct dma_device *device);
413void dma_async_device_unregister(struct dma_device *device); 423void dma_async_device_unregister(struct dma_device *device);
414void dma_run_dependencies(struct dma_async_tx_descriptor *tx); 424void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
415struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); 425struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type);
416void dma_issue_pending_all(void);
417#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) 426#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y)
418struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); 427struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param);
419void dma_release_channel(struct dma_chan *chan); 428void dma_release_channel(struct dma_chan *chan);
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 01d67ba9e985..1ffc23bc5d1e 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -40,9 +40,7 @@
40#define I2C_DRIVERID_SAA7185B 13 /* video encoder */ 40#define I2C_DRIVERID_SAA7185B 13 /* video encoder */
41#define I2C_DRIVERID_SAA7110 22 /* video decoder */ 41#define I2C_DRIVERID_SAA7110 22 /* video decoder */
42#define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ 42#define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */
43#define I2C_DRIVERID_PCF8583 25 /* real time clock */
44#define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ 43#define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */
45#define I2C_DRIVERID_TVMIXER 28 /* Mixer driver for tv cards */
46#define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ 44#define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */
47#define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ 45#define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */
48#define I2C_DRIVERID_BT819 40 /* video decoder */ 46#define I2C_DRIVERID_BT819 40 /* video decoder */
@@ -54,7 +52,6 @@
54#define I2C_DRIVERID_SAA7191 57 /* video decoder */ 52#define I2C_DRIVERID_SAA7191 57 /* video decoder */
55#define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ 53#define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */
56#define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ 54#define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */
57#define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */
58#define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ 55#define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */
59#define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ 56#define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */
60#define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ 57#define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */
@@ -62,23 +59,16 @@
62#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ 59#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */
63#define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */ 60#define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */
64#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ 61#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
65#define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */
66#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */ 62#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */
67#define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */ 63#define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */
68#define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */ 64#define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */
69#define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */ 65#define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */
70#define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */ 66#define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */
71#define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */ 67#define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */
72#define I2C_DRIVERID_DS1672 81 /* Dallas/Maxim DS1672 RTC */
73#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ 68#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */
74#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ 69#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */
75#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */ 70#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */
76#define I2C_DRIVERID_WM8731 89 /* Wolfson WM8731 audio codec */
77#define I2C_DRIVERID_WM8750 90 /* Wolfson WM8750 audio codec */
78#define I2C_DRIVERID_WM8753 91 /* Wolfson WM8753 audio codec */
79#define I2C_DRIVERID_LM4857 92 /* LM4857 Audio Amplifier */
80#define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */ 71#define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */
81#define I2C_DRIVERID_CS4270 94 /* Cirrus Logic 4270 audio codec */
82#define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */ 72#define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */
83#define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */ 73#define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */
84 74
@@ -89,74 +79,23 @@
89 */ 79 */
90 80
91/* --- Bit algorithm adapters */ 81/* --- Bit algorithm adapters */
92#define I2C_HW_B_LP 0x010000 /* Parallel port Philips style */
93#define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ 82#define I2C_HW_B_BT848 0x010005 /* BT848 video boards */
94#define I2C_HW_B_VIA 0x010007 /* Via vt82c586b */
95#define I2C_HW_B_HYDRA 0x010008 /* Apple Hydra Mac I/O */
96#define I2C_HW_B_I810 0x01000a /* Intel I810 */
97#define I2C_HW_B_VOO 0x01000b /* 3dfx Voodoo 3 / Banshee */
98#define I2C_HW_B_SCX200 0x01000e /* Nat'l Semi SCx200 I2C */
99#define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */ 83#define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */
100#define I2C_HW_B_IOC 0x010011 /* IOC bit-wiggling */
101#define I2C_HW_B_IXP2000 0x010016 /* GPIO on IXP2000 systems */
102#define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */ 84#define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */
103#define I2C_HW_B_PCILYNX 0x01001a /* TI PCILynx I2C adapter */
104#define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */ 85#define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */
105#define I2C_HW_B_NVIDIA 0x01001c /* nvidia framebuffer driver */
106#define I2C_HW_B_SAVAGE 0x01001d /* savage framebuffer driver */
107#define I2C_HW_B_RADEON 0x01001e /* radeon framebuffer driver */
108#define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */ 86#define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */
109#define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ 87#define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */
110#define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */
111#define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ 88#define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */
112#define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */ 89#define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */
113 90
114/* --- PCF 8584 based algorithms */
115#define I2C_HW_P_ELEK 0x020002 /* Elektor ISA Bus inteface card */
116
117/* --- PCA 9564 based algorithms */
118#define I2C_HW_A_ISA 0x1a0000 /* generic ISA Bus interface card */
119
120/* --- PowerPC on-chip adapters */
121#define I2C_HW_OCP 0x120000 /* IBM on-chip I2C adapter */
122
123/* --- Broadcom SiByte adapters */
124#define I2C_HW_SIBYTE 0x150000
125
126/* --- SGI adapters */ 91/* --- SGI adapters */
127#define I2C_HW_SGI_VINO 0x160000 92#define I2C_HW_SGI_VINO 0x160000
128 93
129/* --- XSCALE on-chip adapters */
130#define I2C_HW_IOP3XX 0x140000
131
132/* --- Au1550 PSC adapters adapters */
133#define I2C_HW_AU1550_PSC 0x1b0000
134
135/* --- SMBus only adapters */ 94/* --- SMBus only adapters */
136#define I2C_HW_SMBUS_PIIX4 0x040000
137#define I2C_HW_SMBUS_ALI15X3 0x040001
138#define I2C_HW_SMBUS_VIA2 0x040002
139#define I2C_HW_SMBUS_I801 0x040004
140#define I2C_HW_SMBUS_AMD756 0x040005
141#define I2C_HW_SMBUS_SIS5595 0x040006
142#define I2C_HW_SMBUS_ALI1535 0x040007
143#define I2C_HW_SMBUS_SIS630 0x040008
144#define I2C_HW_SMBUS_SIS96X 0x040009
145#define I2C_HW_SMBUS_AMD8111 0x04000a
146#define I2C_HW_SMBUS_SCX200 0x04000b
147#define I2C_HW_SMBUS_NFORCE2 0x04000c
148#define I2C_HW_SMBUS_W9968CF 0x04000d 95#define I2C_HW_SMBUS_W9968CF 0x04000d
149#define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ 96#define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */
150#define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ 97#define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */
151#define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ 98#define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */
152#define I2C_HW_SMBUS_ALI1563 0x040013
153
154/* --- MCP107 adapter */
155#define I2C_HW_MPC107 0x0d0000
156
157/* --- Embedded adapters */
158#define I2C_HW_MV64XXX 0x190000
159#define I2C_HW_BLACKFIN 0x190001 /* ADI Blackfin I2C TWI driver */
160 99
161/* --- Miscellaneous adapters */ 100/* --- Miscellaneous adapters */
162#define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */ 101#define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 20873d402467..fcfbfea3af72 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -151,7 +151,7 @@ struct i2c_driver {
151 * has been dynamically allocated by the driver in the function above, 151 * has been dynamically allocated by the driver in the function above,
152 * it must be freed here. (LEGACY I2C DRIVERS ONLY) 152 * it must be freed here. (LEGACY I2C DRIVERS ONLY)
153 */ 153 */
154 int (*detach_client)(struct i2c_client *); 154 int (*detach_client)(struct i2c_client *) __deprecated;
155 155
156 /* Standard driver model interfaces, for "new style" i2c drivers. 156 /* Standard driver model interfaces, for "new style" i2c drivers.
157 * With the driver model, device enumeration is NEVER done by drivers; 157 * With the driver model, device enumeration is NEVER done by drivers;
@@ -429,8 +429,10 @@ static inline int i2c_add_driver(struct i2c_driver *driver)
429 return i2c_register_driver(THIS_MODULE, driver); 429 return i2c_register_driver(THIS_MODULE, driver);
430} 430}
431 431
432extern int i2c_attach_client(struct i2c_client *); 432/* These are deprecated, your driver should use the standard .probe()
433extern int i2c_detach_client(struct i2c_client *); 433 * and .remove() methods instead. */
434extern int __deprecated i2c_attach_client(struct i2c_client *);
435extern int __deprecated i2c_detach_client(struct i2c_client *);
434 436
435extern struct i2c_client *i2c_use_client(struct i2c_client *client); 437extern struct i2c_client *i2c_use_client(struct i2c_client *client);
436extern void i2c_release_client(struct i2c_client *client); 438extern void i2c_release_client(struct i2c_client *client);
diff --git a/include/linux/if_frad.h b/include/linux/if_frad.h
index 5c34240de746..60e16a551dd6 100644
--- a/include/linux/if_frad.h
+++ b/include/linux/if_frad.h
@@ -26,8 +26,6 @@
26 26
27#include <linux/if.h> 27#include <linux/if.h>
28 28
29#if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE)
30
31/* Structures and constants associated with the DLCI device driver */ 29/* Structures and constants associated with the DLCI device driver */
32 30
33struct dlci_add 31struct dlci_add
@@ -127,6 +125,8 @@ struct frad_conf
127 125
128#ifdef __KERNEL__ 126#ifdef __KERNEL__
129 127
128#if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE)
129
130/* these are the fields of an RFC 1490 header */ 130/* these are the fields of an RFC 1490 header */
131struct frhdr 131struct frhdr
132{ 132{
@@ -190,12 +190,10 @@ struct frad_local
190 int buffer; /* current buffer for S508 firmware */ 190 int buffer; /* current buffer for S508 firmware */
191}; 191};
192 192
193#endif /* __KERNEL__ */
194
195#endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */ 193#endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */
196 194
197#ifdef __KERNEL__
198extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *)); 195extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *));
199#endif 196
197#endif /* __KERNEL__ */
200 198
201#endif 199#endif
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 2f3c2d4ef73b..ea0ea1a4c36f 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -48,6 +48,12 @@ extern struct fs_struct init_fs;
48 .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \ 48 .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \
49 .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ 49 .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \
50 .rlim = INIT_RLIMITS, \ 50 .rlim = INIT_RLIMITS, \
51 .cputime = { .totals = { \
52 .utime = cputime_zero, \
53 .stime = cputime_zero, \
54 .sum_exec_runtime = 0, \
55 .lock = __SPIN_LOCK_UNLOCKED(sig.cputime.totals.lock), \
56 }, }, \
51} 57}
52 58
53extern struct nsproxy init_nsproxy; 59extern struct nsproxy init_nsproxy;
diff --git a/include/linux/klist.h b/include/linux/klist.h
index d5a27af9dba5..e91a4e59b771 100644
--- a/include/linux/klist.h
+++ b/include/linux/klist.h
@@ -22,7 +22,7 @@ struct klist {
22 struct list_head k_list; 22 struct list_head k_list;
23 void (*get)(struct klist_node *); 23 void (*get)(struct klist_node *);
24 void (*put)(struct klist_node *); 24 void (*put)(struct klist_node *);
25}; 25} __attribute__ ((aligned (4)));
26 26
27#define KLIST_INIT(_name, _get, _put) \ 27#define KLIST_INIT(_name, _get, _put) \
28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ 28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 80f8b8b65fde..48890cf3f96e 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -117,6 +117,10 @@ typedef int __bitwise pci_power_t;
117#define PCI_UNKNOWN ((pci_power_t __force) 5) 117#define PCI_UNKNOWN ((pci_power_t __force) 5)
118#define PCI_POWER_ERROR ((pci_power_t __force) -1) 118#define PCI_POWER_ERROR ((pci_power_t __force) -1)
119 119
120#define PCI_PM_D2_DELAY 200
121#define PCI_PM_D3_WAIT 10
122#define PCI_PM_BUS_WAIT 50
123
120/** The pci_channel state describes connectivity between the CPU and 124/** The pci_channel state describes connectivity between the CPU and
121 * the pci device. If some PCI bus between here and the pci device 125 * the pci device. If some PCI bus between here and the pci device
122 * has crashed or locked up, this info is reflected here. 126 * has crashed or locked up, this info is reflected here.
@@ -252,6 +256,7 @@ struct pci_dev {
252 unsigned int ari_enabled:1; /* ARI forwarding */ 256 unsigned int ari_enabled:1; /* ARI forwarding */
253 unsigned int is_managed:1; 257 unsigned int is_managed:1;
254 unsigned int is_pcie:1; 258 unsigned int is_pcie:1;
259 unsigned int state_saved:1;
255 pci_dev_flags_t dev_flags; 260 pci_dev_flags_t dev_flags;
256 atomic_t enable_cnt; /* pci_enable_device has been called */ 261 atomic_t enable_cnt; /* pci_enable_device has been called */
257 262
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index 21b781a3350f..0b35b3a1be05 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -24,10 +24,8 @@ void sync_dquots(struct super_block *sb, int type);
24 24
25int dquot_initialize(struct inode *inode, int type); 25int dquot_initialize(struct inode *inode, int type);
26int dquot_drop(struct inode *inode); 26int dquot_drop(struct inode *inode);
27int dquot_drop_locked(struct inode *inode);
28struct dquot *dqget(struct super_block *sb, unsigned int id, int type); 27struct dquot *dqget(struct super_block *sb, unsigned int id, int type);
29void dqput(struct dquot *dquot); 28void dqput(struct dquot *dquot);
30int dquot_is_cached(struct super_block *sb, unsigned int id, int type);
31int dquot_scan_active(struct super_block *sb, 29int dquot_scan_active(struct super_block *sb,
32 int (*fn)(struct dquot *dquot, unsigned long priv), 30 int (*fn)(struct dquot *dquot, unsigned long priv),
33 unsigned long priv); 31 unsigned long priv);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index a85b0cec7d12..681394f3a0cf 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -293,6 +293,9 @@ extern void sched_show_task(struct task_struct *p);
293extern void softlockup_tick(void); 293extern void softlockup_tick(void);
294extern void touch_softlockup_watchdog(void); 294extern void touch_softlockup_watchdog(void);
295extern void touch_all_softlockup_watchdogs(void); 295extern void touch_all_softlockup_watchdogs(void);
296extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
297 struct file *filp, void __user *buffer,
298 size_t *lenp, loff_t *ppos);
296extern unsigned int softlockup_panic; 299extern unsigned int softlockup_panic;
297extern unsigned long sysctl_hung_task_check_count; 300extern unsigned long sysctl_hung_task_check_count;
298extern unsigned long sysctl_hung_task_timeout_secs; 301extern unsigned long sysctl_hung_task_timeout_secs;
@@ -450,6 +453,7 @@ struct task_cputime {
450 cputime_t utime; 453 cputime_t utime;
451 cputime_t stime; 454 cputime_t stime;
452 unsigned long long sum_exec_runtime; 455 unsigned long long sum_exec_runtime;
456 spinlock_t lock;
453}; 457};
454/* Alternate field names when used to cache expirations. */ 458/* Alternate field names when used to cache expirations. */
455#define prof_exp stime 459#define prof_exp stime
@@ -465,7 +469,7 @@ struct task_cputime {
465 * used for thread group CPU clock calculations. 469 * used for thread group CPU clock calculations.
466 */ 470 */
467struct thread_group_cputime { 471struct thread_group_cputime {
468 struct task_cputime *totals; 472 struct task_cputime totals;
469}; 473};
470 474
471/* 475/*
@@ -2192,24 +2196,30 @@ static inline int spin_needbreak(spinlock_t *lock)
2192 * Thread group CPU time accounting. 2196 * Thread group CPU time accounting.
2193 */ 2197 */
2194 2198
2195extern int thread_group_cputime_alloc(struct task_struct *); 2199static inline
2196extern void thread_group_cputime(struct task_struct *, struct task_cputime *); 2200void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times)
2197
2198static inline void thread_group_cputime_init(struct signal_struct *sig)
2199{ 2201{
2200 sig->cputime.totals = NULL; 2202 struct task_cputime *totals = &tsk->signal->cputime.totals;
2203 unsigned long flags;
2204
2205 spin_lock_irqsave(&totals->lock, flags);
2206 *times = *totals;
2207 spin_unlock_irqrestore(&totals->lock, flags);
2201} 2208}
2202 2209
2203static inline int thread_group_cputime_clone_thread(struct task_struct *curr) 2210static inline void thread_group_cputime_init(struct signal_struct *sig)
2204{ 2211{
2205 if (curr->signal->cputime.totals) 2212 sig->cputime.totals = (struct task_cputime){
2206 return 0; 2213 .utime = cputime_zero,
2207 return thread_group_cputime_alloc(curr); 2214 .stime = cputime_zero,
2215 .sum_exec_runtime = 0,
2216 };
2217
2218 spin_lock_init(&sig->cputime.totals.lock);
2208} 2219}
2209 2220
2210static inline void thread_group_cputime_free(struct signal_struct *sig) 2221static inline void thread_group_cputime_free(struct signal_struct *sig)
2211{ 2222{
2212 free_percpu(sig->cputime.totals);
2213} 2223}
2214 2224
2215/* 2225/*
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index ba09fe88adda..7d3822243074 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -197,7 +197,9 @@ extern int usbnet_nway_reset(struct net_device *net);
197#define devdbg(usbnet, fmt, arg...) \ 197#define devdbg(usbnet, fmt, arg...) \
198 printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg) 198 printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg)
199#else 199#else
200#define devdbg(usbnet, fmt, arg...) do {} while(0) 200#define devdbg(usbnet, fmt, arg...) \
201 ({ if (0) printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , \
202 ## arg); 0; })
201#endif 203#endif
202 204
203#define deverr(usbnet, fmt, arg...) \ 205#define deverr(usbnet, fmt, arg...) \
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index b36291130f22..3cd51e579ab1 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -118,12 +118,24 @@ struct execute_work {
118 init_timer(&(_work)->timer); \ 118 init_timer(&(_work)->timer); \
119 } while (0) 119 } while (0)
120 120
121#define INIT_DELAYED_WORK_ON_STACK(_work, _func) \
122 do { \
123 INIT_WORK(&(_work)->work, (_func)); \
124 init_timer_on_stack(&(_work)->timer); \
125 } while (0)
126
121#define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ 127#define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \
122 do { \ 128 do { \
123 INIT_WORK(&(_work)->work, (_func)); \ 129 INIT_WORK(&(_work)->work, (_func)); \
124 init_timer_deferrable(&(_work)->timer); \ 130 init_timer_deferrable(&(_work)->timer); \
125 } while (0) 131 } while (0)
126 132
133#define INIT_DELAYED_WORK_ON_STACK(_work, _func) \
134 do { \
135 INIT_WORK(&(_work)->work, (_func)); \
136 init_timer_on_stack(&(_work)->timer); \
137 } while (0)
138
127/** 139/**
128 * work_pending - Find out whether a work item is currently pending 140 * work_pending - Find out whether a work item is currently pending
129 * @work: The work item in question 141 * @work: The work item in question
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index b3bd00a9d992..559422fc0943 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -322,7 +322,6 @@ struct ieee80211_tx_rate {
322 * @control: union for control data 322 * @control: union for control data
323 * @status: union for status data 323 * @status: union for status data
324 * @driver_data: array of driver_data pointers 324 * @driver_data: array of driver_data pointers
325 * @retry_count: number of retries
326 * @ampdu_ack_len: number of aggregated frames. 325 * @ampdu_ack_len: number of aggregated frames.
327 * relevant only if IEEE80211_TX_STATUS_AMPDU was set. 326 * relevant only if IEEE80211_TX_STATUS_AMPDU was set.
328 * @ampdu_ack_map: block ack bit map for the aggregation. 327 * @ampdu_ack_map: block ack bit map for the aggregation.
diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
index b799fb21519a..2fec3c366e81 100644
--- a/include/net/sctp/checksum.h
+++ b/include/net/sctp/checksum.h
@@ -79,5 +79,5 @@ static inline __be32 sctp_update_cksum(__u8 *buffer, __u16 length, __be32 crc32)
79 79
80static inline __be32 sctp_end_cksum(__be32 crc32) 80static inline __be32 sctp_end_cksum(__be32 crc32)
81{ 81{
82 return ~crc32; 82 return (__force __be32)~cpu_to_le32((__force u32)crc32);
83} 83}
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index 93a4edb148b5..dfa804958820 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -108,7 +108,7 @@
108#define SND_SOC_DAPM_SWITCH_E(wname, wreg, wshift, winvert, wcontrols, \ 108#define SND_SOC_DAPM_SWITCH_E(wname, wreg, wshift, winvert, wcontrols, \
109 wevent, wflags) \ 109 wevent, wflags) \
110{ .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \ 110{ .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \
111 .invert = winvert, .kcontrols = wcontrols, .num_kcontrols = 1 \ 111 .invert = winvert, .kcontrols = wcontrols, .num_kcontrols = 1, \
112 .event = wevent, .event_flags = wflags} 112 .event = wevent, .event_flags = wflags}
113#define SND_SOC_DAPM_MUX_E(wname, wreg, wshift, winvert, wcontrols, \ 113#define SND_SOC_DAPM_MUX_E(wname, wreg, wshift, winvert, wcontrols, \
114 wevent, wflags) \ 114 wevent, wflags) \
diff --git a/init/Kconfig b/init/Kconfig
index 2af83825634e..f068071fcc5d 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -238,6 +238,98 @@ config AUDIT_TREE
238 def_bool y 238 def_bool y
239 depends on AUDITSYSCALL && INOTIFY 239 depends on AUDITSYSCALL && INOTIFY
240 240
241menu "RCU Subsystem"
242
243choice
244 prompt "RCU Implementation"
245 default CLASSIC_RCU
246
247config CLASSIC_RCU
248 bool "Classic RCU"
249 help
250 This option selects the classic RCU implementation that is
251 designed for best read-side performance on non-realtime
252 systems.
253
254 Select this option if you are unsure.
255
256config TREE_RCU
257 bool "Tree-based hierarchical RCU"
258 help
259 This option selects the RCU implementation that is
260 designed for very large SMP system with hundreds or
261 thousands of CPUs.
262
263config PREEMPT_RCU
264 bool "Preemptible RCU"
265 depends on PREEMPT
266 help
267 This option reduces the latency of the kernel by making certain
268 RCU sections preemptible. Normally RCU code is non-preemptible, if
269 this option is selected then read-only RCU sections become
270 preemptible. This helps latency, but may expose bugs due to
271 now-naive assumptions about each RCU read-side critical section
272 remaining on a given CPU through its execution.
273
274endchoice
275
276config RCU_TRACE
277 bool "Enable tracing for RCU"
278 depends on TREE_RCU || PREEMPT_RCU
279 help
280 This option provides tracing in RCU which presents stats
281 in debugfs for debugging RCU implementation.
282
283 Say Y here if you want to enable RCU tracing
284 Say N if you are unsure.
285
286config RCU_FANOUT
287 int "Tree-based hierarchical RCU fanout value"
288 range 2 64 if 64BIT
289 range 2 32 if !64BIT
290 depends on TREE_RCU
291 default 64 if 64BIT
292 default 32 if !64BIT
293 help
294 This option controls the fanout of hierarchical implementations
295 of RCU, allowing RCU to work efficiently on machines with
296 large numbers of CPUs. This value must be at least the cube
297 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
298 systems and up to 262,144 for 64-bit systems.
299
300 Select a specific number if testing RCU itself.
301 Take the default if unsure.
302
303config RCU_FANOUT_EXACT
304 bool "Disable tree-based hierarchical RCU auto-balancing"
305 depends on TREE_RCU
306 default n
307 help
308 This option forces use of the exact RCU_FANOUT value specified,
309 regardless of imbalances in the hierarchy. This is useful for
310 testing RCU itself, and might one day be useful on systems with
311 strong NUMA behavior.
312
313 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
314
315 Say N if unsure.
316
317config TREE_RCU_TRACE
318 def_bool RCU_TRACE && TREE_RCU
319 select DEBUG_FS
320 help
321 This option provides tracing for the TREE_RCU implementation,
322 permitting Makefile to trivially select kernel/rcutree_trace.c.
323
324config PREEMPT_RCU_TRACE
325 def_bool RCU_TRACE && PREEMPT_RCU
326 select DEBUG_FS
327 help
328 This option provides tracing for the PREEMPT_RCU implementation,
329 permitting Makefile to trivially select kernel/rcupreempt_trace.c.
330
331endmenu # "RCU Subsystem"
332
241config IKCONFIG 333config IKCONFIG
242 tristate "Kernel .config support" 334 tristate "Kernel .config support"
243 ---help--- 335 ---help---
@@ -541,6 +633,14 @@ config PID_NS
541 Unless you want to work with an experimental feature 633 Unless you want to work with an experimental feature
542 say N here. 634 say N here.
543 635
636config NET_NS
637 bool "Network namespace"
638 default n
639 depends on NAMESPACES && EXPERIMENTAL && NET
640 help
641 Allow user space to create what appear to be multiple instances
642 of the network stack.
643
544config BLK_DEV_INITRD 644config BLK_DEV_INITRD
545 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 645 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
546 depends on BROKEN || !FRV 646 depends on BROKEN || !FRV
@@ -625,13 +725,6 @@ config KALLSYMS_ALL
625 725
626 Say N. 726 Say N.
627 727
628config KALLSYMS_STRIP_GENERATED
629 bool "Strip machine generated symbols from kallsyms"
630 depends on KALLSYMS_ALL
631 default y
632 help
633 Say N if you want kallsyms to retain even machine generated symbols.
634
635config KALLSYMS_EXTRA_PASS 728config KALLSYMS_EXTRA_PASS
636 bool "Do an extra kallsyms pass" 729 bool "Do an extra kallsyms pass"
637 depends on KALLSYMS 730 depends on KALLSYMS
@@ -972,90 +1065,3 @@ source "block/Kconfig"
972config PREEMPT_NOTIFIERS 1065config PREEMPT_NOTIFIERS
973 bool 1066 bool
974 1067
975choice
976 prompt "RCU Implementation"
977 default CLASSIC_RCU
978
979config CLASSIC_RCU
980 bool "Classic RCU"
981 help
982 This option selects the classic RCU implementation that is
983 designed for best read-side performance on non-realtime
984 systems.
985
986 Select this option if you are unsure.
987
988config TREE_RCU
989 bool "Tree-based hierarchical RCU"
990 help
991 This option selects the RCU implementation that is
992 designed for very large SMP system with hundreds or
993 thousands of CPUs.
994
995config PREEMPT_RCU
996 bool "Preemptible RCU"
997 depends on PREEMPT
998 help
999 This option reduces the latency of the kernel by making certain
1000 RCU sections preemptible. Normally RCU code is non-preemptible, if
1001 this option is selected then read-only RCU sections become
1002 preemptible. This helps latency, but may expose bugs due to
1003 now-naive assumptions about each RCU read-side critical section
1004 remaining on a given CPU through its execution.
1005
1006endchoice
1007
1008config RCU_TRACE
1009 bool "Enable tracing for RCU"
1010 depends on TREE_RCU || PREEMPT_RCU
1011 help
1012 This option provides tracing in RCU which presents stats
1013 in debugfs for debugging RCU implementation.
1014
1015 Say Y here if you want to enable RCU tracing
1016 Say N if you are unsure.
1017
1018config RCU_FANOUT
1019 int "Tree-based hierarchical RCU fanout value"
1020 range 2 64 if 64BIT
1021 range 2 32 if !64BIT
1022 depends on TREE_RCU
1023 default 64 if 64BIT
1024 default 32 if !64BIT
1025 help
1026 This option controls the fanout of hierarchical implementations
1027 of RCU, allowing RCU to work efficiently on machines with
1028 large numbers of CPUs. This value must be at least the cube
1029 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
1030 systems and up to 262,144 for 64-bit systems.
1031
1032 Select a specific number if testing RCU itself.
1033 Take the default if unsure.
1034
1035config RCU_FANOUT_EXACT
1036 bool "Disable tree-based hierarchical RCU auto-balancing"
1037 depends on TREE_RCU
1038 default n
1039 help
1040 This option forces use of the exact RCU_FANOUT value specified,
1041 regardless of imbalances in the hierarchy. This is useful for
1042 testing RCU itself, and might one day be useful on systems with
1043 strong NUMA behavior.
1044
1045 Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
1046
1047 Say N if unsure.
1048
1049config TREE_RCU_TRACE
1050 def_bool RCU_TRACE && TREE_RCU
1051 select DEBUG_FS
1052 help
1053 This option provides tracing for the TREE_RCU implementation,
1054 permitting Makefile to trivially select kernel/rcutree_trace.c.
1055
1056config PREEMPT_RCU_TRACE
1057 def_bool RCU_TRACE && PREEMPT_RCU
1058 select DEBUG_FS
1059 help
1060 This option provides tracing for the PREEMPT_RCU implementation,
1061 permitting Makefile to trivially select kernel/rcupreempt_trace.c.
diff --git a/kernel/dma-coherent.c b/kernel/dma-coherent.c
index 038707404b76..962a3b574f21 100644
--- a/kernel/dma-coherent.c
+++ b/kernel/dma-coherent.c
@@ -98,7 +98,7 @@ EXPORT_SYMBOL(dma_mark_declared_memory_occupied);
98 * @size: size of requested memory area 98 * @size: size of requested memory area
99 * @dma_handle: This will be filled with the correct dma handle 99 * @dma_handle: This will be filled with the correct dma handle
100 * @ret: This pointer will be filled with the virtual address 100 * @ret: This pointer will be filled with the virtual address
101 * to allocated area. 101 * to allocated area.
102 * 102 *
103 * This function should be only called from per-arch dma_alloc_coherent() 103 * This function should be only called from per-arch dma_alloc_coherent()
104 * to support allocation from per-device coherent memory pools. 104 * to support allocation from per-device coherent memory pools.
@@ -118,31 +118,32 @@ int dma_alloc_from_coherent(struct device *dev, ssize_t size,
118 mem = dev->dma_mem; 118 mem = dev->dma_mem;
119 if (!mem) 119 if (!mem)
120 return 0; 120 return 0;
121 if (unlikely(size > mem->size)) 121
122 return 0; 122 *ret = NULL;
123
124 if (unlikely(size > (mem->size << PAGE_SHIFT)))
125 goto err;
123 126
124 pageno = bitmap_find_free_region(mem->bitmap, mem->size, order); 127 pageno = bitmap_find_free_region(mem->bitmap, mem->size, order);
125 if (pageno >= 0) { 128 if (unlikely(pageno < 0))
126 /* 129 goto err;
127 * Memory was found in the per-device arena. 130
128 */ 131 /*
129 *dma_handle = mem->device_base + (pageno << PAGE_SHIFT); 132 * Memory was found in the per-device area.
130 *ret = mem->virt_base + (pageno << PAGE_SHIFT); 133 */
131 memset(*ret, 0, size); 134 *dma_handle = mem->device_base + (pageno << PAGE_SHIFT);
132 } else if (mem->flags & DMA_MEMORY_EXCLUSIVE) { 135 *ret = mem->virt_base + (pageno << PAGE_SHIFT);
133 /* 136 memset(*ret, 0, size);
134 * The per-device arena is exhausted and we are not 137
135 * permitted to fall back to generic memory.
136 */
137 *ret = NULL;
138 } else {
139 /*
140 * The per-device arena is exhausted and we are
141 * permitted to fall back to generic memory.
142 */
143 return 0;
144 }
145 return 1; 138 return 1;
139
140err:
141 /*
142 * In the case where the allocation can not be satisfied from the
143 * per-device area, try to fall back to generic memory if the
144 * constraints allow it.
145 */
146 return mem->flags & DMA_MEMORY_EXCLUSIVE;
146} 147}
147EXPORT_SYMBOL(dma_alloc_from_coherent); 148EXPORT_SYMBOL(dma_alloc_from_coherent);
148 149
diff --git a/kernel/fork.c b/kernel/fork.c
index 5ba5f5d24899..99309df985bf 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -822,17 +822,17 @@ static void posix_cpu_timers_init_group(struct signal_struct *sig)
822static int copy_signal(unsigned long clone_flags, struct task_struct *tsk) 822static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
823{ 823{
824 struct signal_struct *sig; 824 struct signal_struct *sig;
825 int ret;
826 825
827 if (clone_flags & CLONE_THREAD) { 826 if (clone_flags & CLONE_THREAD) {
828 ret = thread_group_cputime_clone_thread(current); 827 atomic_inc(&current->signal->count);
829 if (likely(!ret)) { 828 atomic_inc(&current->signal->live);
830 atomic_inc(&current->signal->count); 829 return 0;
831 atomic_inc(&current->signal->live);
832 }
833 return ret;
834 } 830 }
835 sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL); 831 sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL);
832
833 if (sig)
834 posix_cpu_timers_init_group(sig);
835
836 tsk->signal = sig; 836 tsk->signal = sig;
837 if (!sig) 837 if (!sig)
838 return -ENOMEM; 838 return -ENOMEM;
@@ -869,8 +869,6 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
869 memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim); 869 memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim);
870 task_unlock(current->group_leader); 870 task_unlock(current->group_leader);
871 871
872 posix_cpu_timers_init_group(sig);
873
874 acct_init_pacct(&sig->pacct); 872 acct_init_pacct(&sig->pacct);
875 873
876 tty_audit_fork(sig); 874 tty_audit_fork(sig);
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index 2dc30c59c5fd..f33afb0407bc 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -614,7 +614,9 @@ void clock_was_set(void)
614 */ 614 */
615void hres_timers_resume(void) 615void hres_timers_resume(void)
616{ 616{
617 /* Retrigger the CPU local events: */ 617 WARN_ONCE(!irqs_disabled(),
618 KERN_INFO "hres_timers_resume() called with IRQs enabled!");
619
618 retrigger_next_event(NULL); 620 retrigger_next_event(NULL);
619} 621}
620 622
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index e694afa0eb8c..7b8b0f21a5b1 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -30,19 +30,20 @@
30#define all_var 0 30#define all_var 0
31#endif 31#endif
32 32
33extern const unsigned long kallsyms_addresses[]; 33/* These will be re-linked against their real values during the second link stage */
34extern const u8 kallsyms_names[]; 34extern const unsigned long kallsyms_addresses[] __attribute__((weak));
35extern const u8 kallsyms_names[] __attribute__((weak));
35 36
36/* tell the compiler that the count isn't in the small data section if the arch 37/* tell the compiler that the count isn't in the small data section if the arch
37 * has one (eg: FRV) 38 * has one (eg: FRV)
38 */ 39 */
39extern const unsigned long kallsyms_num_syms 40extern const unsigned long kallsyms_num_syms
40 __attribute__((__section__(".rodata"))); 41__attribute__((weak, section(".rodata")));
41 42
42extern const u8 kallsyms_token_table[]; 43extern const u8 kallsyms_token_table[] __attribute__((weak));
43extern const u16 kallsyms_token_index[]; 44extern const u16 kallsyms_token_index[] __attribute__((weak));
44 45
45extern const unsigned long kallsyms_markers[]; 46extern const unsigned long kallsyms_markers[] __attribute__((weak));
46 47
47static inline int is_kernel_inittext(unsigned long addr) 48static inline int is_kernel_inittext(unsigned long addr)
48{ 49{
@@ -167,6 +168,9 @@ static unsigned long get_symbol_pos(unsigned long addr,
167 unsigned long symbol_start = 0, symbol_end = 0; 168 unsigned long symbol_start = 0, symbol_end = 0;
168 unsigned long i, low, high, mid; 169 unsigned long i, low, high, mid;
169 170
171 /* This kernel should never had been booted. */
172 BUG_ON(!kallsyms_addresses);
173
170 /* do a binary search on the sorted kallsyms_addresses array */ 174 /* do a binary search on the sorted kallsyms_addresses array */
171 low = 0; 175 low = 0;
172 high = kallsyms_num_syms; 176 high = kallsyms_num_syms;
diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
index 157de3a47832..fa07da94d7be 100644
--- a/kernel/posix-cpu-timers.c
+++ b/kernel/posix-cpu-timers.c
@@ -10,76 +10,6 @@
10#include <linux/kernel_stat.h> 10#include <linux/kernel_stat.h>
11 11
12/* 12/*
13 * Allocate the thread_group_cputime structure appropriately and fill in the
14 * current values of the fields. Called from copy_signal() via
15 * thread_group_cputime_clone_thread() when adding a second or subsequent
16 * thread to a thread group. Assumes interrupts are enabled when called.
17 */
18int thread_group_cputime_alloc(struct task_struct *tsk)
19{
20 struct signal_struct *sig = tsk->signal;
21 struct task_cputime *cputime;
22
23 /*
24 * If we have multiple threads and we don't already have a
25 * per-CPU task_cputime struct (checked in the caller), allocate
26 * one and fill it in with the times accumulated so far. We may
27 * race with another thread so recheck after we pick up the sighand
28 * lock.
29 */
30 cputime = alloc_percpu(struct task_cputime);
31 if (cputime == NULL)
32 return -ENOMEM;
33 spin_lock_irq(&tsk->sighand->siglock);
34 if (sig->cputime.totals) {
35 spin_unlock_irq(&tsk->sighand->siglock);
36 free_percpu(cputime);
37 return 0;
38 }
39 sig->cputime.totals = cputime;
40 cputime = per_cpu_ptr(sig->cputime.totals, smp_processor_id());
41 cputime->utime = tsk->utime;
42 cputime->stime = tsk->stime;
43 cputime->sum_exec_runtime = tsk->se.sum_exec_runtime;
44 spin_unlock_irq(&tsk->sighand->siglock);
45 return 0;
46}
47
48/**
49 * thread_group_cputime - Sum the thread group time fields across all CPUs.
50 *
51 * @tsk: The task we use to identify the thread group.
52 * @times: task_cputime structure in which we return the summed fields.
53 *
54 * Walk the list of CPUs to sum the per-CPU time fields in the thread group
55 * time structure.
56 */
57void thread_group_cputime(
58 struct task_struct *tsk,
59 struct task_cputime *times)
60{
61 struct task_cputime *totals, *tot;
62 int i;
63
64 totals = tsk->signal->cputime.totals;
65 if (!totals) {
66 times->utime = tsk->utime;
67 times->stime = tsk->stime;
68 times->sum_exec_runtime = tsk->se.sum_exec_runtime;
69 return;
70 }
71
72 times->stime = times->utime = cputime_zero;
73 times->sum_exec_runtime = 0;
74 for_each_possible_cpu(i) {
75 tot = per_cpu_ptr(totals, i);
76 times->utime = cputime_add(times->utime, tot->utime);
77 times->stime = cputime_add(times->stime, tot->stime);
78 times->sum_exec_runtime += tot->sum_exec_runtime;
79 }
80}
81
82/*
83 * Called after updating RLIMIT_CPU to set timer expiration if necessary. 13 * Called after updating RLIMIT_CPU to set timer expiration if necessary.
84 */ 14 */
85void update_rlimit_cpu(unsigned long rlim_new) 15void update_rlimit_cpu(unsigned long rlim_new)
diff --git a/kernel/rcuclassic.c b/kernel/rcuclassic.c
index 490934fc7ac3..bd5a9003497c 100644
--- a/kernel/rcuclassic.c
+++ b/kernel/rcuclassic.c
@@ -716,7 +716,7 @@ void rcu_check_callbacks(int cpu, int user)
716 raise_rcu_softirq(); 716 raise_rcu_softirq();
717} 717}
718 718
719static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, 719static void __cpuinit rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
720 struct rcu_data *rdp) 720 struct rcu_data *rdp)
721{ 721{
722 unsigned long flags; 722 unsigned long flags;
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index f2d8638e6c60..b2fd602a6f6f 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1314,7 +1314,7 @@ int rcu_needs_cpu(int cpu)
1314 * access due to the fact that this CPU cannot possibly have any RCU 1314 * access due to the fact that this CPU cannot possibly have any RCU
1315 * callbacks in flight yet. 1315 * callbacks in flight yet.
1316 */ 1316 */
1317static void 1317static void __cpuinit
1318rcu_init_percpu_data(int cpu, struct rcu_state *rsp) 1318rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
1319{ 1319{
1320 unsigned long flags; 1320 unsigned long flags;
diff --git a/kernel/relay.c b/kernel/relay.c
index 09ac2008f77b..9d79b7854fa6 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -663,8 +663,10 @@ int relay_late_setup_files(struct rchan *chan,
663 663
664 mutex_lock(&relay_channels_mutex); 664 mutex_lock(&relay_channels_mutex);
665 /* Is chan already set up? */ 665 /* Is chan already set up? */
666 if (unlikely(chan->has_base_filename)) 666 if (unlikely(chan->has_base_filename)) {
667 mutex_unlock(&relay_channels_mutex);
667 return -EEXIST; 668 return -EEXIST;
669 }
668 chan->has_base_filename = 1; 670 chan->has_base_filename = 1;
669 chan->parent = parent; 671 chan->parent = parent;
670 curr_cpu = get_cpu(); 672 curr_cpu = get_cpu();
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h
index f2773b5d1226..8ab0cef8ecab 100644
--- a/kernel/sched_stats.h
+++ b/kernel/sched_stats.h
@@ -296,6 +296,7 @@ sched_info_switch(struct task_struct *prev, struct task_struct *next)
296static inline void account_group_user_time(struct task_struct *tsk, 296static inline void account_group_user_time(struct task_struct *tsk,
297 cputime_t cputime) 297 cputime_t cputime)
298{ 298{
299 struct task_cputime *times;
299 struct signal_struct *sig; 300 struct signal_struct *sig;
300 301
301 /* tsk == current, ensure it is safe to use ->signal */ 302 /* tsk == current, ensure it is safe to use ->signal */
@@ -303,13 +304,11 @@ static inline void account_group_user_time(struct task_struct *tsk,
303 return; 304 return;
304 305
305 sig = tsk->signal; 306 sig = tsk->signal;
306 if (sig->cputime.totals) { 307 times = &sig->cputime.totals;
307 struct task_cputime *times;
308 308
309 times = per_cpu_ptr(sig->cputime.totals, get_cpu()); 309 spin_lock(&times->lock);
310 times->utime = cputime_add(times->utime, cputime); 310 times->utime = cputime_add(times->utime, cputime);
311 put_cpu_no_resched(); 311 spin_unlock(&times->lock);
312 }
313} 312}
314 313
315/** 314/**
@@ -325,6 +324,7 @@ static inline void account_group_user_time(struct task_struct *tsk,
325static inline void account_group_system_time(struct task_struct *tsk, 324static inline void account_group_system_time(struct task_struct *tsk,
326 cputime_t cputime) 325 cputime_t cputime)
327{ 326{
327 struct task_cputime *times;
328 struct signal_struct *sig; 328 struct signal_struct *sig;
329 329
330 /* tsk == current, ensure it is safe to use ->signal */ 330 /* tsk == current, ensure it is safe to use ->signal */
@@ -332,13 +332,11 @@ static inline void account_group_system_time(struct task_struct *tsk,
332 return; 332 return;
333 333
334 sig = tsk->signal; 334 sig = tsk->signal;
335 if (sig->cputime.totals) { 335 times = &sig->cputime.totals;
336 struct task_cputime *times;
337 336
338 times = per_cpu_ptr(sig->cputime.totals, get_cpu()); 337 spin_lock(&times->lock);
339 times->stime = cputime_add(times->stime, cputime); 338 times->stime = cputime_add(times->stime, cputime);
340 put_cpu_no_resched(); 339 spin_unlock(&times->lock);
341 }
342} 340}
343 341
344/** 342/**
@@ -354,6 +352,7 @@ static inline void account_group_system_time(struct task_struct *tsk,
354static inline void account_group_exec_runtime(struct task_struct *tsk, 352static inline void account_group_exec_runtime(struct task_struct *tsk,
355 unsigned long long ns) 353 unsigned long long ns)
356{ 354{
355 struct task_cputime *times;
357 struct signal_struct *sig; 356 struct signal_struct *sig;
358 357
359 sig = tsk->signal; 358 sig = tsk->signal;
@@ -362,11 +361,9 @@ static inline void account_group_exec_runtime(struct task_struct *tsk,
362 if (unlikely(!sig)) 361 if (unlikely(!sig))
363 return; 362 return;
364 363
365 if (sig->cputime.totals) { 364 times = &sig->cputime.totals;
366 struct task_cputime *times;
367 365
368 times = per_cpu_ptr(sig->cputime.totals, get_cpu()); 366 spin_lock(&times->lock);
369 times->sum_exec_runtime += ns; 367 times->sum_exec_runtime += ns;
370 put_cpu_no_resched(); 368 spin_unlock(&times->lock);
371 }
372} 369}
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index d9188c66278a..85d5a2455103 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -16,6 +16,7 @@
16#include <linux/lockdep.h> 16#include <linux/lockdep.h>
17#include <linux/notifier.h> 17#include <linux/notifier.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/sysctl.h>
19 20
20#include <asm/irq_regs.h> 21#include <asm/irq_regs.h>
21 22
@@ -88,6 +89,14 @@ void touch_all_softlockup_watchdogs(void)
88} 89}
89EXPORT_SYMBOL(touch_all_softlockup_watchdogs); 90EXPORT_SYMBOL(touch_all_softlockup_watchdogs);
90 91
92int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
93 struct file *filp, void __user *buffer,
94 size_t *lenp, loff_t *ppos)
95{
96 touch_all_softlockup_watchdogs();
97 return proc_dointvec_minmax(table, write, filp, buffer, lenp, ppos);
98}
99
91/* 100/*
92 * This callback runs from the timer interrupt, and checks 101 * This callback runs from the timer interrupt, and checks
93 * whether the watchdog thread has hung or not: 102 * whether the watchdog thread has hung or not:
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 368d1638ee78..790f9d785663 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -809,7 +809,7 @@ static struct ctl_table kern_table[] = {
809 .data = &softlockup_thresh, 809 .data = &softlockup_thresh,
810 .maxlen = sizeof(int), 810 .maxlen = sizeof(int),
811 .mode = 0644, 811 .mode = 0644,
812 .proc_handler = &proc_dointvec_minmax, 812 .proc_handler = &proc_dosoftlockup_thresh,
813 .strategy = &sysctl_intvec, 813 .strategy = &sysctl_intvec,
814 .extra1 = &neg_one, 814 .extra1 = &neg_one,
815 .extra2 = &sixty, 815 .extra2 = &sixty,
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 1b6c05bd0d0a..d3f1ef4d5cbe 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -134,7 +134,7 @@ __setup("nohz=", setup_tick_nohz);
134 * value. We do this unconditionally on any cpu, as we don't know whether the 134 * value. We do this unconditionally on any cpu, as we don't know whether the
135 * cpu, which has the update task assigned is in a long sleep. 135 * cpu, which has the update task assigned is in a long sleep.
136 */ 136 */
137void tick_nohz_update_jiffies(void) 137static void tick_nohz_update_jiffies(void)
138{ 138{
139 int cpu = smp_processor_id(); 139 int cpu = smp_processor_id();
140 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); 140 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 4c9ae6085c75..29044f500269 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -570,6 +570,15 @@ config DEBUG_NOTIFIERS
570 This is a relatively cheap check but if you care about maximum 570 This is a relatively cheap check but if you care about maximum
571 performance, say N. 571 performance, say N.
572 572
573#
574# Select this config option from the architecture Kconfig, if it
575# it is preferred to always offer frame pointers as a config
576# option on the architecture (regardless of KERNEL_DEBUG):
577#
578config ARCH_WANT_FRAME_POINTERS
579 bool
580 help
581
573config FRAME_POINTER 582config FRAME_POINTER
574 bool "Compile the kernel with frame pointers" 583 bool "Compile the kernel with frame pointers"
575 depends on DEBUG_KERNEL && \ 584 depends on DEBUG_KERNEL && \
@@ -633,19 +642,6 @@ config RCU_TORTURE_TEST_RUNNABLE
633 642
634config RCU_CPU_STALL_DETECTOR 643config RCU_CPU_STALL_DETECTOR
635 bool "Check for stalled CPUs delaying RCU grace periods" 644 bool "Check for stalled CPUs delaying RCU grace periods"
636 depends on CLASSIC_RCU
637 default n
638 help
639 This option causes RCU to printk information on which
640 CPUs are delaying the current grace period, but only when
641 the grace period extends for excessive time periods.
642
643 Say Y if you want RCU to perform such checks.
644
645 Say N if you are unsure.
646
647config RCU_CPU_STALL_DETECTOR
648 bool "Check for stalled CPUs delaying RCU grace periods"
649 depends on CLASSIC_RCU || TREE_RCU 645 depends on CLASSIC_RCU || TREE_RCU
650 default n 646 default n
651 help 647 help
diff --git a/mm/nommu.c b/mm/nommu.c
index 8cee8c8ff0f2..0c3e7d2114f6 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -10,7 +10,7 @@
10 * Copyright (c) 2000-2003 David McCullough <davidm@snapgear.com> 10 * Copyright (c) 2000-2003 David McCullough <davidm@snapgear.com>
11 * Copyright (c) 2000-2001 D Jeff Dionne <jeff@uClinux.org> 11 * Copyright (c) 2000-2001 D Jeff Dionne <jeff@uClinux.org>
12 * Copyright (c) 2002 Greg Ungerer <gerg@snapgear.com> 12 * Copyright (c) 2002 Greg Ungerer <gerg@snapgear.com>
13 * Copyright (c) 2007-2008 Paul Mundt <lethal@linux-sh.org> 13 * Copyright (c) 2007-2009 Paul Mundt <lethal@linux-sh.org>
14 */ 14 */
15 15
16#include <linux/module.h> 16#include <linux/module.h>
@@ -394,6 +394,24 @@ void vunmap(const void *addr)
394} 394}
395EXPORT_SYMBOL(vunmap); 395EXPORT_SYMBOL(vunmap);
396 396
397void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t prot)
398{
399 BUG();
400 return NULL;
401}
402EXPORT_SYMBOL(vm_map_ram);
403
404void vm_unmap_ram(const void *mem, unsigned int count)
405{
406 BUG();
407}
408EXPORT_SYMBOL(vm_unmap_ram);
409
410void vm_unmap_aliases(void)
411{
412}
413EXPORT_SYMBOL_GPL(vm_unmap_aliases);
414
397/* 415/*
398 * Implement a stub for vmalloc_sync_all() if the architecture chose not to 416 * Implement a stub for vmalloc_sync_all() if the architecture chose not to
399 * have one. 417 * have one.
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 6c1323940263..e9db889d6222 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -62,13 +62,13 @@ struct net_device *vlan_dev_real_dev(const struct net_device *dev)
62{ 62{
63 return vlan_dev_info(dev)->real_dev; 63 return vlan_dev_info(dev)->real_dev;
64} 64}
65EXPORT_SYMBOL_GPL(vlan_dev_real_dev); 65EXPORT_SYMBOL(vlan_dev_real_dev);
66 66
67u16 vlan_dev_vlan_id(const struct net_device *dev) 67u16 vlan_dev_vlan_id(const struct net_device *dev)
68{ 68{
69 return vlan_dev_info(dev)->vlan_id; 69 return vlan_dev_info(dev)->vlan_id;
70} 70}
71EXPORT_SYMBOL_GPL(vlan_dev_vlan_id); 71EXPORT_SYMBOL(vlan_dev_vlan_id);
72 72
73static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, 73static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
74 unsigned int vlan_tci, struct sk_buff *skb) 74 unsigned int vlan_tci, struct sk_buff *skb)
diff --git a/net/9p/client.c b/net/9p/client.c
index 821f1ec0b2c3..1eb580c38fbb 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -618,7 +618,7 @@ static struct p9_fid *p9_fid_create(struct p9_client *clnt)
618 return ERR_PTR(-ENOMEM); 618 return ERR_PTR(-ENOMEM);
619 619
620 ret = p9_idpool_get(clnt->fidpool); 620 ret = p9_idpool_get(clnt->fidpool);
621 if (fid->fid < 0) { 621 if (ret < 0) {
622 ret = -ENOSPC; 622 ret = -ENOSPC;
623 goto error; 623 goto error;
624 } 624 }
diff --git a/net/Kconfig b/net/Kconfig
index bf2776018f71..cdb8fdef6c4a 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -24,14 +24,6 @@ if NET
24 24
25menu "Networking options" 25menu "Networking options"
26 26
27config NET_NS
28 bool "Network namespace support"
29 default n
30 depends on EXPERIMENTAL && NAMESPACES
31 help
32 Allow user space to create what appear to be multiple instances
33 of the network stack.
34
35config COMPAT_NET_DEV_OPS 27config COMPAT_NET_DEV_OPS
36 def_bool y 28 def_bool y
37 29
diff --git a/net/core/dev.c b/net/core/dev.c
index 8d675975d85b..5379b0c1190a 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1534,7 +1534,19 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)
1534 skb->mac_len = skb->network_header - skb->mac_header; 1534 skb->mac_len = skb->network_header - skb->mac_header;
1535 __skb_pull(skb, skb->mac_len); 1535 __skb_pull(skb, skb->mac_len);
1536 1536
1537 if (WARN_ON(skb->ip_summed != CHECKSUM_PARTIAL)) { 1537 if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
1538 struct net_device *dev = skb->dev;
1539 struct ethtool_drvinfo info = {};
1540
1541 if (dev && dev->ethtool_ops && dev->ethtool_ops->get_drvinfo)
1542 dev->ethtool_ops->get_drvinfo(dev, &info);
1543
1544 WARN(1, "%s: caps=(0x%lx, 0x%lx) len=%d data_len=%d "
1545 "ip_summed=%d",
1546 info.driver, dev ? dev->features : 0L,
1547 skb->sk ? skb->sk->sk_route_caps : 0L,
1548 skb->len, skb->data_len, skb->ip_summed);
1549
1538 if (skb_header_cloned(skb) && 1550 if (skb_header_cloned(skb) &&
1539 (err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC))) 1551 (err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC)))
1540 return ERR_PTR(err); 1552 return ERR_PTR(err);
@@ -2524,6 +2536,7 @@ struct sk_buff *napi_fraginfo_skb(struct napi_struct *napi,
2524 2536
2525 if (!pskb_may_pull(skb, ETH_HLEN)) { 2537 if (!pskb_may_pull(skb, ETH_HLEN)) {
2526 napi_reuse_skb(napi, skb); 2538 napi_reuse_skb(napi, skb);
2539 skb = NULL;
2527 goto out; 2540 goto out;
2528 } 2541 }
2529 2542
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 55cffad2f328..55151faaf90c 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -341,8 +341,8 @@ again:
341 rv = register_pernet_operations(first_device, ops); 341 rv = register_pernet_operations(first_device, ops);
342 if (rv < 0) 342 if (rv < 0)
343 ida_remove(&net_generic_ids, *id); 343 ida_remove(&net_generic_ids, *id);
344 mutex_unlock(&net_mutex);
345out: 344out:
345 mutex_unlock(&net_mutex);
346 return rv; 346 return rv;
347} 347}
348EXPORT_SYMBOL_GPL(register_pernet_gen_subsys); 348EXPORT_SYMBOL_GPL(register_pernet_gen_subsys);
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 65eac7739033..2e5f2ca3bdcd 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -73,17 +73,13 @@ static struct kmem_cache *skbuff_fclone_cache __read_mostly;
73static void sock_pipe_buf_release(struct pipe_inode_info *pipe, 73static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
74 struct pipe_buffer *buf) 74 struct pipe_buffer *buf)
75{ 75{
76 struct sk_buff *skb = (struct sk_buff *) buf->private; 76 put_page(buf->page);
77
78 kfree_skb(skb);
79} 77}
80 78
81static void sock_pipe_buf_get(struct pipe_inode_info *pipe, 79static void sock_pipe_buf_get(struct pipe_inode_info *pipe,
82 struct pipe_buffer *buf) 80 struct pipe_buffer *buf)
83{ 81{
84 struct sk_buff *skb = (struct sk_buff *) buf->private; 82 get_page(buf->page);
85
86 skb_get(skb);
87} 83}
88 84
89static int sock_pipe_buf_steal(struct pipe_inode_info *pipe, 85static int sock_pipe_buf_steal(struct pipe_inode_info *pipe,
@@ -1334,9 +1330,19 @@ fault:
1334 */ 1330 */
1335static void sock_spd_release(struct splice_pipe_desc *spd, unsigned int i) 1331static void sock_spd_release(struct splice_pipe_desc *spd, unsigned int i)
1336{ 1332{
1337 struct sk_buff *skb = (struct sk_buff *) spd->partial[i].private; 1333 put_page(spd->pages[i]);
1334}
1338 1335
1339 kfree_skb(skb); 1336static inline struct page *linear_to_page(struct page *page, unsigned int len,
1337 unsigned int offset)
1338{
1339 struct page *p = alloc_pages(GFP_KERNEL, 0);
1340
1341 if (!p)
1342 return NULL;
1343 memcpy(page_address(p) + offset, page_address(page) + offset, len);
1344
1345 return p;
1340} 1346}
1341 1347
1342/* 1348/*
@@ -1344,16 +1350,23 @@ static void sock_spd_release(struct splice_pipe_desc *spd, unsigned int i)
1344 */ 1350 */
1345static inline int spd_fill_page(struct splice_pipe_desc *spd, struct page *page, 1351static inline int spd_fill_page(struct splice_pipe_desc *spd, struct page *page,
1346 unsigned int len, unsigned int offset, 1352 unsigned int len, unsigned int offset,
1347 struct sk_buff *skb) 1353 struct sk_buff *skb, int linear)
1348{ 1354{
1349 if (unlikely(spd->nr_pages == PIPE_BUFFERS)) 1355 if (unlikely(spd->nr_pages == PIPE_BUFFERS))
1350 return 1; 1356 return 1;
1351 1357
1358 if (linear) {
1359 page = linear_to_page(page, len, offset);
1360 if (!page)
1361 return 1;
1362 } else
1363 get_page(page);
1364
1352 spd->pages[spd->nr_pages] = page; 1365 spd->pages[spd->nr_pages] = page;
1353 spd->partial[spd->nr_pages].len = len; 1366 spd->partial[spd->nr_pages].len = len;
1354 spd->partial[spd->nr_pages].offset = offset; 1367 spd->partial[spd->nr_pages].offset = offset;
1355 spd->partial[spd->nr_pages].private = (unsigned long) skb_get(skb);
1356 spd->nr_pages++; 1368 spd->nr_pages++;
1369
1357 return 0; 1370 return 0;
1358} 1371}
1359 1372
@@ -1369,7 +1382,7 @@ static inline void __segment_seek(struct page **page, unsigned int *poff,
1369static inline int __splice_segment(struct page *page, unsigned int poff, 1382static inline int __splice_segment(struct page *page, unsigned int poff,
1370 unsigned int plen, unsigned int *off, 1383 unsigned int plen, unsigned int *off,
1371 unsigned int *len, struct sk_buff *skb, 1384 unsigned int *len, struct sk_buff *skb,
1372 struct splice_pipe_desc *spd) 1385 struct splice_pipe_desc *spd, int linear)
1373{ 1386{
1374 if (!*len) 1387 if (!*len)
1375 return 1; 1388 return 1;
@@ -1392,7 +1405,7 @@ static inline int __splice_segment(struct page *page, unsigned int poff,
1392 /* the linear region may spread across several pages */ 1405 /* the linear region may spread across several pages */
1393 flen = min_t(unsigned int, flen, PAGE_SIZE - poff); 1406 flen = min_t(unsigned int, flen, PAGE_SIZE - poff);
1394 1407
1395 if (spd_fill_page(spd, page, flen, poff, skb)) 1408 if (spd_fill_page(spd, page, flen, poff, skb, linear))
1396 return 1; 1409 return 1;
1397 1410
1398 __segment_seek(&page, &poff, &plen, flen); 1411 __segment_seek(&page, &poff, &plen, flen);
@@ -1419,7 +1432,7 @@ static int __skb_splice_bits(struct sk_buff *skb, unsigned int *offset,
1419 if (__splice_segment(virt_to_page(skb->data), 1432 if (__splice_segment(virt_to_page(skb->data),
1420 (unsigned long) skb->data & (PAGE_SIZE - 1), 1433 (unsigned long) skb->data & (PAGE_SIZE - 1),
1421 skb_headlen(skb), 1434 skb_headlen(skb),
1422 offset, len, skb, spd)) 1435 offset, len, skb, spd, 1))
1423 return 1; 1436 return 1;
1424 1437
1425 /* 1438 /*
@@ -1429,7 +1442,7 @@ static int __skb_splice_bits(struct sk_buff *skb, unsigned int *offset,
1429 const skb_frag_t *f = &skb_shinfo(skb)->frags[seg]; 1442 const skb_frag_t *f = &skb_shinfo(skb)->frags[seg];
1430 1443
1431 if (__splice_segment(f->page, f->page_offset, f->size, 1444 if (__splice_segment(f->page, f->page_offset, f->size,
1432 offset, len, skb, spd)) 1445 offset, len, skb, spd, 0))
1433 return 1; 1446 return 1;
1434 } 1447 }
1435 1448
@@ -1442,7 +1455,7 @@ static int __skb_splice_bits(struct sk_buff *skb, unsigned int *offset,
1442 * the frag list, if such a thing exists. We'd probably need to recurse to 1455 * the frag list, if such a thing exists. We'd probably need to recurse to
1443 * handle that cleanly. 1456 * handle that cleanly.
1444 */ 1457 */
1445int skb_splice_bits(struct sk_buff *__skb, unsigned int offset, 1458int skb_splice_bits(struct sk_buff *skb, unsigned int offset,
1446 struct pipe_inode_info *pipe, unsigned int tlen, 1459 struct pipe_inode_info *pipe, unsigned int tlen,
1447 unsigned int flags) 1460 unsigned int flags)
1448{ 1461{
@@ -1455,16 +1468,6 @@ int skb_splice_bits(struct sk_buff *__skb, unsigned int offset,
1455 .ops = &sock_pipe_buf_ops, 1468 .ops = &sock_pipe_buf_ops,
1456 .spd_release = sock_spd_release, 1469 .spd_release = sock_spd_release,
1457 }; 1470 };
1458 struct sk_buff *skb;
1459
1460 /*
1461 * I'd love to avoid the clone here, but tcp_read_sock()
1462 * ignores reference counts and unconditonally kills the sk_buff
1463 * on return from the actor.
1464 */
1465 skb = skb_clone(__skb, GFP_KERNEL);
1466 if (unlikely(!skb))
1467 return -ENOMEM;
1468 1471
1469 /* 1472 /*
1470 * __skb_splice_bits() only fails if the output has no room left, 1473 * __skb_splice_bits() only fails if the output has no room left,
@@ -1488,15 +1491,9 @@ int skb_splice_bits(struct sk_buff *__skb, unsigned int offset,
1488 } 1491 }
1489 1492
1490done: 1493done:
1491 /*
1492 * drop our reference to the clone, the pipe consumption will
1493 * drop the rest.
1494 */
1495 kfree_skb(skb);
1496
1497 if (spd.nr_pages) { 1494 if (spd.nr_pages) {
1495 struct sock *sk = skb->sk;
1498 int ret; 1496 int ret;
1499 struct sock *sk = __skb->sk;
1500 1497
1501 /* 1498 /*
1502 * Drop the socket lock, otherwise we have reverse 1499 * Drop the socket lock, otherwise we have reverse
@@ -2588,8 +2585,9 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb)
2588 struct sk_buff *nskb; 2585 struct sk_buff *nskb;
2589 unsigned int headroom; 2586 unsigned int headroom;
2590 unsigned int hlen = p->data - skb_mac_header(p); 2587 unsigned int hlen = p->data - skb_mac_header(p);
2588 unsigned int len = skb->len;
2591 2589
2592 if (hlen + p->len + skb->len >= 65536) 2590 if (hlen + p->len + len >= 65536)
2593 return -E2BIG; 2591 return -E2BIG;
2594 2592
2595 if (skb_shinfo(p)->frag_list) 2593 if (skb_shinfo(p)->frag_list)
@@ -2651,9 +2649,9 @@ merge:
2651 2649
2652done: 2650done:
2653 NAPI_GRO_CB(p)->count++; 2651 NAPI_GRO_CB(p)->count++;
2654 p->data_len += skb->len; 2652 p->data_len += len;
2655 p->truesize += skb->len; 2653 p->truesize += len;
2656 p->len += skb->len; 2654 p->len += len;
2657 2655
2658 NAPI_GRO_CB(skb)->same_flow = 1; 2656 NAPI_GRO_CB(skb)->same_flow = 1;
2659 return 0; 2657 return 0;
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 94f74f5b0cbf..c802bc1658a8 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -797,6 +797,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head,
797 unsigned int nlen; 797 unsigned int nlen;
798 int flush = 1; 798 int flush = 1;
799 int proto; 799 int proto;
800 __wsum csum;
800 801
801 if (unlikely(!pskb_may_pull(skb, sizeof(*iph)))) 802 if (unlikely(!pskb_may_pull(skb, sizeof(*iph))))
802 goto out; 803 goto out;
@@ -808,6 +809,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head,
808 809
809 rcu_read_lock(); 810 rcu_read_lock();
810 proto = ipv6_gso_pull_exthdrs(skb, iph->nexthdr); 811 proto = ipv6_gso_pull_exthdrs(skb, iph->nexthdr);
812 iph = ipv6_hdr(skb);
811 IPV6_GRO_CB(skb)->proto = proto; 813 IPV6_GRO_CB(skb)->proto = proto;
812 ops = rcu_dereference(inet6_protos[proto]); 814 ops = rcu_dereference(inet6_protos[proto]);
813 if (!ops || !ops->gro_receive) 815 if (!ops || !ops->gro_receive)
@@ -839,8 +841,13 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head,
839 841
840 NAPI_GRO_CB(skb)->flush |= flush; 842 NAPI_GRO_CB(skb)->flush |= flush;
841 843
844 csum = skb->csum;
845 skb_postpull_rcsum(skb, iph, skb_network_header_len(skb));
846
842 pp = ops->gro_receive(head, skb); 847 pp = ops->gro_receive(head, skb);
843 848
849 skb->csum = csum;
850
844out_unlock: 851out_unlock:
845 rcu_read_unlock(); 852 rcu_read_unlock();
846 853
diff --git a/net/key/af_key.c b/net/key/af_key.c
index f8bd8df5e257..7dcbde3ea7d9 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1285,6 +1285,7 @@ static struct xfrm_state * pfkey_msg2xfrm_state(struct net *net,
1285 ext_hdrs[SADB_X_EXT_NAT_T_DPORT-1]; 1285 ext_hdrs[SADB_X_EXT_NAT_T_DPORT-1];
1286 natt->encap_dport = n_port->sadb_x_nat_t_port_port; 1286 natt->encap_dport = n_port->sadb_x_nat_t_port_port;
1287 } 1287 }
1288 memset(&natt->encap_oa, 0, sizeof(natt->encap_oa));
1288 } 1289 }
1289 1290
1290 err = xfrm_init_state(x); 1291 err = xfrm_init_state(x);
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 5ba721b6a399..2b890af01ba4 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -620,8 +620,8 @@ static u32 ieee80211_handle_bss_capability(struct ieee80211_sub_if_data *sdata,
620 if (use_short_slot != bss_conf->use_short_slot) { 620 if (use_short_slot != bss_conf->use_short_slot) {
621#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 621#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
622 if (net_ratelimit()) { 622 if (net_ratelimit()) {
623 printk(KERN_DEBUG "%s: switched to %s slot" 623 printk(KERN_DEBUG "%s: switched to %s slot time"
624 " (BSSID=%s)\n", 624 " (BSSID=%pM)\n",
625 sdata->dev->name, 625 sdata->dev->name,
626 use_short_slot ? "short" : "long", 626 use_short_slot ? "short" : "long",
627 ifsta->bssid); 627 ifsta->bssid);
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index dc2606d0ae77..e49a5b99cf10 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -195,7 +195,6 @@ struct sta_ampdu_mlme {
195 * @tx_packets: number of RX/TX MSDUs 195 * @tx_packets: number of RX/TX MSDUs
196 * @tx_bytes: number of bytes transmitted to this STA 196 * @tx_bytes: number of bytes transmitted to this STA
197 * @tx_fragments: number of transmitted MPDUs 197 * @tx_fragments: number of transmitted MPDUs
198 * @last_txrate: description of the last used transmit rate
199 * @tid_seq: per-TID sequence numbers for sending to this STA 198 * @tid_seq: per-TID sequence numbers for sending to this STA
200 * @ampdu_mlme: A-MPDU state machine state 199 * @ampdu_mlme: A-MPDU state machine state
201 * @timer_to_tid: identity mapping to ID timers 200 * @timer_to_tid: identity mapping to ID timers
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index a4af3a124cce..4278e545638f 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1307,8 +1307,10 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev)
1307 if (is_multicast_ether_addr(hdr->addr3)) 1307 if (is_multicast_ether_addr(hdr->addr3))
1308 memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); 1308 memcpy(hdr->addr1, hdr->addr3, ETH_ALEN);
1309 else 1309 else
1310 if (mesh_nexthop_lookup(skb, osdata)) 1310 if (mesh_nexthop_lookup(skb, osdata)) {
1311 return 0; 1311 dev_put(odev);
1312 return 0;
1313 }
1312 if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) 1314 if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0)
1313 IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, 1315 IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh,
1314 fwded_frames); 1316 fwded_frames);
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index 3dddec6d2f7e..c32a7e8e3a1b 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -831,13 +831,16 @@ ctnetlink_parse_nat_setup(struct nf_conn *ct,
831 if (!parse_nat_setup) { 831 if (!parse_nat_setup) {
832#ifdef CONFIG_MODULES 832#ifdef CONFIG_MODULES
833 rcu_read_unlock(); 833 rcu_read_unlock();
834 spin_unlock_bh(&nf_conntrack_lock);
834 nfnl_unlock(); 835 nfnl_unlock();
835 if (request_module("nf-nat-ipv4") < 0) { 836 if (request_module("nf-nat-ipv4") < 0) {
836 nfnl_lock(); 837 nfnl_lock();
838 spin_lock_bh(&nf_conntrack_lock);
837 rcu_read_lock(); 839 rcu_read_lock();
838 return -EOPNOTSUPP; 840 return -EOPNOTSUPP;
839 } 841 }
840 nfnl_lock(); 842 nfnl_lock();
843 spin_lock_bh(&nf_conntrack_lock);
841 rcu_read_lock(); 844 rcu_read_lock();
842 if (nfnetlink_parse_nat_setup_hook) 845 if (nfnetlink_parse_nat_setup_hook)
843 return -EAGAIN; 846 return -EAGAIN;
diff --git a/net/sctp/input.c b/net/sctp/input.c
index bf612d954d41..2e4a8646dbc3 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -249,6 +249,19 @@ int sctp_rcv(struct sk_buff *skb)
249 */ 249 */
250 sctp_bh_lock_sock(sk); 250 sctp_bh_lock_sock(sk);
251 251
252 if (sk != rcvr->sk) {
253 /* Our cached sk is different from the rcvr->sk. This is
254 * because migrate()/accept() may have moved the association
255 * to a new socket and released all the sockets. So now we
256 * are holding a lock on the old socket while the user may
257 * be doing something with the new socket. Switch our veiw
258 * of the current sk.
259 */
260 sctp_bh_unlock_sock(sk);
261 sk = rcvr->sk;
262 sctp_bh_lock_sock(sk);
263 }
264
252 if (sock_owned_by_user(sk)) { 265 if (sock_owned_by_user(sk)) {
253 SCTP_INC_STATS_BH(SCTP_MIB_IN_PKT_BACKLOG); 266 SCTP_INC_STATS_BH(SCTP_MIB_IN_PKT_BACKLOG);
254 sctp_add_backlog(sk, skb); 267 sctp_add_backlog(sk, skb);
diff --git a/net/sctp/output.c b/net/sctp/output.c
index c3f417f7ec6e..73639355157e 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -324,14 +324,16 @@ append:
324 switch (chunk->chunk_hdr->type) { 324 switch (chunk->chunk_hdr->type) {
325 case SCTP_CID_DATA: 325 case SCTP_CID_DATA:
326 retval = sctp_packet_append_data(packet, chunk); 326 retval = sctp_packet_append_data(packet, chunk);
327 if (SCTP_XMIT_OK != retval)
328 goto finish;
327 /* Disallow SACK bundling after DATA. */ 329 /* Disallow SACK bundling after DATA. */
328 packet->has_sack = 1; 330 packet->has_sack = 1;
329 /* Disallow AUTH bundling after DATA */ 331 /* Disallow AUTH bundling after DATA */
330 packet->has_auth = 1; 332 packet->has_auth = 1;
331 /* Let it be knows that packet has DATA in it */ 333 /* Let it be knows that packet has DATA in it */
332 packet->has_data = 1; 334 packet->has_data = 1;
333 if (SCTP_XMIT_OK != retval) 335 /* timestamp the chunk for rtx purposes */
334 goto finish; 336 chunk->sent_at = jiffies;
335 break; 337 break;
336 case SCTP_CID_COOKIE_ECHO: 338 case SCTP_CID_COOKIE_ECHO:
337 packet->has_cookie_echo = 1; 339 packet->has_cookie_echo = 1;
@@ -470,7 +472,6 @@ int sctp_packet_transmit(struct sctp_packet *packet)
470 } else 472 } else
471 chunk->resent = 1; 473 chunk->resent = 1;
472 474
473 chunk->sent_at = jiffies;
474 has_data = 1; 475 has_data = 1;
475 } 476 }
476 477
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index 247ebc95c1e5..bc411c896216 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -929,7 +929,6 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
929 } 929 }
930 930
931 /* Finally, transmit new packets. */ 931 /* Finally, transmit new packets. */
932 start_timer = 0;
933 while ((chunk = sctp_outq_dequeue_data(q)) != NULL) { 932 while ((chunk = sctp_outq_dequeue_data(q)) != NULL) {
934 /* RFC 2960 6.5 Every DATA chunk MUST carry a valid 933 /* RFC 2960 6.5 Every DATA chunk MUST carry a valid
935 * stream identifier. 934 * stream identifier.
@@ -1028,7 +1027,7 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
1028 list_add_tail(&chunk->transmitted_list, 1027 list_add_tail(&chunk->transmitted_list,
1029 &transport->transmitted); 1028 &transport->transmitted);
1030 1029
1031 sctp_transport_reset_timers(transport, start_timer-1); 1030 sctp_transport_reset_timers(transport, 0);
1032 1031
1033 q->empty = 0; 1032 q->empty = 0;
1034 1033
diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
new file mode 100644
index 000000000000..eda4a7aee596
--- /dev/null
+++ b/net/sunrpc/Kconfig
@@ -0,0 +1,79 @@
1config SUNRPC
2 tristate
3
4config SUNRPC_GSS
5 tristate
6
7config SUNRPC_XPRT_RDMA
8 tristate
9 depends on SUNRPC && INFINIBAND && EXPERIMENTAL
10 default SUNRPC && INFINIBAND
11 help
12 This option enables an RPC client transport capability that
13 allows the NFS client to mount servers via an RDMA-enabled
14 transport.
15
16 To compile RPC client RDMA transport support as a module,
17 choose M here: the module will be called xprtrdma.
18
19 If unsure, say N.
20
21config SUNRPC_REGISTER_V4
22 bool "Register local RPC services via rpcbind v4 (EXPERIMENTAL)"
23 depends on SUNRPC && EXPERIMENTAL
24 default n
25 help
26 Sun added support for registering RPC services at an IPv6
27 address by creating two new versions of the rpcbind protocol
28 (RFC 1833).
29
30 This option enables support in the kernel RPC server for
31 registering kernel RPC services via version 4 of the rpcbind
32 protocol. If you enable this option, you must run a portmapper
33 daemon that supports rpcbind protocol version 4.
34
35 Serving NFS over IPv6 from knfsd (the kernel's NFS server)
36 requires that you enable this option and use a portmapper that
37 supports rpcbind version 4.
38
39 If unsure, say N to get traditional behavior (register kernel
40 RPC services using only rpcbind version 2). Distributions
41 using the legacy Linux portmapper daemon must say N here.
42
43config RPCSEC_GSS_KRB5
44 tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)"
45 depends on SUNRPC && EXPERIMENTAL
46 select SUNRPC_GSS
47 select CRYPTO
48 select CRYPTO_MD5
49 select CRYPTO_DES
50 select CRYPTO_CBC
51 help
52 Choose Y here to enable Secure RPC using the Kerberos version 5
53 GSS-API mechanism (RFC 1964).
54
55 Secure RPC calls with Kerberos require an auxiliary user-space
56 daemon which may be found in the Linux nfs-utils package
57 available from http://linux-nfs.org/. In addition, user-space
58 Kerberos support should be installed.
59
60 If unsure, say N.
61
62config RPCSEC_GSS_SPKM3
63 tristate "Secure RPC: SPKM3 mechanism (EXPERIMENTAL)"
64 depends on SUNRPC && EXPERIMENTAL
65 select SUNRPC_GSS
66 select CRYPTO
67 select CRYPTO_MD5
68 select CRYPTO_DES
69 select CRYPTO_CAST5
70 select CRYPTO_CBC
71 help
72 Choose Y here to enable Secure RPC using the SPKM3 public key
73 GSS-API mechansim (RFC 2025).
74
75 Secure RPC calls with SPKM3 require an auxiliary userspace
76 daemon which may be found in the Linux nfs-utils package
77 available from http://linux-nfs.org/.
78
79 If unsure, say N.
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 4f877535e666..bc494cef2102 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -421,6 +421,31 @@ static u32 freq_max_bandwidth(const struct ieee80211_freq_range *freq_range,
421 return 0; 421 return 0;
422} 422}
423 423
424/**
425 * freq_in_rule_band - tells us if a frequency is in a frequency band
426 * @freq_range: frequency rule we want to query
427 * @freq_khz: frequency we are inquiring about
428 *
429 * This lets us know if a specific frequency rule is or is not relevant to
430 * a specific frequency's band. Bands are device specific and artificial
431 * definitions (the "2.4 GHz band" and the "5 GHz band"), however it is
432 * safe for now to assume that a frequency rule should not be part of a
433 * frequency's band if the start freq or end freq are off by more than 2 GHz.
434 * This resolution can be lowered and should be considered as we add
435 * regulatory rule support for other "bands".
436 **/
437static bool freq_in_rule_band(const struct ieee80211_freq_range *freq_range,
438 u32 freq_khz)
439{
440#define ONE_GHZ_IN_KHZ 1000000
441 if (abs(freq_khz - freq_range->start_freq_khz) <= (2 * ONE_GHZ_IN_KHZ))
442 return true;
443 if (abs(freq_khz - freq_range->end_freq_khz) <= (2 * ONE_GHZ_IN_KHZ))
444 return true;
445 return false;
446#undef ONE_GHZ_IN_KHZ
447}
448
424/* Converts a country IE to a regulatory domain. A regulatory domain 449/* Converts a country IE to a regulatory domain. A regulatory domain
425 * structure has a lot of information which the IE doesn't yet have, 450 * structure has a lot of information which the IE doesn't yet have,
426 * so for the other values we use upper max values as we will intersect 451 * so for the other values we use upper max values as we will intersect
@@ -538,6 +563,7 @@ static struct ieee80211_regdomain *country_ie_2_rd(
538 563
539 /* This time around we fill in the rd */ 564 /* This time around we fill in the rd */
540 while (country_ie_len >= 3) { 565 while (country_ie_len >= 3) {
566 int end_channel = 0;
541 struct ieee80211_country_ie_triplet *triplet = 567 struct ieee80211_country_ie_triplet *triplet =
542 (struct ieee80211_country_ie_triplet *) country_ie; 568 (struct ieee80211_country_ie_triplet *) country_ie;
543 struct ieee80211_reg_rule *reg_rule = NULL; 569 struct ieee80211_reg_rule *reg_rule = NULL;
@@ -559,6 +585,23 @@ static struct ieee80211_regdomain *country_ie_2_rd(
559 585
560 reg_rule->flags = flags; 586 reg_rule->flags = flags;
561 587
588 /* 2 GHz */
589 if (triplet->chans.first_channel <= 14)
590 end_channel = triplet->chans.first_channel +
591 triplet->chans.num_channels;
592 else
593 /*
594 * 5 GHz -- For example in country IEs if the first
595 * channel given is 36 and the number of channels is 4
596 * then the individual channel numbers defined for the
597 * 5 GHz PHY by these parameters are: 36, 40, 44, and 48
598 * and not 36, 37, 38, 39.
599 *
600 * See: http://tinyurl.com/11d-clarification
601 */
602 end_channel = triplet->chans.first_channel +
603 (4 * (triplet->chans.num_channels - 1));
604
562 /* The +10 is since the regulatory domain expects 605 /* The +10 is since the regulatory domain expects
563 * the actual band edge, not the center of freq for 606 * the actual band edge, not the center of freq for
564 * its start and end freqs, assuming 20 MHz bandwidth on 607 * its start and end freqs, assuming 20 MHz bandwidth on
@@ -568,8 +611,7 @@ static struct ieee80211_regdomain *country_ie_2_rd(
568 triplet->chans.first_channel) - 10); 611 triplet->chans.first_channel) - 10);
569 freq_range->end_freq_khz = 612 freq_range->end_freq_khz =
570 MHZ_TO_KHZ(ieee80211_channel_to_frequency( 613 MHZ_TO_KHZ(ieee80211_channel_to_frequency(
571 triplet->chans.first_channel + 614 end_channel) + 10);
572 triplet->chans.num_channels) + 10);
573 615
574 /* Large arbitrary values, we intersect later */ 616 /* Large arbitrary values, we intersect later */
575 /* Increment this if we ever support >= 40 MHz channels 617 /* Increment this if we ever support >= 40 MHz channels
@@ -748,12 +790,23 @@ static u32 map_regdom_flags(u32 rd_flags)
748 * this value to the maximum allowed bandwidth. 790 * this value to the maximum allowed bandwidth.
749 * @reg_rule: the regulatory rule which we have for this frequency 791 * @reg_rule: the regulatory rule which we have for this frequency
750 * 792 *
751 * Use this function to get the regulatory rule for a specific frequency. 793 * Use this function to get the regulatory rule for a specific frequency on
794 * a given wireless device. If the device has a specific regulatory domain
795 * it wants to follow we respect that unless a country IE has been received
796 * and processed already.
797 *
798 * Returns 0 if it was able to find a valid regulatory rule which does
799 * apply to the given center_freq otherwise it returns non-zero. It will
800 * also return -ERANGE if we determine the given center_freq does not even have
801 * a regulatory rule for a frequency range in the center_freq's band. See
802 * freq_in_rule_band() for our current definition of a band -- this is purely
803 * subjective and right now its 802.11 specific.
752 */ 804 */
753static int freq_reg_info(u32 center_freq, u32 *bandwidth, 805static int freq_reg_info(u32 center_freq, u32 *bandwidth,
754 const struct ieee80211_reg_rule **reg_rule) 806 const struct ieee80211_reg_rule **reg_rule)
755{ 807{
756 int i; 808 int i;
809 bool band_rule_found = false;
757 u32 max_bandwidth = 0; 810 u32 max_bandwidth = 0;
758 811
759 if (!cfg80211_regdomain) 812 if (!cfg80211_regdomain)
@@ -767,7 +820,15 @@ static int freq_reg_info(u32 center_freq, u32 *bandwidth,
767 rr = &cfg80211_regdomain->reg_rules[i]; 820 rr = &cfg80211_regdomain->reg_rules[i];
768 fr = &rr->freq_range; 821 fr = &rr->freq_range;
769 pr = &rr->power_rule; 822 pr = &rr->power_rule;
823
824 /* We only need to know if one frequency rule was
825 * was in center_freq's band, that's enough, so lets
826 * not overwrite it once found */
827 if (!band_rule_found)
828 band_rule_found = freq_in_rule_band(fr, center_freq);
829
770 max_bandwidth = freq_max_bandwidth(fr, center_freq); 830 max_bandwidth = freq_max_bandwidth(fr, center_freq);
831
771 if (max_bandwidth && *bandwidth <= max_bandwidth) { 832 if (max_bandwidth && *bandwidth <= max_bandwidth) {
772 *reg_rule = rr; 833 *reg_rule = rr;
773 *bandwidth = max_bandwidth; 834 *bandwidth = max_bandwidth;
@@ -775,23 +836,64 @@ static int freq_reg_info(u32 center_freq, u32 *bandwidth,
775 } 836 }
776 } 837 }
777 838
839 if (!band_rule_found)
840 return -ERANGE;
841
778 return !max_bandwidth; 842 return !max_bandwidth;
779} 843}
780 844
781static void handle_channel(struct ieee80211_channel *chan) 845static void handle_channel(struct wiphy *wiphy, enum ieee80211_band band,
846 unsigned int chan_idx)
782{ 847{
783 int r; 848 int r;
784 u32 flags = chan->orig_flags; 849 u32 flags;
785 u32 max_bandwidth = 0; 850 u32 max_bandwidth = 0;
786 const struct ieee80211_reg_rule *reg_rule = NULL; 851 const struct ieee80211_reg_rule *reg_rule = NULL;
787 const struct ieee80211_power_rule *power_rule = NULL; 852 const struct ieee80211_power_rule *power_rule = NULL;
853 struct ieee80211_supported_band *sband;
854 struct ieee80211_channel *chan;
855
856 sband = wiphy->bands[band];
857 BUG_ON(chan_idx >= sband->n_channels);
858 chan = &sband->channels[chan_idx];
859
860 flags = chan->orig_flags;
788 861
789 r = freq_reg_info(MHZ_TO_KHZ(chan->center_freq), 862 r = freq_reg_info(MHZ_TO_KHZ(chan->center_freq),
790 &max_bandwidth, &reg_rule); 863 &max_bandwidth, &reg_rule);
791 864
792 if (r) { 865 if (r) {
793 flags |= IEEE80211_CHAN_DISABLED; 866 /* This means no regulatory rule was found in the country IE
794 chan->flags = flags; 867 * with a frequency range on the center_freq's band, since
868 * IEEE-802.11 allows for a country IE to have a subset of the
869 * regulatory information provided in a country we ignore
870 * disabling the channel unless at least one reg rule was
871 * found on the center_freq's band. For details see this
872 * clarification:
873 *
874 * http://tinyurl.com/11d-clarification
875 */
876 if (r == -ERANGE &&
877 last_request->initiator == REGDOM_SET_BY_COUNTRY_IE) {
878#ifdef CONFIG_CFG80211_REG_DEBUG
879 printk(KERN_DEBUG "cfg80211: Leaving channel %d MHz "
880 "intact on %s - no rule found in band on "
881 "Country IE\n",
882 chan->center_freq, wiphy_name(wiphy));
883#endif
884 } else {
885 /* In this case we know the country IE has at least one reg rule
886 * for the band so we respect its band definitions */
887#ifdef CONFIG_CFG80211_REG_DEBUG
888 if (last_request->initiator == REGDOM_SET_BY_COUNTRY_IE)
889 printk(KERN_DEBUG "cfg80211: Disabling "
890 "channel %d MHz on %s due to "
891 "Country IE\n",
892 chan->center_freq, wiphy_name(wiphy));
893#endif
894 flags |= IEEE80211_CHAN_DISABLED;
895 chan->flags = flags;
896 }
795 return; 897 return;
796 } 898 }
797 899
@@ -808,12 +910,16 @@ static void handle_channel(struct ieee80211_channel *chan)
808 chan->max_power = (int) MBM_TO_DBM(power_rule->max_eirp); 910 chan->max_power = (int) MBM_TO_DBM(power_rule->max_eirp);
809} 911}
810 912
811static void handle_band(struct ieee80211_supported_band *sband) 913static void handle_band(struct wiphy *wiphy, enum ieee80211_band band)
812{ 914{
813 int i; 915 unsigned int i;
916 struct ieee80211_supported_band *sband;
917
918 BUG_ON(!wiphy->bands[band]);
919 sband = wiphy->bands[band];
814 920
815 for (i = 0; i < sband->n_channels; i++) 921 for (i = 0; i < sband->n_channels; i++)
816 handle_channel(&sband->channels[i]); 922 handle_channel(wiphy, band, i);
817} 923}
818 924
819static bool ignore_reg_update(struct wiphy *wiphy, enum reg_set_by setby) 925static bool ignore_reg_update(struct wiphy *wiphy, enum reg_set_by setby)
@@ -840,7 +946,7 @@ void wiphy_update_regulatory(struct wiphy *wiphy, enum reg_set_by setby)
840 enum ieee80211_band band; 946 enum ieee80211_band band;
841 for (band = 0; band < IEEE80211_NUM_BANDS; band++) { 947 for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
842 if (wiphy->bands[band]) 948 if (wiphy->bands[band])
843 handle_band(wiphy->bands[band]); 949 handle_band(wiphy, band);
844 if (wiphy->reg_notifier) 950 if (wiphy->reg_notifier)
845 wiphy->reg_notifier(wiphy, setby); 951 wiphy->reg_notifier(wiphy, setby);
846 } 952 }
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 7877e7975dae..b95a2d64eb59 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -1914,17 +1914,10 @@ static int xfrm_send_migrate(struct xfrm_selector *sel, u8 dir, u8 type,
1914} 1914}
1915#endif 1915#endif
1916 1916
1917/* For the xfrm_usersa_info cases we have to work around some 32-bit vs.
1918 * 64-bit compatability issues. On 32-bit the structure is 220 bytes, but
1919 * for 64-bit it gets padded out to 224 bytes. Those bytes are just
1920 * padding and don't have any content we care about. Therefore as long
1921 * as we have enough bytes for the content we can make both cases work.
1922 */
1923
1924#define XMSGSIZE(type) sizeof(struct type) 1917#define XMSGSIZE(type) sizeof(struct type)
1925 1918
1926static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = { 1919static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = {
1927 [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = 220, /* see above */ 1920 [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info),
1928 [XFRM_MSG_DELSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), 1921 [XFRM_MSG_DELSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id),
1929 [XFRM_MSG_GETSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), 1922 [XFRM_MSG_GETSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id),
1930 [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), 1923 [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info),
@@ -1934,7 +1927,7 @@ static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = {
1934 [XFRM_MSG_ACQUIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_acquire), 1927 [XFRM_MSG_ACQUIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_acquire),
1935 [XFRM_MSG_EXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_expire), 1928 [XFRM_MSG_EXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_expire),
1936 [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), 1929 [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info),
1937 [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = 220, /* see above */ 1930 [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info),
1938 [XFRM_MSG_POLEXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_polexpire), 1931 [XFRM_MSG_POLEXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_polexpire),
1939 [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_flush), 1932 [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_flush),
1940 [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = 0, 1933 [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = 0,
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 5d900307de3e..c7de8b39fcf1 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -151,16 +151,16 @@ cmd_cc_i_c = $(CPP) $(c_flags) -o $@ $<
151$(obj)/%.i: $(src)/%.c FORCE 151$(obj)/%.i: $(src)/%.c FORCE
152 $(call if_changed_dep,cc_i_c) 152 $(call if_changed_dep,cc_i_c)
153 153
154cmd_genksyms = \ 154cmd_gensymtypes = \
155 $(CPP) -D__GENKSYMS__ $(c_flags) $< | \ 155 $(CPP) -D__GENKSYMS__ $(c_flags) $< | \
156 $(GENKSYMS) -T $@ -A -a $(ARCH) \ 156 $(GENKSYMS) -T $@ -a $(ARCH) \
157 $(if $(KBUILD_PRESERVE),-p) \ 157 $(if $(KBUILD_PRESERVE),-p) \
158 $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null))) 158 $(if $(1),-r $(firstword $(wildcard $(@:.symtypes=.symref) /dev/null)))
159 159
160quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@ 160quiet_cmd_cc_symtypes_c = SYM $(quiet_modtag) $@
161cmd_cc_symtypes_c = \ 161cmd_cc_symtypes_c = \
162 set -e; \ 162 set -e; \
163 $(call cmd_genksyms, true) >/dev/null; \ 163 $(call cmd_gensymtypes, true) >/dev/null; \
164 test -s $@ || rm -f $@ 164 test -s $@ || rm -f $@
165 165
166$(obj)/%.symtypes : $(src)/%.c FORCE 166$(obj)/%.symtypes : $(src)/%.c FORCE
@@ -177,38 +177,28 @@ cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
177 177
178else 178else
179# When module versioning is enabled the following steps are executed: 179# When module versioning is enabled the following steps are executed:
180# o compile a .tmp_<file>.s from <file>.c 180# o compile a .tmp_<file>.o from <file>.c
181# o if .tmp_<file>.s doesn't contain a __ksymtab version, i.e. does 181# o if .tmp_<file>.o doesn't contain a __ksymtab version, i.e. does
182# not export symbols, we just assemble .tmp_<file>.s to <file>.o and 182# not export symbols, we just rename .tmp_<file>.o to <file>.o and
183# are done. 183# are done.
184# o otherwise, we calculate symbol versions using the good old 184# o otherwise, we calculate symbol versions using the good old
185# genksyms on the preprocessed source and postprocess them in a way 185# genksyms on the preprocessed source and postprocess them in a way
186# that they are usable as assembly source 186# that they are usable as a linker script
187# o assemble <file>.o from .tmp_<file>.s forcing inclusion of directives 187# o generate <file>.o from .tmp_<file>.o using the linker to
188# defining the actual values of __crc_*, followed by objcopy-ing them 188# replace the unresolved symbols __crc_exported_symbol with
189# to force these symbols to be local to permit stripping them later. 189# the actual value of the checksum generated by genksyms
190s_file = $(@D)/.tmp_$(@F:.o=.s)
191v_file = $(@D)/.tmp_$(@F:.o=.v)
192tmp_o_file = $(@D)/.tmp_$(@F)
193no_g_c_flags = $(filter-out -g%,$(c_flags))
194
195cmd_cc_o_c = $(CC) $(c_flags) -S -o $(s_file) $<
196 190
191cmd_cc_o_c = $(CC) $(c_flags) -c -o $(@D)/.tmp_$(@F) $<
197cmd_modversions = \ 192cmd_modversions = \
198 if grep -q __ksymtab $(s_file); then \ 193 if $(OBJDUMP) -h $(@D)/.tmp_$(@F) | grep -q __ksymtab; then \
199 if $(call cmd_genksyms, $(KBUILD_SYMTYPES)) > $(v_file) \ 194 $(call cmd_gensymtypes, $(KBUILD_SYMTYPES)) \
200 && $(CC) $(no_g_c_flags) -c -Wa,$(v_file) \ 195 > $(@D)/.tmp_$(@F:.o=.ver); \
201 -o $(tmp_o_file) $(s_file) \ 196 \
202 && $(OBJCOPY) -L '__crc_*' -L '___crc_*' -w \ 197 $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \
203 $(tmp_o_file) $@; \ 198 -T $(@D)/.tmp_$(@F:.o=.ver); \
204 then \ 199 rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \
205 : ; \
206 else \
207 rm -f $@; exit 1; \
208 fi; \
209 else \ 200 else \
210 rm -f $(v_file); \ 201 mv -f $(@D)/.tmp_$(@F) $@; \
211 $(CC) $(no_g_c_flags) -c -o $@ $(s_file); \
212 fi; 202 fi;
213endif 203endif
214 204
@@ -225,12 +215,7 @@ define rule_cc_o_c
225 $(cmd_record_mcount) \ 215 $(cmd_record_mcount) \
226 scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \ 216 scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' > \
227 $(dot-target).tmp; \ 217 $(dot-target).tmp; \
228 if [ -r $(@D)/.tmp_$(@F:.o=.v) ]; then \ 218 rm -f $(depfile); \
229 echo >> $(dot-target).tmp; \
230 echo '$@: $(GENKSYMS)' >> $(dot-target).tmp; \
231 echo '$(GENKSYMS):: ;' >> $(dot-target).tmp; \
232 fi; \
233 rm -f $(depfile) $(@D)/.tmp_$(@F:.o=.?); \
234 mv -f $(dot-target).tmp $(dot-target).cmd 219 mv -f $(dot-target).tmp $(dot-target).cmd
235endef 220endef
236 221
diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
index a5122dce1264..efa5d940e632 100644
--- a/scripts/Makefile.modinst
+++ b/scripts/Makefile.modinst
@@ -17,8 +17,7 @@ __modinst: $(modules)
17 @: 17 @:
18 18
19quiet_cmd_modules_install = INSTALL $@ 19quiet_cmd_modules_install = INSTALL $@
20 cmd_modules_install = mkdir -p $(2); \ 20 cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@)
21 $(mod_strip_cmd) $@ $(2)/$(notdir $@) || cp $@ $(2)
22 21
23# Modules built outside the kernel source tree go into extra by default 22# Modules built outside the kernel source tree go into extra by default
24INSTALL_MOD_DIR ?= extra 23INSTALL_MOD_DIR ?= extra
diff --git a/scripts/config b/scripts/config
index 68b9761cdc38..db6084b78a10 100755
--- a/scripts/config
+++ b/scripts/config
@@ -60,6 +60,10 @@ else
60 FN=.config 60 FN=.config
61fi 61fi
62 62
63if [ "$1" = "" ] ; then
64 usage
65fi
66
63while [ "$1" != "" ] ; do 67while [ "$1" != "" ] ; do
64 CMD="$1" 68 CMD="$1"
65 shift 69 shift
diff --git a/scripts/genksyms/genksyms.c b/scripts/genksyms/genksyms.c
index f8bb4cabd62d..3a8297b5184c 100644
--- a/scripts/genksyms/genksyms.c
+++ b/scripts/genksyms/genksyms.c
@@ -43,7 +43,7 @@ int cur_line = 1;
43char *cur_filename; 43char *cur_filename;
44 44
45static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types, 45static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types,
46 flag_preserve, flag_warnings, flag_asm; 46 flag_preserve, flag_warnings;
47static const char *arch = ""; 47static const char *arch = "";
48static const char *mod_prefix = ""; 48static const char *mod_prefix = "";
49 49
@@ -610,11 +610,8 @@ void export_symbol(const char *name)
610 if (flag_dump_defs) 610 if (flag_dump_defs)
611 fputs(">\n", debugfile); 611 fputs(">\n", debugfile);
612 612
613 /* Used as assembly source or a linker script. */ 613 /* Used as a linker script. */
614 printf(flag_asm 614 printf("%s__crc_%s = 0x%08lx ;\n", mod_prefix, name, crc);
615 ? ".equiv %s__crc_%s, %#08lx\n"
616 : "%s__crc_%s = %#08lx ;\n",
617 mod_prefix, name, crc);
618 } 615 }
619} 616}
620 617
@@ -651,10 +648,9 @@ void error_with_pos(const char *fmt, ...)
651 648
652static void genksyms_usage(void) 649static void genksyms_usage(void)
653{ 650{
654 fputs("Usage:\n" "genksyms [-aAdDTwqhV] > /path/to/.tmp_obj.ver\n" "\n" 651 fputs("Usage:\n" "genksyms [-adDTwqhV] > /path/to/.tmp_obj.ver\n" "\n"
655#ifdef __GNU_LIBRARY__ 652#ifdef __GNU_LIBRARY__
656 " -a, --arch Select architecture\n" 653 " -a, --arch Select architecture\n"
657 " -A, --asm Generate assembly rather than linker script\n"
658 " -d, --debug Increment the debug level (repeatable)\n" 654 " -d, --debug Increment the debug level (repeatable)\n"
659 " -D, --dump Dump expanded symbol defs (for debugging only)\n" 655 " -D, --dump Dump expanded symbol defs (for debugging only)\n"
660 " -r, --reference file Read reference symbols from a file\n" 656 " -r, --reference file Read reference symbols from a file\n"
@@ -666,7 +662,6 @@ static void genksyms_usage(void)
666 " -V, --version Print the release version\n" 662 " -V, --version Print the release version\n"
667#else /* __GNU_LIBRARY__ */ 663#else /* __GNU_LIBRARY__ */
668 " -a Select architecture\n" 664 " -a Select architecture\n"
669 " -A Generate assembly rather than linker script\n"
670 " -d Increment the debug level (repeatable)\n" 665 " -d Increment the debug level (repeatable)\n"
671 " -D Dump expanded symbol defs (for debugging only)\n" 666 " -D Dump expanded symbol defs (for debugging only)\n"
672 " -r file Read reference symbols from a file\n" 667 " -r file Read reference symbols from a file\n"
@@ -688,7 +683,6 @@ int main(int argc, char **argv)
688#ifdef __GNU_LIBRARY__ 683#ifdef __GNU_LIBRARY__
689 struct option long_opts[] = { 684 struct option long_opts[] = {
690 {"arch", 1, 0, 'a'}, 685 {"arch", 1, 0, 'a'},
691 {"asm", 0, 0, 'A'},
692 {"debug", 0, 0, 'd'}, 686 {"debug", 0, 0, 'd'},
693 {"warnings", 0, 0, 'w'}, 687 {"warnings", 0, 0, 'w'},
694 {"quiet", 0, 0, 'q'}, 688 {"quiet", 0, 0, 'q'},
@@ -701,10 +695,10 @@ int main(int argc, char **argv)
701 {0, 0, 0, 0} 695 {0, 0, 0, 0}
702 }; 696 };
703 697
704 while ((o = getopt_long(argc, argv, "a:dwqVADr:T:ph", 698 while ((o = getopt_long(argc, argv, "a:dwqVDr:T:ph",
705 &long_opts[0], NULL)) != EOF) 699 &long_opts[0], NULL)) != EOF)
706#else /* __GNU_LIBRARY__ */ 700#else /* __GNU_LIBRARY__ */
707 while ((o = getopt(argc, argv, "a:dwqVADr:T:ph")) != EOF) 701 while ((o = getopt(argc, argv, "a:dwqVDr:T:ph")) != EOF)
708#endif /* __GNU_LIBRARY__ */ 702#endif /* __GNU_LIBRARY__ */
709 switch (o) { 703 switch (o) {
710 case 'a': 704 case 'a':
@@ -722,9 +716,6 @@ int main(int argc, char **argv)
722 case 'V': 716 case 'V':
723 fputs("genksyms version 2.5.60\n", stderr); 717 fputs("genksyms version 2.5.60\n", stderr);
724 break; 718 break;
725 case 'A':
726 flag_asm = 1;
727 break;
728 case 'D': 719 case 'D':
729 flag_dump_defs = 1; 720 flag_dump_defs = 1;
730 break; 721 break;
diff --git a/scripts/genksyms/keywords.c_shipped b/scripts/genksyms/keywords.c_shipped
index 83484fe93ede..971e0113ae7a 100644
--- a/scripts/genksyms/keywords.c_shipped
+++ b/scripts/genksyms/keywords.c_shipped
@@ -1,4 +1,4 @@
1/* ANSI-C code produced by gperf version 3.0.1 */ 1/* ANSI-C code produced by gperf version 3.0.2 */
2/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */ 2/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
3 3
4#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ 4#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -32,7 +32,7 @@
32 32
33#line 3 "scripts/genksyms/keywords.gperf" 33#line 3 "scripts/genksyms/keywords.gperf"
34struct resword { const char *name; int token; }; 34struct resword { const char *name; int token; };
35/* maximum key range = 64, duplicates = 0 */ 35/* maximum key range = 62, duplicates = 0 */
36 36
37#ifdef __GNUC__ 37#ifdef __GNUC__
38__inline 38__inline
@@ -46,32 +46,32 @@ is_reserved_hash (register const char *str, register unsigned int len)
46{ 46{
47 static const unsigned char asso_values[] = 47 static const unsigned char asso_values[] =
48 { 48 {
49 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 49 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
50 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 50 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
51 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 51 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
52 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 52 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
53 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 53 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
54 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 54 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
55 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 55 65, 65, 65, 65, 65, 65, 65, 65, 65, 5,
56 67, 67, 67, 67, 67, 67, 15, 67, 67, 67, 56 65, 65, 65, 65, 65, 65, 35, 65, 65, 65,
57 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, 57 0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
58 67, 67, 67, 67, 67, 0, 67, 0, 67, 5, 58 65, 65, 65, 65, 65, 0, 65, 0, 65, 5,
59 25, 20, 15, 30, 67, 15, 67, 67, 10, 0, 59 20, 15, 10, 30, 65, 15, 65, 65, 20, 0,
60 10, 40, 20, 67, 10, 5, 0, 10, 15, 67, 60 10, 35, 20, 65, 10, 5, 0, 10, 5, 65,
61 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 61 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
62 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 62 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
63 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 63 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
64 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 64 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 65 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
66 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 66 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
67 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
68 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 68 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
69 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 69 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
70 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 70 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
71 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 71 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
72 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 72 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
73 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 73 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
74 67, 67, 67, 67, 67, 67 74 65, 65, 65, 65, 65, 65
75 }; 75 };
76 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; 76 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
77} 77}
@@ -84,119 +84,116 @@ is_reserved_word (register const char *str, register unsigned int len)
84{ 84{
85 enum 85 enum
86 { 86 {
87 TOTAL_KEYWORDS = 45, 87 TOTAL_KEYWORDS = 43,
88 MIN_WORD_LENGTH = 3, 88 MIN_WORD_LENGTH = 3,
89 MAX_WORD_LENGTH = 24, 89 MAX_WORD_LENGTH = 24,
90 MIN_HASH_VALUE = 3, 90 MIN_HASH_VALUE = 3,
91 MAX_HASH_VALUE = 66 91 MAX_HASH_VALUE = 64
92 }; 92 };
93 93
94 static const struct resword wordlist[] = 94 static const struct resword wordlist[] =
95 { 95 {
96 {""}, {""}, {""}, 96 {""}, {""}, {""},
97#line 28 "scripts/genksyms/keywords.gperf" 97#line 26 "scripts/genksyms/keywords.gperf"
98 {"asm", ASM_KEYW}, 98 {"asm", ASM_KEYW},
99 {""}, 99 {""},
100#line 10 "scripts/genksyms/keywords.gperf" 100#line 8 "scripts/genksyms/keywords.gperf"
101 {"__asm", ASM_KEYW}, 101 {"__asm", ASM_KEYW},
102 {""}, 102 {""},
103#line 11 "scripts/genksyms/keywords.gperf" 103#line 9 "scripts/genksyms/keywords.gperf"
104 {"__asm__", ASM_KEYW}, 104 {"__asm__", ASM_KEYW},
105 {""}, {""}, 105 {""}, {""},
106#line 54 "scripts/genksyms/keywords.gperf" 106#line 52 "scripts/genksyms/keywords.gperf"
107 {"__typeof__", TYPEOF_KEYW}, 107 {"__typeof__", TYPEOF_KEYW},
108 {""}, 108 {""},
109#line 14 "scripts/genksyms/keywords.gperf" 109#line 12 "scripts/genksyms/keywords.gperf"
110 {"__const", CONST_KEYW}, 110 {"__const", CONST_KEYW},
111#line 13 "scripts/genksyms/keywords.gperf" 111#line 11 "scripts/genksyms/keywords.gperf"
112 {"__attribute__", ATTRIBUTE_KEYW}, 112 {"__attribute__", ATTRIBUTE_KEYW},
113#line 15 "scripts/genksyms/keywords.gperf" 113#line 13 "scripts/genksyms/keywords.gperf"
114 {"__const__", CONST_KEYW}, 114 {"__const__", CONST_KEYW},
115#line 20 "scripts/genksyms/keywords.gperf" 115#line 18 "scripts/genksyms/keywords.gperf"
116 {"__signed__", SIGNED_KEYW}, 116 {"__signed__", SIGNED_KEYW},
117#line 46 "scripts/genksyms/keywords.gperf" 117#line 44 "scripts/genksyms/keywords.gperf"
118 {"static", STATIC_KEYW}, 118 {"static", STATIC_KEYW},
119 {""}, 119#line 20 "scripts/genksyms/keywords.gperf"
120#line 41 "scripts/genksyms/keywords.gperf" 120 {"__volatile__", VOLATILE_KEYW},
121#line 39 "scripts/genksyms/keywords.gperf"
121 {"int", INT_KEYW}, 122 {"int", INT_KEYW},
122#line 34 "scripts/genksyms/keywords.gperf" 123#line 32 "scripts/genksyms/keywords.gperf"
123 {"char", CHAR_KEYW}, 124 {"char", CHAR_KEYW},
124#line 35 "scripts/genksyms/keywords.gperf" 125#line 33 "scripts/genksyms/keywords.gperf"
125 {"const", CONST_KEYW}, 126 {"const", CONST_KEYW},
126#line 47 "scripts/genksyms/keywords.gperf" 127#line 45 "scripts/genksyms/keywords.gperf"
127 {"struct", STRUCT_KEYW}, 128 {"struct", STRUCT_KEYW},
128#line 26 "scripts/genksyms/keywords.gperf" 129#line 24 "scripts/genksyms/keywords.gperf"
129 {"__restrict__", RESTRICT_KEYW}, 130 {"__restrict__", RESTRICT_KEYW},
130#line 27 "scripts/genksyms/keywords.gperf"
131 {"restrict", RESTRICT_KEYW},
132#line 7 "scripts/genksyms/keywords.gperf"
133 {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
134#line 18 "scripts/genksyms/keywords.gperf"
135 {"__inline__", INLINE_KEYW},
136 {""},
137#line 22 "scripts/genksyms/keywords.gperf"
138 {"__volatile__", VOLATILE_KEYW},
139#line 5 "scripts/genksyms/keywords.gperf"
140 {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
141#line 25 "scripts/genksyms/keywords.gperf" 131#line 25 "scripts/genksyms/keywords.gperf"
132 {"restrict", RESTRICT_KEYW},
133#line 23 "scripts/genksyms/keywords.gperf"
142 {"_restrict", RESTRICT_KEYW}, 134 {"_restrict", RESTRICT_KEYW},
143 {""},
144#line 12 "scripts/genksyms/keywords.gperf"
145 {"__attribute", ATTRIBUTE_KEYW},
146#line 6 "scripts/genksyms/keywords.gperf"
147 {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
148#line 16 "scripts/genksyms/keywords.gperf" 135#line 16 "scripts/genksyms/keywords.gperf"
136 {"__inline__", INLINE_KEYW},
137#line 10 "scripts/genksyms/keywords.gperf"
138 {"__attribute", ATTRIBUTE_KEYW},
139 {""},
140#line 14 "scripts/genksyms/keywords.gperf"
149 {"__extension__", EXTENSION_KEYW}, 141 {"__extension__", EXTENSION_KEYW},
150#line 37 "scripts/genksyms/keywords.gperf" 142#line 35 "scripts/genksyms/keywords.gperf"
151 {"enum", ENUM_KEYW}, 143 {"enum", ENUM_KEYW},
152#line 8 "scripts/genksyms/keywords.gperf" 144#line 19 "scripts/genksyms/keywords.gperf"
153 {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW}, 145 {"__volatile", VOLATILE_KEYW},
154#line 38 "scripts/genksyms/keywords.gperf" 146#line 36 "scripts/genksyms/keywords.gperf"
155 {"extern", EXTERN_KEYW}, 147 {"extern", EXTERN_KEYW},
156 {""}, 148 {""},
157#line 19 "scripts/genksyms/keywords.gperf" 149#line 17 "scripts/genksyms/keywords.gperf"
158 {"__signed", SIGNED_KEYW}, 150 {"__signed", SIGNED_KEYW},
159#line 9 "scripts/genksyms/keywords.gperf" 151#line 7 "scripts/genksyms/keywords.gperf"
160 {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, 152 {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
161#line 49 "scripts/genksyms/keywords.gperf" 153 {""},
162 {"union", UNION_KEYW}, 154#line 51 "scripts/genksyms/keywords.gperf"
163#line 53 "scripts/genksyms/keywords.gperf"
164 {"typeof", TYPEOF_KEYW}, 155 {"typeof", TYPEOF_KEYW},
165#line 48 "scripts/genksyms/keywords.gperf" 156#line 46 "scripts/genksyms/keywords.gperf"
166 {"typedef", TYPEDEF_KEYW}, 157 {"typedef", TYPEDEF_KEYW},
167#line 17 "scripts/genksyms/keywords.gperf" 158#line 15 "scripts/genksyms/keywords.gperf"
168 {"__inline", INLINE_KEYW}, 159 {"__inline", INLINE_KEYW},
169#line 33 "scripts/genksyms/keywords.gperf" 160#line 31 "scripts/genksyms/keywords.gperf"
170 {"auto", AUTO_KEYW}, 161 {"auto", AUTO_KEYW},
171#line 21 "scripts/genksyms/keywords.gperf" 162#line 47 "scripts/genksyms/keywords.gperf"
172 {"__volatile", VOLATILE_KEYW}, 163 {"union", UNION_KEYW},
173 {""}, {""}, 164 {""}, {""},
174#line 50 "scripts/genksyms/keywords.gperf" 165#line 48 "scripts/genksyms/keywords.gperf"
175 {"unsigned", UNSIGNED_KEYW}, 166 {"unsigned", UNSIGNED_KEYW},
176 {""}, 167#line 49 "scripts/genksyms/keywords.gperf"
177#line 44 "scripts/genksyms/keywords.gperf" 168 {"void", VOID_KEYW},
169#line 42 "scripts/genksyms/keywords.gperf"
178 {"short", SHORT_KEYW}, 170 {"short", SHORT_KEYW},
179#line 40 "scripts/genksyms/keywords.gperf" 171 {""}, {""},
172#line 50 "scripts/genksyms/keywords.gperf"
173 {"volatile", VOLATILE_KEYW},
174 {""},
175#line 37 "scripts/genksyms/keywords.gperf"
176 {"float", FLOAT_KEYW},
177#line 34 "scripts/genksyms/keywords.gperf"
178 {"double", DOUBLE_KEYW},
179 {""},
180#line 5 "scripts/genksyms/keywords.gperf"
181 {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
182 {""}, {""},
183#line 38 "scripts/genksyms/keywords.gperf"
180 {"inline", INLINE_KEYW}, 184 {"inline", INLINE_KEYW},
185#line 6 "scripts/genksyms/keywords.gperf"
186 {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
187#line 41 "scripts/genksyms/keywords.gperf"
188 {"register", REGISTER_KEYW},
181 {""}, 189 {""},
182#line 52 "scripts/genksyms/keywords.gperf" 190#line 22 "scripts/genksyms/keywords.gperf"
183 {"volatile", VOLATILE_KEYW},
184#line 42 "scripts/genksyms/keywords.gperf"
185 {"long", LONG_KEYW},
186#line 24 "scripts/genksyms/keywords.gperf"
187 {"_Bool", BOOL_KEYW}, 191 {"_Bool", BOOL_KEYW},
188 {""}, {""},
189#line 43 "scripts/genksyms/keywords.gperf" 192#line 43 "scripts/genksyms/keywords.gperf"
190 {"register", REGISTER_KEYW}, 193 {"signed", SIGNED_KEYW},
191#line 51 "scripts/genksyms/keywords.gperf" 194 {""}, {""},
192 {"void", VOID_KEYW}, 195#line 40 "scripts/genksyms/keywords.gperf"
193#line 39 "scripts/genksyms/keywords.gperf" 196 {"long", LONG_KEYW}
194 {"float", FLOAT_KEYW},
195#line 36 "scripts/genksyms/keywords.gperf"
196 {"double", DOUBLE_KEYW},
197 {""}, {""}, {""}, {""},
198#line 45 "scripts/genksyms/keywords.gperf"
199 {"signed", SIGNED_KEYW}
200 }; 197 };
201 198
202 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 199 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf
index 8abe7ab8d88f..5ef3733225fb 100644
--- a/scripts/genksyms/keywords.gperf
+++ b/scripts/genksyms/keywords.gperf
@@ -5,8 +5,6 @@ struct resword { const char *name; int token; }
5EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW 5EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
6EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW 6EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
7EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW 7EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
8EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
9EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
10__asm, ASM_KEYW 8__asm, ASM_KEYW
11__asm__, ASM_KEYW 9__asm__, ASM_KEYW
12__attribute, ATTRIBUTE_KEYW 10__attribute, ATTRIBUTE_KEYW
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 92758120a767..ad2434b26970 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -130,9 +130,18 @@ static int read_symbol(FILE *in, struct sym_entry *s)
130static int symbol_valid(struct sym_entry *s) 130static int symbol_valid(struct sym_entry *s)
131{ 131{
132 /* Symbols which vary between passes. Passes 1 and 2 must have 132 /* Symbols which vary between passes. Passes 1 and 2 must have
133 * identical symbol lists. 133 * identical symbol lists. The kallsyms_* symbols below are only added
134 * after pass 1, they would be included in pass 2 when --all-symbols is
135 * specified so exclude them to get a stable symbol list.
134 */ 136 */
135 static char *special_symbols[] = { 137 static char *special_symbols[] = {
138 "kallsyms_addresses",
139 "kallsyms_num_syms",
140 "kallsyms_names",
141 "kallsyms_markers",
142 "kallsyms_token_table",
143 "kallsyms_token_index",
144
136 /* Exclude linker generated symbols which vary between passes */ 145 /* Exclude linker generated symbols which vary between passes */
137 "_SDA_BASE_", /* ppc */ 146 "_SDA_BASE_", /* ppc */
138 "_SDA2_BASE_", /* ppc */ 147 "_SDA2_BASE_", /* ppc */
@@ -164,9 +173,7 @@ static int symbol_valid(struct sym_entry *s)
164 } 173 }
165 174
166 /* Exclude symbols which vary between passes. */ 175 /* Exclude symbols which vary between passes. */
167 if (strstr((char *)s->sym + offset, "_compiled.") || 176 if (strstr((char *)s->sym + offset, "_compiled."))
168 strncmp((char*)s->sym + offset, "__compound_literal.", 19) == 0 ||
169 strncmp((char*)s->sym + offset, "__compound_literal$", 19) == 0)
170 return 0; 177 return 0;
171 178
172 for (i = 0; special_symbols[i]; i++) 179 for (i = 0; special_symbols[i]; i++)
@@ -543,10 +550,8 @@ int main(int argc, char **argv)
543 usage(); 550 usage();
544 551
545 read_map(stdin); 552 read_map(stdin);
546 if (table_cnt) { 553 sort_symbols();
547 sort_symbols(); 554 optimize_token_table();
548 optimize_token_table();
549 }
550 write_src(); 555 write_src();
551 556
552 return 0; 557 return 0;
diff --git a/scripts/mksysmap b/scripts/mksysmap
index 1db316a3712b..6e133a0bae7a 100644
--- a/scripts/mksysmap
+++ b/scripts/mksysmap
@@ -37,6 +37,9 @@
37 37
38# readprofile starts reading symbols when _stext is found, and 38# readprofile starts reading symbols when _stext is found, and
39# continue until it finds a symbol which is not either of 'T', 't', 39# continue until it finds a symbol which is not either of 'T', 't',
40# 'W' or 'w'. 40# 'W' or 'w'. __crc_ are 'A' and placed in the middle
41# so we just ignore them to let readprofile continue to work.
42# (At least sparc64 has __crc_ in the middle).
43
44$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
41 45
42$NM -n $1 | grep -v '\( [aNUw] \)\|\( \$[adt]\)' > $2
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index d4dc222a74f3..491b8b1b6abf 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -366,11 +366,17 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
366 366
367 for (i = 0; i < count; i++) { 367 for (i = 0; i < count; i++) {
368 const char *id = (char *)devs[i].id; 368 const char *id = (char *)devs[i].id;
369 char acpi_id[sizeof(devs[0].id)];
370 int j;
369 371
370 buf_printf(&mod->dev_table_buf, 372 buf_printf(&mod->dev_table_buf,
371 "MODULE_ALIAS(\"pnp:d%s*\");\n", id); 373 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
374
375 /* fix broken pnp bus lowercasing */
376 for (j = 0; j < sizeof(acpi_id); j++)
377 acpi_id[j] = toupper(id[j]);
372 buf_printf(&mod->dev_table_buf, 378 buf_printf(&mod->dev_table_buf,
373 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id); 379 "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id);
374 } 380 }
375} 381}
376 382
@@ -416,10 +422,17 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
416 422
417 /* add an individual alias for every device entry */ 423 /* add an individual alias for every device entry */
418 if (!dup) { 424 if (!dup) {
425 char acpi_id[sizeof(card->devs[0].id)];
426 int k;
427
419 buf_printf(&mod->dev_table_buf, 428 buf_printf(&mod->dev_table_buf,
420 "MODULE_ALIAS(\"pnp:d%s*\");\n", id); 429 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
430
431 /* fix broken pnp bus lowercasing */
432 for (k = 0; k < sizeof(acpi_id); k++)
433 acpi_id[k] = toupper(id[k]);
421 buf_printf(&mod->dev_table_buf, 434 buf_printf(&mod->dev_table_buf,
422 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id); 435 "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id);
423 } 436 }
424 } 437 }
425 } 438 }
diff --git a/scripts/strip-symbols b/scripts/strip-symbols
deleted file mode 100644
index 29ee8c1a014b..000000000000
--- a/scripts/strip-symbols
+++ /dev/null
@@ -1,22 +0,0 @@
1<*>
2*.h
3__compound_literal[$.][0-9]*
4__crc_[a-zA-Z_]*
5__exitcall_[a-zA-Z_]*
6__func__[$.][0-9]*
7__FUNCTION__[$.][0-9]*
8gcc[0-9]_compiled[$.]
9__initcall_[a-zA-Z_]*
10__kcrctab_[a-zA-Z_]*
11__kstrtab_[a-zA-Z_]*
12__ksymtab_[a-zA-Z_]*
13__mod_[a-zA-Z_]*[0-9]
14__module_depends
15__param_[a-zA-Z_]*
16__pci_fixup_*PCI_ANY_IDPCI_ANY_ID*
17__pci_fixup_*PCI_ANY_IDPCI_DEVICE_ID_*
18__pci_fixup_*PCI_VENDOR_ID_*PCI_ANY_ID*
19__pci_fixup_*PCI_VENDOR_ID_*PCI_DEVICE_ID_*
20__PRETTY_FUNCTION__[$.][0-9]*
21__setup_[a-zA-Z_]*
22____versions
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index e9335e1c6cf5..b1ec3b4ee17d 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -270,6 +270,7 @@ long keyctl_join_session_keyring(const char __user *_name)
270 270
271 /* join the session */ 271 /* join the session */
272 ret = join_session_keyring(name); 272 ret = join_session_keyring(name);
273 kfree(name);
273 274
274 error: 275 error:
275 return ret; 276 return ret;
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
index 6e3a1848447c..82b9bddcdcd6 100644
--- a/sound/pci/Kconfig
+++ b/sound/pci/Kconfig
@@ -744,8 +744,8 @@ config SND_VIRTUOSO
744 select SND_OXYGEN_LIB 744 select SND_OXYGEN_LIB
745 help 745 help
746 Say Y here to include support for sound cards based on the 746 Say Y here to include support for sound cards based on the
747 Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2, D2X and 747 Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2 and D2X.
748 HDAV1.3 (Deluxe). 748 Support for the HDAV1.3 (Deluxe) is very experimental.
749 749
750 To compile this driver as a module, choose M here: the module 750 To compile this driver as a module, choose M here: the module
751 will be called snd-virtuoso. 751 will be called snd-virtuoso.
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 82dd08431970..5d249a547fbf 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -8478,6 +8478,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8478 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_ASUS_EEE1601), 8478 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_ASUS_EEE1601),
8479 SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG), 8479 SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG),
8480 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC883_6ST_DIG), 8480 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC883_6ST_DIG),
8481 SND_PCI_QUIRK(0x1071, 0x8227, "Mitac 82801H", ALC883_MITAC),
8481 SND_PCI_QUIRK(0x1071, 0x8253, "Mitac 8252d", ALC883_MITAC), 8482 SND_PCI_QUIRK(0x1071, 0x8253, "Mitac 8252d", ALC883_MITAC),
8482 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), 8483 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
8483 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), 8484 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
@@ -8526,6 +8527,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8526 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), 8527 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
8527 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), 8528 SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
8528 SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL), 8529 SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL),
8530 SND_PCI_QUIRK(0x8086, 0x2503, "82801H", ALC883_MITAC),
8529 SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC883_3ST_6ch_INTEL), 8531 SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC883_3ST_6ch_INTEL),
8530 SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch), 8532 SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch),
8531 {} 8533 {}
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index c39deebb588f..3dd4eee70b7c 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -81,6 +81,7 @@ enum {
81 81
82enum { 82enum {
83 STAC_92HD83XXX_REF, 83 STAC_92HD83XXX_REF,
84 STAC_92HD83XXX_PWR_REF,
84 STAC_92HD83XXX_MODELS 85 STAC_92HD83XXX_MODELS
85}; 86};
86 87
@@ -334,7 +335,7 @@ static hda_nid_t stac92hd83xxx_slave_dig_outs[2] = {
334}; 335};
335 336
336static unsigned int stac92hd83xxx_pwr_mapping[4] = { 337static unsigned int stac92hd83xxx_pwr_mapping[4] = {
337 0x03, 0x0c, 0x10, 0x40, 338 0x03, 0x0c, 0x20, 0x40,
338}; 339};
339 340
340static hda_nid_t stac92hd83xxx_amp_nids[1] = { 341static hda_nid_t stac92hd83xxx_amp_nids[1] = {
@@ -841,10 +842,6 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
841}; 842};
842 843
843static struct hda_verb stac92hd83xxx_core_init[] = { 844static struct hda_verb stac92hd83xxx_core_init[] = {
844 /* start of config #1 */
845 { 0xe, AC_VERB_SET_CONNECT_SEL, 0x3},
846
847 /* start of config #2 */
848 { 0xa, AC_VERB_SET_CONNECT_SEL, 0x0}, 845 { 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
849 { 0xb, AC_VERB_SET_CONNECT_SEL, 0x0}, 846 { 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
850 { 0xd, AC_VERB_SET_CONNECT_SEL, 0x1}, 847 { 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
@@ -885,8 +882,8 @@ static struct hda_verb stac92hd71bxx_analog_core_init[] = {
885static struct hda_verb stac925x_core_init[] = { 882static struct hda_verb stac925x_core_init[] = {
886 /* set dac0mux for dac converter */ 883 /* set dac0mux for dac converter */
887 { 0x06, AC_VERB_SET_CONNECT_SEL, 0x00}, 884 { 0x06, AC_VERB_SET_CONNECT_SEL, 0x00},
888 /* unmute and set max the selector */ 885 /* mute the master volume */
889 { 0x0e, AC_VERB_SET_AMP_GAIN_MUTE, 0xb01f }, 886 { 0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
890 {} 887 {}
891}; 888};
892 889
@@ -1138,6 +1135,8 @@ static struct snd_kcontrol_new stac92hd71bxx_mixer[] = {
1138}; 1135};
1139 1136
1140static struct snd_kcontrol_new stac925x_mixer[] = { 1137static struct snd_kcontrol_new stac925x_mixer[] = {
1138 HDA_CODEC_VOLUME("Master Playback Volume", 0x0e, 0, HDA_OUTPUT),
1139 HDA_CODEC_MUTE("Master Playback Switch", 0x0e, 0, HDA_OUTPUT),
1141 STAC_INPUT_SOURCE(1), 1140 STAC_INPUT_SOURCE(1),
1142 HDA_CODEC_VOLUME("Capture Volume", 0x09, 0, HDA_OUTPUT), 1141 HDA_CODEC_VOLUME("Capture Volume", 0x09, 0, HDA_OUTPUT),
1143 HDA_CODEC_MUTE("Capture Switch", 0x14, 0, HDA_OUTPUT), 1142 HDA_CODEC_MUTE("Capture Switch", 0x14, 0, HDA_OUTPUT),
@@ -1736,10 +1735,12 @@ static unsigned int ref92hd83xxx_pin_configs[14] = {
1736 1735
1737static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = { 1736static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = {
1738 [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs, 1737 [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs,
1738 [STAC_92HD83XXX_PWR_REF] = ref92hd83xxx_pin_configs,
1739}; 1739};
1740 1740
1741static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = { 1741static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {
1742 [STAC_92HD83XXX_REF] = "ref", 1742 [STAC_92HD83XXX_REF] = "ref",
1743 [STAC_92HD83XXX_PWR_REF] = "mic-ref",
1743}; 1744};
1744 1745
1745static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { 1746static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
@@ -1799,6 +1800,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1799 "HP dv5", STAC_HP_M4), 1800 "HP dv5", STAC_HP_M4),
1800 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4, 1801 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4,
1801 "HP dv7", STAC_HP_M4), 1802 "HP dv7", STAC_HP_M4),
1803 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f7,
1804 "HP dv4", STAC_HP_DV5),
1802 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc, 1805 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc,
1803 "HP dv7", STAC_HP_M4), 1806 "HP dv7", STAC_HP_M4),
1804 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603, 1807 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603,
@@ -3573,13 +3576,12 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
3573 err = stac92xx_auto_fill_dac_nids(codec); 3576 err = stac92xx_auto_fill_dac_nids(codec);
3574 if (err < 0) 3577 if (err < 0)
3575 return err; 3578 return err;
3579 err = stac92xx_auto_create_multi_out_ctls(codec,
3580 &spec->autocfg);
3581 if (err < 0)
3582 return err;
3576 } 3583 }
3577 3584
3578 err = stac92xx_auto_create_multi_out_ctls(codec, &spec->autocfg);
3579
3580 if (err < 0)
3581 return err;
3582
3583 /* setup analog beep controls */ 3585 /* setup analog beep controls */
3584 if (spec->anabeep_nid > 0) { 3586 if (spec->anabeep_nid > 0) {
3585 err = stac92xx_auto_create_beep_ctls(codec, 3587 err = stac92xx_auto_create_beep_ctls(codec,
@@ -4753,7 +4755,9 @@ static struct hda_input_mux stac92hd83xxx_dmux = {
4753static int patch_stac92hd83xxx(struct hda_codec *codec) 4755static int patch_stac92hd83xxx(struct hda_codec *codec)
4754{ 4756{
4755 struct sigmatel_spec *spec; 4757 struct sigmatel_spec *spec;
4758 hda_nid_t conn[STAC92HD83_DAC_COUNT + 1];
4756 int err; 4759 int err;
4760 int num_dacs;
4757 4761
4758 spec = kzalloc(sizeof(*spec), GFP_KERNEL); 4762 spec = kzalloc(sizeof(*spec), GFP_KERNEL);
4759 if (spec == NULL) 4763 if (spec == NULL)
@@ -4772,15 +4776,16 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
4772 spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids); 4776 spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids);
4773 spec->multiout.dac_nids = spec->dac_nids; 4777 spec->multiout.dac_nids = spec->dac_nids;
4774 4778
4775 spec->init = stac92hd83xxx_core_init;
4776 switch (codec->vendor_id) {
4777 case 0x111d7605:
4778 break;
4779 default:
4780 spec->num_pwrs--;
4781 spec->init++; /* switch to config #2 */
4782 }
4783 4779
4780 /* set port 0xe to select the last DAC
4781 */
4782 num_dacs = snd_hda_get_connections(codec, 0x0e,
4783 conn, STAC92HD83_DAC_COUNT + 1) - 1;
4784
4785 snd_hda_codec_write_cache(codec, 0xe, 0,
4786 AC_VERB_SET_CONNECT_SEL, num_dacs);
4787
4788 spec->init = stac92hd83xxx_core_init;
4784 spec->mixer = stac92hd83xxx_mixer; 4789 spec->mixer = stac92hd83xxx_mixer;
4785 spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids); 4790 spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids);
4786 spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids); 4791 spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids);
@@ -4806,6 +4811,15 @@ again:
4806 return err; 4811 return err;
4807 } 4812 }
4808 4813
4814 switch (codec->vendor_id) {
4815 case 0x111d7604:
4816 case 0x111d7605:
4817 if (spec->board_config == STAC_92HD83XXX_PWR_REF)
4818 break;
4819 spec->num_pwrs = 0;
4820 break;
4821 }
4822
4809 err = stac92xx_parse_auto_config(codec, 0x1d, 0); 4823 err = stac92xx_parse_auto_config(codec, 0x1d, 0);
4810 if (!err) { 4824 if (!err) {
4811 if (spec->board_config < 0) { 4825 if (spec->board_config < 0) {
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c
index e9e829e83d7a..18c7c91786bc 100644
--- a/sound/pci/oxygen/virtuoso.c
+++ b/sound/pci/oxygen/virtuoso.c
@@ -683,7 +683,7 @@ static void xonar_hdav_uart_input(struct oxygen *chip)
683 if (chip->uart_input_count >= 2 && 683 if (chip->uart_input_count >= 2 &&
684 chip->uart_input[chip->uart_input_count - 2] == 'O' && 684 chip->uart_input[chip->uart_input_count - 2] == 'O' &&
685 chip->uart_input[chip->uart_input_count - 1] == 'K') { 685 chip->uart_input[chip->uart_input_count - 1] == 'K') {
686 printk(KERN_DEBUG "message from Xonar HDAV HDMI chip received:"); 686 printk(KERN_DEBUG "message from Xonar HDAV HDMI chip received:\n");
687 print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, 687 print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
688 chip->uart_input, chip->uart_input_count); 688 chip->uart_input, chip->uart_input_count);
689 chip->uart_input_count = 0; 689 chip->uart_input_count = 0;
@@ -908,6 +908,7 @@ static const struct oxygen_model model_xonar_hdav = {
908 .dac_channels = 8, 908 .dac_channels = 8,
909 .dac_volume_min = 0x0f, 909 .dac_volume_min = 0x0f,
910 .dac_volume_max = 0xff, 910 .dac_volume_max = 0xff,
911 .misc_flags = OXYGEN_MISC_MIDI,
911 .function_flags = OXYGEN_FUNCTION_2WIRE, 912 .function_flags = OXYGEN_FUNCTION_2WIRE,
912 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 913 .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
913 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, 914 .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
diff --git a/sound/soc/atmel/atmel-pcm.c b/sound/soc/atmel/atmel-pcm.c
index 1fac5efd285b..3dcdc4e3cfa0 100644
--- a/sound/soc/atmel/atmel-pcm.c
+++ b/sound/soc/atmel/atmel-pcm.c
@@ -44,8 +44,6 @@
44#include <sound/pcm_params.h> 44#include <sound/pcm_params.h>
45#include <sound/soc.h> 45#include <sound/soc.h>
46 46
47#include <mach/hardware.h>
48
49#include "atmel-pcm.h" 47#include "atmel-pcm.h"
50 48
51 49
diff --git a/sound/soc/fsl/mpc8610_hpcd.c b/sound/soc/fsl/mpc8610_hpcd.c
index bcec3f60bad9..acf39a646b2f 100644
--- a/sound/soc/fsl/mpc8610_hpcd.c
+++ b/sound/soc/fsl/mpc8610_hpcd.c
@@ -183,16 +183,6 @@ static struct snd_soc_ops mpc8610_hpcd_ops = {
183}; 183};
184 184
185/** 185/**
186 * mpc8610_hpcd_machine: ASoC machine data
187 */
188static struct snd_soc_card mpc8610_hpcd_machine = {
189 .probe = mpc8610_hpcd_machine_probe,
190 .remove = mpc8610_hpcd_machine_remove,
191 .name = "MPC8610 HPCD",
192 .num_links = 1,
193};
194
195/**
196 * mpc8610_hpcd_probe: OF probe function for the fabric driver 186 * mpc8610_hpcd_probe: OF probe function for the fabric driver
197 * 187 *
198 * This function gets called when an SSI node is found in the device tree. 188 * This function gets called when an SSI node is found in the device tree.
@@ -455,7 +445,11 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev,
455 machine_data->dai.codec_dai = &cs4270_dai; /* The codec_dai we want */ 445 machine_data->dai.codec_dai = &cs4270_dai; /* The codec_dai we want */
456 machine_data->dai.ops = &mpc8610_hpcd_ops; 446 machine_data->dai.ops = &mpc8610_hpcd_ops;
457 447
458 mpc8610_hpcd_machine.dai_link = &machine_data->dai; 448 machine_data->machine.probe = mpc8610_hpcd_machine_probe;
449 machine_data->machine.remove = mpc8610_hpcd_machine_remove;
450 machine_data->machine.name = "MPC8610 HPCD";
451 machine_data->machine.num_links = 1;
452 machine_data->machine.dai_link = &machine_data->dai;
459 453
460 /* Allocate a new audio platform device structure */ 454 /* Allocate a new audio platform device structure */
461 sound_device = platform_device_alloc("soc-audio", -1); 455 sound_device = platform_device_alloc("soc-audio", -1);
@@ -465,7 +459,7 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev,
465 goto error; 459 goto error;
466 } 460 }
467 461
468 machine_data->sound_devdata.card = &mpc8610_hpcd_machine; 462 machine_data->sound_devdata.card = &machine_data->machine;
469 machine_data->sound_devdata.codec_dev = &soc_codec_device_cs4270; 463 machine_data->sound_devdata.codec_dev = &soc_codec_device_cs4270;
470 machine_data->machine.platform = &fsl_soc_platform; 464 machine_data->machine.platform = &fsl_soc_platform;
471 465