Merge branch 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Mar 2011 17:04:59 +0000 (10:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Mar 2011 17:04:59 +0000 (10:04 -0700)
* 'rmobile-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  mmc: Add MMC_PROGRESS_*
  mmc, ARM: Rename SuperH Mobile ARM zboot helpers
  ARM: mach-shmobile: add coherent DMA mask to CEU camera devices
  ARM: mach-shmobile: Dynamic backlight control for Mackerel

1099 files changed:
.mailmap
Documentation/ABI/testing/sysfs-bus-media [new file with mode: 0644]
Documentation/DocBook/Makefile
Documentation/DocBook/media-entities.tmpl
Documentation/DocBook/media.tmpl
Documentation/DocBook/v4l/bayer.pdf [new file with mode: 0644]
Documentation/DocBook/v4l/bayer.png [new file with mode: 0644]
Documentation/DocBook/v4l/common.xml
Documentation/DocBook/v4l/compat.xml
Documentation/DocBook/v4l/dev-capture.xml
Documentation/DocBook/v4l/dev-output.xml
Documentation/DocBook/v4l/dev-subdev.xml [new file with mode: 0644]
Documentation/DocBook/v4l/func-mmap.xml
Documentation/DocBook/v4l/func-munmap.xml
Documentation/DocBook/v4l/io.xml
Documentation/DocBook/v4l/lirc_device_interface.xml
Documentation/DocBook/v4l/media-controller.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-func-close.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-func-ioctl.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-func-open.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-ioc-device-info.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-ioc-enum-entities.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-ioc-enum-links.xml [new file with mode: 0644]
Documentation/DocBook/v4l/media-ioc-setup-link.xml [new file with mode: 0644]
Documentation/DocBook/v4l/nv12mt.gif [new file with mode: 0644]
Documentation/DocBook/v4l/nv12mt_example.gif [new file with mode: 0644]
Documentation/DocBook/v4l/pipeline.pdf [new file with mode: 0644]
Documentation/DocBook/v4l/pipeline.png [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt-nv12m.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt-nv12mt.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt-srggb12.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt-yuv420m.xml [new file with mode: 0644]
Documentation/DocBook/v4l/pixfmt.xml
Documentation/DocBook/v4l/planar-apis.xml [new file with mode: 0644]
Documentation/DocBook/v4l/subdev-formats.xml [new file with mode: 0644]
Documentation/DocBook/v4l/v4l2.xml
Documentation/DocBook/v4l/videodev2.h.xml
Documentation/DocBook/v4l/vidioc-enum-fmt.xml
Documentation/DocBook/v4l/vidioc-g-fmt.xml
Documentation/DocBook/v4l/vidioc-qbuf.xml
Documentation/DocBook/v4l/vidioc-querybuf.xml
Documentation/DocBook/v4l/vidioc-querycap.xml
Documentation/DocBook/v4l/vidioc-streamon.xml
Documentation/DocBook/v4l/vidioc-subdev-enum-frame-interval.xml [new file with mode: 0644]
Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml [new file with mode: 0644]
Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml [new file with mode: 0644]
Documentation/DocBook/v4l/vidioc-subdev-g-crop.xml [new file with mode: 0644]
Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml [new file with mode: 0644]
Documentation/DocBook/v4l/vidioc-subdev-g-frame-interval.xml [new file with mode: 0644]
Documentation/acpi/apei/output_format.txt
Documentation/devicetree/bindings/fb/sm501fb.txt [new file with mode: 0644]
Documentation/dvb/get_dvb_firmware
Documentation/dvb/lmedm04.txt
Documentation/fb/sm501.txt [new file with mode: 0644]
Documentation/feature-removal-schedule.txt
Documentation/filesystems/exofs.txt
Documentation/filesystems/squashfs.txt
Documentation/hwmon/twl4030-madc-hwmon [new file with mode: 0644]
Documentation/ioctl/ioctl-number.txt
Documentation/media-framework.txt [new file with mode: 0644]
Documentation/rapidio/rapidio.txt [new file with mode: 0644]
Documentation/rapidio/sysfs.txt [new file with mode: 0644]
Documentation/video4linux/README.ivtv
Documentation/video4linux/gspca.txt
Documentation/video4linux/omap3isp.txt [new file with mode: 0644]
Documentation/video4linux/v4l2-framework.txt
MAINTAINERS
arch/alpha/include/asm/bitops.h
arch/alpha/include/asm/types.h
arch/arm/Kconfig
arch/arm/configs/omap2plus_defconfig
arch/arm/configs/tegra_defconfig
arch/arm/include/asm/bitops.h
arch/arm/include/asm/localtimer.h
arch/arm/include/asm/outercache.h
arch/arm/include/asm/pgtable.h
arch/arm/include/asm/setup.h
arch/arm/include/asm/types.h
arch/arm/kernel/crash_dump.c
arch/arm/kernel/hw_breakpoint.c
arch/arm/kernel/setup.c
arch/arm/kernel/smp.c
arch/arm/kernel/traps.c
arch/arm/lib/uaccess_with_memcpy.c
arch/arm/mach-exynos4/localtimer.c
arch/arm/mach-imx/mach-mx27_3ds.c
arch/arm/mach-imx/mach-pcm038.c
arch/arm/mach-integrator/Kconfig
arch/arm/mach-integrator/common.h
arch/arm/mach-integrator/core.c
arch/arm/mach-integrator/impd1.c
arch/arm/mach-integrator/include/mach/cm.h
arch/arm/mach-integrator/integrator_ap.c
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-msm/timer.c
arch/arm/mach-mx3/mach-mx31_3ds.c
arch/arm/mach-mx3/mach-mx31moboard.c
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3pandora.c
arch/arm/mach-omap2/board-omap3stalker.c
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/board-rx51-peripherals.c
arch/arm/mach-omap2/board-zoom-peripherals.c
arch/arm/mach-omap2/clock2420_data.c
arch/arm/mach-omap2/clock2430_data.c
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/devices.h [new file with mode: 0644]
arch/arm/mach-omap2/display.c
arch/arm/mach-omap2/omap_hwmod_2420_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/timer-mpu.c
arch/arm/mach-realview/Makefile
arch/arm/mach-realview/core.c
arch/arm/mach-realview/core.h
arch/arm/mach-realview/headsmp.S [deleted file]
arch/arm/mach-realview/localtimer.c [deleted file]
arch/arm/mach-realview/platsmp.c
arch/arm/mach-realview/realview_eb.c
arch/arm/mach-realview/realview_pb1176.c
arch/arm/mach-realview/realview_pb11mp.c
arch/arm/mach-realview/realview_pba8.c
arch/arm/mach-realview/realview_pbx.c
arch/arm/mach-s3c2440/mach-mini2440.c
arch/arm/mach-shmobile/localtimer.c
arch/arm/mach-tegra/Kconfig
arch/arm/mach-tegra/Makefile
arch/arm/mach-tegra/board-harmony-pcie.c
arch/arm/mach-tegra/board-harmony-pinmux.c
arch/arm/mach-tegra/board-harmony-power.c [new file with mode: 0644]
arch/arm/mach-tegra/board-harmony.c
arch/arm/mach-tegra/board-harmony.h
arch/arm/mach-tegra/board-paz00-pinmux.c [new file with mode: 0644]
arch/arm/mach-tegra/board-paz00.c [new file with mode: 0644]
arch/arm/mach-tegra/board-paz00.h [new file with mode: 0644]
arch/arm/mach-tegra/board-seaboard-pinmux.c
arch/arm/mach-tegra/board-seaboard.c
arch/arm/mach-tegra/board-seaboard.h
arch/arm/mach-tegra/board-trimslice-pinmux.c
arch/arm/mach-tegra/board-trimslice.c
arch/arm/mach-tegra/board-trimslice.h
arch/arm/mach-tegra/devices.c
arch/arm/mach-tegra/devices.h
arch/arm/mach-tegra/include/mach/iomap.h
arch/arm/mach-tegra/localtimer.c
arch/arm/mach-ux500/localtimer.c
arch/arm/mach-versatile/core.c
arch/arm/mach-versatile/core.h
arch/arm/mach-versatile/include/mach/hardware.h
arch/arm/mach-versatile/versatile_ab.c
arch/arm/mach-versatile/versatile_pb.c
arch/arm/mach-vexpress/Kconfig
arch/arm/mach-vexpress/Makefile
arch/arm/mach-vexpress/core.h
arch/arm/mach-vexpress/ct-ca9x4.c
arch/arm/mach-vexpress/include/mach/ct-ca9x4.h
arch/arm/mach-vexpress/include/mach/motherboard.h
arch/arm/mach-vexpress/platsmp.c
arch/arm/mach-vexpress/v2m.c
arch/arm/mm/dma-mapping.c
arch/arm/mm/fault-armv.c
arch/arm/mm/fault.c
arch/arm/mm/idmap.c
arch/arm/mm/init.c
arch/arm/mm/mm.h
arch/arm/mm/mmu.c
arch/arm/mm/pgd.c
arch/arm/plat-omap/include/plat/display.h
arch/arm/plat-omap/include/plat/omap34xx.h
arch/arm/plat-versatile/Kconfig [new file with mode: 0644]
arch/arm/plat-versatile/Makefile
arch/arm/plat-versatile/clcd.c [new file with mode: 0644]
arch/arm/plat-versatile/fpga-irq.c [new file with mode: 0644]
arch/arm/plat-versatile/headsmp.S [moved from arch/arm/mach-vexpress/headsmp.S with 75% similarity]
arch/arm/plat-versatile/include/plat/clcd.h [new file with mode: 0644]
arch/arm/plat-versatile/include/plat/fpga-irq.h [new file with mode: 0644]
arch/arm/plat-versatile/localtimer.c [moved from arch/arm/mach-vexpress/localtimer.c with 80% similarity]
arch/arm/plat-versatile/platsmp.c [new file with mode: 0644]
arch/arm/tools/mach-types
arch/avr32/include/asm/bitops.h
arch/avr32/kernel/avr32_ksyms.c
arch/avr32/lib/findbit.S
arch/blackfin/Kconfig
arch/blackfin/include/asm/atomic.h
arch/blackfin/include/asm/bitops.h
arch/blackfin/include/asm/unistd.h
arch/blackfin/mach-bf548/include/mach/anomaly.h
arch/blackfin/mach-bf561/hotplug.c
arch/blackfin/mach-common/entry.S
arch/cris/include/asm/bitops.h
arch/cris/include/asm/types.h
arch/frv/Kconfig
arch/frv/include/asm/bitops.h
arch/h8300/Kconfig
arch/h8300/include/asm/bitops.h
arch/ia64/include/asm/acpi.h
arch/ia64/include/asm/bitops.h
arch/ia64/include/asm/thread_info.h
arch/ia64/kernel/acpi.c
arch/ia64/kernel/crash_dump.c
arch/ia64/kernel/efi.c
arch/ia64/kernel/setup.c
arch/m32r/Kconfig
arch/m32r/include/asm/bitops.h
arch/m32r/include/asm/types.h
arch/m68k/include/asm/bitops_mm.h
arch/m68k/include/asm/bitops_no.h
arch/m68k/include/asm/types.h
arch/microblaze/Kconfig
arch/mips/Kconfig
arch/mips/include/asm/bitops.h
arch/mips/include/asm/types.h
arch/mn10300/include/asm/bitops.h
arch/parisc/Kconfig
arch/parisc/include/asm/bitops.h
arch/parisc/include/asm/types.h
arch/powerpc/Kconfig
arch/powerpc/include/asm/bitops.h
arch/powerpc/include/asm/types.h
arch/powerpc/kernel/cpu_setup_fsl_booke.S
arch/powerpc/kernel/crash_dump.c
arch/powerpc/kernel/vdso.c
arch/powerpc/sysdev/Makefile
arch/powerpc/sysdev/fsl_rio.c
arch/s390/include/asm/bitops.h
arch/s390/include/asm/types.h
arch/s390/kernel/vdso.c
arch/sh/Kconfig
arch/sh/boards/board-edosk7760.c
arch/sh/include/asm/bitops.h
arch/sh/include/asm/sizes.h
arch/sh/include/asm/unistd_32.h
arch/sh/include/asm/unistd_64.h
arch/sh/kernel/crash_dump.c
arch/sh/kernel/process.c
arch/sh/kernel/ptrace_32.c
arch/sh/kernel/ptrace_64.c
arch/sh/kernel/syscalls_32.S
arch/sh/kernel/syscalls_64.S
arch/sh/kernel/vsyscall/vsyscall.c
arch/sh/mm/pmb.c
arch/sparc/Kconfig
arch/sparc/include/asm/bitops_32.h
arch/sparc/include/asm/bitops_64.h
arch/sparc/include/asm/types.h
arch/tile/include/asm/bitops.h
arch/x86/Kconfig
arch/x86/ia32/ia32_aout.c
arch/x86/include/asm/acpi.h
arch/x86/include/asm/bitops.h
arch/x86/include/asm/mmu.h
arch/x86/include/asm/types.h
arch/x86/kernel/acpi/sleep.c
arch/x86/kernel/acpi/sleep.h
arch/x86/kernel/cpu/mcheck/mce-apei.c
arch/x86/kernel/crash_dump_32.c
arch/x86/kernel/crash_dump_64.c
arch/x86/kernel/e820.c
arch/x86/kernel/process_64.c
arch/x86/kernel/setup.c
arch/x86/mm/init_64.c
arch/x86/platform/olpc/olpc-xo1.c
arch/x86/vdso/vdso32-setup.c
arch/xtensa/Kconfig
arch/xtensa/include/asm/bitops.h
drivers/acpi/acpi_pad.c
drivers/acpi/acpica/Makefile
drivers/acpi/acpica/acdispat.h
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/aclocal.h
drivers/acpi/acpica/dsargs.c [new file with mode: 0644]
drivers/acpi/acpica/dscontrol.c [new file with mode: 0644]
drivers/acpi/acpica/dsopcode.c
drivers/acpi/acpica/dswload.c
drivers/acpi/acpica/dswload2.c [new file with mode: 0644]
drivers/acpi/acpica/evgpe.c
drivers/acpi/acpica/evregion.c
drivers/acpi/acpica/evxfregn.c
drivers/acpi/acpica/exfldio.c
drivers/acpi/acpica/hwxface.c
drivers/acpi/acpica/tbfadt.c
drivers/acpi/acpica/utdecode.c [new file with mode: 0644]
drivers/acpi/acpica/utglobal.c
drivers/acpi/apei/Kconfig
drivers/acpi/apei/cper.c
drivers/acpi/apei/erst-dbg.c
drivers/acpi/apei/erst.c
drivers/acpi/battery.c
drivers/acpi/button.c
drivers/acpi/ec_sys.c
drivers/acpi/internal.h
drivers/acpi/nvs.c
drivers/acpi/osl.c
drivers/acpi/pci_link.c
drivers/acpi/processor_core.c
drivers/acpi/processor_driver.c
drivers/acpi/reboot.c
drivers/acpi/scan.c
drivers/acpi/sleep.c
drivers/char/Kconfig
drivers/char/Makefile
drivers/char/ipmi/ipmi_si_intf.c
drivers/char/mem.c
drivers/char/msm_smd_pkt.c [new file with mode: 0644]
drivers/dma/timb_dma.c
drivers/gpio/Kconfig
drivers/gpio/janz-ttl.c
drivers/gpio/rdc321x-gpio.c
drivers/gpio/sch_gpio.c
drivers/gpio/timbgpio.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_suspend.c
drivers/gpu/drm/radeon/radeon_legacy_crtc.c
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/hwmon/jz4740-hwmon.c
drivers/hwmon/twl4030-madc-hwmon.c [new file with mode: 0644]
drivers/i2c/busses/i2c-ocores.c
drivers/i2c/busses/i2c-xiic.c
drivers/idle/intel_idle.c
drivers/infiniband/core/addr.c
drivers/infiniband/core/agent.c
drivers/infiniband/hw/mthca/mthca_main.c
drivers/infiniband/hw/nes/nes.c
drivers/infiniband/ulp/srp/ib_srp.c
drivers/infiniband/ulp/srp/ib_srp.h
drivers/input/misc/88pm860x_onkey.c
drivers/input/misc/twl4030-vibra.c
drivers/leds/leds-88pm860x.c
drivers/leds/leds-mc13783.c
drivers/md/bitmap.c
drivers/md/dm-log.c
drivers/media/Kconfig
drivers/media/Makefile
drivers/media/common/tuners/tda9887.c
drivers/media/common/tuners/tea5761.c
drivers/media/common/tuners/tuner-types.c
drivers/media/common/tuners/tuner-xc2028.c
drivers/media/common/tuners/xc5000.c
drivers/media/common/tuners/xc5000.h
drivers/media/dvb/Kconfig
drivers/media/dvb/dvb-core/dvb_frontend.h
drivers/media/dvb/dvb-usb/Kconfig
drivers/media/dvb/dvb-usb/Makefile
drivers/media/dvb/dvb-usb/a800.c
drivers/media/dvb/dvb-usb/af9015.c
drivers/media/dvb/dvb-usb/af9015.h
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/digitv.c
drivers/media/dvb/dvb-usb/dvb-usb-ids.h
drivers/media/dvb/dvb-usb/dvb-usb-remote.c
drivers/media/dvb/dvb-usb/dvb-usb.h
drivers/media/dvb/dvb-usb/dw2102.c
drivers/media/dvb/dvb-usb/lmedm04.c
drivers/media/dvb/dvb-usb/opera1.c
drivers/media/dvb/dvb-usb/technisat-usb2.c [new file with mode: 0644]
drivers/media/dvb/firewire/Kconfig
drivers/media/dvb/firewire/Makefile
drivers/media/dvb/firewire/firedtv-1394.c [deleted file]
drivers/media/dvb/firewire/firedtv-avc.c
drivers/media/dvb/firewire/firedtv-dvb.c
drivers/media/dvb/firewire/firedtv-fe.c
drivers/media/dvb/firewire/firedtv-fw.c
drivers/media/dvb/firewire/firedtv.h
drivers/media/dvb/frontends/Kconfig
drivers/media/dvb/frontends/Makefile
drivers/media/dvb/frontends/af9013.c
drivers/media/dvb/frontends/dib0090.c
drivers/media/dvb/frontends/dib0090.h
drivers/media/dvb/frontends/dib7000p.c
drivers/media/dvb/frontends/dib7000p.h
drivers/media/dvb/frontends/dib8000.c
drivers/media/dvb/frontends/dib8000.h
drivers/media/dvb/frontends/dib9000.c [new file with mode: 0644]
drivers/media/dvb/frontends/dib9000.h [new file with mode: 0644]
drivers/media/dvb/frontends/dibx000_common.c
drivers/media/dvb/frontends/dibx000_common.h
drivers/media/dvb/frontends/ds3000.c
drivers/media/dvb/frontends/ds3000.h
drivers/media/dvb/frontends/dvb-pll.c
drivers/media/dvb/frontends/stv0288.c
drivers/media/dvb/frontends/stv0367.c [new file with mode: 0644]
drivers/media/dvb/frontends/stv0367.h [new file with mode: 0644]
drivers/media/dvb/frontends/stv0367_priv.h [new file with mode: 0644]
drivers/media/dvb/frontends/stv0367_regs.h [new file with mode: 0644]
drivers/media/dvb/frontends/stv0900.h
drivers/media/dvb/frontends/stv0900_core.c
drivers/media/dvb/frontends/stv090x.c
drivers/media/dvb/frontends/stv090x.h
drivers/media/dvb/frontends/stv090x_reg.h
drivers/media/dvb/frontends/zl10036.c
drivers/media/dvb/ngene/Makefile
drivers/media/dvb/ngene/ngene-cards.c
drivers/media/dvb/ngene/ngene-core.c
drivers/media/dvb/ngene/ngene-dvb.c
drivers/media/dvb/ngene/ngene.h
drivers/media/dvb/siano/sms-cards.c
drivers/media/dvb/ttpci/budget-ci.c
drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
drivers/media/media-device.c [new file with mode: 0644]
drivers/media/media-devnode.c [new file with mode: 0644]
drivers/media/media-entity.c [new file with mode: 0644]
drivers/media/radio/Kconfig
drivers/media/radio/Makefile
drivers/media/radio/dsbr100.c
drivers/media/radio/radio-si4713.c
drivers/media/radio/radio-timb.c
drivers/media/radio/radio-wl1273.c
drivers/media/radio/si470x/radio-si470x-common.c
drivers/media/radio/wl128x/Kconfig [new file with mode: 0644]
drivers/media/radio/wl128x/Makefile [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv.h [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_common.c [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_common.h [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_rx.c [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_rx.h [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_tx.c [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_tx.h [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_v4l2.c [new file with mode: 0644]
drivers/media/radio/wl128x/fmdrv_v4l2.h [new file with mode: 0644]
drivers/media/rc/Kconfig
drivers/media/rc/Makefile
drivers/media/rc/imon.c
drivers/media/rc/ir-nec-decoder.c
drivers/media/rc/ite-cir.c [new file with mode: 0644]
drivers/media/rc/ite-cir.h [new file with mode: 0644]
drivers/media/rc/keymaps/Makefile
drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.c
drivers/media/rc/keymaps/rc-avermedia-dvbt.c
drivers/media/rc/keymaps/rc-avermedia-m135a.c
drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.c
drivers/media/rc/keymaps/rc-avermedia-rm-ks.c
drivers/media/rc/keymaps/rc-behold-columbus.c
drivers/media/rc/keymaps/rc-behold.c
drivers/media/rc/keymaps/rc-budget-ci-old.c
drivers/media/rc/keymaps/rc-cinergy.c
drivers/media/rc/keymaps/rc-dntv-live-dvb-t.c
drivers/media/rc/keymaps/rc-encore-enltv.c
drivers/media/rc/keymaps/rc-encore-enltv2.c
drivers/media/rc/keymaps/rc-flydvb.c
drivers/media/rc/keymaps/rc-hauppauge-new.c [deleted file]
drivers/media/rc/keymaps/rc-hauppauge.c [moved from drivers/media/rc/keymaps/rc-rc5-hauppauge-new.c with 53% similarity]
drivers/media/rc/keymaps/rc-imon-mce.c
drivers/media/rc/keymaps/rc-imon-pad.c
drivers/media/rc/keymaps/rc-kworld-315u.c
drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.c
drivers/media/rc/keymaps/rc-lme2510.c
drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.c
drivers/media/rc/keymaps/rc-nebula.c
drivers/media/rc/keymaps/rc-norwood.c
drivers/media/rc/keymaps/rc-pctv-sedna.c
drivers/media/rc/keymaps/rc-pixelview-mk12.c
drivers/media/rc/keymaps/rc-pixelview-new.c
drivers/media/rc/keymaps/rc-pixelview.c
drivers/media/rc/keymaps/rc-pv951.c
drivers/media/rc/keymaps/rc-rc5-tv.c [deleted file]
drivers/media/rc/keymaps/rc-rc6-mce.c
drivers/media/rc/keymaps/rc-real-audio-220-32-keys.c
drivers/media/rc/keymaps/rc-technisat-usb2.c [new file with mode: 0644]
drivers/media/rc/keymaps/rc-terratec-slim-2.c [new file with mode: 0644]
drivers/media/rc/keymaps/rc-winfast.c
drivers/media/rc/mceusb.c
drivers/media/video/Kconfig
drivers/media/video/Makefile
drivers/media/video/adv7343.c
drivers/media/video/adv7343_regs.h
drivers/media/video/au0828/au0828-cards.c
drivers/media/video/au0828/au0828-dvb.c
drivers/media/video/au0828/au0828-video.c
drivers/media/video/bt819.c
drivers/media/video/bt8xx/bttv-cards.c
drivers/media/video/bt8xx/bttv-input.c
drivers/media/video/cpia2/cpia2_core.c
drivers/media/video/cpia2/cpia2_v4l.c
drivers/media/video/cs5345.c
drivers/media/video/cx18/cx18-av-audio.c
drivers/media/video/cx18/cx18-av-core.c
drivers/media/video/cx18/cx18-av-core.h
drivers/media/video/cx18/cx18-controls.c
drivers/media/video/cx18/cx18-controls.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-i2c.c
drivers/media/video/cx18/cx18-ioctl.c
drivers/media/video/cx18/cx18-mailbox.c
drivers/media/video/cx18/cx18-mailbox.h
drivers/media/video/cx18/cx18-streams.c
drivers/media/video/cx18/cx23418.h
drivers/media/video/cx231xx/cx231xx-417.c
drivers/media/video/cx231xx/cx231xx-avcore.c
drivers/media/video/cx231xx/cx231xx-cards.c
drivers/media/video/cx231xx/cx231xx-core.c
drivers/media/video/cx231xx/cx231xx-i2c.c
drivers/media/video/cx231xx/cx231xx-video.c
drivers/media/video/cx231xx/cx231xx.h
drivers/media/video/cx23885/Kconfig
drivers/media/video/cx23885/Makefile
drivers/media/video/cx23885/altera-ci.c [new file with mode: 0644]
drivers/media/video/cx23885/altera-ci.h [new file with mode: 0644]
drivers/media/video/cx23885/cx23885-cards.c
drivers/media/video/cx23885/cx23885-core.c
drivers/media/video/cx23885/cx23885-dvb.c
drivers/media/video/cx23885/cx23885-input.c
drivers/media/video/cx23885/cx23885-reg.h
drivers/media/video/cx23885/cx23885-video.c
drivers/media/video/cx23885/cx23885.h
drivers/media/video/cx88/cx88-alsa.c
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-dvb.c
drivers/media/video/cx88/cx88-input.c
drivers/media/video/cx88/cx88-tvaudio.c
drivers/media/video/cx88/cx88-video.c
drivers/media/video/cx88/cx88.h
drivers/media/video/davinci/vpfe_capture.c
drivers/media/video/em28xx/em28xx-cards.c
drivers/media/video/em28xx/em28xx-video.c
drivers/media/video/gspca/Kconfig
drivers/media/video/gspca/Makefile
drivers/media/video/gspca/autogain_functions.h [new file with mode: 0644]
drivers/media/video/gspca/cpia1.c
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/jeilinj.c
drivers/media/video/gspca/nw80x.c [new file with mode: 0644]
drivers/media/video/gspca/ov519.c
drivers/media/video/gspca/ov534.c
drivers/media/video/gspca/sn9c20x.c
drivers/media/video/gspca/sonixb.c
drivers/media/video/gspca/sonixj.c
drivers/media/video/gspca/stv06xx/stv06xx.c
drivers/media/video/gspca/vicam.c [new file with mode: 0644]
drivers/media/video/gspca/zc3xx-reg.h
drivers/media/video/gspca/zc3xx.c
drivers/media/video/hdpvr/hdpvr-i2c.c
drivers/media/video/ir-kbd-i2c.c
drivers/media/video/ivtv/ivtv-driver.h
drivers/media/video/ivtv/ivtv-fileops.c
drivers/media/video/ivtv/ivtv-i2c.c
drivers/media/video/ivtv/ivtv-ioctl.c
drivers/media/video/ivtv/ivtv-streams.c
drivers/media/video/ivtv/ivtv-udma.c
drivers/media/video/ivtv/ivtv-vbi.c
drivers/media/video/ivtv/ivtv-yuv.c
drivers/media/video/mem2mem_testdev.c
drivers/media/video/meye.c
drivers/media/video/mt9m001.c
drivers/media/video/mt9v022.c
drivers/media/video/mx3_camera.c
drivers/media/video/mxb.c
drivers/media/video/noon010pc30.c [new file with mode: 0644]
drivers/media/video/omap1_camera.c
drivers/media/video/omap24xxcam.c
drivers/media/video/omap3isp/Makefile [new file with mode: 0644]
drivers/media/video/omap3isp/cfa_coef_table.h [new file with mode: 0644]
drivers/media/video/omap3isp/gamma_table.h [new file with mode: 0644]
drivers/media/video/omap3isp/isp.c [new file with mode: 0644]
drivers/media/video/omap3isp/isp.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispccdc.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispccdc.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispccp2.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispccp2.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispcsi2.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispcsi2.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispcsiphy.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispcsiphy.h [new file with mode: 0644]
drivers/media/video/omap3isp/isph3a.h [new file with mode: 0644]
drivers/media/video/omap3isp/isph3a_aewb.c [new file with mode: 0644]
drivers/media/video/omap3isp/isph3a_af.c [new file with mode: 0644]
drivers/media/video/omap3isp/isphist.c [new file with mode: 0644]
drivers/media/video/omap3isp/isphist.h [new file with mode: 0644]
drivers/media/video/omap3isp/isppreview.c [new file with mode: 0644]
drivers/media/video/omap3isp/isppreview.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispqueue.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispqueue.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispreg.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispresizer.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispresizer.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispstat.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispstat.h [new file with mode: 0644]
drivers/media/video/omap3isp/ispvideo.c [new file with mode: 0644]
drivers/media/video/omap3isp/ispvideo.h [new file with mode: 0644]
drivers/media/video/omap3isp/luma_enhance_table.h [new file with mode: 0644]
drivers/media/video/omap3isp/noise_filter_table.h [new file with mode: 0644]
drivers/media/video/ov6650.c
drivers/media/video/ov9740.c [new file with mode: 0644]
drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c
drivers/media/video/pvrusb2/pvrusb2-devattr.c
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/media/video/pvrusb2/pvrusb2-i2c-core.c
drivers/media/video/pvrusb2/pvrusb2-sysfs.c
drivers/media/video/pvrusb2/pvrusb2-v4l2.c
drivers/media/video/pwc/pwc-if.c
drivers/media/video/pwc/pwc-v4l.c
drivers/media/video/pwc/pwc.h
drivers/media/video/s5p-fimc/fimc-capture.c
drivers/media/video/s5p-fimc/fimc-core.c
drivers/media/video/s5p-fimc/fimc-core.h
drivers/media/video/s5p-fimc/fimc-reg.c
drivers/media/video/s5p-fimc/regs-fimc.h
drivers/media/video/saa7110.c
drivers/media/video/saa7134/Kconfig
drivers/media/video/saa7134/saa7134-cards.c
drivers/media/video/saa7134/saa7134-core.c
drivers/media/video/saa7134/saa7134-empress.c
drivers/media/video/saa7134/saa7134-input.c
drivers/media/video/saa7134/saa7134.h
drivers/media/video/saa7164/saa7164-api.c
drivers/media/video/saa7164/saa7164-buffer.c
drivers/media/video/saa7164/saa7164-bus.c
drivers/media/video/saa7164/saa7164-cmd.c
drivers/media/video/saa7164/saa7164-core.c
drivers/media/video/saa7164/saa7164-dvb.c
drivers/media/video/saa7164/saa7164-encoder.c
drivers/media/video/saa7164/saa7164-fw.c
drivers/media/video/saa7164/saa7164-vbi.c
drivers/media/video/sh_mobile_ceu_camera.c
drivers/media/video/sh_mobile_csi2.c
drivers/media/video/sn9c102/sn9c102_core.c
drivers/media/video/soc_camera.c
drivers/media/video/soc_mediabus.c
drivers/media/video/timblogiw.c
drivers/media/video/tlg2300/pd-video.c
drivers/media/video/tlv320aic23b.c
drivers/media/video/tuner-core.c
drivers/media/video/tvp514x.c
drivers/media/video/tvp5150.c
drivers/media/video/tvp7002.c
drivers/media/video/uvc/uvc_driver.c
drivers/media/video/uvc/uvc_video.c
drivers/media/video/v4l2-common.c
drivers/media/video/v4l2-compat-ioctl32.c
drivers/media/video/v4l2-ctrls.c
drivers/media/video/v4l2-dev.c
drivers/media/video/v4l2-device.c
drivers/media/video/v4l2-fh.c
drivers/media/video/v4l2-ioctl.c
drivers/media/video/v4l2-mem2mem.c
drivers/media/video/v4l2-subdev.c [new file with mode: 0644]
drivers/media/video/via-camera.c
drivers/media/video/videobuf-dma-contig.c
drivers/media/video/videobuf2-core.c [new file with mode: 0644]
drivers/media/video/videobuf2-dma-contig.c [new file with mode: 0644]
drivers/media/video/videobuf2-dma-sg.c [new file with mode: 0644]
drivers/media/video/videobuf2-memops.c [new file with mode: 0644]
drivers/media/video/videobuf2-vmalloc.c [new file with mode: 0644]
drivers/media/video/vivi.c
drivers/media/video/vpx3220.c
drivers/media/video/wm8775.c
drivers/mfd/88pm860x-core.c
drivers/mfd/88pm860x-i2c.c
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/mfd/ab3100-core.c
drivers/mfd/ab3550-core.c
drivers/mfd/ab8500-core.c
drivers/mfd/ab8500-debugfs.c
drivers/mfd/ab8500-gpadc.c [new file with mode: 0644]
drivers/mfd/ab8500-sysctrl.c [new file with mode: 0644]
drivers/mfd/adp5520.c
drivers/mfd/asic3.c
drivers/mfd/cs5535-mfd.c
drivers/mfd/davinci_voicecodec.c
drivers/mfd/htc-pasic3.c
drivers/mfd/janz-cmodio.c
drivers/mfd/jz4740-adc.c
drivers/mfd/lpc_sch.c
drivers/mfd/max8997.c [new file with mode: 0644]
drivers/mfd/max8998.c
drivers/mfd/mc13xxx-core.c
drivers/mfd/mfd-core.c
drivers/mfd/pcf50633-core.c
drivers/mfd/rdc321x-southbridge.c
drivers/mfd/sh_mobile_sdhi.c
drivers/mfd/sm501.c
drivers/mfd/t7l66xb.c
drivers/mfd/tc6387xb.c
drivers/mfd/tc6393xb.c
drivers/mfd/timberdale.c
drivers/mfd/tps6105x.c [new file with mode: 0644]
drivers/mfd/tps6586x.c
drivers/mfd/twl-core.c
drivers/mfd/twl4030-codec.c
drivers/mfd/twl4030-madc.c [new file with mode: 0644]
drivers/mfd/ucb1x00-ts.c
drivers/mfd/vx855.c
drivers/mfd/wl1273-core.c
drivers/mfd/wm831x-i2c.c
drivers/mfd/wm831x-irq.c
drivers/mfd/wm831x-spi.c
drivers/mfd/wm8400-core.c
drivers/mfd/wm8994-core.c
drivers/mfd/wm8994-irq.c
drivers/mmc/host/tmio_mmc.c
drivers/mtd/nand/tmio_nand.c
drivers/mtd/ubi/io.c
drivers/net/can/janz-ican3.c
drivers/net/ks8842.c
drivers/net/mlx4/main.c
drivers/net/rionet.c
drivers/of/base.c
drivers/of/fdt.c
drivers/of/platform.c
drivers/pci/pci-acpi.c
drivers/pci/pci-sysfs.c
drivers/pci/pcie/aer/aerdrv.h
drivers/pci/pcie/aer/aerdrv_errprint.c
drivers/power/jz4740-battery.c
drivers/rapidio/rio-scan.c
drivers/rapidio/rio-sysfs.c
drivers/rapidio/rio.c
drivers/regulator/88pm8607.c
drivers/regulator/Kconfig
drivers/regulator/Makefile
drivers/regulator/ab3100.c
drivers/regulator/max8997.c [new file with mode: 0644]
drivers/regulator/mc13783-regulator.c
drivers/regulator/mc13892-regulator.c
drivers/regulator/tps6105x-regulator.c [new file with mode: 0644]
drivers/regulator/twl-regulator.c
drivers/sh/clk/core.c
drivers/sh/intc/core.c
drivers/sh/intc/internals.h
drivers/spi/amba-pl022.c
drivers/spi/omap2_mcspi.c
drivers/spi/xilinx_spi.c
drivers/staging/Kconfig
drivers/staging/Makefile
drivers/staging/altera-stapl/Kconfig [new file with mode: 0644]
drivers/staging/altera-stapl/Makefile [new file with mode: 0644]
drivers/staging/altera-stapl/altera-comp.c [new file with mode: 0644]
drivers/staging/altera-stapl/altera-exprt.h [new file with mode: 0644]
drivers/staging/altera-stapl/altera-jtag.c [new file with mode: 0644]
drivers/staging/altera-stapl/altera-jtag.h [new file with mode: 0644]
drivers/staging/altera-stapl/altera-lpt.c [new file with mode: 0644]
drivers/staging/altera-stapl/altera.c [new file with mode: 0644]
drivers/staging/cx25821/Kconfig
drivers/staging/cx25821/cx25821-alsa.c
drivers/staging/cx25821/cx25821-core.c
drivers/staging/cx25821/cx25821-video.c
drivers/staging/cx25821/cx25821.h
drivers/staging/cxd2099/Kconfig [new file with mode: 0644]
drivers/staging/cxd2099/Makefile [new file with mode: 0644]
drivers/staging/cxd2099/TODO [new file with mode: 0644]
drivers/staging/cxd2099/cxd2099.c [new file with mode: 0644]
drivers/staging/cxd2099/cxd2099.h [new file with mode: 0644]
drivers/staging/dabusb/Kconfig [deleted file]
drivers/staging/dabusb/Makefile [deleted file]
drivers/staging/dabusb/TODO [deleted file]
drivers/staging/dabusb/dabusb.c [deleted file]
drivers/staging/dabusb/dabusb.h [deleted file]
drivers/staging/easycap/easycap_ioctl.c
drivers/staging/lirc/Kconfig
drivers/staging/lirc/Makefile
drivers/staging/lirc/TODO.lirc_zilog
drivers/staging/lirc/lirc_imon.c
drivers/staging/lirc/lirc_it87.c [deleted file]
drivers/staging/lirc/lirc_it87.h [deleted file]
drivers/staging/lirc/lirc_ite8709.c [deleted file]
drivers/staging/lirc/lirc_sasem.c
drivers/staging/lirc/lirc_zilog.c
drivers/staging/se401/Kconfig [deleted file]
drivers/staging/se401/Makefile [deleted file]
drivers/staging/se401/TODO [deleted file]
drivers/staging/se401/se401.c [deleted file]
drivers/staging/se401/se401.h [deleted file]
drivers/staging/se401/videodev.h [deleted file]
drivers/staging/tm6000/tm6000-alsa.c
drivers/staging/tm6000/tm6000-cards.c
drivers/staging/tm6000/tm6000-core.c
drivers/staging/tm6000/tm6000-regs.h
drivers/staging/tm6000/tm6000-stds.c
drivers/staging/tm6000/tm6000-video.c
drivers/staging/tm6000/tm6000.h
drivers/staging/tty/specialix.c
drivers/staging/usbvideo/Kconfig [deleted file]
drivers/staging/usbvideo/Makefile [deleted file]
drivers/staging/usbvideo/TODO [deleted file]
drivers/staging/usbvideo/usbvideo.c [deleted file]
drivers/staging/usbvideo/usbvideo.h [deleted file]
drivers/staging/usbvideo/vicam.c [deleted file]
drivers/staging/usbvideo/videodev.h [deleted file]
drivers/thermal/thermal_sys.c
drivers/tty/bfin_jtag_comm.c
drivers/usb/class/cdc-acm.c
drivers/usb/class/cdc-wdm.c
drivers/usb/core/devio.c
drivers/usb/host/ehci-q.c
drivers/usb/host/ohci-tmio.c
drivers/usb/misc/uss720.c
drivers/usb/musb/blackfin.c
drivers/usb/musb/musb_gadget.c
drivers/usb/serial/usb_wwan.c
drivers/video/amba-clcd.c
drivers/video/arkfb.c
drivers/video/atmel_lcdfb.c
drivers/video/aty/radeon_base.c
drivers/video/aty/radeon_i2c.c
drivers/video/backlight/88pm860x_bl.c
drivers/video/cg14.c
drivers/video/cg6.c
drivers/video/console/fbcon.c
drivers/video/console/tileblit.c
drivers/video/edid.h
drivers/video/ffb.c
drivers/video/hecubafb.c
drivers/video/hpfb.c
drivers/video/matrox/matroxfb_base.c
drivers/video/metronomefb.c
drivers/video/omap/Kconfig
drivers/video/omap/blizzard.c
drivers/video/omap/hwa742.c
drivers/video/omap2/displays/Kconfig
drivers/video/omap2/displays/Makefile
drivers/video/omap2/displays/panel-generic-dpi.c
drivers/video/omap2/displays/panel-lgphilips-lb035q02.c [new file with mode: 0644]
drivers/video/omap2/displays/panel-taal.c
drivers/video/omap2/dss/Kconfig
drivers/video/omap2/dss/Makefile
drivers/video/omap2/dss/core.c
drivers/video/omap2/dss/dispc.c
drivers/video/omap2/dss/display.c
drivers/video/omap2/dss/dpi.c
drivers/video/omap2/dss/dsi.c
drivers/video/omap2/dss/dss.c
drivers/video/omap2/dss/dss.h
drivers/video/omap2/dss/dss_features.c
drivers/video/omap2/dss/dss_features.h
drivers/video/omap2/dss/hdmi.c [new file with mode: 0644]
drivers/video/omap2/dss/hdmi.h [new file with mode: 0644]
drivers/video/omap2/dss/hdmi_omap4_panel.c [new file with mode: 0644]
drivers/video/omap2/dss/manager.c
drivers/video/omap2/dss/overlay.c
drivers/video/omap2/dss/rfbi.c
drivers/video/omap2/dss/sdi.c
drivers/video/omap2/dss/venc.c
drivers/video/omap2/omapfb/Kconfig
drivers/video/omap2/omapfb/omapfb-main.c
drivers/video/s3c-fb.c
drivers/video/s3fb.c
drivers/video/sh7760fb.c
drivers/video/sh_mobile_lcdcfb.c
drivers/video/sis/sis.h
drivers/video/sis/sis_main.c
drivers/video/sis/vgatypes.h
drivers/video/sm501fb.c
drivers/video/svgalib.c
drivers/video/tcx.c
drivers/video/tmiofb.c
drivers/video/uvesafb.c
drivers/video/vermilion/vermilion.c
drivers/video/vesafb.c
drivers/video/vt8623fb.c
drivers/w1/masters/ds1wm.c
drivers/watchdog/rdc321x_wdt.c
fs/9p/acl.c
fs/adfs/adfs.h
fs/attr.c
fs/binfmt_elf.c
fs/btrfs/acl.c
fs/btrfs/ioctl.c
fs/drop_caches.c
fs/exofs/common.h
fs/exofs/dir.c
fs/exofs/exofs.h
fs/exofs/file.c
fs/exofs/inode.c
fs/exofs/super.c
fs/ext2/acl.c
fs/ext2/ext2.h
fs/ext2/ioctl.c
fs/ext3/acl.c
fs/ext3/ioctl.c
fs/ext4/acl.c
fs/ext4/ext4.h
fs/ext4/ioctl.c
fs/fcntl.c
fs/generic_acl.c
fs/gfs2/file.c
fs/hfsplus/ioctl.c
fs/inode.c
fs/jffs2/acl.c
fs/jfs/ioctl.c
fs/jfs/xattr.c
fs/locks.c
fs/logfs/file.c
fs/minix/Kconfig
fs/minix/minix.h
fs/namei.c
fs/nfsd/export.c
fs/nfsd/nfs4idmap.c
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4state.c
fs/nfsd/nfs4xdr.c
fs/nfsd/nfsctl.c
fs/nfsd/state.h
fs/nfsd/vfs.c
fs/nilfs2/alloc.h
fs/nilfs2/ioctl.c
fs/ocfs2/acl.c
fs/ocfs2/ioctl.c
fs/ocfs2/ocfs2.h
fs/proc/array.c
fs/proc/base.c
fs/proc/generic.c
fs/proc/inode.c
fs/proc/internal.h
fs/proc/root.c
fs/proc/task_mmu.c
fs/proc/task_nommu.c
fs/reiserfs/ioctl.c
fs/reiserfs/xattr_acl.c
fs/squashfs/Kconfig
fs/squashfs/decompressor.c
fs/squashfs/decompressor.h
fs/squashfs/dir.c
fs/squashfs/lzo_wrapper.c
fs/squashfs/namei.c
fs/squashfs/squashfs.h
fs/squashfs/squashfs_fs.h
fs/squashfs/super.c
fs/squashfs/xz_wrapper.c
fs/squashfs/zlib_wrapper.c
fs/ubifs/Kconfig
fs/ubifs/debug.c
fs/ubifs/file.c
fs/ubifs/ioctl.c
fs/ubifs/lprops.c
fs/ubifs/lpt_commit.c
fs/ubifs/orphan.c
fs/udf/balloc.c
fs/ufs/util.h
fs/utimes.c
fs/xattr.c
include/acpi/acoutput.h
include/acpi/acpi_bus.h
include/acpi/acpixf.h
include/acpi/actbl.h
include/acpi/actbl2.h
include/acpi/apei.h
include/asm-generic/bitops.h
include/asm-generic/bitops/ext2-atomic.h
include/asm-generic/bitops/ext2-non-atomic.h [deleted file]
include/asm-generic/bitops/le.h
include/asm-generic/bitops/minix-le.h [deleted file]
include/asm-generic/bitops/minix.h [deleted file]
include/linux/Kbuild
include/linux/acpi_io.h
include/linux/aer.h
include/linux/amba/clcd.h
include/linux/bootmem.h
include/linux/capability.h
include/linux/cper.h
include/linux/cred.h
include/linux/ext3_fs.h
include/linux/fs.h
include/linux/i2c/twl.h
include/linux/i2c/twl4030-madc.h [new file with mode: 0644]
include/linux/ipc_namespace.h
include/linux/media.h [new file with mode: 0644]
include/linux/memcontrol.h
include/linux/mfd/88pm860x.h
include/linux/mfd/ab8500.h
include/linux/mfd/ab8500/gpadc.h [new file with mode: 0644]
include/linux/mfd/ab8500/sysctrl.h [new file with mode: 0644]
include/linux/mfd/abx500.h
include/linux/mfd/core.h
include/linux/mfd/max8997-private.h [new file with mode: 0644]
include/linux/mfd/max8997.h [new file with mode: 0644]
include/linux/mfd/mc13xxx.h
include/linux/mfd/tps6105x.h [new file with mode: 0644]
include/linux/mfd/wl1273-core.h
include/linux/mfd/wm831x/pdata.h
include/linux/mfd/wm8994/core.h
include/linux/mm.h
include/linux/of_platform.h
include/linux/omap3isp.h [new file with mode: 0644]
include/linux/page_cgroup.h
include/linux/pci_ids.h
include/linux/pid.h
include/linux/proc_fs.h
include/linux/reiserfs_fs.h
include/linux/res_counter.h
include/linux/rio.h
include/linux/rio_drv.h
include/linux/sched.h
include/linux/security.h
include/linux/sm501.h
include/linux/smp.h
include/linux/svga.h
include/linux/utsname.h
include/linux/v4l2-mediabus.h [new file with mode: 0644]
include/linux/v4l2-subdev.h [new file with mode: 0644]
include/linux/videodev2.h
include/media/media-device.h [new file with mode: 0644]
include/media/media-devnode.h [new file with mode: 0644]
include/media/media-entity.h [new file with mode: 0644]
include/media/noon010pc30.h [new file with mode: 0644]
include/media/rc-map.h
include/media/s5p_fimc.h [moved from include/media/s3c_fimc.h with 69% similarity]
include/media/soc_camera.h
include/media/soc_mediabus.h
include/media/tuner.h
include/media/v4l2-chip-ident.h
include/media/v4l2-common.h
include/media/v4l2-dev.h
include/media/v4l2-device.h
include/media/v4l2-fh.h
include/media/v4l2-ioctl.h
include/media/v4l2-mediabus.h
include/media/v4l2-mem2mem.h
include/media/v4l2-subdev.h
include/media/videobuf2-core.h [new file with mode: 0644]
include/media/videobuf2-dma-contig.h [new file with mode: 0644]
include/media/videobuf2-dma-sg.h [new file with mode: 0644]
include/media/videobuf2-memops.h [new file with mode: 0644]
include/media/videobuf2-vmalloc.h [new file with mode: 0644]
include/media/wm8775.h
include/staging/altera.h [new file with mode: 0644]
include/video/atmel_lcdc.h
init/main.c
init/version.c
ipc/msg.c
ipc/msgutil.c
ipc/namespace.c
ipc/sem.c
ipc/shm.c
ipc/util.c
ipc/util.h
kernel/Makefile
kernel/bounds.c
kernel/capability.c
kernel/cpuset.c
kernel/crash_dump.c [new file with mode: 0644]
kernel/cred.c
kernel/fork.c
kernel/futex.c
kernel/futex_compat.c
kernel/groups.c
kernel/kallsyms.c
kernel/nsproxy.c
kernel/pid_namespace.c
kernel/ptrace.c
kernel/res_counter.c
kernel/sched.c
kernel/signal.c
kernel/sys.c
kernel/sysctl.c
kernel/sysctl_check.c
kernel/taskstats.c
kernel/uid16.c
kernel/user.c
kernel/utsname.c
lib/Kconfig
lib/Makefile
lib/find_next_bit.c
mm/bootmem.c
mm/memcontrol.c
mm/memory.c
mm/migrate.c
mm/mlock.c
mm/nobootmem.c
mm/nommu.c
mm/oom_kill.c
mm/page_alloc.c
mm/page_cgroup.c
mm/swapfile.c
net/rds/cong.c
net/sunrpc/svcauth_unix.c
security/apparmor/lsm.c
security/commoncap.c
security/security.c
security/selinux/hooks.c
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_via.c
sound/soc/codecs/Kconfig
sound/soc/codecs/cq93vc.c
sound/soc/codecs/sgtl5000.c
sound/soc/codecs/twl4030.c
sound/soc/codecs/uda134x.c
sound/soc/codecs/wl1273.c
sound/soc/codecs/wm8400.c
sound/soc/davinci/davinci-vcif.c
sound/soc/samsung/s3c24xx_uda134x.c
sound/soc/soc-core.c
sound/sound_firmware.c
sound/usb/card.c
virt/kvm/kvm_main.c

index 1eba28a..5a6dd59 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -20,6 +20,7 @@ Andreas Herrmann <aherrman@de.ibm.com>
 Andrew Morton <akpm@osdl.org>
 Andrew Vasquez <andrew.vasquez@qlogic.com>
 Andy Adamson <andros@citi.umich.edu>
+Archit Taneja <archit@ti.com>
 Arnaud Patard <arnaud.patard@rtp-net.org>
 Arnd Bergmann <arnd@arndb.de>
 Axel Dyks <xl@xlsigned.net>
@@ -70,6 +71,7 @@ Leonid I Ananiev <leonid.i.ananiev@intel.com>
 Linas Vepstas <linas@austin.ibm.com>
 Mark Brown <broonie@sirena.org.uk>
 Matthieu CASTET <castet.matthieu@free.fr>
+Mayuresh Janorkar <mayur@ti.com>
 Michael Buesch <mb@bu3sch.de>
 Michael Buesch <mbuesch@freenet.de>
 Michel Dänzer <michel@tungstengraphics.com>
@@ -78,6 +80,7 @@ Morten Welinder <terra@gnome.org>
 Morten Welinder <welinder@anemone.rentec.com>
 Morten Welinder <welinder@darter.rentec.com>
 Morten Welinder <welinder@troll.com>
+Mythri P K <mythripk@ti.com>
 Nguyen Anh Quynh <aquynh@gmail.com>
 Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
 Patrick Mochel <mochel@digitalimplant.org>
@@ -98,6 +101,7 @@ S.Çağlar Onur <caglar@pardus.org.tr>
 Simon Kelley <simon@thekelleys.org.uk>
 Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>
 Stephen Hemminger <shemminger@osdl.org>
+Sumit Semwal <sumit.semwal@ti.com>
 Tejun Heo <htejun@gmail.com>
 Thomas Graf <tgraf@suug.ch>
 Tony Luck <tony.luck@intel.com>
diff --git a/Documentation/ABI/testing/sysfs-bus-media b/Documentation/ABI/testing/sysfs-bus-media
new file mode 100644 (file)
index 0000000..7057e57
--- /dev/null
@@ -0,0 +1,6 @@
+What:          /sys/bus/media/devices/.../model
+Date:          January 2011
+Contact:       Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+               linux-media@vger.kernel.org
+Description:   Contains the device model name in UTF-8. The device version is
+               is not be appended to the model name.
index 8b6e00a..2deb069 100644 (file)
@@ -53,7 +53,10 @@ MAN := $(patsubst %.xml, %.9, $(BOOKS))
 mandocs: $(MAN)
 
 build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \
-              cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(objtree)/Documentation/DocBook/media/
+              cp $(srctree)/Documentation/DocBook/dvb/*.png \
+                 $(srctree)/Documentation/DocBook/v4l/*.gif \
+                 $(srctree)/Documentation/DocBook/v4l/*.png \
+                 $(objtree)/Documentation/DocBook/media/
 
 xmldoclinks:
 ifneq ($(objtree),$(srctree))
index be34dcb..5d259c6 100644 (file)
 <!ENTITY func-select "<link linkend='func-select'><function>select()</function></link>">
 <!ENTITY func-write "<link linkend='func-write'><function>write()</function></link>">
 
+<!ENTITY media-func-close "<link linkend='media-func-close'><function>close()</function></link>">
+<!ENTITY media-func-ioctl "<link linkend='media-func-ioctl'><function>ioctl()</function></link>">
+<!ENTITY media-func-open "<link linkend='media-func-open'><function>open()</function></link>">
+
 <!-- Ioctls -->
 <!ENTITY VIDIOC-CROPCAP "<link linkend='vidioc-cropcap'><constant>VIDIOC_CROPCAP</constant></link>">
 <!ENTITY VIDIOC-DBG-G-CHIP-IDENT "<link linkend='vidioc-dbg-g-chip-ident'><constant>VIDIOC_DBG_G_CHIP_IDENT</constant></link>">
 <!ENTITY VIDIOC-S-PRIORITY "<link linkend='vidioc-g-priority'><constant>VIDIOC_S_PRIORITY</constant></link>">
 <!ENTITY VIDIOC-S-STD "<link linkend='vidioc-g-std'><constant>VIDIOC_S_STD</constant></link>">
 <!ENTITY VIDIOC-S-TUNER "<link linkend='vidioc-g-tuner'><constant>VIDIOC_S_TUNER</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-ENUM-FRAME-SIZE "<link linkend='vidioc-subdev-enum-frame-size'><constant>VIDIOC_SUBDEV_ENUM_FRAME_SIZE</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-ENUM-MBUS-CODE "<link linkend='vidioc-subdev-enum-mbus-code'><constant>VIDIOC_SUBDEV_ENUM_MBUS_CODE</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-G-CROP "<link linkend='vidioc-subdev-g-crop'><constant>VIDIOC_SUBDEV_G_CROP</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-G-FMT "<link linkend='vidioc-subdev-g-fmt'><constant>VIDIOC_SUBDEV_G_FMT</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-G-FRAME-INTERVAL "<link linkend='vidioc-subdev-g-frame-interval'><constant>VIDIOC_SUBDEV_G_FRAME_INTERVAL</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-S-CROP "<link linkend='vidioc-subdev-g-crop'><constant>VIDIOC_SUBDEV_S_CROP</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-S-FMT "<link linkend='vidioc-subdev-g-fmt'><constant>VIDIOC_SUBDEV_S_FMT</constant></link>">
+<!ENTITY VIDIOC-SUBDEV-S-FRAME-INTERVAL "<link linkend='vidioc-subdev-g-frame-interval'><constant>VIDIOC_SUBDEV_S_FRAME_INTERVAL</constant></link>">
 <!ENTITY VIDIOC-TRY-ENCODER-CMD "<link linkend='vidioc-encoder-cmd'><constant>VIDIOC_TRY_ENCODER_CMD</constant></link>">
 <!ENTITY VIDIOC-TRY-EXT-CTRLS "<link linkend='vidioc-g-ext-ctrls'><constant>VIDIOC_TRY_EXT_CTRLS</constant></link>">
 <!ENTITY VIDIOC-TRY-FMT "<link linkend='vidioc-g-fmt'><constant>VIDIOC_TRY_FMT</constant></link>">
 <!ENTITY VIDIOC-UNSUBSCRIBE-EVENT "<link linkend='vidioc-subscribe-event'><constant>VIDIOC_UNSUBSCRIBE_EVENT</constant></link>">
 
+<!ENTITY MEDIA-IOC-DEVICE-INFO "<link linkend='media-ioc-device-info'><constant>MEDIA_IOC_DEVICE_INFO</constant></link>">
+<!ENTITY MEDIA-IOC-ENUM-ENTITIES "<link linkend='media-ioc-enum-entities'><constant>MEDIA_IOC_ENUM_ENTITIES</constant></link>">
+<!ENTITY MEDIA-IOC-ENUM-LINKS "<link linkend='media-ioc-enum-links'><constant>MEDIA_IOC_ENUM_LINKS</constant></link>">
+<!ENTITY MEDIA-IOC-SETUP-LINK "<link linkend='media-ioc-setup-link'><constant>MEDIA_IOC_SETUP_LINK</constant></link>">
+
 <!-- Types -->
 <!ENTITY v4l2-std-id "<link linkend='v4l2-std-id'>v4l2_std_id</link>">
 
 <!ENTITY v4l2-field "enum&nbsp;<link linkend='v4l2-field'>v4l2_field</link>">
 <!ENTITY v4l2-frmivaltypes "enum&nbsp;<link linkend='v4l2-frmivaltypes'>v4l2_frmivaltypes</link>">
 <!ENTITY v4l2-frmsizetypes "enum&nbsp;<link linkend='v4l2-frmsizetypes'>v4l2_frmsizetypes</link>">
+<!ENTITY v4l2-mbus-pixelcode "enum&nbsp;<link linkend='v4l2-mbus-pixelcode'>v4l2_mbus_pixelcode</link>">
 <!ENTITY v4l2-memory "enum&nbsp;<link linkend='v4l2-memory'>v4l2_memory</link>">
 <!ENTITY v4l2-mpeg-audio-ac3-bitrate "enum&nbsp;<link linkend='v4l2-mpeg-audio-ac3-bitrate'>v4l2_mpeg_audio_ac3_bitrate</link>">
 <!ENTITY v4l2-mpeg-audio-crc "enum&nbsp;<link linkend='v4l2-mpeg-audio-crc'>v4l2_mpeg_audio_crc</link>">
 <!ENTITY v4l2-mpeg-video-encoding "enum&nbsp;<link linkend='v4l2-mpeg-video-encoding'>v4l2_mpeg_video_encoding</link>">
 <!ENTITY v4l2-power-line-frequency "enum&nbsp;<link linkend='v4l2-power-line-frequency'>v4l2_power_line_frequency</link>">
 <!ENTITY v4l2-priority "enum&nbsp;<link linkend='v4l2-priority'>v4l2_priority</link>">
+<!ENTITY v4l2-subdev-format-whence "enum&nbsp;<link linkend='v4l2-subdev-format-whence'>v4l2_subdev_format_whence</link>">
 <!ENTITY v4l2-tuner-type "enum&nbsp;<link linkend='v4l2-tuner-type'>v4l2_tuner_type</link>">
 <!ENTITY v4l2-preemphasis "enum&nbsp;<link linkend='v4l2-preemphasis'>v4l2_preemphasis</link>">
 
 <!ENTITY v4l2-audioout "struct&nbsp;<link linkend='v4l2-audioout'>v4l2_audioout</link>">
 <!ENTITY v4l2-bt-timings "struct&nbsp;<link linkend='v4l2-bt-timings'>v4l2_bt_timings</link>">
 <!ENTITY v4l2-buffer "struct&nbsp;<link linkend='v4l2-buffer'>v4l2_buffer</link>">
+<!ENTITY v4l2-plane "struct&nbsp;<link linkend='v4l2-plane'>v4l2_plane</link>">
 <!ENTITY v4l2-capability "struct&nbsp;<link linkend='v4l2-capability'>v4l2_capability</link>">
 <!ENTITY v4l2-captureparm "struct&nbsp;<link linkend='v4l2-captureparm'>v4l2_captureparm</link>">
 <!ENTITY v4l2-clip "struct&nbsp;<link linkend='v4l2-clip'>v4l2_clip</link>">
 <!ENTITY v4l2-hw-freq-seek "struct&nbsp;<link linkend='v4l2-hw-freq-seek'>v4l2_hw_freq_seek</link>">
 <!ENTITY v4l2-input "struct&nbsp;<link linkend='v4l2-input'>v4l2_input</link>">
 <!ENTITY v4l2-jpegcompression "struct&nbsp;<link linkend='v4l2-jpegcompression'>v4l2_jpegcompression</link>">
+<!ENTITY v4l2-mbus-framefmt "struct&nbsp;<link linkend='v4l2-mbus-framefmt'>v4l2_mbus_framefmt</link>">
 <!ENTITY v4l2-modulator "struct&nbsp;<link linkend='v4l2-modulator'>v4l2_modulator</link>">
 <!ENTITY v4l2-mpeg-vbi-fmt-ivtv "struct&nbsp;<link linkend='v4l2-mpeg-vbi-fmt-ivtv'>v4l2_mpeg_vbi_fmt_ivtv</link>">
 <!ENTITY v4l2-output "struct&nbsp;<link linkend='v4l2-output'>v4l2_output</link>">
 <!ENTITY v4l2-outputparm "struct&nbsp;<link linkend='v4l2-outputparm'>v4l2_outputparm</link>">
 <!ENTITY v4l2-pix-format "struct&nbsp;<link linkend='v4l2-pix-format'>v4l2_pix_format</link>">
+<!ENTITY v4l2-pix-format-mplane "struct&nbsp;<link linkend='v4l2-pix-format-mplane'>v4l2_pix_format_mplane</link>">
+<!ENTITY v4l2-plane-pix-format "struct&nbsp;<link linkend='v4l2-plane-pix-format'>v4l2_plane_pix_format</link>">
 <!ENTITY v4l2-queryctrl "struct&nbsp;<link linkend='v4l2-queryctrl'>v4l2_queryctrl</link>">
 <!ENTITY v4l2-querymenu "struct&nbsp;<link linkend='v4l2-querymenu'>v4l2_querymenu</link>">
 <!ENTITY v4l2-rect "struct&nbsp;<link linkend='v4l2-rect'>v4l2_rect</link>">
 <!ENTITY v4l2-sliced-vbi-cap "struct&nbsp;<link linkend='v4l2-sliced-vbi-cap'>v4l2_sliced_vbi_cap</link>">
 <!ENTITY v4l2-sliced-vbi-data "struct&nbsp;<link linkend='v4l2-sliced-vbi-data'>v4l2_sliced_vbi_data</link>">
 <!ENTITY v4l2-sliced-vbi-format "struct&nbsp;<link linkend='v4l2-sliced-vbi-format'>v4l2_sliced_vbi_format</link>">
+<!ENTITY v4l2-subdev-frame-interval "struct&nbsp;<link linkend='v4l2-subdev-frame-interval'>v4l2_subdev_frame_interval</link>">
+<!ENTITY v4l2-subdev-frame-interval-enum "struct&nbsp;<link linkend='v4l2-subdev-frame-interval-enum'>v4l2_subdev_frame_interval_enum</link>">
+<!ENTITY v4l2-subdev-frame-size-enum "struct&nbsp;<link linkend='v4l2-subdev-frame-size-enum'>v4l2_subdev_frame_size_enum</link>">
+<!ENTITY v4l2-subdev-crop "struct&nbsp;<link linkend='v4l2-subdev-crop'>v4l2_subdev_crop</link>">
+<!ENTITY v4l2-subdev-format "struct&nbsp;<link linkend='v4l2-subdev-format'>v4l2_subdev_format</link>">
+<!ENTITY v4l2-subdev-mbus-code-enum "struct&nbsp;<link linkend='v4l2-subdev-mbus-code-enum'>v4l2_subdev_mbus_code_enum</link>">
 <!ENTITY v4l2-standard "struct&nbsp;<link linkend='v4l2-standard'>v4l2_standard</link>">
 <!ENTITY v4l2-streamparm "struct&nbsp;<link linkend='v4l2-streamparm'>v4l2_streamparm</link>">
 <!ENTITY v4l2-timecode "struct&nbsp;<link linkend='v4l2-timecode'>v4l2_timecode</link>">
 <!ENTITY v4l2-vbi-format "struct&nbsp;<link linkend='v4l2-vbi-format'>v4l2_vbi_format</link>">
 <!ENTITY v4l2-window "struct&nbsp;<link linkend='v4l2-window'>v4l2_window</link>">
 
+<!ENTITY media-device-info "struct&nbsp;<link linkend='media-device-info'>media_device_info</link>">
+<!ENTITY media-entity-desc "struct&nbsp;<link linkend='media-entity-desc'>media_entity_desc</link>">
+<!ENTITY media-links-enum "struct&nbsp;<link linkend='media-links-enum'>media_links_enum</link>">
+<!ENTITY media-pad-desc "struct&nbsp;<link linkend='media-pad-desc'>media_pad_desc</link>">
+<!ENTITY media-link-desc "struct&nbsp;<link linkend='media-link-desc'>media_link_desc</link>">
+
 <!-- Error Codes -->
 <!ENTITY EACCES "<errorcode>EACCES</errorcode> error code">
 <!ENTITY EAGAIN "<errorcode>EAGAIN</errorcode> error code">
 <!ENTITY ENXIO "<errorcode>ENXIO</errorcode> error code">
 <!ENTITY EMFILE "<errorcode>EMFILE</errorcode> error code">
 <!ENTITY EPERM "<errorcode>EPERM</errorcode> error code">
+<!ENTITY EPIPE "<errorcode>EPIPE</errorcode> error code">
 <!ENTITY ERANGE "<errorcode>ERANGE</errorcode> error code">
 
 <!-- Subsections -->
 <!ENTITY sub-biblio SYSTEM "v4l/biblio.xml">
 <!ENTITY sub-common SYSTEM "v4l/common.xml">
+<!ENTITY sub-planar-apis SYSTEM "v4l/planar-apis.xml">
 <!ENTITY sub-compat SYSTEM "v4l/compat.xml">
 <!ENTITY sub-controls SYSTEM "v4l/controls.xml">
 <!ENTITY sub-dev-capture SYSTEM "v4l/dev-capture.xml">
 <!ENTITY sub-dev-raw-vbi SYSTEM "v4l/dev-raw-vbi.xml">
 <!ENTITY sub-dev-rds SYSTEM "v4l/dev-rds.xml">
 <!ENTITY sub-dev-sliced-vbi SYSTEM "v4l/dev-sliced-vbi.xml">
+<!ENTITY sub-dev-subdev SYSTEM "v4l/dev-subdev.xml">
 <!ENTITY sub-dev-teletext SYSTEM "v4l/dev-teletext.xml">
 <!ENTITY sub-driver SYSTEM "v4l/driver.xml">
 <!ENTITY sub-libv4l SYSTEM "v4l/libv4l.xml">
 <!ENTITY sub-io SYSTEM "v4l/io.xml">
 <!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.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-nv16 SYSTEM "v4l/pixfmt-nv16.xml">
 <!ENTITY sub-packed-rgb SYSTEM "v4l/pixfmt-packed-rgb.xml">
 <!ENTITY sub-packed-yuv SYSTEM "v4l/pixfmt-packed-yuv.xml">
 <!ENTITY sub-yuv410 SYSTEM "v4l/pixfmt-yuv410.xml">
 <!ENTITY sub-yuv411p SYSTEM "v4l/pixfmt-yuv411p.xml">
 <!ENTITY sub-yuv420 SYSTEM "v4l/pixfmt-yuv420.xml">
+<!ENTITY sub-yuv420m SYSTEM "v4l/pixfmt-yuv420m.xml">
 <!ENTITY sub-yuv422p SYSTEM "v4l/pixfmt-yuv422p.xml">
 <!ENTITY sub-yuyv SYSTEM "v4l/pixfmt-yuyv.xml">
 <!ENTITY sub-yvyu SYSTEM "v4l/pixfmt-yvyu.xml">
 <!ENTITY sub-reqbufs SYSTEM "v4l/vidioc-reqbufs.xml">
 <!ENTITY sub-s-hw-freq-seek SYSTEM "v4l/vidioc-s-hw-freq-seek.xml">
 <!ENTITY sub-streamon SYSTEM "v4l/vidioc-streamon.xml">
+<!ENTITY sub-subdev-enum-frame-interval SYSTEM "v4l/vidioc-subdev-enum-frame-interval.xml">
+<!ENTITY sub-subdev-enum-frame-size SYSTEM "v4l/vidioc-subdev-enum-frame-size.xml">
+<!ENTITY sub-subdev-enum-mbus-code SYSTEM "v4l/vidioc-subdev-enum-mbus-code.xml">
+<!ENTITY sub-subdev-formats SYSTEM "v4l/subdev-formats.xml">
+<!ENTITY sub-subdev-g-crop SYSTEM "v4l/vidioc-subdev-g-crop.xml">
+<!ENTITY sub-subdev-g-fmt SYSTEM "v4l/vidioc-subdev-g-fmt.xml">
+<!ENTITY sub-subdev-g-frame-interval SYSTEM "v4l/vidioc-subdev-g-frame-interval.xml">
 <!ENTITY sub-capture-c SYSTEM "v4l/capture.c.xml">
 <!ENTITY sub-keytable-c SYSTEM "v4l/keytable.c.xml">
 <!ENTITY sub-v4l2grab-c SYSTEM "v4l/v4l2grab.c.xml">
 <!ENTITY sub-media-entities SYSTEM "media-entities.tmpl">
 <!ENTITY sub-media-indices SYSTEM "media-indices.tmpl">
 
+<!ENTITY sub-media-controller SYSTEM "v4l/media-controller.xml">
+<!ENTITY sub-media-open SYSTEM "v4l/media-func-open.xml">
+<!ENTITY sub-media-close SYSTEM "v4l/media-func-close.xml">
+<!ENTITY sub-media-ioctl SYSTEM "v4l/media-func-ioctl.xml">
+<!ENTITY sub-media-ioc-device-info SYSTEM "v4l/media-ioc-device-info.xml">
+<!ENTITY sub-media-ioc-enum-entities SYSTEM "v4l/media-ioc-enum-entities.xml">
+<!ENTITY sub-media-ioc-enum-links SYSTEM "v4l/media-ioc-enum-links.xml">
+<!ENTITY sub-media-ioc-setup-link SYSTEM "v4l/media-ioc-setup-link.xml">
+
 <!-- Function Reference -->
 <!ENTITY close SYSTEM "v4l/func-close.xml">
 <!ENTITY ioctl SYSTEM "v4l/func-ioctl.xml">
 <!ENTITY write SYSTEM "v4l/func-write.xml">
 <!ENTITY grey SYSTEM "v4l/pixfmt-grey.xml">
 <!ENTITY nv12 SYSTEM "v4l/pixfmt-nv12.xml">
+<!ENTITY nv12m SYSTEM "v4l/pixfmt-nv12m.xml">
 <!ENTITY nv16 SYSTEM "v4l/pixfmt-nv16.xml">
 <!ENTITY packed-rgb SYSTEM "v4l/pixfmt-packed-rgb.xml">
 <!ENTITY packed-yuv SYSTEM "v4l/pixfmt-packed-yuv.xml">
 <!ENTITY yuv410 SYSTEM "v4l/pixfmt-yuv410.xml">
 <!ENTITY yuv411p SYSTEM "v4l/pixfmt-yuv411p.xml">
 <!ENTITY yuv420 SYSTEM "v4l/pixfmt-yuv420.xml">
+<!ENTITY yuv420m SYSTEM "v4l/pixfmt-yuv420m.xml">
 <!ENTITY yuv422p SYSTEM "v4l/pixfmt-yuv422p.xml">
 <!ENTITY yuyv SYSTEM "v4l/pixfmt-yuyv.xml">
 <!ENTITY yvyu SYSTEM "v4l/pixfmt-yvyu.xml">
index a99088a..88f2cc6 100644 (file)
@@ -106,6 +106,9 @@ Foundation. A copy of the license is included in the chapter entitled
 &sub-remote_controllers;
 </chapter>
 </part>
+<part id="media_common">
+&sub-media-controller;
+</part>
 
 &sub-fdl-appendix;
 
diff --git a/Documentation/DocBook/v4l/bayer.pdf b/Documentation/DocBook/v4l/bayer.pdf
new file mode 100644 (file)
index 0000000..905e60e
Binary files /dev/null and b/Documentation/DocBook/v4l/bayer.pdf differ
diff --git a/Documentation/DocBook/v4l/bayer.png b/Documentation/DocBook/v4l/bayer.png
new file mode 100644 (file)
index 0000000..9b15fb2
Binary files /dev/null and b/Documentation/DocBook/v4l/bayer.png differ
index cea23e1..dbab79c 100644 (file)
@@ -846,6 +846,8 @@ conversion routine or library for integration into applications.</para>
     </section>
   </section>
 
+  &sub-planar-apis;
+
   <section id="crop">
     <title>Image Cropping, Insertion and Scaling</title>
 
index c9ce61d..9f7cd4f 100644 (file)
@@ -1711,8 +1711,8 @@ ioctl would enumerate the available audio inputs. An ioctl to
 determine the current audio input, if more than one combines with the
 current video input, did not exist. So
 <constant>VIDIOC_G_AUDIO</constant> was renamed to
-<constant>VIDIOC_G_AUDIO_OLD</constant>, this ioctl will be removed in
-the future. The &VIDIOC-ENUMAUDIO; ioctl was added to enumerate
+<constant>VIDIOC_G_AUDIO_OLD</constant>, this ioctl was removed on
+Kernel 2.6.39. The &VIDIOC-ENUMAUDIO; ioctl was added to enumerate
 audio inputs, while &VIDIOC-G-AUDIO; now reports the current audio
 input.</para>
          <para>The same changes were made to &VIDIOC-G-AUDOUT; and
@@ -1726,7 +1726,7 @@ must be updated to successfully compile again.</para>
          <para>The &VIDIOC-OVERLAY; ioctl was incorrectly defined with
 write-read parameter. It was changed to write-only, while the write-read
 version was renamed to <constant>VIDIOC_OVERLAY_OLD</constant>. The old
-ioctl will be removed in the future. Until further the "videodev"
+ioctl was removed on Kernel 2.6.39. Until further the "videodev"
 kernel module will automatically translate to the new version, so drivers
 must be recompiled, but not applications.</para>
        </listitem>
@@ -1744,7 +1744,7 @@ surface can be seen.</para>
 defined with write-only parameter, inconsistent with other ioctls
 modifying their argument. They were changed to write-read, while a
 <constant>_OLD</constant> suffix was added to the write-only versions.
-The old ioctls will be removed in the future. Drivers and
+The old ioctls were removed on Kernel 2.6.39. Drivers and
 applications assuming a constant parameter need an update.</para>
        </listitem>
       </orderedlist>
@@ -1815,8 +1815,8 @@ yet to be addressed, for details see <xref
          <para>The &VIDIOC-CROPCAP; ioctl was incorrectly defined
 with read-only parameter. It is now defined as write-read ioctl, while
 the read-only version was renamed to
-<constant>VIDIOC_CROPCAP_OLD</constant>. The old ioctl will be removed
-in the future.</para>
+<constant>VIDIOC_CROPCAP_OLD</constant>. The old ioctl was removed
+on Kernel 2.6.39.</para>
        </listitem>
       </orderedlist>
     </section>
@@ -2353,6 +2353,20 @@ that used it. It was originally scheduled for removal in 2.6.35.
        </listitem>
       </orderedlist>
     </section>
+    <section>
+      <title>V4L2 in Linux 2.6.39</title>
+      <orderedlist>
+        <listitem>
+          <para>The old VIDIOC_*_OLD symbols and V4L1 support were removed.</para>
+        </listitem>
+        <listitem>
+          <para>Multi-planar API added. Does not affect the compatibility of
+          current drivers and applications. See
+          <link linkend="planar-apis">multi-planar API</link>
+          for details.</para>
+        </listitem>
+      </orderedlist>
+    </section>
 
     <section id="other">
       <title>Relation of V4L2 to other Linux multimedia APIs</title>
index 32807e4..2237c66 100644 (file)
@@ -18,7 +18,8 @@ files are used for video output devices.</para>
     <title>Querying Capabilities</title>
 
     <para>Devices supporting the video capture interface set the
-<constant>V4L2_CAP_VIDEO_CAPTURE</constant> flag in the
+<constant>V4L2_CAP_VIDEO_CAPTURE</constant> or
+<constant>V4L2_CAP_VIDEO_CAPTURE_MPLANE</constant> flag in the
 <structfield>capabilities</structfield> field of &v4l2-capability;
 returned by the &VIDIOC-QUERYCAP; ioctl. As secondary device functions
 they may also support the <link linkend="overlay">video overlay</link>
@@ -64,9 +65,11 @@ linkend="crop" />.</para>
 
     <para>To query the current image format applications set the
 <structfield>type</structfield> field of a &v4l2-format; to
-<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant> and call the
+<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant> or
+<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE</constant> and call the
 &VIDIOC-G-FMT; ioctl with a pointer to this structure. Drivers fill
-the &v4l2-pix-format; <structfield>pix</structfield> member of the
+the &v4l2-pix-format; <structfield>pix</structfield> or the
+&v4l2-pix-format-mplane; <structfield>pix_mp</structfield> member of the
 <structfield>fmt</structfield> union.</para>
 
     <para>To request different parameters applications set the
@@ -84,8 +87,8 @@ adjust the parameters and finally return the actual parameters as
 without disabling I/O or possibly time consuming hardware
 preparations.</para>
 
-    <para>The contents of &v4l2-pix-format; are discussed in <xref
-linkend="pixfmt" />. See also the specification of the
+    <para>The contents of &v4l2-pix-format; and &v4l2-pix-format-mplane;
+are discussed in <xref linkend="pixfmt" />. See also the specification of the
 <constant>VIDIOC_G_FMT</constant>, <constant>VIDIOC_S_FMT</constant>
 and <constant>VIDIOC_TRY_FMT</constant> ioctls for details. Video
 capture devices must implement both the
index 63c3c20..919e22c 100644 (file)
@@ -17,7 +17,8 @@ files are used for video capture devices.</para>
     <title>Querying Capabilities</title>
 
     <para>Devices supporting the video output interface set the
-<constant>V4L2_CAP_VIDEO_OUTPUT</constant> flag in the
+<constant>V4L2_CAP_VIDEO_OUTPUT</constant> or
+<constant>V4L2_CAP_VIDEO_OUTPUT_MPLANE</constant> flag in the
 <structfield>capabilities</structfield> field of &v4l2-capability;
 returned by the &VIDIOC-QUERYCAP; ioctl. As secondary device functions
 they may also support the <link linkend="raw-vbi">raw VBI
@@ -60,9 +61,11 @@ linkend="crop" />.</para>
 
     <para>To query the current image format applications set the
 <structfield>type</structfield> field of a &v4l2-format; to
-<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant> and call the
+<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant> or
+<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE</constant> and call the
 &VIDIOC-G-FMT; ioctl with a pointer to this structure. Drivers fill
-the &v4l2-pix-format; <structfield>pix</structfield> member of the
+the &v4l2-pix-format; <structfield>pix</structfield> or the
+&v4l2-pix-format-mplane; <structfield>pix_mp</structfield> member of the
 <structfield>fmt</structfield> union.</para>
 
     <para>To request different parameters applications set the
@@ -80,8 +83,8 @@ adjust the parameters and finally return the actual parameters as
 without disabling I/O or possibly time consuming hardware
 preparations.</para>
 
-    <para>The contents of &v4l2-pix-format; are discussed in <xref
-linkend="pixfmt" />. See also the specification of the
+    <para>The contents of &v4l2-pix-format; and &v4l2-pix-format-mplane;
+are discussed in <xref linkend="pixfmt" />. See also the specification of the
 <constant>VIDIOC_G_FMT</constant>, <constant>VIDIOC_S_FMT</constant>
 and <constant>VIDIOC_TRY_FMT</constant> ioctls for details. Video
 output devices must implement both the
diff --git a/Documentation/DocBook/v4l/dev-subdev.xml b/Documentation/DocBook/v4l/dev-subdev.xml
new file mode 100644 (file)
index 0000000..21caff6
--- /dev/null
@@ -0,0 +1,313 @@
+  <title>Sub-device Interface</title>
+
+  <note>
+    <title>Experimental</title>
+    <para>This is an <link linkend="experimental">experimental</link>
+    interface and may change in the future.</para>
+  </note>
+
+  <para>The complex nature of V4L2 devices, where hardware is often made of
+  several integrated circuits that need to interact with each other in a
+  controlled way, leads to complex V4L2 drivers. The drivers usually reflect
+  the hardware model in software, and model the different hardware components
+  as software blocks called sub-devices.</para>
+
+  <para>V4L2 sub-devices are usually kernel-only objects. If the V4L2 driver
+  implements the media device API, they will automatically inherit from media
+  entities. Applications will be able to enumerate the sub-devices and discover
+  the hardware topology using the media entities, pads and links enumeration
+  API.</para>
+
+  <para>In addition to make sub-devices discoverable, drivers can also choose
+  to make them directly configurable by applications. When both the sub-device
+  driver and the V4L2 device driver support this, sub-devices will feature a
+  character device node on which ioctls can be called to
+  <itemizedlist>
+    <listitem><para>query, read and write sub-devices controls</para></listitem>
+    <listitem><para>subscribe and unsubscribe to events and retrieve them</para></listitem>
+    <listitem><para>negotiate image formats on individual pads</para></listitem>
+  </itemizedlist>
+  </para>
+
+  <para>Sub-device character device nodes, conventionally named
+  <filename>/dev/v4l-subdev*</filename>, use major number 81.</para>
+
+  <section>
+    <title>Controls</title>
+    <para>Most V4L2 controls are implemented by sub-device hardware. Drivers
+    usually merge all controls and expose them through video device nodes.
+    Applications can control all sub-devices through a single interface.</para>
+
+    <para>Complex devices sometimes implement the same control in different
+    pieces of hardware. This situation is common in embedded platforms, where
+    both sensors and image processing hardware implement identical functions,
+    such as contrast adjustment, white balance or faulty pixels correction. As
+    the V4L2 controls API doesn't support several identical controls in a single
+    device, all but one of the identical controls are hidden.</para>
+
+    <para>Applications can access those hidden controls through the sub-device
+    node with the V4L2 control API described in <xref linkend="control" />. The
+    ioctls behave identically as when issued on V4L2 device nodes, with the
+    exception that they deal only with controls implemented in the sub-device.
+    </para>
+
+    <para>Depending on the driver, those controls might also be exposed through
+    one (or several) V4L2 device nodes.</para>
+  </section>
+
+  <section>
+    <title>Events</title>
+    <para>V4L2 sub-devices can notify applications of events as described in
+    <xref linkend="event" />. The API behaves identically as when used on V4L2
+    device nodes, with the exception that it only deals with events generated by
+    the sub-device. Depending on the driver, those events might also be reported
+    on one (or several) V4L2 device nodes.</para>
+  </section>
+
+  <section id="pad-level-formats">
+    <title>Pad-level Formats</title>
+
+    <warning><para>Pad-level formats are only applicable to very complex device that
+    need to expose low-level format configuration to user space. Generic V4L2
+    applications do <emphasis>not</emphasis> need to use the API described in
+    this section.</para></warning>
+
+    <note><para>For the purpose of this section, the term
+    <wordasword>format</wordasword> means the combination of media bus data
+    format, frame width and frame height.</para></note>
+
+    <para>Image formats are typically negotiated on video capture and output
+    devices using the <link linkend="crop">cropping and scaling</link> ioctls.
+    The driver is responsible for configuring every block in the video pipeline
+    according to the requested format at the pipeline input and/or
+    output.</para>
+
+    <para>For complex devices, such as often found in embedded systems,
+    identical image sizes at the output of a pipeline can be achieved using
+    different hardware configurations. One such example is shown on
+    <xref linkend="pipeline-scaling" />, where
+    image scaling can be performed on both the video sensor and the host image
+    processing hardware.</para>
+
+    <figure id="pipeline-scaling">
+      <title>Image Format Negotation on Pipelines</title>
+      <mediaobject>
+       <imageobject>
+         <imagedata fileref="pipeline.pdf" format="PS" />
+       </imageobject>
+       <imageobject>
+         <imagedata fileref="pipeline.png" format="PNG" />
+       </imageobject>
+       <textobject>
+         <phrase>High quality and high speed pipeline configuration</phrase>
+       </textobject>
+      </mediaobject>
+    </figure>
+
+    <para>The sensor scaler is usually of less quality than the host scaler, but
+    scaling on the sensor is required to achieve higher frame rates. Depending
+    on the use case (quality vs. speed), the pipeline must be configured
+    differently. Applications need to configure the formats at every point in
+    the pipeline explicitly.</para>
+
+    <para>Drivers that implement the <link linkend="media-controller-intro">media
+    API</link> can expose pad-level image format configuration to applications.
+    When they do, applications can use the &VIDIOC-SUBDEV-G-FMT; and
+    &VIDIOC-SUBDEV-S-FMT; ioctls. to negotiate formats on a per-pad basis.</para>
+
+    <para>Applications are responsible for configuring coherent parameters on
+    the whole pipeline and making sure that connected pads have compatible
+    formats. The pipeline is checked for formats mismatch at &VIDIOC-STREAMON;
+    time, and an &EPIPE; is then returned if the configuration is
+    invalid.</para>
+
+    <para>Pad-level image format configuration support can be tested by calling
+    the &VIDIOC-SUBDEV-G-FMT; ioctl on pad 0. If the driver returns an &EINVAL;
+    pad-level format configuration is not supported by the sub-device.</para>
+
+    <section>
+      <title>Format Negotiation</title>
+
+      <para>Acceptable formats on pads can (and usually do) depend on a number
+      of external parameters, such as formats on other pads, active links, or
+      even controls. Finding a combination of formats on all pads in a video
+      pipeline, acceptable to both application and driver, can't rely on formats
+      enumeration only. A format negotiation mechanism is required.</para>
+
+      <para>Central to the format negotiation mechanism are the get/set format
+      operations. When called with the <structfield>which</structfield> argument
+      set to <constant>V4L2_SUBDEV_FORMAT_TRY</constant>, the
+      &VIDIOC-SUBDEV-G-FMT; and &VIDIOC-SUBDEV-S-FMT; ioctls operate on a set of
+      formats parameters that are not connected to the hardware configuration.
+      Modifying those 'try' formats leaves the device state untouched (this
+      applies to both the software state stored in the driver and the hardware
+      state stored in the device itself).</para>
+
+      <para>While not kept as part of the device state, try formats are stored
+      in the sub-device file handles. A &VIDIOC-SUBDEV-G-FMT; call will return
+      the last try format set <emphasis>on the same sub-device file
+      handle</emphasis>. Several applications querying the same sub-device at
+      the same time will thus not interact with each other.</para>
+
+      <para>To find out whether a particular format is supported by the device,
+      applications use the &VIDIOC-SUBDEV-S-FMT; ioctl. Drivers verify and, if
+      needed, change the requested <structfield>format</structfield> based on
+      device requirements and return the possibly modified value. Applications
+      can then choose to try a different format or accept the returned value and
+      continue.</para>
+
+      <para>Formats returned by the driver during a negotiation iteration are
+      guaranteed to be supported by the device. In particular, drivers guarantee
+      that a returned format will not be further changed if passed to an
+      &VIDIOC-SUBDEV-S-FMT; call as-is (as long as external parameters, such as
+      formats on other pads or links' configuration are not changed).</para>
+
+      <para>Drivers automatically propagate formats inside sub-devices. When a
+      try or active format is set on a pad, corresponding formats on other pads
+      of the same sub-device can be modified by the driver. Drivers are free to
+      modify formats as required by the device. However, they should comply with
+      the following rules when possible:
+      <itemizedlist>
+        <listitem><para>Formats should be propagated from sink pads to source pads.
+       Modifying a format on a source pad should not modify the format on any
+       sink pad.</para></listitem>
+        <listitem><para>Sub-devices that scale frames using variable scaling factors
+       should reset the scale factors to default values when sink pads formats
+       are modified. If the 1:1 scaling ratio is supported, this means that
+       source pads formats should be reset to the sink pads formats.</para></listitem>
+      </itemizedlist>
+      </para>
+
+      <para>Formats are not propagated across links, as that would involve
+      propagating them from one sub-device file handle to another. Applications
+      must then take care to configure both ends of every link explicitly with
+      compatible formats. Identical formats on the two ends of a link are
+      guaranteed to be compatible. Drivers are free to accept different formats
+      matching device requirements as being compatible.</para>
+
+      <para><xref linkend="sample-pipeline-config" />
+      shows a sample configuration sequence for the pipeline described in
+      <xref linkend="pipeline-scaling" /> (table
+      columns list entity names and pad numbers).</para>
+
+      <table pgwide="0" frame="none" id="sample-pipeline-config">
+       <title>Sample Pipeline Configuration</title>
+       <tgroup cols="3">
+         <colspec colname="what"/>
+         <colspec colname="sensor-0" />
+         <colspec colname="frontend-0" />
+         <colspec colname="frontend-1" />
+         <colspec colname="scaler-0" />
+         <colspec colname="scaler-1" />
+         <thead>
+           <row>
+             <entry></entry>
+             <entry>Sensor/0</entry>
+             <entry>Frontend/0</entry>
+             <entry>Frontend/1</entry>
+             <entry>Scaler/0</entry>
+             <entry>Scaler/1</entry>
+           </row>
+         </thead>
+         <tbody valign="top">
+           <row>
+             <entry>Initial state</entry>
+             <entry>2048x1536</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry>Configure frontend input</entry>
+             <entry>2048x1536</entry>
+             <entry><emphasis>2048x1536</emphasis></entry>
+             <entry><emphasis>2046x1534</emphasis></entry>
+             <entry>-</entry>
+             <entry>-</entry>
+           </row>
+           <row>
+             <entry>Configure scaler input</entry>
+             <entry>2048x1536</entry>
+             <entry>2048x1536</entry>
+             <entry>2046x1534</entry>
+             <entry><emphasis>2046x1534</emphasis></entry>
+             <entry><emphasis>2046x1534</emphasis></entry>
+           </row>
+           <row>
+             <entry>Configure scaler output</entry>
+             <entry>2048x1536</entry>
+             <entry>2048x1536</entry>
+             <entry>2046x1534</entry>
+             <entry>2046x1534</entry>
+             <entry><emphasis>1280x960</emphasis></entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+
+      <para>
+      <orderedlist>
+       <listitem><para>Initial state. The sensor output is set to its native 3MP
+       resolution. Resolutions on the host frontend and scaler input and output
+       pads are undefined.</para></listitem>
+       <listitem><para>The application configures the frontend input pad resolution to
+       2048x1536. The driver propagates the format to the frontend output pad.
+       Note that the propagated output format can be different, as in this case,
+       than the input format, as the hardware might need to crop pixels (for
+       instance when converting a Bayer filter pattern to RGB or YUV).</para></listitem>
+       <listitem><para>The application configures the scaler input pad resolution to
+       2046x1534 to match the frontend output resolution. The driver propagates
+       the format to the scaler output pad.</para></listitem>
+       <listitem><para>The application configures the scaler output pad resolution to
+       1280x960.</para></listitem>
+      </orderedlist>
+      </para>
+
+      <para>When satisfied with the try results, applications can set the active
+      formats by setting the <structfield>which</structfield> argument to
+      <constant>V4L2_SUBDEV_FORMAT_TRY</constant>. Active formats are changed
+      exactly as try formats by drivers. To avoid modifying the hardware state
+      during format negotiation, applications should negotiate try formats first
+      and then modify the active settings using the try formats returned during
+      the last negotiation iteration. This guarantees that the active format
+      will be applied as-is by the driver without being modified.
+      </para>
+    </section>
+
+    <section>
+      <title>Cropping and scaling</title>
+
+      <para>Many sub-devices support cropping frames on their input or output
+      pads (or possible even on both). Cropping is used to select the area of
+      interest in an image, typically on a video sensor or video decoder. It can
+      also be used as part of digital zoom implementations to select the area of
+      the image that will be scaled up.</para>
+
+      <para>Crop settings are defined by a crop rectangle and represented in a
+      &v4l2-rect; by the coordinates of the top left corner and the rectangle
+      size. Both the coordinates and sizes are expressed in pixels.</para>
+
+      <para>The crop rectangle is retrieved and set using the
+      &VIDIOC-SUBDEV-G-CROP; and &VIDIOC-SUBDEV-S-CROP; ioctls. Like for pad
+      formats, drivers store try and active crop rectangles. The format
+      negotiation mechanism applies to crop settings as well.</para>
+
+      <para>On input pads, cropping is applied relatively to the current pad
+      format. The pad format represents the image size as received by the
+      sub-device from the previous block in the pipeline, and the crop rectangle
+      represents the sub-image that will be transmitted further inside the
+      sub-device for processing. The crop rectangle be entirely containted
+      inside the input image size.</para>
+
+      <para>Input crop rectangle are reset to their default value when the input
+      image format is modified. Drivers should use the input image size as the
+      crop rectangle default value, but hardware requirements may prevent this.
+      </para>
+
+      <para>Cropping behaviour on output pads is not defined.</para>
+
+    </section>
+  </section>
+
+  &sub-subdev-formats;
index 2e2fc39..786732b 100644 (file)
@@ -45,7 +45,10 @@ just specify a <constant>NULL</constant> pointer here.</para>
        <listitem>
          <para>Length of the memory area to map. This must be the
 same value as returned by the driver in the &v4l2-buffer;
-<structfield>length</structfield> field.</para>
+<structfield>length</structfield> field for the
+single-planar API, and the same value as returned by the driver
+in the &v4l2-plane; <structfield>length</structfield> field for the
+multi-planar API.</para>
        </listitem>
       </varlistentry>
       <varlistentry>
@@ -106,7 +109,10 @@ flag.</para>
        <listitem>
          <para>Offset of the buffer in device memory. This must be the
 same value as returned by the driver in the &v4l2-buffer;
-<structfield>m</structfield> union <structfield>offset</structfield> field.</para>
+<structfield>m</structfield> union <structfield>offset</structfield> field for
+the single-planar API, and the same value as returned by the driver
+in the &v4l2-plane; <structfield>m</structfield> union
+<structfield>mem_offset</structfield> field for the multi-planar API.</para>
        </listitem>
       </varlistentry>
     </variablelist>
index 502ed49..e2c4190 100644 (file)
@@ -37,7 +37,8 @@
          <para>Length of the mapped buffer. This must be the same
 value as given to <function>mmap()</function> and returned by the
 driver in the &v4l2-buffer; <structfield>length</structfield>
-field.</para>
+field for the single-planar API and in the &v4l2-plane;
+<structfield>length</structfield> field for the multi-planar API.</para>
        </listitem>
       </varlistentry>
     </variablelist>
index d424886..227e7ac 100644 (file)
@@ -121,18 +121,22 @@ mapped.</para>
     <para>Before applications can access the buffers they must map
 them into their address space with the &func-mmap; function. The
 location of the buffers in device memory can be determined with the
-&VIDIOC-QUERYBUF; ioctl. The <structfield>m.offset</structfield> and
-<structfield>length</structfield> returned in a &v4l2-buffer; are
-passed as sixth and second parameter to the
-<function>mmap()</function> function. The offset and length values
-must not be modified. Remember the buffers are allocated in physical
-memory, as opposed to virtual memory which can be swapped out to disk.
-Applications should free the buffers as soon as possible with the
-&func-munmap; function.</para>
+&VIDIOC-QUERYBUF; ioctl. In the single-planar API case, the
+<structfield>m.offset</structfield> and <structfield>length</structfield>
+returned in a &v4l2-buffer; are passed as sixth and second parameter to the
+<function>mmap()</function> function. When using the multi-planar API,
+struct &v4l2-buffer; contains an array of &v4l2-plane; structures, each
+containing its own <structfield>m.offset</structfield> and
+<structfield>length</structfield>. When using the multi-planar API, every
+plane of every buffer has to be mapped separately, so the number of
+calls to &func-mmap; should be equal to number of buffers times number of
+planes in each buffer. The offset and length values must not be modified.
+Remember, the buffers are allocated in physical memory, as opposed to virtual
+memory, which can be swapped out to disk. Applications should free the buffers
+as soon as possible with the &func-munmap; function.</para>
 
     <example>
-      <title>Mapping buffers</title>
-
+      <title>Mapping buffers in the single-planar API</title>
       <programlisting>
 &v4l2-requestbuffers; reqbuf;
 struct {
@@ -141,63 +145,145 @@ struct {
 } *buffers;
 unsigned int i;
 
-memset (&amp;reqbuf, 0, sizeof (reqbuf));
+memset(&amp;reqbuf, 0, sizeof(reqbuf));
 reqbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 reqbuf.memory = V4L2_MEMORY_MMAP;
 reqbuf.count = 20;
 
 if (-1 == ioctl (fd, &VIDIOC-REQBUFS;, &amp;reqbuf)) {
        if (errno == EINVAL)
-               printf ("Video capturing or mmap-streaming is not supported\n");
+               printf("Video capturing or mmap-streaming is not supported\n");
        else
-               perror ("VIDIOC_REQBUFS");
+               perror("VIDIOC_REQBUFS");
 
-       exit (EXIT_FAILURE);
+       exit(EXIT_FAILURE);
 }
 
 /* We want at least five buffers. */
 
 if (reqbuf.count &lt; 5) {
        /* You may need to free the buffers here. */
-       printf ("Not enough buffer memory\n");
-       exit (EXIT_FAILURE);
+       printf("Not enough buffer memory\n");
+       exit(EXIT_FAILURE);
 }
 
-buffers = calloc (reqbuf.count, sizeof (*buffers));
-assert (buffers != NULL);
+buffers = calloc(reqbuf.count, sizeof(*buffers));
+assert(buffers != NULL);
 
 for (i = 0; i &lt; reqbuf.count; i++) {
        &v4l2-buffer; buffer;
 
-       memset (&amp;buffer, 0, sizeof (buffer));
+       memset(&amp;buffer, 0, sizeof(buffer));
        buffer.type = reqbuf.type;
        buffer.memory = V4L2_MEMORY_MMAP;
        buffer.index = i;
 
        if (-1 == ioctl (fd, &VIDIOC-QUERYBUF;, &amp;buffer)) {
-               perror ("VIDIOC_QUERYBUF");
-               exit (EXIT_FAILURE);
+               perror("VIDIOC_QUERYBUF");
+               exit(EXIT_FAILURE);
        }
 
        buffers[i].length = buffer.length; /* remember for munmap() */
 
-       buffers[i].start = mmap (NULL, buffer.length,
-                                PROT_READ | PROT_WRITE, /* recommended */
-                                MAP_SHARED,             /* recommended */
-                                fd, buffer.m.offset);
+       buffers[i].start = mmap(NULL, buffer.length,
+                               PROT_READ | PROT_WRITE, /* recommended */
+                               MAP_SHARED,             /* recommended */
+                               fd, buffer.m.offset);
 
        if (MAP_FAILED == buffers[i].start) {
                /* If you do not exit here you should unmap() and free()
                   the buffers mapped so far. */
-               perror ("mmap");
-               exit (EXIT_FAILURE);
+               perror("mmap");
+               exit(EXIT_FAILURE);
+       }
+}
+
+/* Cleanup. */
+
+for (i = 0; i &lt; reqbuf.count; i++)
+       munmap(buffers[i].start, buffers[i].length);
+      </programlisting>
+    </example>
+
+    <example>
+      <title>Mapping buffers in the multi-planar API</title>
+      <programlisting>
+&v4l2-requestbuffers; reqbuf;
+/* Our current format uses 3 planes per buffer */
+#define FMT_NUM_PLANES = 3;
+
+struct {
+       void *start[FMT_NUM_PLANES];
+       size_t length[FMT_NUM_PLANES];
+} *buffers;
+unsigned int i, j;
+
+memset(&amp;reqbuf, 0, sizeof(reqbuf));
+reqbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+reqbuf.memory = V4L2_MEMORY_MMAP;
+reqbuf.count = 20;
+
+if (ioctl(fd, &VIDIOC-REQBUFS;, &amp;reqbuf) &lt; 0) {
+       if (errno == EINVAL)
+               printf("Video capturing or mmap-streaming is not supported\n");
+       else
+               perror("VIDIOC_REQBUFS");
+
+       exit(EXIT_FAILURE);
+}
+
+/* We want at least five buffers. */
+
+if (reqbuf.count &lt; 5) {
+       /* You may need to free the buffers here. */
+       printf("Not enough buffer memory\n");
+       exit(EXIT_FAILURE);
+}
+
+buffers = calloc(reqbuf.count, sizeof(*buffers));
+assert(buffers != NULL);
+
+for (i = 0; i &lt; reqbuf.count; i++) {
+       &v4l2-buffer; buffer;
+       &v4l2-plane; planes[FMT_NUM_PLANES];
+
+       memset(&amp;buffer, 0, sizeof(buffer));
+       buffer.type = reqbuf.type;
+       buffer.memory = V4L2_MEMORY_MMAP;
+       buffer.index = i;
+       /* length in struct v4l2_buffer in multi-planar API stores the size
+        * of planes array. */
+       buffer.length = FMT_NUM_PLANES;
+       buffer.m.planes = planes;
+
+       if (ioctl(fd, &VIDIOC-QUERYBUF;, &amp;buffer) &lt; 0) {
+               perror("VIDIOC_QUERYBUF");
+               exit(EXIT_FAILURE);
+       }
+
+       /* Every plane has to be mapped separately */
+       for (j = 0; j &lt; FMT_NUM_PLANES; j++) {
+               buffers[i].length[j] = buffer.m.planes[j].length; /* remember for munmap() */
+
+               buffers[i].start[j] = mmap(NULL, buffer.m.planes[j].length,
+                                PROT_READ | PROT_WRITE, /* recommended */
+                                MAP_SHARED,             /* recommended */
+                                fd, buffer.m.planes[j].m.offset);
+
+               if (MAP_FAILED == buffers[i].start[j]) {
+                       /* If you do not exit here you should unmap() and free()
+                          the buffers and planes mapped so far. */
+                       perror("mmap");
+                       exit(EXIT_FAILURE);
+               }
        }
 }
 
 /* Cleanup. */
 
 for (i = 0; i &lt; reqbuf.count; i++)
-       munmap (buffers[i].start, buffers[i].length);
+       for (j = 0; j &lt; FMT_NUM_PLANES; j++)
+               munmap(buffers[i].start[j], buffers[i].length[j]);
       </programlisting>
     </example>
 
@@ -286,13 +372,13 @@ pointer method (not only memory mapping) is supported must be
 determined by calling the &VIDIOC-REQBUFS; ioctl.</para>
 
     <para>This I/O method combines advantages of the read/write and
-memory mapping methods. Buffers are allocated by the application
+memory mapping methods. Buffers (planes) are allocated by the application
 itself, and can reside for example in virtual or shared memory. Only
 pointers to data are exchanged, these pointers and meta-information
-are passed in &v4l2-buffer;. The driver must be switched
-into user pointer I/O mode by calling the &VIDIOC-REQBUFS; with the
-desired buffer type. No buffers are allocated beforehands,
-consequently they are not indexed and cannot be queried like mapped
+are passed in &v4l2-buffer; (or in &v4l2-plane; in the multi-planar API case).
+The driver must be switched into user pointer I/O mode by calling the
+&VIDIOC-REQBUFS; with the desired buffer type. No buffers (planes) are allocated
+beforehand, consequently they are not indexed and cannot be queried like mapped
 buffers with the <constant>VIDIOC_QUERYBUF</constant> ioctl.</para>
 
     <example>
@@ -316,7 +402,7 @@ if (ioctl (fd, &VIDIOC-REQBUFS;, &amp;reqbuf) == -1) {
       </programlisting>
     </example>
 
-    <para>Buffer addresses and sizes are passed on the fly with the
+    <para>Buffer (plane) addresses and sizes are passed on the fly with the
 &VIDIOC-QBUF; ioctl. Although buffers are commonly cycled,
 applications can pass different addresses and sizes at each
 <constant>VIDIOC_QBUF</constant> call. If required by the hardware the
@@ -396,11 +482,18 @@ rest should be evident.</para>
     <title>Buffers</title>
 
     <para>A buffer contains data exchanged by application and
-driver using one of the Streaming I/O methods. Only pointers to
-buffers are exchanged, the data itself is not copied. These pointers,
-together with meta-information like timestamps or field parity, are
-stored in a struct <structname>v4l2_buffer</structname>, argument to
-the &VIDIOC-QUERYBUF;, &VIDIOC-QBUF; and &VIDIOC-DQBUF; ioctl.</para>
+driver using one of the Streaming I/O methods. In the multi-planar API, the
+data is held in planes, while the buffer structure acts as a container
+for the planes. Only pointers to buffers (planes) are exchanged, the data
+itself is not copied. These pointers, together with meta-information like
+timestamps or field parity, are stored in a struct
+<structname>v4l2_buffer</structname>, argument to
+the &VIDIOC-QUERYBUF;, &VIDIOC-QBUF; and &VIDIOC-DQBUF; ioctl.
+In the multi-planar API, some plane-specific members of struct
+<structname>v4l2_buffer</structname>, such as pointers and sizes for each
+plane, are stored in struct <structname>v4l2_plane</structname> instead.
+In that case, struct <structname>v4l2_buffer</structname> contains an array of
+plane structures.</para>
 
       <para>Nominally timestamps refer to the first data byte transmitted.
 In practice however the wide range of hardware covered by the V4L2 API
@@ -551,26 +644,40 @@ in accordance with the selected I/O method.</entry>
            <entry></entry>
            <entry>__u32</entry>
            <entry><structfield>offset</structfield></entry>
-           <entry>When <structfield>memory</structfield> is
-<constant>V4L2_MEMORY_MMAP</constant> this is the offset of the buffer
-from the start of the device memory. The value is returned by the
-driver and apart of serving as parameter to the &func-mmap; function
-not useful for applications. See <xref linkend="mmap" /> for details.</entry>
+           <entry>For the single-planar API and when
+<structfield>memory</structfield> is <constant>V4L2_MEMORY_MMAP</constant> this
+is the offset of the buffer from the start of the device memory. The value is
+returned by the driver and apart of serving as parameter to the &func-mmap;
+function not useful for applications. See <xref linkend="mmap" /> for details
+         </entry>
          </row>
          <row>
            <entry></entry>
            <entry>unsigned long</entry>
            <entry><structfield>userptr</structfield></entry>
-           <entry>When <structfield>memory</structfield> is
-<constant>V4L2_MEMORY_USERPTR</constant> this is a pointer to the
-buffer (casted to unsigned long type) in virtual memory, set by the
-application. See <xref linkend="userp" /> for details.</entry>
+           <entry>For the single-planar API and when
+<structfield>memory</structfield> is <constant>V4L2_MEMORY_USERPTR</constant>
+this is a pointer to the buffer (casted to unsigned long type) in virtual
+memory, set by the application. See <xref linkend="userp" /> for details.
+           </entry>
+      &n