Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 May 2011 18:50:27 +0000 (11:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 May 2011 18:50:27 +0000 (11:50 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (22 commits)
  m68knommu: Use generic show_interrupts()
  coldfire_qspi compile fix
  m68k: merge the mmu and non-mmu versions of sys_m68k.c
  m68knommu: use asm-generic/bitops/ext2-atomic.h
  m68knommu: Remove obsolete #include <linux/sys.h>
  m68k: merge mmu and non-mmu versions of asm-offsets.c
  m68k: merge non-mmu and mmu versions of m68k_ksyms.c
  m68knommu: remove un-needed exporting of COLDFIRE symbols
  m68knommu: move EXPORT of kernel_thread to function definition
  m68knommu: move EXPORT of local checksumming functions to definitions
  m68knommu: move EXPORT of dump_fpu to function definition
  m68knommu: clean up mm/init_no.c
  m68k: merge the mmu and non-mmu mm/Makefile
  m68k: mv kmap_mm.c to kmap.c
  m68knommu: remove stubs for __ioremap() and iounmap()
  m68knommu: remove unused kernel_set_cachemode()
  m68k: let Makefile sort out compiling mmu and non-mmu lib/checksum.c
  m68k: remove duplicate memcpy() implementation
  m68k: remove duplicate memset() implementation
  m68k: remove duplicate memmove() implementation
  ...

811 files changed:
Documentation/ABI/testing/sysfs-bus-pci
Documentation/DocBook/.gitignore
Documentation/DocBook/dvb/dvbapi.xml
Documentation/DocBook/dvb/dvbproperty.xml
Documentation/DocBook/dvb/frontend.h.xml
Documentation/DocBook/media-entities.tmpl
Documentation/DocBook/v4l/pixfmt-m420.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt-y10b.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt.xml
Documentation/DocBook/v4l/subdev-formats.xml
Documentation/DocBook/v4l/videodev2.h.xml
Documentation/HOWTO
Documentation/SubmittingPatches
Documentation/dontdiff
Documentation/feature-removal-schedule.txt
Documentation/ioctl/ioctl-number.txt
Documentation/sysctl/fs.txt
Documentation/vgaarbiter.txt
Documentation/video4linux/CARDLIST.em28xx
Documentation/video4linux/Zoran
Documentation/video4linux/gspca.txt
Documentation/video4linux/uvcvideo.txt [new file with mode: 0644]
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/boot/compressed/Makefile
arch/arm/boot/compressed/decompress.c
arch/arm/boot/compressed/head.S
arch/arm/boot/compressed/misc.c
arch/arm/common/gic.c
arch/arm/common/sa1111.c
arch/arm/common/timer-sp.c
arch/arm/configs/dove_defconfig
arch/arm/configs/mx1_defconfig
arch/arm/configs/mx51_defconfig
arch/arm/configs/mxs_defconfig [new file with mode: 0644]
arch/arm/configs/ns9xxx_defconfig [deleted file]
arch/arm/configs/realview-smp_defconfig
arch/arm/configs/realview_defconfig
arch/arm/configs/spear310_defconfig [deleted file]
arch/arm/configs/spear320_defconfig [deleted file]
arch/arm/configs/spear3xx_defconfig [moved from arch/arm/configs/spear300_defconfig with 93% similarity]
arch/arm/configs/spear6xx_defconfig [moved from arch/arm/configs/spear600_defconfig with 97% similarity]
arch/arm/configs/stmp378x_defconfig [deleted file]
arch/arm/configs/stmp37xx_defconfig [deleted file]
arch/arm/configs/versatile_defconfig
arch/arm/include/asm/dma.h
arch/arm/include/asm/elf.h
arch/arm/include/asm/futex.h
arch/arm/include/asm/hardware/timer-sp.h
arch/arm/include/asm/memory.h
arch/arm/include/asm/ptrace.h
arch/arm/include/asm/sizes.h
arch/arm/include/asm/smp.h
arch/arm/include/asm/spinlock.h
arch/arm/kernel/perf_event.c
arch/arm/kernel/ptrace.c
arch/arm/kernel/setup.c
arch/arm/kernel/smp.c
arch/arm/mach-bcmring/arch.c
arch/arm/mach-bcmring/core.c
arch/arm/mach-bcmring/core.h
arch/arm/mach-davinci/include/mach/memory.h
arch/arm/mach-davinci/include/mach/uncompress.h
arch/arm/mach-davinci/irq.c
arch/arm/mach-dove/common.c
arch/arm/mach-dove/mpp.c
arch/arm/mach-dove/mpp.h
arch/arm/mach-ep93xx/gpio.c
arch/arm/mach-exynos4/include/mach/smp.h [deleted file]
arch/arm/mach-exynos4/irq-combiner.c
arch/arm/mach-exynos4/platsmp.c
arch/arm/mach-gemini/include/mach/uncompress.h
arch/arm/mach-h720x/include/mach/memory.h
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/Makefile.boot
arch/arm/mach-imx/cache-l2x0.c [new file with mode: 0644]
arch/arm/mach-imx/clock-imx31.c [moved from arch/arm/mach-mx3/clock-imx31.c with 99% similarity]
arch/arm/mach-imx/clock-imx35.c [moved from arch/arm/mach-mx3/clock-imx35.c with 99% similarity]
arch/arm/mach-imx/cpu-imx31.c [moved from arch/arm/mach-mx3/cpu.c with 72% similarity]
arch/arm/mach-imx/cpu-imx35.c [new file with mode: 0644]
arch/arm/mach-imx/crmregs-imx31.h [moved from arch/arm/mach-mx3/crm_regs.h with 100% similarity]
arch/arm/mach-imx/devices-imx1.h
arch/arm/mach-imx/devices-imx21.h
arch/arm/mach-imx/devices-imx25.h
arch/arm/mach-imx/devices-imx27.h
arch/arm/mach-imx/devices-imx31.h [moved from arch/arm/mach-mx3/devices-imx31.h with 67% similarity]
arch/arm/mach-imx/devices-imx35.h [moved from arch/arm/mach-mx3/devices-imx35.h with 69% similarity]
arch/arm/mach-imx/ehci-imx31.c [moved from arch/arm/mach-mx3/ehci-imx31.c with 99% similarity]
arch/arm/mach-imx/ehci-imx35.c [moved from arch/arm/mach-mx3/ehci-imx35.c with 99% similarity]
arch/arm/mach-imx/eukrea_mbimx27-baseboard.c
arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c
arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c [moved from arch/arm/mach-mx3/eukrea_mbimxsd-baseboard.c with 92% similarity]
arch/arm/mach-imx/iomux-imx31.c [moved from arch/arm/mach-mx3/iomux-imx31.c with 100% similarity]
arch/arm/mach-imx/mach-apf9328.c [new file with mode: 0644]
arch/arm/mach-imx/mach-armadillo5x0.c [moved from arch/arm/mach-mx3/mach-armadillo5x0.c with 95% similarity]
arch/arm/mach-imx/mach-bug.c [moved from arch/arm/mach-mx3/mach-bug.c with 98% similarity]
arch/arm/mach-imx/mach-cpuimx27.c
arch/arm/mach-imx/mach-cpuimx35.c [moved from arch/arm/mach-mx3/mach-cpuimx35.c with 99% similarity]
arch/arm/mach-imx/mach-eukrea_cpuimx25.c
arch/arm/mach-imx/mach-imx27_visstrim_m10.c
arch/arm/mach-imx/mach-kzm_arm11_01.c [moved from arch/arm/mach-mx3/mach-kzm_arm11_01.c with 99% similarity]
arch/arm/mach-imx/mach-mx1ads.c
arch/arm/mach-imx/mach-mx21ads.c
arch/arm/mach-imx/mach-mx25_3ds.c
arch/arm/mach-imx/mach-mx27ads.c
arch/arm/mach-imx/mach-mx31_3ds.c [moved from arch/arm/mach-mx3/mach-mx31_3ds.c with 96% similarity]
arch/arm/mach-imx/mach-mx31ads.c [moved from arch/arm/mach-mx3/mach-mx31ads.c with 99% similarity]
arch/arm/mach-imx/mach-mx31lilly.c [moved from arch/arm/mach-mx3/mach-mx31lilly.c with 99% similarity]
arch/arm/mach-imx/mach-mx31lite.c [moved from arch/arm/mach-mx3/mach-mx31lite.c with 99% similarity]
arch/arm/mach-imx/mach-mx31moboard.c [moved from arch/arm/mach-mx3/mach-mx31moboard.c with 92% similarity]
arch/arm/mach-imx/mach-mx35_3ds.c [moved from arch/arm/mach-mx3/mach-mx35_3ds.c with 99% similarity]
arch/arm/mach-imx/mach-mxt_td60.c
arch/arm/mach-imx/mach-pca100.c
arch/arm/mach-imx/mach-pcm037.c [moved from arch/arm/mach-mx3/mach-pcm037.c with 94% similarity]
arch/arm/mach-imx/mach-pcm037_eet.c [moved from arch/arm/mach-mx3/mach-pcm037_eet.c with 92% similarity]
arch/arm/mach-imx/mach-pcm038.c
arch/arm/mach-imx/mach-pcm043.c [moved from arch/arm/mach-mx3/mach-pcm043.c with 97% similarity]
arch/arm/mach-imx/mach-qong.c [moved from arch/arm/mach-mx3/mach-qong.c with 95% similarity]
arch/arm/mach-imx/mach-vpr200.c [moved from arch/arm/mach-mx3/mach-vpr200.c with 94% similarity]
arch/arm/mach-imx/mm-imx31.c [new file with mode: 0644]
arch/arm/mach-imx/mm-imx35.c [new file with mode: 0644]
arch/arm/mach-imx/mx31lilly-db.c [moved from arch/arm/mach-mx3/mx31lilly-db.c with 95% similarity]
arch/arm/mach-imx/mx31lite-db.c [moved from arch/arm/mach-mx3/mx31lite-db.c with 98% similarity]
arch/arm/mach-imx/mx31moboard-devboard.c [moved from arch/arm/mach-mx3/mx31moboard-devboard.c with 99% similarity]
arch/arm/mach-imx/mx31moboard-marxbot.c [moved from arch/arm/mach-mx3/mx31moboard-marxbot.c with 99% similarity]
arch/arm/mach-imx/mx31moboard-smartbot.c [moved from arch/arm/mach-mx3/mx31moboard-smartbot.c with 99% similarity]
arch/arm/mach-imx/pcm037.h [moved from arch/arm/mach-mx3/pcm037.h with 100% similarity]
arch/arm/mach-integrator/Kconfig
arch/arm/mach-integrator/integrator_ap.c
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-iop32x/include/mach/uncompress.h
arch/arm/mach-iop33x/include/mach/uncompress.h
arch/arm/mach-ixp4xx/common-pci.c
arch/arm/mach-ixp4xx/common.c
arch/arm/mach-ixp4xx/include/mach/memory.h
arch/arm/mach-ixp4xx/include/mach/uncompress.h
arch/arm/mach-kirkwood/common.c
arch/arm/mach-kirkwood/include/mach/irqs.h
arch/arm/mach-kirkwood/mpp.c
arch/arm/mach-kirkwood/mpp.h
arch/arm/mach-loki/common.c
arch/arm/mach-lpc32xx/timer.c
arch/arm/mach-mmp/include/mach/uncompress.h
arch/arm/mach-msm/gpio-v2.c
arch/arm/mach-msm/include/mach/smp.h [deleted file]
arch/arm/mach-msm/platsmp.c
arch/arm/mach-mv78xx0/common.c
arch/arm/mach-mv78xx0/mpp.c
arch/arm/mach-mv78xx0/mpp.h
arch/arm/mach-mx3/Kconfig [deleted file]
arch/arm/mach-mx3/Makefile [deleted file]
arch/arm/mach-mx3/Makefile.boot [deleted file]
arch/arm/mach-mx3/devices.c [deleted file]
arch/arm/mach-mx3/devices.h [deleted file]
arch/arm/mach-mx3/mm.c [deleted file]
arch/arm/mach-mx5/Kconfig
arch/arm/mach-mx5/board-cpuimx51.c
arch/arm/mach-mx5/board-cpuimx51sd.c
arch/arm/mach-mx5/board-mx50_rdp.c
arch/arm/mach-mx5/board-mx51_babbage.c
arch/arm/mach-mx5/board-mx51_efikamx.c
arch/arm/mach-mx5/board-mx51_efikasb.c
arch/arm/mach-mx5/board-mx53_evk.c
arch/arm/mach-mx5/board-mx53_loco.c
arch/arm/mach-mx5/board-mx53_smd.c
arch/arm/mach-mx5/clock-mx51-mx53.c
arch/arm/mach-mx5/cpu.c
arch/arm/mach-mx5/devices-imx50.h
arch/arm/mach-mx5/devices-imx51.h
arch/arm/mach-mx5/devices-imx53.h
arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c
arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c
arch/arm/mach-mx5/mx51_efika.c
arch/arm/mach-mxc91231/Kconfig [deleted file]
arch/arm/mach-mxc91231/Makefile [deleted file]
arch/arm/mach-mxc91231/Makefile.boot [deleted file]
arch/arm/mach-mxc91231/clock.c [deleted file]
arch/arm/mach-mxc91231/crm_regs.h [deleted file]
arch/arm/mach-mxc91231/devices.c [deleted file]
arch/arm/mach-mxc91231/devices.h [deleted file]
arch/arm/mach-mxc91231/iomux.c [deleted file]
arch/arm/mach-mxc91231/magx-zn5.c [deleted file]
arch/arm/mach-mxc91231/mm.c [deleted file]
arch/arm/mach-mxc91231/system.c [deleted file]
arch/arm/mach-mxs/Kconfig
arch/arm/mach-mxs/Makefile
arch/arm/mach-mxs/clock-mx23.c
arch/arm/mach-mxs/devices-mx28.h
arch/arm/mach-mxs/devices/platform-mxs-i2c.c
arch/arm/mach-mxs/include/mach/devices-common.h
arch/arm/mach-mxs/include/mach/mx23.h
arch/arm/mach-mxs/include/mach/uncompress.h
arch/arm/mach-mxs/mach-mx23evk.c
arch/arm/mach-mxs/mach-mx28evk.c
arch/arm/mach-mxs/mach-stmp378x_devb.c [new file with mode: 0644]
arch/arm/mach-mxs/timer.c
arch/arm/mach-netx/time.c
arch/arm/mach-ns9xxx/Kconfig [deleted file]
arch/arm/mach-ns9xxx/Makefile [deleted file]
arch/arm/mach-ns9xxx/Makefile.boot [deleted file]
arch/arm/mach-ns9xxx/board-a9m9750dev.c [deleted file]
arch/arm/mach-ns9xxx/board-a9m9750dev.h [deleted file]
arch/arm/mach-ns9xxx/board-jscc9p9360.c [deleted file]
arch/arm/mach-ns9xxx/board-jscc9p9360.h [deleted file]
arch/arm/mach-ns9xxx/clock.c [deleted file]
arch/arm/mach-ns9xxx/clock.h [deleted file]
arch/arm/mach-ns9xxx/generic.c [deleted file]
arch/arm/mach-ns9xxx/generic.h [deleted file]
arch/arm/mach-ns9xxx/gpio-ns9360.c [deleted file]
arch/arm/mach-ns9xxx/gpio-ns9360.h [deleted file]
arch/arm/mach-ns9xxx/gpio.c [deleted file]
arch/arm/mach-ns9xxx/include/mach/board.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/debug-macro.S [deleted file]
arch/arm/mach-ns9xxx/include/mach/entry-macro.S [deleted file]
arch/arm/mach-ns9xxx/include/mach/gpio.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/hardware.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/io.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/irqs.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/memory.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/module.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/processor-ns9360.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/processor.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/regs-bbu.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/regs-board-a9m9750dev.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/regs-mem.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/regs-sys-common.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/regs-sys-ns9360.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/system.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/timex.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/uncompress.h [deleted file]
arch/arm/mach-ns9xxx/include/mach/vmalloc.h [deleted file]
arch/arm/mach-ns9xxx/irq.c [deleted file]
arch/arm/mach-ns9xxx/mach-cc9p9360dev.c [deleted file]
arch/arm/mach-ns9xxx/mach-cc9p9360js.c [deleted file]
arch/arm/mach-ns9xxx/plat-serial8250.c [deleted file]
arch/arm/mach-ns9xxx/processor-ns9360.c [deleted file]
arch/arm/mach-ns9xxx/time-ns9360.c [deleted file]
arch/arm/mach-nuc93x/include/mach/uncompress.h
arch/arm/mach-omap1/flash.c
arch/arm/mach-omap1/time.c
arch/arm/mach-omap2/include/mach/omap4-common.h
arch/arm/mach-omap2/irq.c
arch/arm/mach-omap2/omap-smp.c
arch/arm/mach-orion5x/common.c
arch/arm/mach-orion5x/d2net-setup.c
arch/arm/mach-orion5x/db88f5281-setup.c
arch/arm/mach-orion5x/dns323-setup.c
arch/arm/mach-orion5x/edmini_v2-setup.c
arch/arm/mach-orion5x/kurobox_pro-setup.c
arch/arm/mach-orion5x/ls-chl-setup.c
arch/arm/mach-orion5x/ls_hgl-setup.c
arch/arm/mach-orion5x/lsmini-setup.c
arch/arm/mach-orion5x/mpp.c
arch/arm/mach-orion5x/mpp.h
arch/arm/mach-orion5x/mss2-setup.c
arch/arm/mach-orion5x/mv2120-setup.c
arch/arm/mach-orion5x/net2big-setup.c
arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c
arch/arm/mach-orion5x/rd88f5181l-ge-setup.c
arch/arm/mach-orion5x/rd88f5182-setup.c
arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c
arch/arm/mach-orion5x/terastation_pro2-setup.c
arch/arm/mach-orion5x/ts209-setup.c
arch/arm/mach-orion5x/ts409-setup.c
arch/arm/mach-orion5x/ts78xx-setup.c
arch/arm/mach-orion5x/wnr854t-setup.c
arch/arm/mach-orion5x/wrt350n-v2-setup.c
arch/arm/mach-pxa/cm-x2xx-pci.c
arch/arm/mach-pxa/hx4700.c
arch/arm/mach-pxa/include/mach/memory.h
arch/arm/mach-pxa/include/mach/uncompress.h
arch/arm/mach-pxa/magician.c
arch/arm/mach-pxa/time.c
arch/arm/mach-realview/core.c
arch/arm/mach-realview/include/mach/memory.h
arch/arm/mach-realview/include/mach/smp.h [deleted file]
arch/arm/mach-realview/platsmp.c
arch/arm/mach-rpc/include/mach/uncompress.h
arch/arm/mach-s3c2410/nor-simtec.c
arch/arm/mach-s3c64xx/irq.c
arch/arm/mach-s5p64x0/include/mach/uncompress.h
arch/arm/mach-sa1100/include/mach/memory.h
arch/arm/mach-sa1100/time.c
arch/arm/mach-shark/include/mach/memory.h
arch/arm/mach-shmobile/include/mach/smp.h [deleted file]
arch/arm/mach-shmobile/platsmp.c
arch/arm/mach-spear3xx/Kconfig
arch/arm/mach-spear3xx/Kconfig300 [deleted file]
arch/arm/mach-spear3xx/Kconfig310 [deleted file]
arch/arm/mach-spear3xx/Kconfig320 [deleted file]
arch/arm/mach-spear3xx/clock.c
arch/arm/mach-spear3xx/include/mach/generic.h
arch/arm/mach-spear3xx/include/mach/irqs.h
arch/arm/mach-spear3xx/include/mach/spear300.h
arch/arm/mach-spear3xx/include/mach/spear310.h
arch/arm/mach-spear3xx/include/mach/spear320.h
arch/arm/mach-spear3xx/spear300.c
arch/arm/mach-spear3xx/spear300_evb.c
arch/arm/mach-spear3xx/spear310.c
arch/arm/mach-spear3xx/spear310_evb.c
arch/arm/mach-spear3xx/spear320.c
arch/arm/mach-spear3xx/spear320_evb.c
arch/arm/mach-spear3xx/spear3xx.c
arch/arm/mach-spear6xx/Kconfig
arch/arm/mach-spear6xx/Kconfig600 [deleted file]
arch/arm/mach-spear6xx/clock.c
arch/arm/mach-spear6xx/include/mach/generic.h
arch/arm/mach-spear6xx/spear6xx.c
arch/arm/mach-stmp378x/Makefile [deleted file]
arch/arm/mach-stmp378x/Makefile.boot [deleted file]
arch/arm/mach-stmp378x/include/mach/entry-macro.S [deleted file]
arch/arm/mach-stmp378x/include/mach/irqs.h [deleted file]
arch/arm/mach-stmp378x/include/mach/pins.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-apbh.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-apbx.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-audioin.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-audioout.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-bch.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-clkctrl.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-dcp.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-digctl.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-dram.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-dri.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-ecc8.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-emi.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-gpmi.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-i2c.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-icoll.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-ir.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-lcdif.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-lradc.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-ocotp.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-pinctrl.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-power.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-pwm.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-pxp.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-rtc.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-saif.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-spdif.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-ssp.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-sydma.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-timrot.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-tvenc.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-uartapp.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-uartdbg.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-usbctrl.h [deleted file]
arch/arm/mach-stmp378x/include/mach/regs-usbphy.h [deleted file]
arch/arm/mach-stmp378x/stmp378x.c [deleted file]
arch/arm/mach-stmp378x/stmp378x.h [deleted file]
arch/arm/mach-stmp378x/stmp378x_devb.c [deleted file]
arch/arm/mach-stmp37xx/Makefile [deleted file]
arch/arm/mach-stmp37xx/Makefile.boot [deleted file]
arch/arm/mach-stmp37xx/include/mach/entry-macro.S [deleted file]
arch/arm/mach-stmp37xx/include/mach/irqs.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/pins.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-apbh.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-apbx.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-audioin.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-audioout.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-clkctrl.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-digctl.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-ecc8.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-gpmi.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-i2c.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-icoll.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-lcdif.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-lradc.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-pinctrl.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-power.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-pwm.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-rtc.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-ssp.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-timrot.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-uartapp.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-uartdbg.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-usbctl.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-usbctrl.h [deleted file]
arch/arm/mach-stmp37xx/include/mach/regs-usbphy.h [deleted file]
arch/arm/mach-stmp37xx/stmp37xx.c [deleted file]
arch/arm/mach-stmp37xx/stmp37xx.h [deleted file]
arch/arm/mach-stmp37xx/stmp37xx_devb.c [deleted file]
arch/arm/mach-tcc8k/time.c
arch/arm/mach-tegra/Makefile
arch/arm/mach-tegra/gpio.c
arch/arm/mach-tegra/include/mach/legacy_irq.h [deleted file]
arch/arm/mach-tegra/include/mach/smp.h [deleted file]
arch/arm/mach-tegra/irq.c
arch/arm/mach-tegra/legacy_irq.c [deleted file]
arch/arm/mach-tegra/platsmp.c
arch/arm/mach-tegra/timer.c
arch/arm/mach-u300/timer.c
arch/arm/mach-ux500/include/mach/smp.h [deleted file]
arch/arm/mach-ux500/include/mach/uncompress.h
arch/arm/mach-ux500/platsmp.c
arch/arm/mach-versatile/core.c
arch/arm/mach-vexpress/ct-ca9x4.c
arch/arm/mach-vexpress/include/mach/smp.h [deleted file]
arch/arm/mach-vexpress/v2m.c
arch/arm/mach-w90x900/include/mach/uncompress.h
arch/arm/mach-w90x900/time.c
arch/arm/mm/flush.c
arch/arm/mm/init.c
arch/arm/mm/proc-v6.S
arch/arm/plat-mxc/Kconfig
arch/arm/plat-mxc/devices/Kconfig
arch/arm/plat-mxc/devices/Makefile
arch/arm/plat-mxc/devices/platform-ipu-core.c [new file with mode: 0644]
arch/arm/plat-mxc/devices/platform-mxc_rtc.c [new file with mode: 0644]
arch/arm/plat-mxc/devices/platform-spi_imx.c
arch/arm/plat-mxc/epit.c
arch/arm/plat-mxc/include/mach/common.h
arch/arm/plat-mxc/include/mach/debug-macro.S
arch/arm/plat-mxc/include/mach/devices-common.h
arch/arm/plat-mxc/include/mach/hardware.h
arch/arm/plat-mxc/include/mach/io.h
arch/arm/plat-mxc/include/mach/iomux-mx25.h
arch/arm/plat-mxc/include/mach/iomux-mxc91231.h [deleted file]
arch/arm/plat-mxc/include/mach/irqs.h
arch/arm/plat-mxc/include/mach/memory.h
arch/arm/plat-mxc/include/mach/mx27.h
arch/arm/plat-mxc/include/mach/mx53.h
arch/arm/plat-mxc/include/mach/mxc.h
arch/arm/plat-mxc/include/mach/mxc91231.h [deleted file]
arch/arm/plat-mxc/include/mach/system.h
arch/arm/plat-mxc/include/mach/timex.h
arch/arm/plat-mxc/include/mach/uncompress.h
arch/arm/plat-mxc/system.c
arch/arm/plat-mxc/time.c
arch/arm/plat-nomadik/Kconfig
arch/arm/plat-nomadik/gpio.c
arch/arm/plat-nomadik/timer.c
arch/arm/plat-omap/Kconfig
arch/arm/plat-omap/gpio.c
arch/arm/plat-omap/include/plat/flash.h
arch/arm/plat-omap/include/plat/smp.h [deleted file]
arch/arm/plat-omap/include/plat/uncompress.h
arch/arm/plat-orion/Makefile
arch/arm/plat-orion/common.c [new file with mode: 0644]
arch/arm/plat-orion/gpio.c
arch/arm/plat-orion/include/plat/common.h [new file with mode: 0644]
arch/arm/plat-orion/include/plat/gpio.h
arch/arm/plat-orion/include/plat/mpp.h [new file with mode: 0644]
arch/arm/plat-orion/irq.c
arch/arm/plat-orion/mpp.c [new file with mode: 0644]
arch/arm/plat-orion/time.c
arch/arm/plat-s5p/irq-gpioint.c
arch/arm/plat-s5p/irq.c
arch/arm/plat-s5p/s5p-time.c
arch/arm/plat-samsung/Kconfig
arch/arm/plat-samsung/include/plat/irq-vic-timer.h
arch/arm/plat-samsung/include/plat/uncompress.h
arch/arm/plat-samsung/irq-uart.c
arch/arm/plat-samsung/irq-vic-timer.c
arch/arm/plat-spear/clock.c
arch/arm/plat-spear/include/plat/clock.h
arch/arm/plat-spear/time.c
arch/arm/plat-stmp3xxx/Kconfig [deleted file]
arch/arm/plat-stmp3xxx/Makefile [deleted file]
arch/arm/plat-stmp3xxx/clock.c [deleted file]
arch/arm/plat-stmp3xxx/clock.h [deleted file]
arch/arm/plat-stmp3xxx/core.c [deleted file]
arch/arm/plat-stmp3xxx/devices.c [deleted file]
arch/arm/plat-stmp3xxx/dma.c [deleted file]
arch/arm/plat-stmp3xxx/include/mach/clkdev.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/cputype.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/debug-macro.S [deleted file]
arch/arm/plat-stmp3xxx/include/mach/dma.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/gpio.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/gpmi.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/hardware.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/io.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/memory.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/mmc.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/pinmux.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/pins.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/platform.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/stmp3xxx.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/system.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/timex.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/uncompress.h [deleted file]
arch/arm/plat-stmp3xxx/include/mach/vmalloc.h [deleted file]
arch/arm/plat-stmp3xxx/irq.c [deleted file]
arch/arm/plat-stmp3xxx/pinmux.c [deleted file]
arch/arm/plat-stmp3xxx/timer.c [deleted file]
arch/arm/plat-versatile/platsmp.c
arch/arm/tools/mach-types
arch/sh/Kconfig
arch/sh/boards/mach-ecovec24/setup.c
arch/sh/configs/ecovec24_defconfig
arch/sh/configs/sh7757lcr_defconfig
arch/sh/drivers/pci/fixups-se7751.c
arch/sh/include/asm/stacktrace.h
arch/sh/include/asm/unistd_32.h
arch/sh/include/asm/unistd_64.h
arch/sh/kernel/cpu/Makefile
arch/sh/kernel/cpu/shmobile/pm_runtime.c
arch/sh/kernel/dumpstack.c
arch/sh/kernel/module.c
arch/sh/kernel/perf_callchain.c
arch/sh/kernel/stacktrace.c
arch/sh/kernel/syscalls_32.S
arch/sh/kernel/syscalls_64.S
arch/sh/oprofile/backtrace.c
arch/um/Kconfig.x86
arch/x86/include/asm/linkage.h
arch/x86/include/asm/pci.h
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/pci-dma.c
arch/x86/kernel/ptrace.c
arch/x86/kernel/setup.c
arch/x86/pci/direct.c
arch/x86/pci/irq.c
arch/x86/pci/mmconfig-shared.c
drivers/acpi/pci_root.c
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/mmio.c [new file with mode: 0644]
drivers/clocksource/sh_cmt.c
drivers/clocksource/sh_tmu.c
drivers/dma/shdma.c
drivers/dma/shdma.h
drivers/hwmon/coretemp.c
drivers/i2c/busses/i2c-i801.c
drivers/i2c/busses/i2c-sh_mobile.c
drivers/media/common/saa7146_core.c
drivers/media/common/tuners/Kconfig
drivers/media/common/tuners/Makefile
drivers/media/common/tuners/mxl5005s.c
drivers/media/common/tuners/tda18212.c [new file with mode: 0644]
drivers/media/common/tuners/tda18212.h [new file with mode: 0644]
drivers/media/common/tuners/tda18212_priv.h [new file with mode: 0644]
drivers/media/common/tuners/tda18271-fe.c
drivers/media/common/tuners/xc5000.c
drivers/media/dvb/b2c2/flexcop-pci.c
drivers/media/dvb/bt8xx/bt878.c
drivers/media/dvb/dvb-core/dvb_demux.c
drivers/media/dvb/dvb-core/dvb_frontend.c
drivers/media/dvb/dvb-core/dvb_frontend.h
drivers/media/dvb/dvb-usb/Kconfig
drivers/media/dvb/dvb-usb/a800.c
drivers/media/dvb/dvb-usb/anysee.c
drivers/media/dvb/dvb-usb/anysee.h
drivers/media/dvb/dvb-usb/au6610.c
drivers/media/dvb/dvb-usb/ce6230.c
drivers/media/dvb/dvb-usb/dib0700.h
drivers/media/dvb/dvb-usb/dib0700_core.c
drivers/media/dvb/dvb-usb/dib0700_devices.c
drivers/media/dvb/dvb-usb/dibusb-common.c
drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
drivers/media/dvb/dvb-usb/dw2102.c
drivers/media/dvb/dvb-usb/ec168.c
drivers/media/dvb/dvb-usb/friio.c
drivers/media/dvb/dvb-usb/lmedm04.c
drivers/media/dvb/dvb-usb/lmedm04.h
drivers/media/dvb/dvb-usb/m920x.c
drivers/media/dvb/dvb-usb/nova-t-usb2.c
drivers/media/dvb/dvb-usb/opera1.c
drivers/media/dvb/dvb-usb/vp702x-fe.c
drivers/media/dvb/dvb-usb/vp702x.c
drivers/media/dvb/dvb-usb/vp702x.h
drivers/media/dvb/dvb-usb/vp7045.c
drivers/media/dvb/frontends/Kconfig
drivers/media/dvb/frontends/Makefile
drivers/media/dvb/frontends/bsbe1-d01a.h [new file with mode: 0644]
drivers/media/dvb/frontends/bsru6.h
drivers/media/dvb/frontends/cx24116.c
drivers/media/dvb/frontends/cx24116.h
drivers/media/dvb/frontends/cxd2820r.h [new file with mode: 0644]
drivers/media/dvb/frontends/cxd2820r_c.c [new file with mode: 0644]
drivers/media/dvb/frontends/cxd2820r_core.c [new file with mode: 0644]
drivers/media/dvb/frontends/cxd2820r_priv.h [new file with mode: 0644]
drivers/media/dvb/frontends/cxd2820r_t.c [new file with mode: 0644]
drivers/media/dvb/frontends/cxd2820r_t2.c [new file with mode: 0644]
drivers/media/dvb/frontends/dib0070.c
drivers/media/dvb/frontends/dib0090.c
drivers/media/dvb/frontends/dib7000m.c
drivers/media/dvb/frontends/dib7000p.c
drivers/media/dvb/frontends/dib8000.c
drivers/media/dvb/frontends/dib9000.c
drivers/media/dvb/frontends/dibx000_common.c
drivers/media/dvb/frontends/dibx000_common.h
drivers/media/dvb/frontends/drx397xD.c [deleted file]
drivers/media/dvb/frontends/drx397xD.h [deleted file]
drivers/media/dvb/frontends/drx397xD_fw.h [deleted file]
drivers/media/dvb/frontends/drxd.h [new file with mode: 0644]
drivers/media/dvb/frontends/drxd_firm.c [new file with mode: 0644]
drivers/media/dvb/frontends/drxd_firm.h [new file with mode: 0644]
drivers/media/dvb/frontends/drxd_hard.c [new file with mode: 0644]
drivers/media/dvb/frontends/drxd_map_firm.h [new file with mode: 0644]
drivers/media/dvb/frontends/eds1547.h
drivers/media/dvb/frontends/ix2505v.c
drivers/media/dvb/frontends/stv0288.c
drivers/media/dvb/frontends/stv0299.c
drivers/media/dvb/frontends/z0194a.h
drivers/media/dvb/mantis/hopper_cards.c
drivers/media/dvb/mantis/mantis_cards.c
drivers/media/dvb/mantis/mantis_pci.c
drivers/media/dvb/mantis/mantis_vp1033.c
drivers/media/dvb/pt1/pt1.c
drivers/media/dvb/siano/smsusb.c
drivers/media/dvb/ttpci/Kconfig
drivers/media/dvb/ttpci/budget-ci.c
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
drivers/media/radio/si470x/radio-si470x-common.c
drivers/media/radio/si470x/radio-si470x-i2c.c
drivers/media/radio/si470x/radio-si470x.h
drivers/media/radio/wl128x/fmdrv.h
drivers/media/rc/Kconfig
drivers/media/rc/Makefile
drivers/media/rc/imon.c
drivers/media/rc/ite-cir.c
drivers/media/rc/keymaps/Makefile
drivers/media/rc/keymaps/rc-avermedia-cardbus.c
drivers/media/rc/keymaps/rc-imon-mce.c
drivers/media/rc/keymaps/rc-imon-pad.c
drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.c
drivers/media/rc/keymaps/rc-rc6-mce.c
drivers/media/rc/keymaps/rc-tivo.c [new file with mode: 0644]
drivers/media/rc/keymaps/rc-winfast.c
drivers/media/rc/mceusb.c
drivers/media/rc/nuvoton-cir.c
drivers/media/rc/nuvoton-cir.h
drivers/media/rc/rc-loopback.c
drivers/media/rc/rc-main.c
drivers/media/rc/redrat3.c [new file with mode: 0644]
drivers/media/rc/winbond-cir.c
drivers/media/video/Kconfig
drivers/media/video/Makefile
drivers/media/video/bt8xx/bttv-driver.c
drivers/media/video/cpia2/cpia2_v4l.c
drivers/media/video/cx18/Kconfig
drivers/media/video/cx18/cx18-cards.c
drivers/media/video/cx18/cx18-cards.h
drivers/media/video/cx18/cx18-driver.c
drivers/media/video/cx18/cx18-driver.h
drivers/media/video/cx18/cx18-fileops.c
drivers/media/video/cx18/cx18-fileops.h
drivers/media/video/cx18/cx18-ioctl.c
drivers/media/video/cx18/cx18-mailbox.c
drivers/media/video/cx18/cx18-streams.c
drivers/media/video/cx18/cx18-version.h
drivers/media/video/cx18/cx23418.h
drivers/media/video/cx231xx/cx231xx-cards.c
drivers/media/video/cx231xx/cx231xx-dvb.c
drivers/media/video/cx231xx/cx231xx.h
drivers/media/video/cx23885/cx23885-cards.c
drivers/media/video/cx23885/cx23885-core.c
drivers/media/video/cx88/cx88-blackbird.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-mpeg.c
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88.h
drivers/media/video/em28xx/Kconfig
drivers/media/video/em28xx/em28xx-cards.c
drivers/media/video/em28xx/em28xx-core.c
drivers/media/video/em28xx/em28xx-dvb.c
drivers/media/video/em28xx/em28xx-i2c.c
drivers/media/video/em28xx/em28xx-reg.h
drivers/media/video/em28xx/em28xx.h
drivers/media/video/fsl-viu.c
drivers/media/video/gspca/Kconfig
drivers/media/video/gspca/Makefile
drivers/media/video/gspca/cpia1.c
drivers/media/video/gspca/gl860/gl860.c
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/gspca.h
drivers/media/video/gspca/jeilinj.c
drivers/media/video/gspca/kinect.c [new file with mode: 0644]
drivers/media/video/gspca/spca508.c
drivers/media/video/gspca/stk014.c
drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c
drivers/media/video/gspca/sunplus.c
drivers/media/video/gspca/t613.c
drivers/media/video/gspca/zc3xx.c
drivers/media/video/ivtv/ivtv-driver.c
drivers/media/video/mt9m111.c
drivers/media/video/mt9v022.c
drivers/media/video/mt9v032.c [new file with mode: 0644]
drivers/media/video/mx3_camera.c
drivers/media/video/omap1_camera.c
drivers/media/video/pvrusb2/pvrusb2-std.c
drivers/media/video/pwc/pwc-if.c
drivers/media/video/pwc/pwc-v4l.c
drivers/media/video/pxa_camera.c
drivers/media/video/s2255drv.c
drivers/media/video/s5p-fimc/Makefile
drivers/media/video/s5p-fimc/mipi-csis.c [new file with mode: 0644]
drivers/media/video/s5p-fimc/mipi-csis.h [new file with mode: 0644]
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134-dvb.c
drivers/media/video/saa7134/saa7134-input.c
drivers/media/video/saa7134/saa7134.h
drivers/media/video/saa7164/saa7164-core.c
drivers/media/video/sh_mobile_ceu_camera.c
drivers/media/video/soc_camera.c
drivers/media/video/soc_mediabus.c
drivers/media/video/tveeprom.c
drivers/media/video/usbvision/usbvision-cards.c
drivers/media/video/usbvision/usbvision-cards.h
drivers/media/video/usbvision/usbvision-core.c
drivers/media/video/usbvision/usbvision-i2c.c
drivers/media/video/usbvision/usbvision-video.c
drivers/media/video/usbvision/usbvision.h
drivers/media/video/uvc/uvc_ctrl.c
drivers/media/video/uvc/uvc_driver.c
drivers/media/video/uvc/uvc_queue.c
drivers/media/video/uvc/uvc_v4l2.c
drivers/media/video/uvc/uvcvideo.h
drivers/media/video/v4l2-dev.c
drivers/media/video/via-camera.c
drivers/media/video/zoran/zoran_card.c
drivers/mmc/host/mmci.c
drivers/mmc/host/mmci.h
drivers/mtd/Kconfig
drivers/mtd/maps/Makefile
drivers/mtd/maps/integrator-flash.c [deleted file]
drivers/mtd/maps/physmap.c
drivers/mtd/maps/pismo.c
drivers/net/e1000e/netdev.c
drivers/pci/access.c
drivers/pci/bus.c
drivers/pci/hotplug/acpiphp_glue.c
drivers/pci/hotplug/pcihp_slot.c
drivers/pci/pci-sysfs.c
drivers/pci/pci.c
drivers/pci/pci.h
drivers/pci/pcie/aer/aer_inject.c
drivers/pci/pcie/aer/aerdrv.h
drivers/pci/pcie/aspm.c
drivers/pci/probe.c
drivers/pci/quirks.c
drivers/pci/remove.c
drivers/pci/setup-bus.c
drivers/sh/clk/cpg.c
drivers/sh/intc/virq.c
drivers/staging/lirc/lirc_sasem.c
drivers/staging/tm6000/CARDLIST [new file with mode: 0644]
drivers/staging/tm6000/tm6000-alsa.c
drivers/staging/tm6000/tm6000-cards.c
drivers/staging/tm6000/tm6000-core.c
drivers/staging/tm6000/tm6000-i2c.c
drivers/staging/tm6000/tm6000-stds.c
drivers/staging/tm6000/tm6000-usb-isoc.h
drivers/staging/tm6000/tm6000-video.c
drivers/staging/tm6000/tm6000.h
drivers/tty/serial/sh-sci.c
drivers/tty/serial/sh-sci.h
drivers/video/Kconfig
drivers/video/imxfb.c
fs/fat/cache.c
fs/fat/dir.c
fs/fat/fat.h
fs/fat/fatent.c
fs/fat/inode.c
fs/fat/misc.c
fs/fat/namei_msdos.c
fs/fat/namei_vfat.c
fs/xfs/linux-2.6/xfs_buf.c
fs/xfs/linux-2.6/xfs_buf.h
fs/xfs/linux-2.6/xfs_ioctl32.c
fs/xfs/linux-2.6/xfs_ioctl32.h
fs/xfs/linux-2.6/xfs_linux.h
fs/xfs/linux-2.6/xfs_message.c
fs/xfs/linux-2.6/xfs_message.h
fs/xfs/linux-2.6/xfs_super.c
fs/xfs/linux-2.6/xfs_sync.c
fs/xfs/linux-2.6/xfs_trace.h
fs/xfs/xfs_ag.h
fs/xfs/xfs_alloc.c
fs/xfs/xfs_alloc.h
fs/xfs/xfs_alloc_btree.c
fs/xfs/xfs_dfrag.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode_item.c
fs/xfs/xfs_log.c
fs/xfs/xfs_log.h
fs/xfs/xfs_log_cil.c
fs/xfs/xfs_log_priv.h
fs/xfs/xfs_log_recover.c
fs/xfs/xfs_mount.c
fs/xfs/xfs_trans.c
fs/xfs/xfs_types.h
include/linux/Kbuild
include/linux/clocksource.h
include/linux/dvb/frontend.h
include/linux/dvb/version.h
include/linux/elf.h
include/linux/kvm_host.h
include/linux/linkage.h
include/linux/mtd/physmap.h
include/linux/pci-aspm.h
include/linux/pci.h
include/linux/pci_ids.h
include/linux/pci_regs.h
include/linux/uvcvideo.h [new file with mode: 0644]
include/linux/v4l2-mediabus.h
include/linux/videodev2.h
include/media/mt9v032.h [new file with mode: 0644]
include/media/rc-core.h
include/media/rc-map.h
include/media/soc_camera.h
include/media/soc_camera_platform.h
include/media/soc_mediabus.h
include/media/v4l2-dev.h
kernel/profile.c
kernel/watchdog.c
tools/perf/util/event.c
virt/kvm/assigned-dev.c

index 36bf454..349ecf2 100644 (file)
@@ -74,6 +74,15 @@ Description:
                hot-remove the PCI device and any of its children.
                Depends on CONFIG_HOTPLUG.
 
+What:          /sys/bus/pci/devices/.../pci_bus/.../rescan
+Date:          May 2011
+Contact:       Linux PCI developers <linux-pci@vger.kernel.org>
+Description:
+               Writing a non-zero value to this attribute will
+               force a rescan of the bus and all child buses,
+               and re-discover devices removed earlier from this
+               part of the device tree.  Depends on CONFIG_HOTPLUG.
+
 What:          /sys/bus/pci/devices/.../rescan
 Date:          January 2009
 Contact:       Linux PCI developers <linux-pci@vger.kernel.org>
index ad8678d..9fad86c 100644 (file)
 
 <revhistory>
 <!-- Put document revisions here, newest first. -->
+<revision>
+       <revnumber>2.0.4</revnumber>
+       <date>2011-05-06</date>
+       <authorinitials>mcc</authorinitials>
+       <revremark>
+               Add more information about DVB APIv5, better describing the frontend GET/SET props ioctl's.
+       </revremark>
+</revision>
 <revision>
        <revnumber>2.0.3</revnumber>
        <date>2010-07-03</date>
index 97f397e..52d5e3c 100644 (file)
@@ -1,6 +1,327 @@
-<section id="FE_GET_PROPERTY">
+<section id="FE_GET_SET_PROPERTY">
 <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title>
 
+<programlisting>
+/* Reserved fields should be set to 0 */
+struct dtv_property {
+       __u32 cmd;
+       union {
+               __u32 data;
+               struct {
+                       __u8 data[32];
+                       __u32 len;
+                       __u32 reserved1[3];
+                       void *reserved2;
+               } buffer;
+       } u;
+       int result;
+} __attribute__ ((packed));
+
+/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
+#define DTV_IOCTL_MAX_MSGS 64
+
+struct dtv_properties {
+       __u32 num;
+       struct dtv_property *props;
+};
+</programlisting>
+
+<section id="FE_GET_PROPERTY">
+<title>FE_GET_PROPERTY</title>
+<para>DESCRIPTION
+</para>
+<informaltable><tgroup cols="1"><tbody><row><entry
+ align="char">
+<para>This ioctl call returns one or more frontend properties. This call only
+ requires read-only access to the device.</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>SYNOPSIS
+</para>
+<informaltable><tgroup cols="1"><tbody><row><entry
+ align="char">
+<para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>,
+ dtv_properties &#x22C6;props);</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>PARAMETERS
+</para>
+<informaltable><tgroup cols="2"><tbody><row><entry align="char">
+<para>int fd</para>
+</entry><entry
+ align="char">
+<para>File descriptor returned by a previous call to open().</para>
+</entry>
+ </row><row><entry
+ align="char">
+<para>int num</para>
+</entry><entry
+ align="char">
+<para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para>
+</entry>
+ </row><row><entry
+ align="char">
+<para>struct dtv_property *props</para>
+</entry><entry
+ align="char">
+<para>Points to the location where the front-end property commands are stored.</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>ERRORS</para>
+<informaltable><tgroup cols="2"><tbody><row>
+  <entry align="char"><para>EINVAL</para></entry>
+  <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry>
+ </row><row>
+  <entry align="char"><para>ENOMEM</para></entry>
+  <entry align="char"><para>Out of memory.</para></entry>
+ </row><row>
+  <entry align="char"><para>EFAULT</para></entry>
+  <entry align="char"><para>Failure while copying data from/to userspace.</para></entry>
+ </row><row>
+  <entry align="char"><para>EOPNOTSUPP</para></entry>
+  <entry align="char"><para>Property type not supported.</para></entry>
+ </row></tbody></tgroup></informaltable>
+</section>
+
+<section id="FE_SET_PROPERTY">
+<title>FE_SET_PROPERTY</title>
+<para>DESCRIPTION
+</para>
+<informaltable><tgroup cols="1"><tbody><row><entry
+ align="char">
+<para>This ioctl call sets one or more frontend properties. This call only
+ requires read-only access to the device.</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>SYNOPSIS
+</para>
+<informaltable><tgroup cols="1"><tbody><row><entry
+ align="char">
+<para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>,
+ dtv_properties &#x22C6;props);</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>PARAMETERS
+</para>
+<informaltable><tgroup cols="2"><tbody><row><entry align="char">
+<para>int fd</para>
+</entry><entry
+ align="char">
+<para>File descriptor returned by a previous call to open().</para>
+</entry>
+ </row><row><entry
+ align="char">
+<para>int num</para>
+</entry><entry
+ align="char">
+<para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para>
+</entry>
+ </row><row><entry
+ align="char">
+<para>struct dtv_property *props</para>
+</entry><entry
+ align="char">
+<para>Points to the location where the front-end property commands are stored.</para>
+</entry>
+ </row></tbody></tgroup></informaltable>
+<para>ERRORS
+</para>
+<informaltable><tgroup cols="2"><tbody><row>
+  <entry align="char"><para>EINVAL</para></entry>
+  <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry>
+ </row><row>
+  <entry align="char"><para>ENOMEM</para></entry>
+  <entry align="char"><para>Out of memory.</para></entry>
+ </row><row>
+  <entry align="char"><para>EFAULT</para></entry>
+  <entry align="char"><para>Failure while copying data from/to userspace.</para></entry>
+ </row><row>
+  <entry align="char"><para>EOPNOTSUPP</para></entry>
+  <entry align="char"><para>Property type not supported.</para></entry>
+ </row></tbody></tgroup></informaltable>
+</section>
+
+<para>
+On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>,
+the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to
+get/set up to 64 properties. The actual meaning of each property is described on the next sections.
+</para>
+
+<para>The Available frontend property types are:</para>
+<programlisting>
+#define DTV_UNDEFINED          0
+#define DTV_TUNE               1
+#define DTV_CLEAR              2
+#define DTV_FREQUENCY          3
+#define DTV_MODULATION         4
+#define DTV_BANDWIDTH_HZ       5
+#define DTV_INVERSION          6
+#define DTV_DISEQC_MASTER      7
+#define DTV_SYMBOL_RATE                8
+#define DTV_INNER_FEC          9
+#define DTV_VOLTAGE            10
+#define DTV_TONE               11
+#define DTV_PILOT              12
+#define DTV_ROLLOFF            13
+#define DTV_DISEQC_SLAVE_REPLY 14
+#define DTV_FE_CAPABILITY_COUNT        15
+#define DTV_FE_CAPABILITY      16
+#define DTV_DELIVERY_SYSTEM    17
+#define DTV_ISDBT_PARTIAL_RECEPTION    18
+#define DTV_ISDBT_SOUND_BROADCASTING   19
+#define DTV_ISDBT_SB_SUBCHANNEL_ID     20
+#define DTV_ISDBT_SB_SEGMENT_IDX       21
+#define DTV_ISDBT_SB_SEGMENT_COUNT     22
+#define DTV_ISDBT_LAYERA_FEC                   23
+#define DTV_ISDBT_LAYERA_MODULATION            24
+#define DTV_ISDBT_LAYERA_SEGMENT_COUNT         25
+#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING     26
+#define DTV_ISDBT_LAYERB_FEC                   27
+#define DTV_ISDBT_LAYERB_MODULATION            28
+#define DTV_ISDBT_LAYERB_SEGMENT_COUNT         29
+#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING     30
+#define DTV_ISDBT_LAYERC_FEC                   31
+#define DTV_ISDBT_LAYERC_MODULATION            32
+#define DTV_ISDBT_LAYERC_SEGMENT_COUNT         33
+#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING     34
+#define DTV_API_VERSION                35
+#define DTV_CODE_RATE_HP       36
+#define DTV_CODE_RATE_LP       37
+#define DTV_GUARD_INTERVAL     38
+#define DTV_TRANSMISSION_MODE  39
+#define DTV_HIERARCHY          40
+#define DTV_ISDBT_LAYER_ENABLED        41
+#define DTV_ISDBS_TS_ID                42
+</programlisting>
+
+<section id="fe_property_common">
+       <title>Parameters that are common to all Digital TV standards</title>
+       <section id="DTV_FREQUENCY">
+               <title><constant>DTV_FREQUENCY</constant></title>
+
+               <para>Central frequency of the channel, in HZ.</para>
+
+               <para>Notes:</para>
+               <para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz.
+                       E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of
+                       the channel which is 6MHz.</para>
+
+               <para>2)As in ISDB-Tsb the channel consists of only one or three segments the
+                       frequency step is 429kHz, 3*429 respectively. As for ISDB-T the
+                       central frequency of the channel is expected.</para>
+       </section>
+
+       <section id="DTV_BANDWIDTH_HZ">
+               <title><constant>DTV_BANDWIDTH_HZ</constant></title>
+
+               <para>Bandwidth for the channel, in HZ.</para>
+
+               <para>Possible values:
+                       <constant>1712000</constant>,
+                       <constant>5000000</constant>,
+                       <constant>6000000</constant>,
+                       <constant>7000000</constant>,
+                       <constant>8000000</constant>,
+                       <constant>10000000</constant>.
+               </para>
+
+               <para>Notes:</para>
+
+               <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para>
+               <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para>
+               <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth
+                        for DVB-C depends on the symbol rate</para>
+               <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from
+                       other parameters (DTV_ISDBT_SB_SEGMENT_IDX,
+                       DTV_ISDBT_SB_SEGMENT_COUNT).</para>
+               <para>5) DVB-T supports 6, 7 and 8MHz.</para>
+               <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para>
+       </section>
+
+       <section id="DTV_DELIVERY_SYSTEM">
+               <title><constant>DTV_DELIVERY_SYSTEM</constant></title>
+
+               <para>Specifies the type of Delivery system</para>
+
+               <para>Possible values: </para>
+<programlisting>
+typedef enum fe_delivery_system {
+       SYS_UNDEFINED,
+       SYS_DVBC_ANNEX_AC,
+       SYS_DVBC_ANNEX_B,
+       SYS_DVBT,
+       SYS_DSS,
+       SYS_DVBS,
+       SYS_DVBS2,
+       SYS_DVBH,
+       SYS_ISDBT,
+       SYS_ISDBS,
+       SYS_ISDBC,
+       SYS_ATSC,
+       SYS_ATSCMH,
+       SYS_DMBTH,
+       SYS_CMMB,
+       SYS_DAB,
+       SYS_DVBT2,
+} fe_delivery_system_t;
+</programlisting>
+
+       </section>
+
+       <section id="DTV_TRANSMISSION_MODE">
+               <title><constant>DTV_TRANSMISSION_MODE</constant></title>
+
+               <para>Specifies the number of carriers used by the standard</para>
+
+               <para>Possible values are:</para>
+<programlisting>
+typedef enum fe_transmit_mode {
+       TRANSMISSION_MODE_2K,
+       TRANSMISSION_MODE_8K,
+       TRANSMISSION_MODE_AUTO,
+       TRANSMISSION_MODE_4K,
+       TRANSMISSION_MODE_1K,
+       TRANSMISSION_MODE_16K,
+       TRANSMISSION_MODE_32K,
+} fe_transmit_mode_t;
+</programlisting>
+
+               <para>Notes:</para>
+               <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called
+                       'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para>
+
+               <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the
+                       hardware will try to find the correct FFT-size (if capable) and will
+                       use TMCC to fill in the missing parameters.</para>
+               <para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
+               <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
+       </section>
+
+       <section id="DTV_GUARD_INTERVAL">
+               <title><constant>DTV_GUARD_INTERVAL</constant></title>
+
+               <para>Possible values are:</para>
+<programlisting>
+typedef enum fe_guard_interval {
+       GUARD_INTERVAL_1_32,
+       GUARD_INTERVAL_1_16,
+       GUARD_INTERVAL_1_8,
+       GUARD_INTERVAL_1_4,
+       GUARD_INTERVAL_AUTO,
+       GUARD_INTERVAL_1_128,
+       GUARD_INTERVAL_19_128,
+       GUARD_INTERVAL_19_256,
+} fe_guard_interval_t;
+</programlisting>
+
+               <para>Notes:</para>
+               <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will
+                       try to find the correct guard interval (if capable) and will use TMCC to fill
+                       in the missing parameters.</para>
+               <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
+       </section>
+</section>
+
 <section id="isdbt">
        <title>ISDB-T frontend</title>
        <para>This section describes shortly what are the possible parameters in the Linux
 
        <para>Parameters used by ISDB-T and ISDB-Tsb.</para>
 
-       <section id="isdbt-parms">
-               <title>Parameters that are common with DVB-T and ATSC</title>
-
-               <section id="isdbt-freq">
-                       <title><constant>DTV_FREQUENCY</constant></title>
-
-                       <para>Central frequency of the channel.</para>
-
-                       <para>For ISDB-T the channels are usually transmitted with an offset of 143kHz. E.g. a
-                               valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of
-                               the channel which is 6MHz.</para>
-
-                       <para>As in ISDB-Tsb the channel consists of only one or three segments the
-                               frequency step is 429kHz, 3*429 respectively. As for ISDB-T the
-                               central frequency of the channel is expected.</para>
-               </section>
-
-               <section id="isdbt-bw">
-                       <title><constant>DTV_BANDWIDTH_HZ</constant> (optional)</title>
-
-                       <para>Possible values:</para>
-
-                       <para>For ISDB-T it should be always 6000000Hz (6MHz)</para>
-                       <para>For ISDB-Tsb it can vary depending on the number of connected segments</para>
-
-                       <para>Note: Hardware specific values might be given here, but standard
-                               applications should not bother to set a value to this field as
-                               standard demods are ignoring it anyway.</para>
-
-                       <para>Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from
-                               other parameters (DTV_ISDBT_SB_SEGMENT_IDX,
-                               DTV_ISDBT_SB_SEGMENT_COUNT).</para>
-               </section>
-
-               <section id="isdbt-delivery-sys">
-                       <title><constant>DTV_DELIVERY_SYSTEM</constant></title>
-
-                       <para>Possible values: <constant>SYS_ISDBT</constant></para>
-               </section>
-
-               <section id="isdbt-tx-mode">
-                       <title><constant>DTV_TRANSMISSION_MODE</constant></title>
-
-                       <para>ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called
-                               'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para>
-
-                       <para>Possible values: <constant>TRANSMISSION_MODE_2K</constant>, <constant>TRANSMISSION_MODE_8K</constant>,
-                               <constant>TRANSMISSION_MODE_AUTO</constant>, <constant>TRANSMISSION_MODE_4K</constant></para>
-
-                       <para>If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the
-                               hardware will try to find the correct FFT-size (if capable) and will
-                               use TMCC to fill in the missing parameters.</para>
-
-                       <para><constant>TRANSMISSION_MODE_4K</constant> is added at the same time as the other new parameters.</para>
-               </section>
-
-               <section id="isdbt-guard-interval">
-                       <title><constant>DTV_GUARD_INTERVAL</constant></title>
-
-                       <para>Possible values: <constant>GUARD_INTERVAL_1_32</constant>, <constant>GUARD_INTERVAL_1_16</constant>, <constant>GUARD_INTERVAL_1_8</constant>,
-                               <constant>GUARD_INTERVAL_1_4</constant>, <constant>GUARD_INTERVAL_AUTO</constant></para>
-
-                       <para>If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will
-                               try to find the correct guard interval (if capable) and will use TMCC to fill
-                               in the missing parameters.</para>
-               </section>
-       </section>
        <section id="isdbt-new-parms">
                <title>ISDB-T only parameters</title>
 
                        </section>
                </section>
        </section>
+       <section id="dvbt2-params">
+               <title>DVB-T2 parameters</title>
+               
+               <para>This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2
+                       support is currently in the early stages development so expect this section to grow
+                       and become more detailed with time.</para>
+
+               <section id="dvbt2-plp-id">
+                       <title><constant>DTV_DVBT2_PLP_ID</constant></title>
+
+                       <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of
+                               many data types via a single multiplex. The API will soon support this
+                               at which point this section will be expanded.</para>
+               </section>
+       </section>
 </section>
 </section>
index d08e0d4..d792f78 100644 (file)
@@ -176,14 +176,20 @@ typedef enum fe_transmit_mode {
         TRANSMISSION_MODE_2K,
         TRANSMISSION_MODE_8K,
         TRANSMISSION_MODE_AUTO,
-        TRANSMISSION_MODE_4K
+        TRANSMISSION_MODE_4K,
+        TRANSMISSION_MODE_1K,
+        TRANSMISSION_MODE_16K,
+        TRANSMISSION_MODE_32K,
 } fe_transmit_mode_t;
 
 typedef enum fe_bandwidth {
         BANDWIDTH_8_MHZ,
         BANDWIDTH_7_MHZ,
         BANDWIDTH_6_MHZ,
-        BANDWIDTH_AUTO
+        BANDWIDTH_AUTO,
+        BANDWIDTH_5_MHZ,
+        BANDWIDTH_10_MHZ,
+        BANDWIDTH_1_712_MHZ,
 } fe_bandwidth_t;
 
 
@@ -192,7 +198,10 @@ typedef enum fe_guard_interval {
         GUARD_INTERVAL_1_16,
         GUARD_INTERVAL_1_8,
         GUARD_INTERVAL_1_4,
-        GUARD_INTERVAL_AUTO
+        GUARD_INTERVAL_AUTO,
+        GUARD_INTERVAL_1_128,
+        GUARD_INTERVAL_19_128,
+        GUARD_INTERVAL_19_256,
 } fe_guard_interval_t;
 
 
@@ -306,7 +315,9 @@ struct dvb_frontend_event {
 
 #define DTV_ISDBS_TS_ID         42
 
-#define DTV_MAX_COMMAND                         DTV_ISDBS_TS_ID
+#define DTV_DVBT2_PLP_ID       43
+
+#define DTV_MAX_COMMAND                         DTV_DVBT2_PLP_ID
 
 typedef enum fe_pilot {
         PILOT_ON,
@@ -338,6 +349,7 @@ typedef enum fe_delivery_system {
         SYS_DMBTH,
         SYS_CMMB,
         SYS_DAB,
+        SYS_DVBT2,
 } fe_delivery_system_t;
 
 struct dtv_cmds_h {
index fea63b4..c8abb23 100644 (file)
 <!ENTITY sub-write SYSTEM "v4l/func-write.xml">
 <!ENTITY sub-io SYSTEM "v4l/io.xml">
 <!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml">
+<!ENTITY sub-m420 SYSTEM "v4l/pixfmt-m420.xml">
 <!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml">
 <!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml">
 <!ENTITY sub-nv12mt SYSTEM "v4l/pixfmt-nv12mt.xml">
 <!ENTITY sub-srggb8 SYSTEM "v4l/pixfmt-srggb8.xml">
 <!ENTITY sub-y10 SYSTEM "v4l/pixfmt-y10.xml">
 <!ENTITY sub-y12 SYSTEM "v4l/pixfmt-y12.xml">
+<!ENTITY sub-y10b SYSTEM "v4l/pixfmt-y10b.xml">
 <!ENTITY sub-pixfmt SYSTEM "v4l/pixfmt.xml">
 <!ENTITY sub-cropcap SYSTEM "v4l/vidioc-cropcap.xml">
 <!ENTITY sub-dbg-g-register SYSTEM "v4l/vidioc-dbg-g-register.xml">
diff --git a/Documentation/DocBook/v4l/pixfmt-m420.xml b/Documentation/DocBook/v4l/pixfmt-m420.xml
new file mode 100644 (file)
index 0000000..ce4bc01
--- /dev/null
@@ -0,0 +1,147 @@
+    <refentry id="V4L2-PIX-FMT-M420">
+      <refmeta>
+       <refentrytitle>V4L2_PIX_FMT_M420 ('M420')</refentrytitle>
+       &manvol;
+      </refmeta>
+      <refnamediv>
+       <refname><constant>V4L2_PIX_FMT_M420</constant></refname>
+       <refpurpose>Format with &frac12; horizontal and vertical chroma
+       resolution, also known as YUV 4:2:0. Hybrid plane line-interleaved
+       layout.</refpurpose>
+      </refnamediv>
+      <refsect1>
+       <title>Description</title>
+
+       <para>M420 is a YUV format with &frac12; horizontal and vertical chroma
+       subsampling (YUV 4:2:0). Pixels are organized as interleaved luma and
+       chroma planes. Two lines of luma data are followed by one line of chroma
+       data.</para>
+       <para>The luma plane has one byte per pixel. The chroma plane contains
+       interleaved CbCr pixels subsampled by &frac12; in the horizontal and
+       vertical directions. Each CbCr pair belongs to four pixels. For example,
+Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to
+Y'<subscript>00</subscript>, Y'<subscript>01</subscript>,
+Y'<subscript>10</subscript>, Y'<subscript>11</subscript>.</para>
+
+       <para>All line lengths are identical: if the Y lines include pad bytes
+       so do the CbCr lines.</para>
+
+       <example>
+         <title><constant>V4L2_PIX_FMT_M420</constant> 4 &times; 4
+pixel image</title>
+
+         <formalpara>
+           <title>Byte Order.</title>
+           <para>Each cell is one byte.
+               <informaltable frame="none">
+               <tgroup cols="5" align="center">
+                 <colspec align="left" colwidth="2*" />
+                 <tbody valign="top">
+                   <row>
+                     <entry>start&nbsp;+&nbsp;0:</entry>
+                     <entry>Y'<subscript>00</subscript></entry>
+                     <entry>Y'<subscript>01</subscript></entry>
+                     <entry>Y'<subscript>02</subscript></entry>
+                     <entry>Y'<subscript>03</subscript></entry>
+                   </row>
+                   <row>
+                     <entry>start&nbsp;+&nbsp;4:</entry>
+                     <entry>Y'<subscript>10</subscript></entry>
+                     <entry>Y'<subscript>11</subscript></entry>
+                     <entry>Y'<subscript>12</subscript></entry>
+                     <entry>Y'<subscript>13</subscript></entry>
+                   </row>
+                   <row>
+                     <entry>start&nbsp;+&nbsp;8:</entry>
+                     <entry>Cb<subscript>00</subscript></entry>
+                     <entry>Cr<subscript>00</subscript></entry>
+                     <entry>Cb<subscript>01</subscript></entry>
+                     <entry>Cr<subscript>01</subscript></entry>
+                   </row>
+                   <row>
+                     <entry>start&nbsp;+&nbsp;16:</entry>
+                     <entry>Y'<subscript>20</subscript></entry>
+                     <entry>Y'<subscript>21</subscript></entry>
+                     <entry>Y'<subscript>22</subscript></entry>
+                     <entry>Y'<subscript>23</subscript></entry>
+                   </row>
+                   <row>
+                     <entry>start&nbsp;+&nbsp;20:</entry>
+                     <entry>Y'<subscript>30</subscript></entry>
+                     <entry>Y'<subscript>31</subscript></entry>
+                     <entry>Y'<subscript>32</subscript></entry>
+                     <entry>Y'<subscript>33</subscript></entry>
+                   </row>
+                   <row>
+                     <entry>start&nbsp;+&nbsp;24:</entry>
+                     <entry>Cb<subscript>10</subscript></entry>
+                     <entry>Cr<subscript>10</subscript></entry>
+                     <entry>Cb<subscript>11</subscript></entry>
+                     <entry>Cr<subscript>11</subscript></entry>
+                   </row>
+                 </tbody>
+               </tgroup>
+               </informaltable>
+             </para>
+         </formalpara>
+
+         <formalpara>
+           <title>Color Sample Location.</title>
+           <para>
+               <informaltable frame="none">
+               <tgroup cols="7" align="center">
+                 <tbody valign="top">
+                   <row>
+                     <entry></entry>
+                     <entry>0</entry><entry></entry><entry>1</entry><entry></entry>
+                     <entry>2</entry><entry></entry><entry>3</entry>
+                   </row>
+                   <row>
+                     <entry>0</entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry>
+                   </row>
+                   <row>
+                     <entry></entry>
+                     <entry></entry><entry>C</entry><entry></entry><entry></entry>
+                     <entry></entry><entry>C</entry><entry></entry>
+                   </row>
+                   <row>
+                     <entry>1</entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry>
+                   </row>
+                   <row>
+                     <entry></entry>
+                   </row>
+                   <row>
+                     <entry>2</entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry>
+                   </row>
+                   <row>
+                     <entry></entry>
+                     <entry></entry><entry>C</entry><entry></entry><entry></entry>
+                     <entry></entry><entry>C</entry><entry></entry>
+                   </row>
+                   <row>
+                     <entry>3</entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
+                     <entry>Y</entry><entry></entry><entry>Y</entry>
+                   </row>
+                 </tbody>
+               </tgroup>
+               </informaltable>
+             </para>
+         </formalpara>
+       </example>
+      </refsect1>
+    </refentry>
+
+  <!--
+Local Variables:
+mode: sgml
+sgml-parent-document: "pixfmt.sgml"
+indent-tabs-mode: nil
+End:
+  -->
diff --git a/Documentation/DocBook/v4l/pixfmt-y10b.xml b/Documentation/DocBook/v4l/pixfmt-y10b.xml
new file mode 100644 (file)
index 0000000..adb0ad8
--- /dev/null
@@ -0,0 +1,43 @@
+<refentry id="V4L2-PIX-FMT-Y10BPACK">
+  <refmeta>
+    <refentrytitle>V4L2_PIX_FMT_Y10BPACK ('Y10B')</refentrytitle>
+    &manvol;
+  </refmeta>
+  <refnamediv>
+    <refname><constant>V4L2_PIX_FMT_Y10BPACK</constant></refname>
+    <refpurpose>Grey-scale image as a bit-packed array</refpurpose>
+  </refnamediv>
+  <refsect1>
+    <title>Description</title>
+
+    <para>This is a packed grey-scale image format with a depth of 10 bits per
+      pixel. Pixels are stored in a bit-packed array of 10bit bits per pixel,
+      with no padding between them and with the most significant bits coming
+      first from the left.</para>
+
+    <example>
+      <title><constant>V4L2_PIX_FMT_Y10BPACK</constant> 4 pixel data stream taking 5 bytes</title>
+
+      <formalpara>
+       <title>Bit-packed representation</title>
+       <para>pixels cross the byte boundary and have a ratio of 5 bytes for each 4
+          pixels.
+         <informaltable frame="all">
+           <tgroup cols="5" align="center">
+             <colspec align="left" colwidth="2*" />
+             <tbody valign="top">
+               <row>
+                 <entry>Y'<subscript>00[9:2]</subscript></entry>
+                 <entry>Y'<subscript>00[1:0]</subscript>Y'<subscript>01[9:4]</subscript></entry>
+                 <entry>Y'<subscript>01[3:0]</subscript>Y'<subscript>02[9:6]</subscript></entry>
+                 <entry>Y'<subscript>02[5:0]</subscript>Y'<subscript>03[9:8]</subscript></entry>
+                 <entry>Y'<subscript>03[7:0]</subscript></entry>
+               </row>
+             </tbody>
+           </tgroup>
+         </informaltable>
+       </para>
+      </formalpara>
+    </example>
+  </refsect1>
+</refentry>
index 40af4be..dbfe3b0 100644 (file)
@@ -697,6 +697,7 @@ information.</para>
     &sub-grey;
     &sub-y10;
     &sub-y12;
+    &sub-y10b;
     &sub-y16;
     &sub-yuyv;
     &sub-uyvy;
@@ -712,6 +713,7 @@ information.</para>
     &sub-nv12m;
     &sub-nv12mt;
     &sub-nv16;
+    &sub-m420;
   </section>
 
   <section>
index d7ccd25..a26b10c 100644 (file)
        </tgroup>
       </table>
     </section>
+
+    <section>
+      <title>JPEG Compressed Formats</title>
+
+      <para>Those data formats consist of an ordered sequence of 8-bit bytes
+       obtained from JPEG compression process. Additionally to the
+       <constant>_JPEG</constant> prefix the format code is made of
+       the following information.
+       <itemizedlist>
+         <listitem>The number of bus samples per entropy encoded byte.</listitem>
+         <listitem>The bus width.</listitem>
+       </itemizedlist>
+
+       <para>For instance, for a JPEG baseline process and an 8-bit bus width
+         the format will be named <constant>V4L2_MBUS_FMT_JPEG_1X8</constant>.
+       </para>
+      </para>
+
+      <para>The following table lists existing JPEG compressed formats.</para>
+
+      <table pgwide="0" frame="none" id="v4l2-mbus-pixelcode-jpeg">
+       <title>JPEG Formats</title>
+       <tgroup cols="3">
+         <colspec colname="id" align="left" />
+         <colspec colname="code" align="left"/>
+         <colspec colname="remarks" align="left"/>
+         <thead>
+           <row>
+             <entry>Identifier</entry>
+             <entry>Code</entry>
+             <entry>Remarks</entry>
+           </row>
+         </thead>
+         <tbody valign="top">
+           <row id="V4L2-MBUS-FMT-JPEG-1X8">
+             <entry>V4L2_MBUS_FMT_JPEG_1X8</entry>
+             <entry>0x4001</entry>
+             <entry>Besides of its usage for the parallel bus this format is
+               recommended for transmission of JPEG data over MIPI CSI bus
+               using the User Defined 8-bit Data types.
+             </entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+    </section>
   </section>
 </section>
index 2b796a2..c50536a 100644 (file)
@@ -311,6 +311,9 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> {
 #define <link linkend="V4L2-PIX-FMT-Y10">V4L2_PIX_FMT_Y10</link>     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale     */
 #define <link linkend="V4L2-PIX-FMT-Y16">V4L2_PIX_FMT_Y16</link>     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale     */
 
+/* Grey bit-packed formats */
+#define <link linkend="V4L2-PIX-FMT-Y10BPACK">V4L2_PIX_FMT_Y10BPACK</link>    v4l2_fourcc('Y', '1', '0', 'B') /* 10  Greyscale bit-packed */
+
 /* Palette formats */
 #define <link linkend="V4L2-PIX-FMT-PAL8">V4L2_PIX_FMT_PAL8</link>    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit palette */
 
@@ -333,6 +336,7 @@ struct <link linkend="v4l2-pix-format">v4l2_pix_format</link> {
 #define <link linkend="V4L2-PIX-FMT-YUV420">V4L2_PIX_FMT_YUV420</link>  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */
 #define <link linkend="V4L2-PIX-FMT-HI240">V4L2_PIX_FMT_HI240</link>   v4l2_fourcc('H', 'I', '2', '4') /*  8  8-bit color   */
 #define <link linkend="V4L2-PIX-FMT-HM12">V4L2_PIX_FMT_HM12</link>    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */
+#define <link linkend="V4L2-PIX-FMT-M420">V4L2_PIX_FMT_M420</link>    v4l2_fourcc('M', '4', '2', '0') /* 12  YUV 4:2:0 2 lines y, 1 line uv interleaved */
 
 /* two planes -- one Y, one Cr + Cb interleaved  */
 #define <link linkend="V4L2-PIX-FMT-NV12">V4L2_PIX_FMT_NV12</link>    v4l2_fourcc('N', 'V', '1', '2') /* 12  Y/CbCr 4:2:0  */
index 365bda9..81bc1a9 100644 (file)
@@ -209,7 +209,7 @@ tools.  One such tool that is particularly recommended is the Linux
 Cross-Reference project, which is able to present source code in a
 self-referential, indexed webpage format. An excellent up-to-date
 repository of the kernel code may be found at:
-       http://users.sosdg.org/~qiyong/lxr/
+       http://lxr.linux.no/+trees
 
 
 The development process
index e439cd0..569f353 100644 (file)
@@ -714,10 +714,11 @@ Jeff Garzik, "Linux kernel patch submission format".
   <http://linux.yyz.us/patch-format.html>
 
 Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer".
-  <http://www.kroah.com/log/2005/03/31/>
-  <http://www.kroah.com/log/2005/07/08/>
-  <http://www.kroah.com/log/2005/10/19/>
-  <http://www.kroah.com/log/2006/01/11/>
+  <http://www.kroah.com/log/linux/maintainer.html>
+  <http://www.kroah.com/log/linux/maintainer-02.html>
+  <http://www.kroah.com/log/linux/maintainer-03.html>
+  <http://www.kroah.com/log/linux/maintainer-04.html>
+  <http://www.kroah.com/log/linux/maintainer-05.html>
 
 NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people!
   <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2>
index 470d3db..dfa6fc6 100644 (file)
@@ -1,6 +1,8 @@
 *.a
 *.aux
 *.bin
+*.bz2
+*.cis
 *.cpio
 *.csp
 *.dsp
@@ -8,6 +10,8 @@
 *.elf
 *.eps
 *.fw
+*.gcno
+*.gcov
 *.gen.S
 *.gif
 *.grep
 *.ko
 *.log
 *.lst
+*.lzma
+*.lzo
+*.mo
 *.moc
 *.mod.c
 *.o
 *.o.*
+*.order
 *.orig
 *.out
+*.patch
 *.pdf
 *.png
+*.pot
 *.ps
 *.rej
 *.s
 *.tex
 *.ver
 *.xml
+*.xz
 *_MODULES
 *_vga16.c
 *~
+\#*#
 *.9
-*.9.gz
 .*
+.*.d
 .mm
 53c700_d.h
 CVS
 ChangeSet
+GPATH
+GRTAGS
+GSYMS
+GTAGS
 Image
 Kerntypes
 Module.markers
@@ -57,15 +73,14 @@ PENDING
 SCCS
 System.map*
 TAGS
+aconf
+af_names.h
 aic7*reg.h*
 aic7*reg_print.c*
 aic7*seq.h*
 aicasm
 aicdb.h*
-altivec1.c
-altivec2.c
-altivec4.c
-altivec8.c
+altivec*.c
 asm-offsets.h
 asm_offsets.h
 autoconf.h*
@@ -80,6 +95,7 @@ btfixupprep
 build
 bvmlinux
 bzImage*
+capability_names.h
 capflags.c
 classlist.h*
 comp*.log
@@ -88,7 +104,8 @@ conf
 config
 config-*
 config_data.h*
-config_data.gz*
+config.mak
+config.mak.autogen
 conmakehash
 consolemap_deftbl.c*
 cpustr.h
@@ -96,7 +113,9 @@ crc32table.h*
 cscope.*
 defkeymap.c
 devlist.h*
+dnotify_test
 docproc
+dslm
 elf2ecoff
 elfconfig.h*
 evergreen_reg_safe.h
@@ -105,6 +124,7 @@ flask.h
 fore200e_mkfirm
 fore200e_pca_fw.c*
 gconf
+gconf.glade.h
 gen-devlist
 gen_crc32table
 gen_init_cpio
@@ -112,11 +132,12 @@ generated
 genheaders
 genksyms
 *_gray256.c
+hpet_example
+hugepage-mmap
+hugepage-shm
 ihex2fw
 ikconfig.h*
 inat-tables.c
-initramfs_data.cpio
-initramfs_data.cpio.gz
 initramfs_list
 int16.c
 int1.c
@@ -133,15 +154,19 @@ kxgettext
 lkc_defs.h
 lex.c
 lex.*.c
+linux
 logo_*.c
 logo_*_clut224.c
 logo_*_mono.c
 lxdialog
+mach
 mach-types
 mach-types.h
 machtypes.h
 map
+map_hugetlb
 maui_boot.h
+media
 mconf
 miboot*
 mk_elfconfig
@@ -150,23 +175,29 @@ mkbugboot
 mkcpustr
 mkdep
 mkprep
+mkregtable
 mktables
 mktree
 modpost
 modules.builtin
 modules.order
 modversions.h*
+nconf
 ncscope.*
 offset.h
 offsets.h
 oui.c*
+page-types
 parse.c
 parse.h
 patches*
 pca200e.bin
 pca200e_ecd.bin2
-piggy.gz
+perf.data
+perf.data.old
+perf-archive
 piggyback
+piggy.gzip
 piggy.S
 pnmtologo
 ppc_defs.h*
@@ -177,10 +208,9 @@ r200_reg_safe.h
 r300_reg_safe.h
 r420_reg_safe.h
 r600_reg_safe.h
-raid6altivec*.c
-raid6int*.c
-raid6tables.c
+recordmcount
 relocs
+rlim_names.h
 rn50_reg_safe.h
 rs600_reg_safe.h
 rv515_reg_safe.h
@@ -194,6 +224,7 @@ split-include
 syscalltab.h
 tables.c
 tags
+test_get_len
 tftpboot.img
 timeconst.h
 times.h*
@@ -210,10 +241,13 @@ vdso32.so.dbg
 vdso64.lds
 vdso64.so.dbg
 version.h*
+vmImage
 vmlinux
 vmlinux-*
 vmlinux.aout
+vmlinux.bin.all
 vmlinux.lds
+vmlinuz
 voffset.h
 vsyscall.lds
 vsyscall_32.lds
index 19132ca..95788ad 100644 (file)
@@ -551,3 +551,26 @@ Why:       These legacy callbacks should no longer be used as i2c-core offers
 Who:   Jean Delvare <khali@linux-fr.org>
 
 ----------------------------
+
+What:  Support for UVCIOC_CTRL_ADD in the uvcvideo driver
+When:  2.6.42
+Why:   The information passed to the driver by this ioctl is now queried
+       dynamically from the device.
+Who:   Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+----------------------------
+
+What:  Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver
+When:  2.6.42
+Why:   Used only by applications compiled against older driver versions.
+       Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls.
+Who:   Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+----------------------------
+
+What:  Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver
+When:  2.6.42
+Why:   Superseded by the UVCIOC_CTRL_QUERY ioctl.
+Who:   Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+
+----------------------------
index a0a5d82..2d1ad12 100644 (file)
@@ -166,7 +166,6 @@ Code  Seq#(hex)     Include File            Comments
 'T'    all     arch/x86/include/asm/ioctls.h   conflict!
 'T'    C0-DF   linux/if_tun.h          conflict!
 'U'    all     sound/asound.h          conflict!
-'U'    00-0F   drivers/media/video/uvc/uvcvideo.h      conflict!
 'U'    00-CF   linux/uinput.h          conflict!
 'U'    00-EF   linux/usbdevice_fs.h
 'U'    C0-CF   drivers/bluetooth/hci_uart.h
@@ -259,6 +258,7 @@ Code  Seq#(hex)     Include File            Comments
 't'    80-8F   linux/isdn_ppp.h
 't'    90      linux/toshiba.h
 'u'    00-1F   linux/smb_fs.h          gone
+'u'    20-3F   linux/uvcvideo.h        USB video class host driver
 'v'    00-1F   linux/ext2_fs.h         conflict!
 'v'    00-1F   linux/fs.h              conflict!
 'v'    00-0F   linux/sonypi.h          conflict!
index 4af0614..88fd7f5 100644 (file)
@@ -231,13 +231,6 @@ its creation).
 
 This directory contains configuration options for the epoll(7) interface.
 
-max_user_instances
-------------------
-
-This is the maximum number of epoll file descriptors that a single user can
-have open at a given time. The default value is 128, and should be enough
-for normal users.
-
 max_user_watches
 ----------------
 
index 43a9b06..b7d401e 100644 (file)
@@ -14,11 +14,10 @@ the legacy VGA arbitration task (besides other bus management tasks) when more
 than one legacy device co-exists on the same machine. But the problem happens
 when these devices are trying to be accessed by different userspace clients
 (e.g. two server in parallel). Their address assignments conflict. Moreover,
-ideally, being an userspace application, it is not the role of the the X
-server to control bus resources. Therefore an arbitration scheme outside of
-the X server is needed to control the sharing of these resources. This
-document introduces the operation of the VGA arbiter implemented for Linux
-kernel.
+ideally, being a userspace application, it is not the role of the X server to
+control bus resources. Therefore an arbitration scheme outside of the X server
+is needed to control the sharing of these resources. This document introduces
+the operation of the VGA arbiter implemented for the Linux kernel.
 
 ----------------------------------------------------------------------------
 
@@ -39,7 +38,7 @@ I.1 vgaarb
 The vgaarb is a module of the Linux Kernel. When it is initially loaded, it
 scans all PCI devices and adds the VGA ones inside the arbitration. The
 arbiter then enables/disables the decoding on different devices of the VGA
-legacy instructions. Device which do not want/need to use the arbiter may
+legacy instructions. Devices which do not want/need to use the arbiter may
 explicitly tell it by calling vga_set_legacy_decoding().
 
 The kernel exports a char device interface (/dev/vga_arbiter) to the clients,
@@ -95,8 +94,8 @@ In the case of devices hot-{un,}plugged, there is a hook - pci_notify() - to
 notify them being added/removed in the system and automatically added/removed
 in the arbiter.
 
-There's also a in-kernel API of the arbiter in the case of DRM, vgacon and
-others which may use the arbiter.
+There is also an in-kernel API of the arbiter in case DRM, vgacon, or other
+drivers want to use it.
 
 
 I.2 libpciaccess
@@ -117,9 +116,8 @@ Besides it, in pci_system were added:
     struct pci_device *vga_default_dev;
 
 
-The vga_count is usually need to keep informed how many cards are being
-arbitrated, so for instance if there's only one then it can totally escape the
-scheme.
+The vga_count is used to track how many cards are being arbitrated, so for
+instance, if there is only one card, then it can completely escape arbitration.
 
 
 These functions below acquire VGA resources for the given card and mark those
index 31b4857..9aae449 100644 (file)
@@ -54,7 +54,7 @@
  53 -> Pinnacle Hybrid Pro                      (em2881)
  54 -> Kworld VS-DVB-T 323UR                    (em2882)        [eb1a:e323]
  55 -> Terratec Cinnergy Hybrid T USB XS (em2882) (em2882)        [0ccd:005e,0ccd:0042]
- 56 -> Pinnacle Hybrid Pro (2)                  (em2882)        [2304:0226]
+ 56 -> Pinnacle Hybrid Pro (330e)               (em2882)        [2304:0226]
  57 -> Kworld PlusTV HD Hybrid 330              (em2883)        [eb1a:a316]
  58 -> Compro VideoMate ForYou/Stereo           (em2820/em2840) [185b:2041]
  60 -> Hauppauge WinTV HVR 850                  (em2883)        [2040:651f]
index c40e3ba..9ed629d 100644 (file)
@@ -130,7 +130,6 @@ Card number: 4
 
 Note: No module for the mse3000 is available yet
 Note: No module for the vpx3224 is available yet
-Note: use encoder=X or decoder=X for non-default i2c chips
 
 ===========================
 
index 5c542e6..5bfa9a7 100644 (file)
@@ -275,6 +275,7 @@ pac7302             093a:2629       Genious iSlim 300
 pac7302                093a:262a       Webcam 300k
 pac7302                093a:262c       Philips SPC 230 NC
 jeilinj                0979:0280       Sakar 57379
+jeilinj                0979:0280       Sportscam DV15
 zc3xx          0ac8:0302       Z-star Vimicro zc0302
 vc032x         0ac8:0321       Vimicro generic vc0321
 vc032x         0ac8:0323       Vimicro Vc0323
diff --git a/Documentation/video4linux/uvcvideo.txt b/Documentation/video4linux/uvcvideo.txt
new file mode 100644 (file)
index 0000000..848d620
--- /dev/null
@@ -0,0 +1,239 @@
+Linux USB Video Class (UVC) driver
+==================================
+
+This file documents some driver-specific aspects of the UVC driver, such as
+driver-specific ioctls and implementation notes.
+
+Questions and remarks can be sent to the Linux UVC development mailing list at
+linux-uvc-devel@lists.berlios.de.
+
+
+Extension Unit (XU) support
+---------------------------
+
+1. Introduction
+
+The UVC specification allows for vendor-specific extensions through extension
+units (XUs). The Linux UVC driver supports extension unit controls (XU controls)
+through two separate mechanisms:
+
+  - through mappings of XU controls to V4L2 controls
+  - through a driver-specific ioctl interface
+
+The first one allows generic V4L2 applications to use XU controls by mapping
+certain XU controls onto V4L2 controls, which then show up during ordinary
+control enumeration.
+
+The second mechanism requires uvcvideo-specific knowledge for the application to
+access XU controls but exposes the entire UVC XU concept to user space for
+maximum flexibility.
+
+Both mechanisms complement each other and are described in more detail below.
+
+
+2. Control mappings
+
+The UVC driver provides an API for user space applications to define so-called
+control mappings at runtime. These allow for individual XU controls or byte
+ranges thereof to be mapped to new V4L2 controls. Such controls appear and
+function exactly like normal V4L2 controls (i.e. the stock controls, such as
+brightness, contrast, etc.). However, reading or writing of such a V4L2 controls
+triggers a read or write of the associated XU control.
+
+The ioctl used to create these control mappings is called UVCIOC_CTRL_MAP.
+Previous driver versions (before 0.2.0) required another ioctl to be used
+beforehand (UVCIOC_CTRL_ADD) to pass XU control information to the UVC driver.
+This is no longer necessary as newer uvcvideo versions query the information
+directly from the device.
+
+For details on the UVCIOC_CTRL_MAP ioctl please refer to the section titled
+"IOCTL reference" below.
+
+
+3. Driver specific XU control interface
+
+For applications that need to access XU controls directly, e.g. for testing
+purposes, firmware upload, or accessing binary controls, a second mechanism to
+access XU controls is provided in the form of a driver-specific ioctl, namely
+UVCIOC_CTRL_QUERY.
+
+A call to this ioctl allows applications to send queries to the UVC driver that
+directly map to the low-level UVC control requests.
+
+In order to make such a request the UVC unit ID of the control's extension unit
+and the control selector need to be known. This information either needs to be
+hardcoded in the application or queried using other ways such as by parsing the
+UVC descriptor or, if available, using the media controller API to enumerate a
+device's entities.
+
+Unless the control size is already known it is necessary to first make a
+UVC_GET_LEN requests in order to be able to allocate a sufficiently large buffer
+and set the buffer size to the correct value. Similarly, to find out whether
+UVC_GET_CUR or UVC_SET_CUR are valid requests for a given control, a
+UVC_GET_INFO request should be made. The bits 0 (GET supported) and 1 (SET
+supported) of the resulting byte indicate which requests are valid.
+
+With the addition of the UVCIOC_CTRL_QUERY ioctl the UVCIOC_CTRL_GET and
+UVCIOC_CTRL_SET ioctls have become obsolete since their functionality is a
+subset of the former ioctl. For the time being they are still supported but
+application developers are encouraged to use UVCIOC_CTRL_QUERY instead.
+
+For details on the UVCIOC_CTRL_QUERY ioctl please refer to the section titled
+"IOCTL reference" below.
+
+
+4. Security
+
+The API doesn't currently provide a fine-grained access control facility. The
+UVCIOC_CTRL_ADD and UVCIOC_CTRL_MAP ioctls require super user permissions.
+
+Suggestions on how to improve this are welcome.
+
+
+5. Debugging
+
+In order to debug problems related to XU controls or controls in general it is
+recommended to enable the UVC_TRACE_CONTROL bit in the module parameter 'trace'.
+This causes extra output to be written into the system log.
+
+
+6. IOCTL reference
+
+---- UVCIOC_CTRL_MAP - Map a UVC control to a V4L2 control ----
+
+Argument: struct uvc_xu_control_mapping
+
+Description:
+       This ioctl creates a mapping between a UVC control or part of a UVC
+       control and a V4L2 control. Once mappings are defined, userspace
+       applications can access vendor-defined UVC control through the V4L2
+       control API.
+
+       To create a mapping, applications fill the uvc_xu_control_mapping
+       structure with information about an existing UVC control defined with
+       UVCIOC_CTRL_ADD and a new V4L2 control.
+
+       A UVC control can be mapped to several V4L2 controls. For instance,
+       a UVC pan/tilt control could be mapped to separate pan and tilt V4L2
+       controls. The UVC control is divided into non overlapping fields using
+       the 'size' and 'offset' fields and are then independantly mapped to
+       V4L2 control.
+
+       For signed integer V4L2 controls the data_type field should be set to
+       UVC_CTRL_DATA_TYPE_SIGNED. Other values are currently ignored.
+
+Return value:
+       On success 0 is returned. On error -1 is returned and errno is set
+       appropriately.
+
+       ENOMEM
+               Not enough memory to perform the operation.
+       EPERM
+               Insufficient privileges (super user privileges are required).
+       EINVAL
+               No such UVC control.
+       EOVERFLOW
+               The requested offset and size would overflow the UVC control.
+       EEXIST
+               Mapping already exists.
+
+Data types:
+       * struct uvc_xu_control_mapping
+
+       __u32   id              V4L2 control identifier
+       __u8    name[32]        V4L2 control name
+       __u8    entity[16]      UVC extension unit GUID
+       __u8    selector        UVC control selector
+       __u8    size            V4L2 control size (in bits)
+       __u8    offset          V4L2 control offset (in bits)
+       enum v4l2_ctrl_type
+               v4l2_type       V4L2 control type
+       enum uvc_control_data_type
+               data_type       UVC control data type
+       struct uvc_menu_info
+               *menu_info      Array of menu entries (for menu controls only)
+       __u32   menu_count      Number of menu entries (for menu controls only)
+
+       * struct uvc_menu_info
+
+       __u32   value           Menu entry value used by the device
+       __u8    name[32]        Menu entry name
+
+
+       * enum uvc_control_data_type
+
+       UVC_CTRL_DATA_TYPE_RAW          Raw control (byte array)
+       UVC_CTRL_DATA_TYPE_SIGNED       Signed integer
+       UVC_CTRL_DATA_TYPE_UNSIGNED     Unsigned integer
+       UVC_CTRL_DATA_TYPE_BOOLEAN      Boolean
+       UVC_CTRL_DATA_TYPE_ENUM         Enumeration
+       UVC_CTRL_DATA_TYPE_BITMASK      Bitmask
+
+
+---- UVCIOC_CTRL_QUERY - Query a UVC XU control ----
+
+Argument: struct uvc_xu_control_query
+
+Description:
+       This ioctl queries a UVC XU control identified by its extension unit ID
+       and control selector.
+
+       There are a number of different queries available that closely
+       correspond to the low-level control requests described in the UVC
+       specification. These requests are:
+
+       UVC_GET_CUR
+               Obtain the current value of the control.
+       UVC_GET_MIN
+               Obtain the minimum value of the control.
+       UVC_GET_MAX
+               Obtain the maximum value of the control.
+       UVC_GET_DEF
+               Obtain the default value of the control.
+       UVC_GET_RES
+               Query the resolution of the control, i.e. the step size of the
+               allowed control values.
+       UVC_GET_LEN
+               Query the size of the control in bytes.
+       UVC_GET_INFO
+               Query the control information bitmap, which indicates whether
+               get/set requests are supported.
+       UVC_SET_CUR
+               Update the value of the control.
+
+       Applications must set the 'size' field to the correct length for the
+       control. Exceptions are the UVC_GET_LEN and UVC_GET_INFO queries, for
+       which the size must be set to 2 and 1, respectively. The 'data' field
+       must point to a valid writable buffer big enough to hold the indicated
+       number of data bytes.
+
+       Data is copied directly from the device without any driver-side
+       processing. Applications are responsible for data buffer formatting,
+       including little-endian/big-endian conversion. This is particularly
+       important for the result of the UVC_GET_LEN requests, which is always
+       returned as a little-endian 16-bit integer by the device.
+
+Return value:
+       On success 0 is returned. On error -1 is returned and errno is set
+       appropriately.
+
+       ENOENT
+               The device does not support the given control or the specified
+               extension unit could not be found.
+       ENOBUFS
+               The specified buffer size is incorrect (too big or too small).
+       EINVAL
+               An invalid request code was passed.
+       EBADRQC
+               The given request is not supported by the given control.
+       EFAULT
+               The data pointer references an inaccessible memory area.
+
+Data types:
+       * struct uvc_xu_control_query
+
+       __u8    unit            Extension unit ID
+       __u8    selector        Control selector
+       __u8    query           Request code to send to the device
+       __u16   size            Control data size (in bytes)
+       __u8    *data           Control value
index 377a7a5..7275009 100644 (file)
@@ -197,15 +197,21 @@ config ARM_PATCH_PHYS_VIRT
        depends on !XIP_KERNEL && MMU
        depends on !ARCH_REALVIEW || !SPARSEMEM
        help
-         Patch phys-to-virt translation functions at runtime according to
-         the position of the kernel in system memory.
+         Patch phys-to-virt and virt-to-phys translation functions at
+         boot and module load time according to the position of the
+         kernel in system memory.
 
-         This can only be used with non-XIP with MMU kernels where
-         the base of physical memory is at a 16MB boundary.
+         This can only be used with non-XIP MMU kernels where the base
+         of physical memory is at a 16MB boundary, or theoretically 64K
+         for the MSM machine class.
 
 config ARM_PATCH_PHYS_VIRT_16BIT
        def_bool y
        depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
+       help
+         This option extends the physical to virtual translation patching
+         to allow physical memory down to a theoretical minimum of 64K
+         boundaries.
 
 source "init/Kconfig"
 
@@ -297,6 +303,7 @@ config ARCH_BCMRING
        depends on MMU
        select CPU_V6
        select ARM_AMBA
+       select ARM_TIMER_SP804
        select CLKDEV_LOOKUP
        select GENERIC_CLOCKEVENTS
        select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -366,6 +373,7 @@ config ARCH_MXC
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        select HAVE_SCHED_CLOCK
        help
          Support for Freescale MXC/iMX-based family of processors
@@ -375,21 +383,13 @@ config ARCH_MXS
        select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        help
          Support for Freescale MXS-based family of processors
 
-config ARCH_STMP3XXX
-       bool "Freescale STMP3xxx"
-       select CPU_ARM926T
-       select CLKDEV_LOOKUP
-       select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_CLOCKEVENTS
-       select USB_ARCH_HAS_EHCI
-       help
-         Support for systems based on the Freescale 3xxx CPUs.
-
 config ARCH_NETX
        bool "Hilscher NetX based"
+       select CLKSRC_MMIO
        select CPU_ARM926T
        select ARM_VIC
        select GENERIC_CLOCKEVENTS
@@ -457,6 +457,7 @@ config ARCH_IXP2000
 config ARCH_IXP4XX
        bool "IXP4xx-based"
        depends on MMU
+       select CLKSRC_MMIO
        select CPU_XSCALE
        select GENERIC_GPIO
        select GENERIC_CLOCKEVENTS
@@ -468,7 +469,7 @@ config ARCH_IXP4XX
 
 config ARCH_DOVE
        bool "Marvell Dove"
-       select CPU_V6K
+       select CPU_V7
        select PCI
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
@@ -497,6 +498,7 @@ config ARCH_LOKI
 
 config ARCH_LPC32XX
        bool "NXP LPC32XX"
+       select CLKSRC_MMIO
        select CPU_ARM926T
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_IDE
@@ -554,23 +556,12 @@ config ARCH_KS8695
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
          System-on-Chip devices.
 
-config ARCH_NS9XXX
-       bool "NetSilicon NS9xxx"
-       select CPU_ARM926T
-       select GENERIC_GPIO
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CLK
-       help
-         Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
-         System.
-
-         <http://www.digi.com/products/microprocessors/index.jsp>
-
 config ARCH_W90X900
        bool "Nuvoton W90X900 CPU"
        select CPU_ARM926T
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        help
          Support for Nuvoton (Winbond logic dept.) ARM9 processor,
@@ -592,6 +583,7 @@ config ARCH_NUC93X
 config ARCH_TEGRA
        bool "NVIDIA Tegra"
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select GENERIC_GPIO
@@ -617,6 +609,7 @@ config ARCH_PXA
        select ARCH_MTD_XIP
        select ARCH_HAS_CPUFREQ
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select HAVE_SCHED_CLOCK
@@ -667,6 +660,7 @@ config ARCH_RPC
 
 config ARCH_SA1100
        bool "SA1100-based"
+       select CLKSRC_MMIO
        select CPU_SA1100
        select ISA
        select ARCH_SPARSEMEM_ENABLE
@@ -803,6 +797,7 @@ config ARCH_SHARK
 
 config ARCH_TCC_926
        bool "Telechips TCC ARM926-based systems"
+       select CLKSRC_MMIO
        select CPU_ARM926T
        select HAVE_CLK
        select CLKDEV_LOOKUP
@@ -813,6 +808,7 @@ config ARCH_TCC_926
 config ARCH_U300
        bool "ST-Ericsson U300 Series"
        depends on MMU
+       select CLKSRC_MMIO
        select CPU_ARM926T
        select HAVE_SCHED_CLOCK
        select HAVE_TCM
@@ -854,6 +850,7 @@ config ARCH_DAVINCI
        select HAVE_IDE
        select CLKDEV_LOOKUP
        select GENERIC_ALLOCATOR
+       select GENERIC_IRQ_CHIP
        select ARCH_HAS_HOLES_MEMORYMODEL
        help
          Support for TI's DaVinci platform.
@@ -874,6 +871,7 @@ config PLAT_SPEAR
        select ARM_AMBA
        select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
+       select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        help
@@ -951,8 +949,6 @@ source "arch/arm/mach-netx/Kconfig"
 source "arch/arm/mach-nomadik/Kconfig"
 source "arch/arm/plat-nomadik/Kconfig"
 
-source "arch/arm/mach-ns9xxx/Kconfig"
-
 source "arch/arm/mach-nuc93x/Kconfig"
 
 source "arch/arm/plat-omap/Kconfig"
@@ -1005,8 +1001,6 @@ source "arch/arm/mach-exynos4/Kconfig"
 
 source "arch/arm/mach-shmobile/Kconfig"
 
-source "arch/arm/plat-stmp3xxx/Kconfig"
-
 source "arch/arm/mach-tegra/Kconfig"
 
 source "arch/arm/mach-u300/Kconfig"
@@ -1033,6 +1027,8 @@ config PLAT_IOP
 
 config PLAT_ORION
        bool
+       select CLKSRC_MMIO
+       select GENERIC_IRQ_CHIP
        select HAVE_SCHED_CLOCK
 
 config PLAT_PXA
@@ -1043,6 +1039,7 @@ config PLAT_VERSATILE
 
 config ARM_TIMER_SP804
        bool
+       select CLKSRC_MMIO
 
 source arch/arm/mm/Kconfig
 
@@ -1318,8 +1315,7 @@ menu "Kernel Features"
 source "kernel/time/Kconfig"
 
 config SMP
-       bool "Symmetric Multi-Processing (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+       bool "Symmetric Multi-Processing"
        depends on CPU_V6K || CPU_V7
        depends on GENERIC_CLOCKEVENTS
        depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
@@ -1521,8 +1517,8 @@ config ARCH_SELECT_MEMORY_MODEL
        def_bool ARCH_SPARSEMEM_ENABLE
 
 config HIGHMEM
-       bool "High Memory Support (EXPERIMENTAL)"
-       depends on MMU && EXPERIMENTAL
+       bool "High Memory Support"
+       depends on MMU
        help
          The address space of ARM processors is only 4 Gigabytes large
          and it has to accommodate user address space, kernel address
@@ -1742,16 +1738,31 @@ config CMDLINE
          time by entering them here. As a minimum, you should specify the
          memory size and the root device (e.g., mem=64M root=/dev/nfs).
 
+choice
+       prompt "Kernel command line type" if CMDLINE != ""
+       default CMDLINE_FROM_BOOTLOADER
+
+config CMDLINE_FROM_BOOTLOADER
+       bool "Use bootloader kernel arguments if available"
+       help
+         Uses the command-line options passed by the boot loader. If
+         the boot loader doesn't provide any, the default kernel command
+         string provided in CMDLINE will be used.
+
+config CMDLINE_EXTEND
+       bool "Extend bootloader kernel arguments"
+       help
+         The command-line arguments provided by the boot loader will be
+         appended to the default kernel command string.
+
 config CMDLINE_FORCE
        bool "Always use the default kernel command string"
-       depends on CMDLINE != ""
        help
          Always use the default kernel command string, even if the boot
          loader passes other arguments to the kernel.
          This is useful if you cannot or don't want to change the
          command-line options your boot loader passes to the kernel.
-
-         If unsure, say N.
+endchoice
 
 config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
@@ -2010,7 +2021,7 @@ menu "Power management options"
 source "kernel/power/Kconfig"
 
 config ARCH_SUSPEND_POSSIBLE
-       depends on !ARCH_S5P64X0 && !ARCH_S5P6442
+       depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100
        depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
                CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE
        def_bool y
index c7d321a..25750bc 100644 (file)
@@ -158,13 +158,11 @@ machine-$(CONFIG_ARCH_MV78XX0)            := mv78xx0
 machine-$(CONFIG_ARCH_MX1)             := imx
 machine-$(CONFIG_ARCH_MX2)             := imx
 machine-$(CONFIG_ARCH_MX25)            := imx
-machine-$(CONFIG_ARCH_MX3)             := mx3
+machine-$(CONFIG_ARCH_MX3)             := imx
 machine-$(CONFIG_ARCH_MX5)             := mx5
-machine-$(CONFIG_ARCH_MXC91231)                := mxc91231
 machine-$(CONFIG_ARCH_MXS)             := mxs
 machine-$(CONFIG_ARCH_NETX)            := netx
 machine-$(CONFIG_ARCH_NOMADIK)         := nomadik
-machine-$(CONFIG_ARCH_NS9XXX)          := ns9xxx
 machine-$(CONFIG_ARCH_OMAP1)           := omap1
 machine-$(CONFIG_ARCH_OMAP2)           := omap2
 machine-$(CONFIG_ARCH_OMAP3)           := omap2
@@ -185,8 +183,6 @@ machine-$(CONFIG_ARCH_EXYNOS4)              := exynos4
 machine-$(CONFIG_ARCH_SA1100)          := sa1100
 machine-$(CONFIG_ARCH_SHARK)           := shark
 machine-$(CONFIG_ARCH_SHMOBILE)        := shmobile
-machine-$(CONFIG_ARCH_STMP378X)                := stmp378x
-machine-$(CONFIG_ARCH_STMP37XX)                := stmp37xx
 machine-$(CONFIG_ARCH_TCC8K)           := tcc8k
 machine-$(CONFIG_ARCH_TEGRA)           := tegra
 machine-$(CONFIG_ARCH_U300)            := u300
@@ -207,7 +203,6 @@ machine-$(CONFIG_MACH_SPEAR600)             := spear6xx
 plat-$(CONFIG_ARCH_MXC)                := mxc
 plat-$(CONFIG_ARCH_OMAP)       := omap
 plat-$(CONFIG_ARCH_S3C64XX)    := samsung
-plat-$(CONFIG_ARCH_STMP3XXX)   := stmp3xxx
 plat-$(CONFIG_ARCH_TCC_926)    := tcc
 plat-$(CONFIG_PLAT_IOP)                := iop
 plat-$(CONFIG_PLAT_NOMADIK)    := nomadik
index 0c6852d..23aad07 100644 (file)
@@ -98,8 +98,6 @@ endif
 ccflags-y := -fpic -fno-builtin
 asflags-y := -Wa,-march=all
 
-# Provide size of uncompressed kernel to the decompressor via a linker symbol.
-LDFLAGS_vmlinux = --defsym _image_size=$(shell stat -c "%s" $(obj)/../Image)
 # Supply ZRELADDR to the decompressor via a linker symbol.
 ifneq ($(CONFIG_AUTO_ZRELADDR),y)
 LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR)
@@ -122,10 +120,23 @@ lib1funcs = $(obj)/lib1funcs.o
 $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE
        $(call cmd,shipped)
 
+# We need to prevent any GOTOFF relocs being used with references
+# to symbols in the .bss section since we cannot relocate them
+# independently from the rest at run time.  This can be achieved by
+# ensuring that no private .bss symbols exist, as global symbols
+# always have a GOT entry which is what we need.
+# The .data section is already discarded by the linker script so no need
+# to bother about it here.
+check_for_bad_syms = \
+bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
+[ -z "$$bad_syms" ] || \
+  ( echo "following symbols must have non local/private scope:" >&2; \
+    echo "$$bad_syms" >&2; rm -f $@; false )
+
 $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \
                $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE
        $(call if_changed,ld)
-       @:
+       @$(check_for_bad_syms)
 
 $(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE
        $(call if_changed,$(suffix_y))
index 4c72a97..07be5a2 100644 (file)
@@ -44,7 +44,7 @@ extern void error(char *);
 #include "../../../../lib/decompress_unlzma.c"
 #endif
 
-void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
+int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
 {
-       decompress(input, len, NULL, NULL, output, NULL, error);
+       return decompress(input, len, NULL, NULL, output, NULL, error);
 }
index 49f5b2e..f9da419 100644 (file)
@@ -179,7 +179,7 @@ not_angel:
                bl      cache_on
 
 restart:       adr     r0, LC0
-               ldmia   r0, {r1, r2, r3, r6, r9, r11, r12}
+               ldmia   r0, {r1, r2, r3, r6, r10, r11, r12}
                ldr     sp, [r0, #28]
 
                /*
@@ -188,6 +188,20 @@ restart:   adr     r0, LC0
                 */
                sub     r0, r0, r1              @ calculate the delta offset
                add     r6, r6, r0              @ _edata
+               add     r10, r10, r0            @ inflated kernel size location
+
+               /*
+                * The kernel build system appends the size of the
+                * decompressed kernel at the end of the compressed data
+                * in little-endian form.
+                */
+               ldrb    r9, [r10, #0]
+               ldrb    lr, [r10, #1]
+               orr     r9, r9, lr, lsl #8
+               ldrb    lr, [r10, #2]
+               ldrb    r10, [r10, #3]
+               orr     r9, r9, lr, lsl #16
+               orr     r9, r9, r10, lsl #24
 
 #ifndef CONFIG_ZBOOT_ROM
                /* malloc space is above the relocated stack (64k max) */
@@ -347,10 +361,10 @@ LC0:              .word   LC0                     @ r1
                .word   __bss_start             @ r2
                .word   _end                    @ r3
                .word   _edata                  @ r6
-               .word   _image_size             @ r9
+               .word   input_data_end - 4      @ r10 (inflated size location)
                .word   _got_start              @ r11
                .word   _got_end                @ ip
-               .word   user_stack_end          @ sp
+               .word   .L_user_stack_end       @ sp
                .size   LC0, . - LC0
 
 #ifdef CONFIG_ARCH_RPC
@@ -459,7 +473,11 @@ __setup_mmu:       sub     r3, r4, #16384          @ Page directory size
                orr     r1, r1, #3 << 10
                add     r2, r3, #16384
 1:             cmp     r1, r9                  @ if virt > start of RAM
+#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
+               orrhs   r1, r1, #0x08           @ set cacheable
+#else
                orrhs   r1, r1, #0x0c           @ set cacheable, bufferable
+#endif
                cmp     r1, r10                 @ if virt > end of RAM
                bichs   r1, r1, #0x0c           @ clear cacheable, bufferable
                str     r1, [r0], #4            @ 1:1 mapping
@@ -484,6 +502,12 @@ __setup_mmu:       sub     r3, r4, #16384          @ Page directory size
                mov     pc, lr
 ENDPROC(__setup_mmu)
 
+__arm926ejs_mmu_cache_on:
+#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
+               mov     r0, #4                  @ put dcache in WT mode
+               mcr     p15, 7, r0, c15, c0, 0
+#endif
+
 __armv4_mmu_cache_on:
                mov     r12, lr
 #ifdef CONFIG_MMU
@@ -665,6 +689,12 @@ proc_types:
                W(b)    __armv4_mpu_cache_off
                W(b)    __armv4_mpu_cache_flush
 
+               .word   0x41069260              @ ARM926EJ-S (v5TEJ)
+               .word   0xff0ffff0
+               b       __arm926ejs_mmu_cache_on
+               b       __armv4_mmu_cache_off
+               b       __armv5tej_mmu_cache_flush
+
                .word   0x00007000              @ ARM7 IDs
                .word   0x0000f000
                mov     pc, lr
@@ -747,12 +777,6 @@ proc_types:
                W(b)    __armv4_mmu_cache_off
                W(b)    __armv6_mmu_cache_flush
 
-               .word   0x560f5810              @ Marvell PJ4 ARMv6
-               .word   0xff0ffff0
-               W(b)    __armv4_mmu_cache_on
-               W(b)    __armv4_mmu_cache_off
-               W(b)    __armv6_mmu_cache_flush
-
                .word   0x000f0000              @ new CPU Id
                .word   0x000f0000
                W(b)    __armv7_mmu_cache_on
@@ -1078,5 +1102,5 @@ reloc_code_end:
 
                .align
                .section ".stack", "aw", %nobits
-user_stack:    .space  4096
-user_stack_end:
+.L_user_stack: .space  4096
+.L_user_stack_end:
index 2df3826..832d372 100644 (file)
@@ -26,8 +26,6 @@ unsigned int __machine_arch_type;
 #include <linux/linkage.h>
 #include <asm/string.h>
 
-#include <asm/unaligned.h>
-
 
 static void putstr(const char *ptr);
 extern void error(char *x);
@@ -139,13 +137,12 @@ void *memcpy(void *__dest, __const void *__src, size_t __n)
 }
 
 /*
- * gzip delarations
+ * gzip declarations
  */
 extern char input_data[];
 extern char input_data_end[];
 
 unsigned char *output_data;
-unsigned long output_ptr;
 
 unsigned long free_mem_ptr;
 unsigned long free_mem_end_ptr;
@@ -170,15 +167,15 @@ asmlinkage void __div0(void)
        error("Attempting division by 0!");
 }
 
-extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
+extern int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
 
 
-unsigned long
+void
 decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
                unsigned long free_mem_ptr_end_p,
                int arch_id)
 {
-       unsigned char *tmp;
+       int ret;
 
        output_data             = (unsigned char *)output_start;
        free_mem_ptr            = free_mem_ptr_p;
@@ -187,12 +184,11 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
 
        arch_decomp_setup();
 
-       tmp = (unsigned char *) (((unsigned long)input_data_end) - 4);
-       output_ptr = get_unaligned_le32(tmp);
-
        putstr("Uncompressing Linux...");
-       do_decompress(input_data, input_data_end - input_data,
-                       output_data, error);
-       putstr(" done, booting the kernel.\n");
-       return output_ptr;
+       ret = do_decompress(input_data, input_data_end - input_data,
+                           output_data, error);
+       if (ret)
+               error("decompressor returned an error");
+       else
+               putstr(" done, booting the kernel.\n");
 }
index f70ec7d..4ddd0a6 100644 (file)
@@ -49,7 +49,7 @@ struct gic_chip_data {
  * Default make them NULL.
  */
 struct irq_chip gic_arch_extn = {
-       .irq_ack        = NULL,
+       .irq_eoi        = NULL,
        .irq_mask       = NULL,
        .irq_unmask     = NULL,
        .irq_retrigger  = NULL,
@@ -84,21 +84,12 @@ static inline unsigned int gic_irq(struct irq_data *d)
 /*
  * Routines to acknowledge, disable and enable interrupts
  */
-static void gic_ack_irq(struct irq_data *d)
-{
-       spin_lock(&irq_controller_lock);
-       if (gic_arch_extn.irq_ack)
-               gic_arch_extn.irq_ack(d);
-       writel(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI);
-       spin_unlock(&irq_controller_lock);
-}
-
 static void gic_mask_irq(struct irq_data *d)
 {
        u32 mask = 1 << (d->irq % 32);
 
        spin_lock(&irq_controller_lock);
-       writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_CLEAR + (gic_irq(d) / 32) * 4);
+       writel_relaxed(mask, gic_dist_base(d) + GIC_DIST_ENABLE_CLEAR + (gic_irq(d) / 32) * 4);
        if (gic_arch_extn.irq_mask)
                gic_arch_extn.irq_mask(d);
        spin_unlock(&irq_controller_lock);
@@ -111,10 +102,21 @@ static void gic_unmask_irq(struct irq_data *d)
        spin_lock(&irq_controller_lock);
        if (gic_arch_extn.irq_unmask)
                gic_arch_extn.irq_unmask(d);
-       writel(mask, gic_dist_base(d) + GIC_DIST_ENABLE_SET + (gic_irq(d) / 32) * 4);
+       writel_relaxed(mask, gic_dist_base(d) + GIC_DIST_ENABLE_SET + (gic_irq(d) / 32) * 4);
        spin_unlock(&irq_controller_lock);
 }
 
+static void gic_eoi_irq(struct irq_data *d)
+{
+       if (gic_arch_extn.irq_eoi) {
+               spin_lock(&irq_controller_lock);
+               gic_arch_extn.irq_eoi(d);
+               spin_unlock(&irq_controller_lock);
+       }
+
+       writel_relaxed(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI);
+}
+
 static int gic_set_type(struct irq_data *d, unsigned int type)
 {
        void __iomem *base = gic_dist_base(d);
@@ -138,7 +140,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
        if (gic_arch_extn.irq_set_type)
                gic_arch_extn.irq_set_type(d, type);
 
-       val = readl(base + GIC_DIST_CONFIG + confoff);
+       val = readl_relaxed(base + GIC_DIST_CONFIG + confoff);
        if (type == IRQ_TYPE_LEVEL_HIGH)
                val &= ~confmask;
        else if (type == IRQ_TYPE_EDGE_RISING)
@@ -148,15 +150,15 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
         * As recommended by the spec, disable the interrupt before changing
         * the configuration
         */
-       if (readl(base + GIC_DIST_ENABLE_SET + enableoff) & enablemask) {
-               writel(enablemask, base + GIC_DIST_ENABLE_CLEAR + enableoff);
+       if (readl_relaxed(base + GIC_DIST_ENABLE_SET + enableoff) & enablemask) {
+               writel_relaxed(enablemask, base + GIC_DIST_ENABLE_CLEAR + enableoff);
                enabled = true;
        }
 
-       writel(val, base + GIC_DIST_CONFIG + confoff);
+       writel_relaxed(val, base + GIC_DIST_CONFIG + confoff);
 
        if (enabled)
-               writel(enablemask, base + GIC_DIST_ENABLE_SET + enableoff);
+               writel_relaxed(enablemask, base + GIC_DIST_ENABLE_SET + enableoff);
 
        spin_unlock(&irq_controller_lock);
 
@@ -188,8 +190,8 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
 
        spin_lock(&irq_controller_lock);
        d->node = cpu;
-       val = readl(reg) & ~mask;
-       writel(val | bit, reg);
+       val = readl_relaxed(reg) & ~mask;
+       writel_relaxed(val | bit, reg);
        spin_unlock(&irq_controller_lock);
 
        return 0;
@@ -218,11 +220,10 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
        unsigned int cascade_irq, gic_irq;
        unsigned long status;
 
-       /* primary controller ack'ing */
-       chip->irq_ack(&desc->irq_data);
+       chained_irq_enter(chip, desc);
 
        spin_lock(&irq_controller_lock);
-       status = readl(chip_data->cpu_base + GIC_CPU_INTACK);
+       status = readl_relaxed(chip_data->cpu_base + GIC_CPU_INTACK);
        spin_unlock(&irq_controller_lock);
 
        gic_irq = (status & 0x3ff);
@@ -236,15 +237,14 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
                generic_handle_irq(cascade_irq);
 
  out:
-       /* primary controller unmasking */
-       chip->irq_unmask(&desc->irq_data);
+       chained_irq_exit(chip, desc);
 }
 
 static struct irq_chip gic_chip = {
        .name                   = "GIC",
-       .irq_ack                = gic_ack_irq,
        .irq_mask               = gic_mask_irq,
        .irq_unmask             = gic_unmask_irq,
+       .irq_eoi                = gic_eoi_irq,
        .irq_set_type           = gic_set_type,
        .irq_retrigger          = gic_retrigger,
 #ifdef CONFIG_SMP
@@ -272,13 +272,13 @@ static void __init gic_dist_init(struct gic_chip_data *gic,
        cpumask |= cpumask << 8;
        cpumask |= cpumask << 16;
 
-       writel(0, base + GIC_DIST_CTRL);
+       writel_relaxed(0, base + GIC_DIST_CTRL);
 
        /*
         * Find out how many interrupts are supported.
         * The GIC only supports up to 1020 interrupt sources.
         */
-       gic_irqs = readl(base + GIC_DIST_CTR) & 0x1f;
+       gic_irqs = readl_relaxed(base + GIC_DIST_CTR) & 0x1f;
        gic_irqs = (gic_irqs + 1) * 32;
        if (gic_irqs > 1020)
                gic_irqs = 1020;
@@ -287,26 +287,26 @@ static void __init gic_dist_init(struct gic_chip_data *gic,
         * Set all global interrupts to be level triggered, active low.
         */
        for (i = 32; i < gic_irqs; i += 16)
-               writel(0, base + GIC_DIST_CONFIG + i * 4 / 16);
+               writel_relaxed(0, base + GIC_DIST_CONFIG + i * 4 / 16);
 
        /*
         * Set all global interrupts to this CPU only.
         */
        for (i = 32; i < gic_irqs; i += 4)
-               writel(cpumask, base + GIC_DIST_TARGET + i * 4 / 4);
+               writel_relaxed(cpumask, base + GIC_DIST_TARGET + i * 4 / 4);
 
        /*
         * Set priority on all global interrupts.
         */
        for (i = 32; i < gic_irqs; i += 4)
-               writel(0xa0a0a0a0, base + GIC_DIST_PRI + i * 4 / 4);
+               writel_relaxed(0xa0a0a0a0, base + GIC_DIST_PRI + i * 4 / 4);
 
        /*
         * Disable all interrupts.  Leave the PPI and SGIs alone
         * as these enables are banked registers.
         */
        for (i = 32; i < gic_irqs; i += 32)
-               writel(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32);
+               writel_relaxed(0xffffffff, base + GIC_DIST_ENABLE_CLEAR + i * 4 / 32);
 
        /*
         * Limit number of interrupts registered to the platform maximum
@@ -319,12 +319,12 @@ static void __init gic_dist_init(struct gic_chip_data *gic,
         * Setup the Linux IRQ subsystem.
         */
        for (i = irq_start; i < irq_limit; i++) {
-               irq_set_chip_and_handler(i, &gic_chip, handle_level_irq);
+               irq_set_chip_and_handler(i, &gic_chip, handle_fasteoi_irq);
                irq_set_chip_data(i, gic);
                set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
        }
 
-       writel(1, base + GIC_DIST_CTRL);
+       writel_relaxed(1, base + GIC_DIST_CTRL);
 }
 
 static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)
@@ -337,17 +337,17 @@ static void __cpuinit gic_cpu_init(struct gic_chip_data *gic)
         * Deal with the banked PPI and SGI interrupts - disable all
         * PPI interrupts, ensure all SGI interrupts are enabled.
         */
-       writel(0xffff0000, dist_base + GIC_DIST_ENABLE_CLEAR);
-       writel(0x0000ffff, dist_base + GIC_DIST_ENABLE_SET);
+       writel_relaxed(0xffff0000, dist_base + GIC_DIST_ENABLE_CLEAR);
+       writel_relaxed(0x0000ffff, dist_base + GIC_DIST_ENABLE_SET);
 
        /*
         * Set priority on PPI and SGI interrupts
         */
        for (i = 0; i < 32; i += 4)
-               writel(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4);
+               writel_relaxed(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4);
 
-       writel(0xf0, base + GIC_CPU_PRIMASK);
-       writel(1, base + GIC_CPU_CTRL);
+       writel_relaxed(0xf0, base + GIC_CPU_PRIMASK);
+       writel_relaxed(1, base + GIC_CPU_CTRL);
 }
 
 void __init gic_init(unsigned int gic_nr, unsigned int irq_start,
@@ -391,7 +391,13 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
 {
        unsigned long map = *cpus_addr(*mask);
 
+       /*
+        * Ensure that stores to Normal memory are visible to the
+        * other CPUs before issuing the IPI.
+        */
+       dsb();
+
        /* this always happens on GIC0 */
-       writel(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT);
+       writel_relaxed(map << 16 | irq, gic_data[0].dist_base + GIC_DIST_SOFTINT);
 }
 #endif
index a12b33c..9c49a46 100644 (file)
@@ -185,14 +185,6 @@ static struct sa1111_dev_info sa1111_devices[] = {
        },
 };
 
-void __init sa1111_adjust_zones(unsigned long *size, unsigned long *holes)
-{
-       unsigned int sz = SZ_1M >> PAGE_SHIFT;
-
-       size[1] = size[0] - sz;
-       size[0] = sz;
-}
-
 /*
  * SA1111 interrupt support.  Since clearing an IRQ while there are
  * active IRQs causes the interrupt output to pulse, the upper levels
index 6ef3342..41df478 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+#include <linux/clk.h>
 #include <linux/clocksource.h>
 #include <linux/clockchips.h>
+#include <linux/err.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/io.h>
 
 #include <asm/hardware/arm_timer.h>
 
-/*
- * These timers are currently always setup to be clocked at 1MHz.
- */
-#define TIMER_FREQ_KHZ (1000)
-#define TIMER_RELOAD   (TIMER_FREQ_KHZ * 1000 / HZ)
+static long __init sp804_get_clock_rate(const char *name)
+{
+       struct clk *clk;
+       long rate;
+       int err;
+
+       clk = clk_get_sys("sp804", name);
+       if (IS_ERR(clk)) {
+               pr_err("sp804: %s clock not found: %d\n", name,
+                       (int)PTR_ERR(clk));
+               return PTR_ERR(clk);
+       }
 
-static void __iomem *clksrc_base;
+       err = clk_enable(clk);
+       if (err) {
+               pr_err("sp804: %s clock failed to enable: %d\n", name, err);
+               clk_put(clk);
+               return err;
+       }
 
-static cycle_t sp804_read(struct clocksource *cs)
-{
-       return ~readl(clksrc_base + TIMER_VALUE);
-}
+       rate = clk_get_rate(clk);
+       if (rate < 0) {
+               pr_err("sp804: %s clock failed to get rate: %ld\n", name, rate);
+               clk_disable(clk);
+               clk_put(clk);
+       }
 
-static struct clocksource clocksource_sp804 = {
-       .name           = "timer3",
-       .rating         = 200,
-       .read           = sp804_read,
-       .mask           = CLOCKSOURCE_MASK(32),
-       .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
-};
+       return rate;
+}
 
-void __init sp804_clocksource_init(void __iomem *base)
+void __init sp804_clocksource_init(void __iomem *base, const char *name)
 {
-       struct clocksource *cs = &clocksource_sp804;
+       long rate = sp804_get_clock_rate(name);
 
-       clksrc_base = base;
+       if (rate < 0)
+               return;
 
        /* setup timer 0 as free-running clocksource */
-       writel(0, clksrc_base + TIMER_CTRL);
-       writel(0xffffffff, clksrc_base + TIMER_LOAD);
-       writel(0xffffffff, clksrc_base + TIMER_VALUE);
+       writel(0, base + TIMER_CTRL);
+       writel(0xffffffff, base + TIMER_LOAD);
+       writel(0xffffffff, base + TIMER_VALUE);
        writel(TIMER_CTRL_32BIT | TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC,
-               clksrc_base + TIMER_CTRL);
+               base + TIMER_CTRL);
 
-       clocksource_register_khz(cs, TIMER_FREQ_KHZ);
+       clocksource_mmio_init(base + TIMER_VALUE, name,
+               rate, 200, 32, clocksource_mmio_readl_down);
 }
 
 
 static void __iomem *clkevt_base;
+static unsigned long clkevt_reload;
 
 /*
  * IRQ handler for the timer
@@ -90,7 +104,7 @@ static void sp804_set_mode(enum clock_event_mode mode,
 
        switch (mode) {
        case CLOCK_EVT_MODE_PERIODIC:
-               writel(TIMER_RELOAD, clkevt_base + TIMER_LOAD);
+               writel(clkevt_reload, clkevt_base + TIMER_LOAD);
                ctrl |= TIMER_CTRL_PERIODIC | TIMER_CTRL_ENABLE;
                break;
 
@@ -120,7 +134,6 @@ static int sp804_set_next_event(unsigned long next,
 }
 
 static struct clock_event_device sp804_clockevent = {
-       .name           = "timer0",
        .shift          = 32,
        .features       = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
        .set_mode       = sp804_set_mode,
@@ -136,17 +149,24 @@ static struct irqaction sp804_timer_irq = {
        .dev_id         = &sp804_clockevent,
 };
 
-void __init sp804_clockevents_init(void __iomem *base, unsigned int timer_irq)
+void __init sp804_clockevents_init(void __iomem *base, unsigned int irq,
+       const char *name)
 {
        struct clock_event_device *evt = &sp804_clockevent;
+       long rate = sp804_get_clock_rate(name);
+
+       if (rate < 0)
+               return;
 
        clkevt_base = base;
+       clkevt_reload = DIV_ROUND_CLOSEST(rate, HZ);
 
-       evt->irq = timer_irq;
-       evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift);
+       evt->name = name;
+       evt->irq = irq;
+       evt->mult = div_sc(rate, NSEC_PER_SEC, evt->shift);
        evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt);
        evt->min_delta_ns = clockevent_delta2ns(0xf, evt);
 
-       setup_irq(timer_irq, &sp804_timer_irq);
+       setup_irq(irq, &sp804_timer_irq);
        clockevents_register_device(evt);
 }