From 3b4672c611ec9e639b9f12dcbdd835e13125c089 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 8 Oct 2012 06:35:17 +0900 Subject: [PATCH] --- yaml --- r: 331555 b: refs/heads/master c: 1b033447bf847ba49c3816c564c9191c97456b36 h: refs/heads/master i: 331553: 8aa222925c9ad2f5fc59de87cfb3ad9ff581bbf1 331551: ac423a44b571983f007dfbf65761385bff66d4da v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/media/Makefile | 2 +- .../Documentation/DocBook/media/dvb/audio.xml | 113 +- trunk/Documentation/DocBook/media/dvb/ca.xml | 353 ++ .../Documentation/DocBook/media/dvb/demux.xml | 230 +- .../DocBook/media/dvb/dvbapi.xml | 4 +- .../DocBook/media/dvb/dvbproperty.xml | 113 +- .../DocBook/media/dvb/frontend.xml | 71 +- .../Documentation/DocBook/media/dvb/intro.xml | 2 +- .../Documentation/DocBook/media/dvb/kdapi.xml | 2 +- trunk/Documentation/DocBook/media/dvb/net.xml | 127 + .../Documentation/DocBook/media/dvb/video.xml | 333 +- .../DocBook/media/v4l/biblio.xml | 52 +- .../DocBook/media/v4l/common.xml | 30 +- .../DocBook/media/v4l/compat.xml | 41 +- .../DocBook/media/v4l/controls.xml | 614 ++- .../DocBook/media/v4l/dev-osd.xml | 7 - .../DocBook/media/v4l/dev-rds.xml | 2 +- .../DocBook/media/v4l/dev-subdev.xml | 20 +- .../DocBook/media/v4l/gen-errors.xml | 19 +- trunk/Documentation/DocBook/media/v4l/io.xml | 21 +- .../DocBook/media/v4l/pixfmt-srggb10dpcm8.xml | 3 +- .../DocBook/media/v4l/pixfmt-yvu420m.xml | 154 + .../DocBook/media/v4l/pixfmt.xml | 1 + .../DocBook/media/v4l/selection-api.xml | 22 +- .../Documentation/DocBook/media/v4l/v4l2.xml | 15 +- .../DocBook/media/v4l/vidioc-cropcap.xml | 12 +- .../DocBook/media/v4l/vidioc-decoder-cmd.xml | 7 - .../DocBook/media/v4l/vidioc-encoder-cmd.xml | 7 - .../media/v4l/vidioc-enum-dv-presets.xml | 6 + .../media/v4l/vidioc-enum-dv-timings.xml | 6 + .../DocBook/media/v4l/vidioc-enum-fmt.xml | 9 +- .../media/v4l/vidioc-enum-framesizes.xml | 7 - .../DocBook/media/v4l/vidioc-enuminput.xml | 2 +- .../DocBook/media/v4l/vidioc-enumoutput.xml | 2 +- .../DocBook/media/v4l/vidioc-enumstd.xml | 6 + .../DocBook/media/v4l/vidioc-g-crop.xml | 6 +- .../DocBook/media/v4l/vidioc-g-dv-preset.xml | 9 +- .../DocBook/media/v4l/vidioc-g-dv-timings.xml | 13 +- .../DocBook/media/v4l/vidioc-g-enc-index.xml | 7 - .../DocBook/media/v4l/vidioc-g-fmt.xml | 13 +- .../DocBook/media/v4l/vidioc-g-parm.xml | 4 +- .../DocBook/media/v4l/vidioc-g-selection.xml | 9 +- .../DocBook/media/v4l/vidioc-g-std.xml | 10 +- .../DocBook/media/v4l/vidioc-g-tuner.xml | 6 + .../DocBook/media/v4l/vidioc-qbuf.xml | 2 + .../media/v4l/vidioc-query-dv-preset.xml | 9 + .../media/v4l/vidioc-query-dv-timings.xml | 6 + .../DocBook/media/v4l/vidioc-querycap.xml | 10 +- .../DocBook/media/v4l/vidioc-querystd.xml | 8 + .../DocBook/media/v4l/vidioc-reqbufs.xml | 5 +- .../media/v4l/vidioc-s-hw-freq-seek.xml | 10 + .../DocBook/media/v4l/vidioc-streamon.xml | 7 +- .../media/v4l/vidioc-subdev-g-edid.xml | 152 + .../media/v4l/vidioc-subdev-g-selection.xml | 8 +- trunk/Documentation/DocBook/media_api.tmpl | 9 +- .../devicetree/bindings/arm/arm-boards | 12 + .../bindings/arm/versatile-fpga-irq.txt | 31 + .../devicetree/bindings/arm/xen.txt | 25 + .../devicetree/bindings/crypto/mv_cesa.txt | 20 + .../devicetree/bindings/gpio/gpio-fan.txt | 25 + .../devicetree/bindings/gpio/gpio-mvebu.txt | 53 + .../pinctrl/marvell,armada-370-pinctrl.txt | 95 + .../pinctrl/marvell,armada-xp-pinctrl.txt | 100 + .../bindings/pinctrl/marvell,dove-pinctrl.txt | 72 + .../pinctrl/marvell,kirkwood-pinctrl.txt | 279 ++ .../pinctrl/marvell,mvebu-pinctrl.txt | 46 + trunk/Documentation/dvb/README.dvb-usb | 2 +- trunk/Documentation/dvb/get_dvb_firmware | 2 +- trunk/Documentation/ioctl/ioctl-number.txt | 5 - .../power/power_supply_class.txt | 7 + trunk/Documentation/ramoops.txt | 4 +- .../video4linux/CARDLIST.cx23885 | 1 + trunk/Documentation/video4linux/CQcam.txt | 2 +- .../video4linux/README.davinci-vpbe | 20 +- trunk/Documentation/video4linux/fimc.txt | 16 +- trunk/Documentation/video4linux/omap3isp.txt | 2 +- .../video4linux/v4l2-controls.txt | 6 +- .../video4linux/v4l2-framework.txt | 12 +- trunk/Documentation/video4linux/videobuf | 2 +- trunk/MAINTAINERS | 423 +- trunk/arch/arm/Kconfig | 62 +- trunk/arch/arm/Makefile | 10 +- trunk/arch/arm/boot/compressed/decompress.c | 3 + trunk/arch/arm/boot/dts/Makefile | 9 +- trunk/arch/arm/boot/dts/armada-370-xp.dtsi | 5 + trunk/arch/arm/boot/dts/armada-370.dtsi | 44 + trunk/arch/arm/boot/dts/armada-xp-db.dts | 4 +- .../arch/arm/boot/dts/armada-xp-mv78230.dtsi | 57 + .../arch/arm/boot/dts/armada-xp-mv78260.dtsi | 70 + .../arch/arm/boot/dts/armada-xp-mv78460.dtsi | 70 + trunk/arch/arm/boot/dts/dove-cm-a510.dts | 38 + trunk/arch/arm/boot/dts/dove-cubox.dts | 42 + trunk/arch/arm/boot/dts/dove-dove-db.dts | 38 + trunk/arch/arm/boot/dts/dove.dtsi | 143 + trunk/arch/arm/boot/dts/integrator.dtsi | 76 + trunk/arch/arm/boot/dts/integratorap.dts | 68 + trunk/arch/arm/boot/dts/integratorcp.dts | 110 + trunk/arch/arm/boot/dts/kirkwood-dnskw.dtsi | 10 + trunk/arch/arm/boot/dts/kirkwood-dockstar.dts | 57 + trunk/arch/arm/boot/dts/kirkwood-iconnect.dts | 50 +- .../arm/boot/dts/kirkwood-iomega_ix2_200.dts | 105 + .../arm/boot/dts/kirkwood-km_kirkwood.dts | 29 + trunk/arch/arm/boot/dts/kirkwood.dtsi | 12 +- trunk/arch/arm/boot/dts/xenvm-4.2.dts | 68 + trunk/arch/arm/configs/imx_v6_v7_defconfig | 4 +- trunk/arch/arm/configs/kirkwood_defconfig | 38 +- trunk/arch/arm/configs/lpc32xx_defconfig | 7 +- trunk/arch/arm/configs/marzen_defconfig | 15 +- trunk/arch/arm/configs/mvebu_defconfig | 2 + trunk/arch/arm/configs/mxs_defconfig | 36 +- trunk/arch/arm/configs/s3c6400_defconfig | 3 + trunk/arch/arm/configs/tegra_defconfig | 51 +- trunk/arch/arm/include/asm/Kbuild | 17 + trunk/arch/arm/include/asm/arch_timer.h | 8 +- trunk/arch/arm/include/asm/current.h | 15 - trunk/arch/arm/include/asm/delay.h | 9 + trunk/arch/arm/include/asm/exec.h | 6 - trunk/arch/arm/include/asm/glue-cache.h | 16 +- trunk/arch/arm/include/asm/hardirq.h | 2 +- .../arm/include/asm/hardware/linkup-l1110.h | 48 - trunk/arch/arm/include/asm/hypervisor.h | 6 + trunk/arch/arm/include/asm/io.h | 67 +- trunk/arch/arm/include/asm/ipcbuf.h | 1 - trunk/arch/arm/include/asm/msgbuf.h | 31 - trunk/arch/arm/include/asm/mutex.h | 9 +- trunk/arch/arm/include/asm/opcodes-virt.h | 29 + trunk/arch/arm/include/asm/opcodes.h | 181 +- trunk/arch/arm/include/asm/param.h | 31 - trunk/arch/arm/include/asm/parport.h | 18 - trunk/arch/arm/include/asm/segment.h | 11 - trunk/arch/arm/include/asm/sembuf.h | 25 - trunk/arch/arm/include/asm/serial.h | 19 - trunk/arch/arm/include/asm/shmbuf.h | 42 - trunk/arch/arm/include/asm/socket.h | 72 - trunk/arch/arm/include/asm/sockios.h | 13 - trunk/arch/arm/include/asm/sync_bitops.h | 27 + trunk/arch/arm/include/asm/syscall.h | 5 + trunk/arch/arm/include/asm/termbits.h | 198 - trunk/arch/arm/include/asm/termios.h | 92 - trunk/arch/arm/include/asm/thread_info.h | 6 +- trunk/arch/arm/include/asm/timex.h | 6 - trunk/arch/arm/include/asm/types.h | 16 - trunk/arch/arm/include/asm/unaligned.h | 19 - trunk/arch/arm/include/asm/unistd.h | 8 + trunk/arch/arm/include/asm/xen/events.h | 18 + trunk/arch/arm/include/asm/xen/hypercall.h | 69 + trunk/arch/arm/include/asm/xen/hypervisor.h | 19 + trunk/arch/arm/include/asm/xen/interface.h | 73 + trunk/arch/arm/include/asm/xen/page.h | 82 + trunk/arch/arm/kernel/Makefile | 5 +- trunk/arch/arm/kernel/arch_timer.c | 383 +- trunk/arch/arm/kernel/asm-offsets.c | 2 + trunk/arch/arm/kernel/atags.h | 14 + .../arm/kernel/{compat.c => atags_compat.c} | 4 +- trunk/arch/arm/kernel/atags_parse.c | 238 + .../arch/arm/kernel/{atags.c => atags_proc.c} | 0 trunk/arch/arm/kernel/compat.h | 11 - trunk/arch/arm/kernel/entry-common.S | 9 + trunk/arch/arm/kernel/machine_kexec.c | 29 +- trunk/arch/arm/kernel/ptrace.c | 19 +- trunk/arch/arm/kernel/sched_clock.c | 8 + trunk/arch/arm/kernel/setup.c | 236 +- trunk/arch/arm/kernel/smp.c | 13 +- trunk/arch/arm/lib/delay.c | 35 +- trunk/arch/arm/mach-dove/Kconfig | 7 + trunk/arch/arm/mach-dove/Makefile | 4 +- trunk/arch/arm/mach-dove/common.c | 157 +- trunk/arch/arm/mach-dove/common.h | 4 + .../arm/mach-dove/include/mach/bridge-regs.h | 16 +- trunk/arch/arm/mach-dove/include/mach/dove.h | 126 +- trunk/arch/arm/mach-dove/include/mach/pm.h | 54 +- trunk/arch/arm/mach-dove/irq.c | 10 +- trunk/arch/arm/mach-dove/pcie.c | 6 +- trunk/arch/arm/mach-exynos/platsmp.c | 2 +- trunk/arch/arm/mach-imx/clk-imx27.c | 4 +- trunk/arch/arm/mach-imx/devices-imx27.h | 4 + .../arm/mach-imx/mach-imx27_visstrim_m10.c | 49 +- trunk/arch/arm/mach-integrator/common.h | 3 + trunk/arch/arm/mach-integrator/core.c | 17 +- .../arch/arm/mach-integrator/integrator_ap.c | 276 +- .../arch/arm/mach-integrator/integrator_cp.c | 325 +- trunk/arch/arm/mach-kirkwood/Kconfig | 21 + trunk/arch/arm/mach-kirkwood/Makefile | 3 + trunk/arch/arm/mach-kirkwood/addr-map.c | 3 +- trunk/arch/arm/mach-kirkwood/board-dnskw.c | 35 - trunk/arch/arm/mach-kirkwood/board-dockstar.c | 61 + trunk/arch/arm/mach-kirkwood/board-dt.c | 14 +- trunk/arch/arm/mach-kirkwood/board-iconnect.c | 48 - .../arm/mach-kirkwood/board-iomega_ix2_200.c | 57 + .../arm/mach-kirkwood/board-km_kirkwood.c | 57 + trunk/arch/arm/mach-kirkwood/common.c | 8 +- trunk/arch/arm/mach-kirkwood/common.h | 18 + .../mach-kirkwood/include/mach/bridge-regs.h | 20 +- .../arm/mach-kirkwood/include/mach/kirkwood.h | 112 +- trunk/arch/arm/mach-kirkwood/irq.c | 9 +- trunk/arch/arm/mach-kirkwood/pcie.c | 12 +- trunk/arch/arm/mach-kirkwood/ts41x-setup.c | 3 +- trunk/arch/arm/mach-mv78xx0/addr-map.c | 6 +- trunk/arch/arm/mach-mv78xx0/common.c | 4 +- .../mach-mv78xx0/include/mach/bridge-regs.h | 12 +- .../arm/mach-mv78xx0/include/mach/mv78xx0.h | 86 +- trunk/arch/arm/mach-mv78xx0/irq.c | 9 +- trunk/arch/arm/mach-mv78xx0/pcie.c | 12 +- trunk/arch/arm/mach-mvebu/Kconfig | 20 +- trunk/arch/arm/mach-mvebu/Makefile | 5 +- trunk/arch/arm/mach-mvebu/addr-map.c | 134 + trunk/arch/arm/mach-mvebu/armada-370-xp.c | 2 +- trunk/arch/arm/mach-mvebu/armada-370-xp.h | 2 +- trunk/arch/arm/mach-mvebu/include/mach/gpio.h | 1 + trunk/arch/arm/mach-omap1/devices.c | 28 + trunk/arch/arm/mach-omap1/timer.c | 2 +- trunk/arch/arm/mach-omap2/Makefile | 1 + trunk/arch/arm/mach-omap2/board-apollon.c | 4 +- trunk/arch/arm/mach-omap2/board-h4.c | 6 +- trunk/arch/arm/mach-omap2/board-omap4panda.c | 2 +- .../arm/mach-omap2/board-rx51-peripherals.c | 30 + trunk/arch/arm/mach-omap2/clkt2xxx_apll.c | 2 +- .../arm/mach-omap2/clkt2xxx_virt_prcm_set.c | 10 +- trunk/arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 20 +- trunk/arch/arm/mach-omap2/clkt_clksel.c | 86 +- trunk/arch/arm/mach-omap2/clkt_dpll.c | 26 +- trunk/arch/arm/mach-omap2/clock.c | 9 +- trunk/arch/arm/mach-omap2/clock2420_data.c | 24 +- trunk/arch/arm/mach-omap2/clock2430_data.c | 23 + trunk/arch/arm/mach-omap2/clock33xx_data.c | 1 + trunk/arch/arm/mach-omap2/clock3xxx.c | 8 +- trunk/arch/arm/mach-omap2/clock3xxx_data.c | 37 +- trunk/arch/arm/mach-omap2/clock44xx_data.c | 21 + trunk/arch/arm/mach-omap2/clockdomain.c | 17 + trunk/arch/arm/mach-omap2/clockdomain.h | 20 +- .../arm/mach-omap2/clockdomain2xxx_3xxx.c | 49 +- trunk/arch/arm/mach-omap2/clockdomain44xx.c | 11 + .../arm/mach-omap2/clockdomains3xxx_data.c | 7 +- .../arm/mach-omap2/clockdomains44xx_data.c | 3 +- trunk/arch/arm/mach-omap2/cm-regbits-33xx.h | 158 +- trunk/arch/arm/mach-omap2/cm-regbits-34xx.h | 2 + trunk/arch/arm/mach-omap2/cm-regbits-44xx.h | 411 +- trunk/arch/arm/mach-omap2/cm2xxx_3xxx.c | 2 +- trunk/arch/arm/mach-omap2/cm2xxx_3xxx.h | 1 + trunk/arch/arm/mach-omap2/control.h | 1 + trunk/arch/arm/mach-omap2/devices.c | 39 +- trunk/arch/arm/mach-omap2/display.c | 4 +- trunk/arch/arm/mach-omap2/dpll3xxx.c | 48 +- trunk/arch/arm/mach-omap2/gpmc.c | 194 +- trunk/arch/arm/mach-omap2/omap_hwmod.c | 138 +- .../arm/mach-omap2/omap_hwmod_2420_data.c | 19 + .../arm/mach-omap2/omap_hwmod_2430_data.c | 19 + .../omap_hwmod_2xxx_interconnect_data.c | 17 + .../mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 110 +- .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 280 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 243 +- .../arm/mach-omap2/omap_hwmod_common_data.h | 6 +- trunk/arch/arm/mach-omap2/pm.c | 5 +- trunk/arch/arm/mach-omap2/pmu.c | 95 + trunk/arch/arm/mach-omap2/powerdomain44xx.c | 61 +- trunk/arch/arm/mach-omap2/prcm-common.h | 2 + trunk/arch/arm/mach-orion5x/addr-map.c | 3 +- trunk/arch/arm/mach-orion5x/common.c | 4 +- trunk/arch/arm/mach-orion5x/dns323-setup.c | 2 +- .../mach-orion5x/include/mach/bridge-regs.h | 20 +- .../arm/mach-orion5x/include/mach/orion5x.h | 56 +- trunk/arch/arm/mach-orion5x/irq.c | 5 +- trunk/arch/arm/mach-orion5x/pci.c | 6 +- .../arm/mach-sa1100/include/mach/SA-1111.h | 5 - .../arch/arm/mach-sa1100/include/mach/lart.h | 13 - trunk/arch/arm/mach-shmobile/smp-emev2.c | 2 +- trunk/arch/arm/mach-tegra/include/mach/smmu.h | 63 - trunk/arch/arm/mach-vexpress/v2m.c | 1 + trunk/arch/arm/mm/alignment.c | 6 +- trunk/arch/arm/mm/cache-l2x0.c | 8 +- trunk/arch/arm/mm/cache-v7.S | 3 + trunk/arch/arm/mm/init.c | 2 +- trunk/arch/arm/mm/ioremap.c | 1 + trunk/arch/arm/plat-mxc/devices/Kconfig | 6 +- trunk/arch/arm/plat-mxc/devices/Makefile | 1 + .../plat-mxc/devices/platform-imx27-coda.c | 37 + .../plat-mxc/include/mach/devices-common.h | 8 + trunk/arch/arm/plat-omap/clock.c | 27 - trunk/arch/arm/plat-omap/include/plat/clock.h | 5 + .../arch/arm/plat-omap/include/plat/dmtimer.h | 1 + trunk/arch/arm/plat-omap/include/plat/iommu.h | 15 + .../arm/plat-omap/include/plat/omap_device.h | 4 + .../arm/plat-omap/include/plat/omap_hwmod.h | 26 +- trunk/arch/arm/plat-omap/omap_device.c | 59 +- trunk/arch/arm/plat-orion/Makefile | 10 +- trunk/arch/arm/plat-orion/addr-map.c | 11 +- trunk/arch/arm/plat-orion/common.c | 12 +- .../arm/plat-orion/include/plat/addr-map.h | 4 +- .../arch/arm/plat-orion/include/plat/common.h | 8 +- trunk/arch/arm/plat-orion/include/plat/mpp.h | 2 +- trunk/arch/arm/plat-orion/include/plat/time.h | 4 +- trunk/arch/arm/plat-orion/mpp.c | 6 +- trunk/arch/arm/plat-orion/time.c | 8 +- trunk/arch/arm/plat-versatile/fpga-irq.c | 72 +- .../plat-versatile/include/plat/fpga-irq.h | 2 + trunk/arch/arm/xen/Makefile | 1 + trunk/arch/arm/xen/enlighten.c | 168 + trunk/arch/arm/xen/grant-table.c | 53 + trunk/arch/arm/xen/hypercall.S | 106 + trunk/arch/arm64/include/asm/hwcap.h | 4 +- trunk/arch/arm64/include/asm/stat.h | 4 +- trunk/arch/arm64/include/asm/unistd.h | 8 +- trunk/arch/arm64/include/asm/unistd32.h | 4 - trunk/arch/c6x/Makefile | 2 + trunk/arch/c6x/include/asm/Kbuild | 1 + trunk/arch/c6x/include/asm/signal.h | 17 - trunk/arch/c6x/include/asm/unistd.h | 4 - trunk/arch/hexagon/include/asm/unistd.h | 5 - trunk/arch/ia64/include/asm/xen/interface.h | 1 + trunk/arch/m68k/include/asm/cacheflush_no.h | 19 +- trunk/arch/m68k/include/asm/m5206sim.h | 98 +- trunk/arch/m68k/include/asm/m523xsim.h | 24 +- trunk/arch/m68k/include/asm/m5249sim.h | 98 +- trunk/arch/m68k/include/asm/m525xsim.h | 70 +- trunk/arch/m68k/include/asm/m5272sim.h | 99 +- trunk/arch/m68k/include/asm/m527xsim.h | 84 +- trunk/arch/m68k/include/asm/m528xsim.h | 51 +- trunk/arch/m68k/include/asm/m5307sim.h | 136 +- trunk/arch/m68k/include/asm/m532xsim.h | 1189 +---- trunk/arch/m68k/include/asm/m5407sim.h | 110 +- trunk/arch/m68k/include/asm/m54xxgpt.h | 40 +- trunk/arch/m68k/include/asm/m54xxsim.h | 27 +- trunk/arch/m68k/include/asm/mcfslt.h | 7 - trunk/arch/m68k/include/asm/nettel.h | 9 +- trunk/arch/m68k/platform/68VZ328/Makefile | 8 +- trunk/arch/m68k/platform/coldfire/device.c | 4 +- trunk/arch/m68k/platform/coldfire/head.S | 2 +- trunk/arch/m68k/platform/coldfire/intc-5249.c | 10 +- trunk/arch/m68k/platform/coldfire/intc-5272.c | 20 +- trunk/arch/m68k/platform/coldfire/intc.c | 28 +- trunk/arch/m68k/platform/coldfire/m523x.c | 8 +- trunk/arch/m68k/platform/coldfire/m5249.c | 10 +- trunk/arch/m68k/platform/coldfire/m525x.c | 4 +- trunk/arch/m68k/platform/coldfire/m5272.c | 19 +- trunk/arch/m68k/platform/coldfire/m527x.c | 24 +- trunk/arch/m68k/platform/coldfire/m528x.c | 6 +- trunk/arch/m68k/platform/coldfire/m532x.c | 221 +- trunk/arch/m68k/platform/coldfire/m54xx.c | 16 +- trunk/arch/m68k/platform/coldfire/nettel.c | 4 +- trunk/arch/m68k/platform/coldfire/pci.c | 4 +- trunk/arch/m68k/platform/coldfire/reset.c | 2 +- trunk/arch/m68k/platform/coldfire/sltimers.c | 4 +- trunk/arch/m68k/platform/coldfire/timers.c | 4 +- trunk/arch/microblaze/Kconfig | 7 +- trunk/arch/microblaze/include/asm/clinkage.h | 1 - trunk/arch/microblaze/include/asm/io.h | 94 + trunk/arch/microblaze/include/asm/page.h | 9 +- trunk/arch/microblaze/include/asm/pci.h | 2 + trunk/arch/microblaze/include/asm/pgtable.h | 6 - trunk/arch/microblaze/kernel/head.S | 14 +- .../microblaze/kernel/hw_exception_handler.S | 61 +- trunk/arch/microblaze/kernel/reset.c | 21 +- trunk/arch/microblaze/kernel/setup.c | 15 +- trunk/arch/microblaze/kernel/signal.c | 8 - trunk/arch/microblaze/kernel/timer.c | 24 +- trunk/arch/openrisc/include/asm/unistd.h | 5 - trunk/arch/s390/Kconfig | 1 - trunk/arch/score/include/asm/unistd.h | 5 - trunk/arch/tile/include/asm/unistd.h | 5 - trunk/arch/unicore32/include/asm/unistd.h | 4 - trunk/arch/x86/include/asm/xen/interface.h | 1 + trunk/arch/x86/lguest/Kconfig | 1 - trunk/arch/x86/xen/enlighten.c | 1 + trunk/arch/x86/xen/irq.c | 1 + trunk/arch/x86/xen/xen-ops.h | 1 - trunk/drivers/block/virtio_blk.c | 306 +- trunk/drivers/block/xen-blkback/blkback.c | 1 + trunk/drivers/char/hw_random/omap-rng.c | 121 +- trunk/drivers/char/virtio_console.c | 198 +- trunk/drivers/crypto/mv_cesa.c | 17 +- trunk/drivers/gpio/Kconfig | 6 + trunk/drivers/gpio/Makefile | 1 + trunk/drivers/gpio/gpio-bt8xx.c | 2 +- trunk/drivers/gpio/gpio-mvebu.c | 679 +++ trunk/drivers/hwmon/gpio-fan.c | 120 + trunk/drivers/infiniband/core/cma.c | 6 +- trunk/drivers/infiniband/hw/nes/nes.c | 5 - trunk/drivers/infiniband/hw/nes/nes.h | 3 +- trunk/drivers/infiniband/hw/nes/nes_verbs.c | 16 +- trunk/drivers/infiniband/ulp/ipoib/ipoib.h | 4 +- trunk/drivers/infiniband/ulp/ipoib/ipoib_cm.c | 31 - .../drivers/infiniband/ulp/ipoib/ipoib_main.c | 31 + .../drivers/infiniband/ulp/iser/iscsi_iser.h | 17 +- .../drivers/infiniband/ulp/iser/iser_verbs.c | 130 +- trunk/drivers/iommu/Kconfig | 2 +- trunk/drivers/iommu/amd_iommu.c | 514 +- trunk/drivers/iommu/amd_iommu_init.c | 253 +- trunk/drivers/iommu/amd_iommu_proto.h | 8 + trunk/drivers/iommu/amd_iommu_types.h | 59 +- trunk/drivers/iommu/exynos-iommu.c | 3 +- trunk/drivers/iommu/intel-iommu.c | 4 +- trunk/drivers/iommu/irq_remapping.c | 5 + trunk/drivers/iommu/irq_remapping.h | 6 + trunk/drivers/iommu/tegra-smmu.c | 261 +- trunk/drivers/lguest/lguest_device.c | 5 +- trunk/drivers/media/Kconfig | 53 +- trunk/drivers/media/Makefile | 23 +- trunk/drivers/media/common/Kconfig | 12 +- trunk/drivers/media/common/Makefile | 7 +- trunk/drivers/media/common/b2c2/Kconfig | 28 + trunk/drivers/media/common/b2c2/Makefile | 8 + .../{dvb => common}/b2c2/flexcop-common.h | 0 .../{dvb => common}/b2c2/flexcop-eeprom.c | 0 .../{dvb => common}/b2c2/flexcop-fe-tuner.c | 0 .../{dvb => common}/b2c2/flexcop-hw-filter.c | 0 .../media/{dvb => common}/b2c2/flexcop-i2c.c | 0 .../media/{dvb => common}/b2c2/flexcop-misc.c | 0 .../media/{dvb => common}/b2c2/flexcop-reg.h | 0 .../media/{dvb => common}/b2c2/flexcop-sram.c | 0 .../media/{dvb => common}/b2c2/flexcop.c | 1 + .../media/{dvb => common}/b2c2/flexcop.h | 0 .../b2c2/flexcop_ibi_value_be.h | 0 .../b2c2/flexcop_ibi_value_le.h | 0 trunk/drivers/media/common/saa7146/Kconfig | 9 + trunk/drivers/media/common/saa7146/Makefile | 5 + .../media/common/{ => saa7146}/saa7146_core.c | 8 - .../media/common/{ => saa7146}/saa7146_fops.c | 55 +- .../media/common/{ => saa7146}/saa7146_hlp.c | 0 .../media/common/{ => saa7146}/saa7146_i2c.c | 0 .../media/common/{ => saa7146}/saa7146_vbi.c | 0 .../common/{ => saa7146}/saa7146_video.c | 2 +- trunk/drivers/media/common/siano/Kconfig | 17 + .../media/{dvb => common}/siano/Makefile | 6 +- .../media/{dvb => common}/siano/sms-cards.c | 0 .../media/{dvb => common}/siano/sms-cards.h | 0 .../media/{dvb => common}/siano/smscoreapi.c | 0 .../media/{dvb => common}/siano/smscoreapi.h | 0 .../media/{dvb => common}/siano/smsdvb.c | 0 .../media/{dvb => common}/siano/smsendian.c | 0 .../media/{dvb => common}/siano/smsendian.h | 0 .../media/{dvb => common}/siano/smsir.c | 0 .../media/{dvb => common}/siano/smsir.h | 0 trunk/drivers/media/dvb-core/Kconfig | 29 + .../drivers/media/{dvb => }/dvb-core/Makefile | 0 .../drivers/media/{dvb => }/dvb-core/demux.h | 0 .../drivers/media/{dvb => }/dvb-core/dmxdev.c | 4 +- .../drivers/media/{dvb => }/dvb-core/dmxdev.h | 0 .../{dvb/dvb-usb => dvb-core}/dvb-usb-ids.h | 3 + .../media/{dvb => }/dvb-core/dvb_ca_en50221.c | 0 .../media/{dvb => }/dvb-core/dvb_ca_en50221.h | 0 .../media/{dvb => }/dvb-core/dvb_demux.c | 29 +- .../media/{dvb => }/dvb-core/dvb_demux.h | 0 .../media/{dvb => }/dvb-core/dvb_filter.c | 0 .../media/{dvb => }/dvb-core/dvb_filter.h | 0 .../media/{dvb => }/dvb-core/dvb_frontend.c | 368 +- .../media/{dvb => }/dvb-core/dvb_frontend.h | 12 +- .../media/{dvb => }/dvb-core/dvb_math.c | 0 .../media/{dvb => }/dvb-core/dvb_math.h | 0 .../media/{dvb => }/dvb-core/dvb_net.c | 0 .../media/{dvb => }/dvb-core/dvb_net.h | 0 .../media/{dvb => }/dvb-core/dvb_ringbuffer.c | 0 .../media/{dvb => }/dvb-core/dvb_ringbuffer.h | 0 .../drivers/media/{dvb => }/dvb-core/dvbdev.c | 2 +- .../drivers/media/{dvb => }/dvb-core/dvbdev.h | 26 - .../{dvb/frontends => dvb-frontends}/Kconfig | 195 +- .../{dvb/frontends => dvb-frontends}/Makefile | 12 +- .../{dvb/frontends => dvb-frontends}/a8293.c | 0 .../{dvb/frontends => dvb-frontends}/a8293.h | 0 .../{dvb/frontends => dvb-frontends}/af9013.c | 158 +- .../{dvb/frontends => dvb-frontends}/af9013.h | 2 +- .../frontends => dvb-frontends}/af9013_priv.h | 15 +- .../{dvb/frontends => dvb-frontends}/af9033.c | 96 +- .../{dvb/frontends => dvb-frontends}/af9033.h | 3 +- .../frontends => dvb-frontends}/af9033_priv.h | 37 + .../frontends => dvb-frontends}/atbm8830.c | 2 +- .../frontends => dvb-frontends}/atbm8830.h | 0 .../atbm8830_priv.h | 0 .../{dvb/frontends => dvb-frontends}/au8522.h | 0 .../au8522_common.c | 22 +- .../au8522_decoder.c | 11 +- .../frontends => dvb-frontends}/au8522_dig.c | 98 +- .../frontends => dvb-frontends}/au8522_priv.h | 29 +- .../frontends => dvb-frontends}/bcm3510.c | 0 .../frontends => dvb-frontends}/bcm3510.h | 0 .../bcm3510_priv.h | 0 .../frontends => dvb-frontends}/bsbe1-d01a.h | 0 .../{dvb/frontends => dvb-frontends}/bsbe1.h | 0 .../{dvb/frontends => dvb-frontends}/bsru6.h | 0 .../frontends => dvb-frontends}/cx22700.c | 0 .../frontends => dvb-frontends}/cx22700.h | 0 .../frontends => dvb-frontends}/cx22702.c | 0 .../frontends => dvb-frontends}/cx22702.h | 0 .../frontends => dvb-frontends}/cx24110.c | 0 .../frontends => dvb-frontends}/cx24110.h | 0 .../frontends => dvb-frontends}/cx24113.c | 0 .../frontends => dvb-frontends}/cx24113.h | 0 .../frontends => dvb-frontends}/cx24116.c | 0 .../frontends => dvb-frontends}/cx24116.h | 0 .../frontends => dvb-frontends}/cx24123.c | 0 .../frontends => dvb-frontends}/cx24123.h | 0 .../frontends => dvb-frontends}/cxd2820r.h | 14 +- .../frontends => dvb-frontends}/cxd2820r_c.c | 31 +- .../cxd2820r_core.c | 211 +- .../cxd2820r_priv.h | 22 +- .../frontends => dvb-frontends}/cxd2820r_t.c | 34 +- .../frontends => dvb-frontends}/cxd2820r_t2.c | 31 +- .../frontends => dvb-frontends}/dib0070.c | 0 .../frontends => dvb-frontends}/dib0070.h | 0 .../frontends => dvb-frontends}/dib0090.c | 0 .../frontends => dvb-frontends}/dib0090.h | 0 .../frontends => dvb-frontends}/dib3000.h | 0 .../frontends => dvb-frontends}/dib3000mb.c | 0 .../dib3000mb_priv.h | 0 .../frontends => dvb-frontends}/dib3000mc.c | 0 .../frontends => dvb-frontends}/dib3000mc.h | 0 .../frontends => dvb-frontends}/dib7000m.c | 0 .../frontends => dvb-frontends}/dib7000m.h | 0 .../frontends => dvb-frontends}/dib7000p.c | 0 .../frontends => dvb-frontends}/dib7000p.h | 0 .../frontends => dvb-frontends}/dib8000.c | 0 .../frontends => dvb-frontends}/dib8000.h | 0 .../frontends => dvb-frontends}/dib9000.c | 0 .../frontends => dvb-frontends}/dib9000.h | 0 .../dibx000_common.c | 0 .../dibx000_common.h | 0 .../{dvb/frontends => dvb-frontends}/drxd.h | 0 .../frontends => dvb-frontends}/drxd_firm.c | 0 .../frontends => dvb-frontends}/drxd_firm.h | 0 .../frontends => dvb-frontends}/drxd_hard.c | 0 .../drxd_map_firm.h | 0 .../{dvb/frontends => dvb-frontends}/drxk.h | 2 + .../frontends => dvb-frontends}/drxk_hard.c | 20 +- .../frontends => dvb-frontends}/drxk_hard.h | 0 .../frontends => dvb-frontends}/drxk_map.h | 0 .../{dvb/frontends => dvb-frontends}/ds3000.c | 0 .../{dvb/frontends => dvb-frontends}/ds3000.h | 0 .../frontends => dvb-frontends}/dvb-pll.c | 26 + .../frontends => dvb-frontends}/dvb-pll.h | 1 + .../dvb_dummy_fe.c | 0 .../dvb_dummy_fe.h | 0 .../{dvb/frontends => dvb-frontends}/ec100.c | 60 +- .../{dvb/frontends => dvb-frontends}/ec100.h | 2 +- .../frontends => dvb-frontends}/eds1547.h | 0 .../{dvb/frontends => dvb-frontends}/hd29l2.c | 75 +- .../{dvb/frontends => dvb-frontends}/hd29l2.h | 2 +- .../frontends => dvb-frontends}/hd29l2_priv.h | 13 - .../frontends => dvb-frontends}/isl6405.c | 0 .../frontends => dvb-frontends}/isl6405.h | 0 .../frontends => dvb-frontends}/isl6421.c | 0 .../frontends => dvb-frontends}/isl6421.h | 0 .../frontends => dvb-frontends}/isl6423.c | 0 .../frontends => dvb-frontends}/isl6423.h | 0 .../it913x-fe-priv.h | 0 .../frontends => dvb-frontends}/it913x-fe.c | 2 +- .../frontends => dvb-frontends}/it913x-fe.h | 0 .../frontends => dvb-frontends}/itd1000.c | 0 .../frontends => dvb-frontends}/itd1000.h | 0 .../itd1000_priv.h | 0 .../frontends => dvb-frontends}/ix2505v.c | 0 .../frontends => dvb-frontends}/ix2505v.h | 0 .../{dvb/frontends => dvb-frontends}/l64781.c | 0 .../{dvb/frontends => dvb-frontends}/l64781.h | 0 .../{dvb/frontends => dvb-frontends}/lg2160.c | 0 .../{dvb/frontends => dvb-frontends}/lg2160.h | 0 .../frontends => dvb-frontends}/lgdt3305.c | 0 .../frontends => dvb-frontends}/lgdt3305.h | 0 .../frontends => dvb-frontends}/lgdt330x.c | 0 .../frontends => dvb-frontends}/lgdt330x.h | 0 .../lgdt330x_priv.h | 0 .../frontends => dvb-frontends}/lgs8gl5.c | 2 +- .../frontends => dvb-frontends}/lgs8gl5.h | 0 .../frontends => dvb-frontends}/lgs8gxx.c | 2 +- .../frontends => dvb-frontends}/lgs8gxx.h | 0 .../lgs8gxx_priv.h | 0 .../{dvb/frontends => dvb-frontends}/lnbh24.h | 0 .../{dvb/frontends => dvb-frontends}/lnbp21.c | 0 .../{dvb/frontends => dvb-frontends}/lnbp21.h | 0 .../{dvb/frontends => dvb-frontends}/lnbp22.c | 0 .../{dvb/frontends => dvb-frontends}/lnbp22.h | 0 .../frontends => dvb-frontends}/m88rs2000.c | 2 +- .../frontends => dvb-frontends}/m88rs2000.h | 0 .../frontends => dvb-frontends}/mb86a16.c | 0 .../frontends => dvb-frontends}/mb86a16.h | 0 .../mb86a16_priv.h | 0 .../frontends => dvb-frontends}/mb86a20s.c | 0 .../frontends => dvb-frontends}/mb86a20s.h | 0 .../{dvb/frontends => dvb-frontends}/mt312.c | 0 .../{dvb/frontends => dvb-frontends}/mt312.h | 0 .../frontends => dvb-frontends}/mt312_priv.h | 0 .../{dvb/frontends => dvb-frontends}/mt352.c | 0 .../{dvb/frontends => dvb-frontends}/mt352.h | 0 .../frontends => dvb-frontends}/mt352_priv.h | 0 .../frontends => dvb-frontends}/nxt200x.c | 64 +- .../frontends => dvb-frontends}/nxt200x.h | 0 .../frontends => dvb-frontends}/nxt6000.c | 0 .../frontends => dvb-frontends}/nxt6000.h | 0 .../nxt6000_priv.h | 0 .../frontends => dvb-frontends}/or51132.c | 0 .../frontends => dvb-frontends}/or51132.h | 0 .../frontends => dvb-frontends}/or51211.c | 0 .../frontends => dvb-frontends}/or51211.h | 0 .../frontends => dvb-frontends}/rtl2830.c | 124 +- .../frontends => dvb-frontends}/rtl2830.h | 9 +- .../rtl2830_priv.h | 13 - .../frontends => dvb-frontends}/rtl2832.c | 301 +- .../frontends => dvb-frontends}/rtl2832.h | 13 +- .../rtl2832_priv.h | 112 +- .../frontends => dvb-frontends}/s5h1409.c | 0 .../frontends => dvb-frontends}/s5h1409.h | 0 .../frontends => dvb-frontends}/s5h1411.c | 0 .../frontends => dvb-frontends}/s5h1411.h | 0 .../frontends => dvb-frontends}/s5h1420.c | 0 .../frontends => dvb-frontends}/s5h1420.h | 0 .../s5h1420_priv.h | 0 .../frontends => dvb-frontends}/s5h1432.c | 0 .../frontends => dvb-frontends}/s5h1432.h | 0 .../{dvb/frontends => dvb-frontends}/s921.c | 0 .../{dvb/frontends => dvb-frontends}/s921.h | 0 .../{dvb/frontends => dvb-frontends}/si21xx.c | 0 .../{dvb/frontends => dvb-frontends}/si21xx.h | 0 .../{dvb/frontends => dvb-frontends}/sp8870.c | 0 .../{dvb/frontends => dvb-frontends}/sp8870.h | 0 .../{dvb/frontends => dvb-frontends}/sp887x.c | 0 .../{dvb/frontends => dvb-frontends}/sp887x.h | 0 .../stb0899_algo.c | 0 .../frontends => dvb-frontends}/stb0899_cfg.h | 0 .../frontends => dvb-frontends}/stb0899_drv.c | 1 + .../frontends => dvb-frontends}/stb0899_drv.h | 0 .../stb0899_priv.h | 0 .../frontends => dvb-frontends}/stb0899_reg.h | 0 .../frontends => dvb-frontends}/stb6000.c | 0 .../frontends => dvb-frontends}/stb6000.h | 0 .../frontends => dvb-frontends}/stb6100.c | 0 .../frontends => dvb-frontends}/stb6100.h | 0 .../frontends => dvb-frontends}/stb6100_cfg.h | 0 .../stb6100_proc.h | 0 .../frontends => dvb-frontends}/stv0288.c | 0 .../frontends => dvb-frontends}/stv0288.h | 0 .../frontends => dvb-frontends}/stv0297.c | 0 .../frontends => dvb-frontends}/stv0297.h | 0 .../frontends => dvb-frontends}/stv0299.c | 0 .../frontends => dvb-frontends}/stv0299.h | 0 .../frontends => dvb-frontends}/stv0367.c | 0 .../frontends => dvb-frontends}/stv0367.h | 0 .../stv0367_priv.h | 0 .../stv0367_regs.h | 0 .../frontends => dvb-frontends}/stv0900.h | 0 .../stv0900_core.c | 0 .../stv0900_init.h | 0 .../stv0900_priv.h | 0 .../frontends => dvb-frontends}/stv0900_reg.h | 0 .../frontends => dvb-frontends}/stv0900_sw.c | 0 .../frontends => dvb-frontends}/stv090x.c | 32 + .../frontends => dvb-frontends}/stv090x.h | 0 .../stv090x_priv.h | 0 .../frontends => dvb-frontends}/stv090x_reg.h | 0 .../frontends => dvb-frontends}/stv6110.c | 0 .../frontends => dvb-frontends}/stv6110.h | 0 .../frontends => dvb-frontends}/stv6110x.c | 0 .../frontends => dvb-frontends}/stv6110x.h | 0 .../stv6110x_priv.h | 0 .../stv6110x_reg.h | 0 .../frontends => dvb-frontends}/tda10021.c | 0 .../frontends => dvb-frontends}/tda10023.c | 0 .../frontends => dvb-frontends}/tda1002x.h | 0 .../frontends => dvb-frontends}/tda10048.c | 0 .../frontends => dvb-frontends}/tda10048.h | 0 .../frontends => dvb-frontends}/tda1004x.c | 8 +- .../frontends => dvb-frontends}/tda1004x.h | 0 .../frontends => dvb-frontends}/tda10071.c | 7 +- .../frontends => dvb-frontends}/tda10071.h | 0 .../tda10071_priv.h | 2 +- .../frontends => dvb-frontends}/tda10086.c | 0 .../frontends => dvb-frontends}/tda10086.h | 0 .../tda18271c2dd.c | 0 .../tda18271c2dd.h | 0 .../tda18271c2dd_maps.h | 0 .../frontends => dvb-frontends}/tda665x.c | 0 .../frontends => dvb-frontends}/tda665x.h | 0 .../frontends => dvb-frontends}/tda8083.c | 0 .../frontends => dvb-frontends}/tda8083.h | 0 .../frontends => dvb-frontends}/tda8261.c | 28 +- .../frontends => dvb-frontends}/tda8261.h | 0 .../frontends => dvb-frontends}/tda8261_cfg.h | 0 .../frontends => dvb-frontends}/tda826x.c | 0 .../frontends => dvb-frontends}/tda826x.h | 0 .../{dvb/frontends => dvb-frontends}/tdhd1.h | 0 .../frontends => dvb-frontends}/tua6100.c | 0 .../frontends => dvb-frontends}/tua6100.h | 0 .../frontends => dvb-frontends}/ves1820.c | 0 .../frontends => dvb-frontends}/ves1820.h | 0 .../frontends => dvb-frontends}/ves1x93.c | 0 .../frontends => dvb-frontends}/ves1x93.h | 0 .../{dvb/frontends => dvb-frontends}/z0194a.h | 0 .../frontends => dvb-frontends}/zl10036.c | 0 .../frontends => dvb-frontends}/zl10036.h | 0 .../frontends => dvb-frontends}/zl10039.c | 0 .../frontends => dvb-frontends}/zl10039.h | 0 .../frontends => dvb-frontends}/zl10353.c | 0 .../frontends => dvb-frontends}/zl10353.h | 0 .../zl10353_priv.h | 0 trunk/drivers/media/dvb/Kconfig | 91 - trunk/drivers/media/dvb/Makefile | 21 - trunk/drivers/media/dvb/b2c2/Kconfig | 45 - trunk/drivers/media/dvb/b2c2/Makefile | 16 - trunk/drivers/media/dvb/bt8xx/Kconfig | 22 - trunk/drivers/media/dvb/bt8xx/Makefile | 6 - trunk/drivers/media/dvb/dm1105/Makefile | 3 - trunk/drivers/media/dvb/dvb-usb/Kconfig | 440 -- trunk/drivers/media/dvb/dvb-usb/Makefile | 121 - trunk/drivers/media/dvb/dvb-usb/af9015.c | 1952 -------- trunk/drivers/media/dvb/dvb-usb/it913x.c | 931 ---- trunk/drivers/media/dvb/dvb-usb/mxl111sf.c | 1835 ------- .../drivers/media/dvb/frontends/ec100_priv.h | 39 - trunk/drivers/media/dvb/ngene/Kconfig | 13 - trunk/drivers/media/dvb/pluto2/Makefile | 3 - trunk/drivers/media/dvb/siano/Kconfig | 34 - trunk/drivers/media/dvb/ttusb-budget/Makefile | 3 - .../drivers/media/{dvb => }/firewire/Kconfig | 0 .../drivers/media/{dvb => }/firewire/Makefile | 4 +- .../media/{dvb => }/firewire/firedtv-avc.c | 0 .../media/{dvb => }/firewire/firedtv-ci.c | 0 .../media/{dvb => }/firewire/firedtv-dvb.c | 0 .../media/{dvb => }/firewire/firedtv-fe.c | 0 .../media/{dvb => }/firewire/firedtv-fw.c | 0 .../media/{dvb => }/firewire/firedtv-rc.c | 0 .../media/{dvb => }/firewire/firedtv.h | 0 trunk/drivers/media/i2c/Kconfig | 591 +++ trunk/drivers/media/i2c/Makefile | 67 + trunk/drivers/media/i2c/ad9389b.c | 1328 ++++++ trunk/drivers/media/{video => i2c}/adp1653.c | 2 +- trunk/drivers/media/{video => i2c}/adv7170.c | 0 trunk/drivers/media/{video => i2c}/adv7175.c | 0 trunk/drivers/media/{video => i2c}/adv7180.c | 0 trunk/drivers/media/{video => i2c}/adv7183.c | 0 .../media/{video => i2c}/adv7183_regs.h | 0 trunk/drivers/media/{video => i2c}/adv7343.c | 0 .../media/{video => i2c}/adv7343_regs.h | 0 trunk/drivers/media/{video => i2c}/adv7393.c | 0 .../media/{video => i2c}/adv7393_regs.h | 0 trunk/drivers/media/i2c/adv7604.c | 1959 ++++++++ trunk/drivers/media/{video => i2c}/ak881x.c | 0 .../drivers/media/{video => i2c}/aptina-pll.c | 0 .../drivers/media/{video => i2c}/aptina-pll.h | 0 trunk/drivers/media/{video => i2c}/as3645a.c | 2 +- trunk/drivers/media/{video => i2c}/bt819.c | 0 trunk/drivers/media/{video => i2c}/bt856.c | 0 trunk/drivers/media/{video => i2c}/bt866.c | 0 .../drivers/media/{video => i2c}/btcx-risc.c | 0 .../drivers/media/{video => i2c}/btcx-risc.h | 0 trunk/drivers/media/{video => i2c}/cs5345.c | 0 trunk/drivers/media/{video => i2c}/cs53l32a.c | 0 trunk/drivers/media/{video => i2c}/cx2341x.c | 0 .../media/{video => i2c}/cx25840/Kconfig | 0 .../media/{video => i2c}/cx25840/Makefile | 2 +- .../{video => i2c}/cx25840/cx25840-audio.c | 0 .../{video => i2c}/cx25840/cx25840-core.c | 0 .../{video => i2c}/cx25840/cx25840-core.h | 0 .../{video => i2c}/cx25840/cx25840-firmware.c | 15 +- .../media/{video => i2c}/cx25840/cx25840-ir.c | 0 .../{video => i2c}/cx25840/cx25840-vbi.c | 3 +- .../drivers/media/{video => i2c}/ir-kbd-i2c.c | 0 trunk/drivers/media/{video => i2c}/ks0127.c | 13 +- trunk/drivers/media/{video => i2c}/ks0127.h | 0 trunk/drivers/media/{video => i2c}/m52790.c | 0 .../media/{video => i2c}/m5mols/Kconfig | 0 .../media/{video => i2c}/m5mols/Makefile | 0 .../media/{video => i2c}/m5mols/m5mols.h | 22 +- .../{video => i2c}/m5mols/m5mols_capture.c | 0 .../{video => i2c}/m5mols/m5mols_controls.c | 4 +- .../media/{video => i2c}/m5mols/m5mols_core.c | 90 +- .../media/{video => i2c}/m5mols/m5mols_reg.h | 0 .../media/{video => i2c}/msp3400-driver.c | 40 +- .../media/{video => i2c}/msp3400-driver.h | 0 .../media/{video => i2c}/msp3400-kthreads.c | 0 trunk/drivers/media/{video => i2c}/mt9m032.c | 2 +- trunk/drivers/media/{video => i2c}/mt9p031.c | 12 +- trunk/drivers/media/{video => i2c}/mt9t001.c | 0 trunk/drivers/media/{video => i2c}/mt9v011.c | 0 trunk/drivers/media/{video => i2c}/mt9v032.c | 100 +- .../media/{video => i2c}/noon010pc30.c | 0 trunk/drivers/media/{video => i2c}/ov7670.c | 0 trunk/drivers/media/i2c/s5k4ecgx.c | 1036 ++++ trunk/drivers/media/{video => i2c}/s5k6aa.c | 20 +- trunk/drivers/media/{video => i2c}/saa6588.c | 0 trunk/drivers/media/{video => i2c}/saa7110.c | 0 trunk/drivers/media/{video => i2c}/saa7115.c | 3 +- .../media/{video => i2c}/saa711x_regs.h | 0 trunk/drivers/media/{video => i2c}/saa7127.c | 7 +- trunk/drivers/media/{video => i2c}/saa717x.c | 0 trunk/drivers/media/{video => i2c}/saa7185.c | 0 trunk/drivers/media/{video => i2c}/saa7191.c | 0 trunk/drivers/media/{video => i2c}/saa7191.h | 0 .../drivers/media/{video => i2c}/smiapp-pll.c | 2 +- .../drivers/media/{video => i2c}/smiapp-pll.h | 2 +- .../media/{video => i2c}/smiapp/Kconfig | 0 .../media/{video => i2c}/smiapp/Makefile | 2 +- .../media/{video => i2c}/smiapp/smiapp-core.c | 83 +- .../{video => i2c}/smiapp/smiapp-limits.c | 2 +- .../{video => i2c}/smiapp/smiapp-limits.h | 2 +- .../{video => i2c}/smiapp/smiapp-quirk.c | 22 +- .../{video => i2c}/smiapp/smiapp-quirk.h | 2 +- .../{video => i2c}/smiapp/smiapp-reg-defs.h | 2 +- .../media/{video => i2c}/smiapp/smiapp-reg.h | 2 +- .../media/{video => i2c}/smiapp/smiapp-regs.c | 2 +- .../media/{video => i2c}/smiapp/smiapp-regs.h | 0 .../media/{video => i2c}/smiapp/smiapp.h | 2 +- trunk/drivers/media/i2c/soc_camera/Kconfig | 89 + trunk/drivers/media/i2c/soc_camera/Makefile | 14 + .../media/{video => i2c/soc_camera}/imx074.c | 30 +- .../media/{video => i2c/soc_camera}/mt9m001.c | 28 +- .../media/{video => i2c/soc_camera}/mt9m111.c | 118 +- .../media/{video => i2c/soc_camera}/mt9t031.c | 50 +- .../media/{video => i2c/soc_camera}/mt9t112.c | 25 +- .../media/{video => i2c/soc_camera}/mt9v022.c | 52 +- .../media/{video => i2c/soc_camera}/ov2640.c | 20 +- .../media/{video => i2c/soc_camera}/ov5642.c | 51 +- .../media/{video => i2c/soc_camera}/ov6650.c | 60 +- .../media/{video => i2c/soc_camera}/ov772x.c | 447 +- .../media/{video => i2c/soc_camera}/ov9640.c | 27 +- .../media/{video => i2c/soc_camera}/ov9640.h | 0 .../media/{video => i2c/soc_camera}/ov9740.c | 47 +- .../{video => i2c/soc_camera}/rj54n1cb0c.c | 31 +- .../media/{video => i2c/soc_camera}/tw9910.c | 21 +- .../drivers/media/{video => i2c}/sr030pc30.c | 0 trunk/drivers/media/{video => i2c}/tcm825x.c | 2 +- trunk/drivers/media/{video => i2c}/tcm825x.h | 2 +- trunk/drivers/media/{video => i2c}/tda7432.c | 0 trunk/drivers/media/{video => i2c}/tda9840.c | 0 trunk/drivers/media/{video => i2c}/tea6415c.c | 4 +- trunk/drivers/media/{video => i2c}/tea6415c.h | 0 trunk/drivers/media/{video => i2c}/tea6420.c | 0 trunk/drivers/media/{video => i2c}/tea6420.h | 0 trunk/drivers/media/{video => i2c}/ths7303.c | 0 .../media/{video => i2c}/tlv320aic23b.c | 0 trunk/drivers/media/{video => i2c}/tvaudio.c | 17 +- trunk/drivers/media/{video => i2c}/tveeprom.c | 0 trunk/drivers/media/{video => i2c}/tvp514x.c | 2 +- .../media/{video => i2c}/tvp514x_regs.h | 2 +- trunk/drivers/media/{video => i2c}/tvp5150.c | 4 +- .../media/{video => i2c}/tvp5150_reg.h | 0 trunk/drivers/media/{video => i2c}/tvp7002.c | 0 .../media/{video => i2c}/tvp7002_reg.h | 0 .../drivers/media/{video => i2c}/upd64031a.c | 0 trunk/drivers/media/{video => i2c}/upd64083.c | 0 trunk/drivers/media/{video => i2c}/vp27smpx.c | 0 trunk/drivers/media/{video => i2c}/vpx3220.c | 0 trunk/drivers/media/{video => i2c}/vs6624.c | 0 .../media/{video => i2c}/vs6624_regs.h | 0 trunk/drivers/media/{video => i2c}/wm8739.c | 0 trunk/drivers/media/{video => i2c}/wm8775.c | 0 trunk/drivers/media/media-device.c | 4 +- trunk/drivers/media/media-devnode.c | 14 +- trunk/drivers/media/mmc/Kconfig | 2 + trunk/drivers/media/mmc/Makefile | 1 + trunk/drivers/media/mmc/siano/Kconfig | 10 + trunk/drivers/media/mmc/siano/Makefile | 6 + .../media/{dvb => mmc}/siano/smssdio.c | 0 trunk/drivers/media/parport/Kconfig | 52 + trunk/drivers/media/parport/Makefile | 4 + .../media/{video => parport}/bw-qcam.c | 0 .../drivers/media/{video => parport}/c-qcam.c | 0 trunk/drivers/media/{video => parport}/pms.c | 0 .../drivers/media/{video => parport}/w9966.c | 0 trunk/drivers/media/pci/Kconfig | 47 + trunk/drivers/media/pci/Makefile | 26 + trunk/drivers/media/pci/b2c2/Kconfig | 15 + trunk/drivers/media/pci/b2c2/Makefile | 9 + .../media/{dvb => pci}/b2c2/flexcop-dma.c | 0 .../media/{dvb => pci}/b2c2/flexcop-pci.c | 0 trunk/drivers/media/pci/bt8xx/Kconfig | 43 + trunk/drivers/media/pci/bt8xx/Makefile | 11 + .../media/{video => pci}/bt8xx/bt848.h | 0 .../drivers/media/{dvb => pci}/bt8xx/bt878.c | 0 .../drivers/media/{dvb => pci}/bt8xx/bt878.h | 0 .../{video => pci}/bt8xx/bttv-audio-hook.c | 0 .../{video => pci}/bt8xx/bttv-audio-hook.h | 0 .../media/{video => pci}/bt8xx/bttv-cards.c | 0 .../media/{video => pci}/bt8xx/bttv-driver.c | 16 +- .../media/{video => pci}/bt8xx/bttv-gpio.c | 0 .../media/{video => pci}/bt8xx/bttv-i2c.c | 0 .../media/{video => pci}/bt8xx/bttv-if.c | 0 .../media/{video => pci}/bt8xx/bttv-input.c | 0 .../media/{video => pci}/bt8xx/bttv-risc.c | 0 .../media/{video => pci}/bt8xx/bttv-vbi.c | 0 .../drivers/media/{video => pci}/bt8xx/bttv.h | 0 .../media/{video => pci}/bt8xx/bttvp.h | 0 trunk/drivers/media/{dvb => pci}/bt8xx/dst.c | 0 .../drivers/media/{dvb => pci}/bt8xx/dst_ca.c | 3 +- .../drivers/media/{dvb => pci}/bt8xx/dst_ca.h | 0 .../media/{dvb => pci}/bt8xx/dst_common.h | 0 .../media/{dvb => pci}/bt8xx/dst_priv.h | 0 .../media/{dvb => pci}/bt8xx/dvb-bt8xx.c | 0 .../media/{dvb => pci}/bt8xx/dvb-bt8xx.h | 0 .../drivers/media/{video => pci}/cx18/Kconfig | 14 +- .../media/{video => pci}/cx18/Makefile | 6 +- .../{video => pci}/cx18/cx18-alsa-main.c | 0 .../{video => pci}/cx18/cx18-alsa-mixer.c | 0 .../{video => pci}/cx18/cx18-alsa-mixer.h | 0 .../media/{video => pci}/cx18/cx18-alsa-pcm.c | 0 .../media/{video => pci}/cx18/cx18-alsa-pcm.h | 0 .../media/{video => pci}/cx18/cx18-alsa.h | 0 .../media/{video => pci}/cx18/cx18-audio.c | 0 .../media/{video => pci}/cx18/cx18-audio.h | 0 .../media/{video => pci}/cx18/cx18-av-audio.c | 0 .../media/{video => pci}/cx18/cx18-av-core.c | 0 .../media/{video => pci}/cx18/cx18-av-core.h | 0 .../{video => pci}/cx18/cx18-av-firmware.c | 2 + .../media/{video => pci}/cx18/cx18-av-vbi.c | 4 +- .../media/{video => pci}/cx18/cx18-cards.c | 0 .../media/{video => pci}/cx18/cx18-cards.h | 0 .../media/{video => pci}/cx18/cx18-controls.c | 0 .../media/{video => pci}/cx18/cx18-controls.h | 0 .../media/{video => pci}/cx18/cx18-driver.c | 1 + .../media/{video => pci}/cx18/cx18-driver.h | 0 .../media/{video => pci}/cx18/cx18-dvb.c | 6 +- .../media/{video => pci}/cx18/cx18-dvb.h | 0 .../media/{video => pci}/cx18/cx18-fileops.c | 0 .../media/{video => pci}/cx18/cx18-fileops.h | 0 .../media/{video => pci}/cx18/cx18-firmware.c | 10 +- .../media/{video => pci}/cx18/cx18-firmware.h | 0 .../media/{video => pci}/cx18/cx18-gpio.c | 0 .../media/{video => pci}/cx18/cx18-gpio.h | 0 .../media/{video => pci}/cx18/cx18-i2c.c | 0 .../media/{video => pci}/cx18/cx18-i2c.h | 0 .../media/{video => pci}/cx18/cx18-io.c | 0 .../media/{video => pci}/cx18/cx18-io.h | 0 .../media/{video => pci}/cx18/cx18-ioctl.c | 8 +- .../media/{video => pci}/cx18/cx18-ioctl.h | 0 .../media/{video => pci}/cx18/cx18-irq.c | 0 .../media/{video => pci}/cx18/cx18-irq.h | 0 .../media/{video => pci}/cx18/cx18-mailbox.c | 0 .../media/{video => pci}/cx18/cx18-mailbox.h | 0 .../media/{video => pci}/cx18/cx18-queue.c | 0 .../media/{video => pci}/cx18/cx18-queue.h | 0 .../media/{video => pci}/cx18/cx18-scb.c | 0 .../media/{video => pci}/cx18/cx18-scb.h | 0 .../media/{video => pci}/cx18/cx18-streams.c | 15 +- .../media/{video => pci}/cx18/cx18-streams.h | 0 .../media/{video => pci}/cx18/cx18-vbi.c | 0 .../media/{video => pci}/cx18/cx18-vbi.h | 0 .../media/{video => pci}/cx18/cx18-version.h | 0 .../media/{video => pci}/cx18/cx18-video.c | 0 .../media/{video => pci}/cx18/cx18-video.h | 0 .../media/{video => pci}/cx18/cx23418.h | 0 trunk/drivers/media/pci/cx23885/Kconfig | 50 + .../media/{video => pci}/cx23885/Makefile | 8 +- .../media/{video => pci}/cx23885/altera-ci.c | 4 +- .../media/{video => pci}/cx23885/altera-ci.h | 0 .../media/{video => pci}/cx23885/cimax2.c | 0 .../media/{video => pci}/cx23885/cimax2.h | 0 .../{video => pci}/cx23885/cx23885-417.c | 2 + .../{video => pci}/cx23885/cx23885-alsa.c | 0 .../media/{video => pci}/cx23885/cx23885-av.c | 0 .../media/{video => pci}/cx23885/cx23885-av.h | 0 .../{video => pci}/cx23885/cx23885-cards.c | 16 +- .../{video => pci}/cx23885/cx23885-core.c | 0 .../{video => pci}/cx23885/cx23885-dvb.c | 59 +- .../{video => pci}/cx23885/cx23885-f300.c | 0 .../{video => pci}/cx23885/cx23885-f300.h | 0 .../{video => pci}/cx23885/cx23885-i2c.c | 0 .../{video => pci}/cx23885/cx23885-input.c | 9 + .../{video => pci}/cx23885/cx23885-input.h | 0 .../{video => pci}/cx23885/cx23885-ioctl.c | 0 .../{video => pci}/cx23885/cx23885-ioctl.h | 0 .../media/{video => pci}/cx23885/cx23885-ir.c | 0 .../media/{video => pci}/cx23885/cx23885-ir.h | 0 .../{video => pci}/cx23885/cx23885-reg.h | 0 .../{video => pci}/cx23885/cx23885-vbi.c | 0 .../{video => pci}/cx23885/cx23885-video.c | 2 +- .../media/{video => pci}/cx23885/cx23885.h | 1 + .../media/{video => pci}/cx23885/cx23888-ir.c | 0 .../media/{video => pci}/cx23885/cx23888-ir.h | 0 .../{video => pci}/cx23885/netup-eeprom.c | 0 .../{video => pci}/cx23885/netup-eeprom.h | 0 .../media/{video => pci}/cx23885/netup-init.c | 0 .../media/{video => pci}/cx23885/netup-init.h | 0 .../media/{video => pci}/cx25821/Kconfig | 0 .../media/{video => pci}/cx25821/Makefile | 8 +- .../{video => pci}/cx25821/cx25821-alsa.c | 0 .../cx25821/cx25821-audio-upstream.c | 0 .../cx25821/cx25821-audio-upstream.h | 0 .../{video => pci}/cx25821/cx25821-audio.h | 0 .../{video => pci}/cx25821/cx25821-biffuncs.h | 0 .../{video => pci}/cx25821/cx25821-cards.c | 0 .../{video => pci}/cx25821/cx25821-core.c | 0 .../{video => pci}/cx25821/cx25821-gpio.c | 0 .../{video => pci}/cx25821/cx25821-i2c.c | 0 .../cx25821/cx25821-medusa-defines.h | 0 .../cx25821/cx25821-medusa-reg.h | 0 .../cx25821/cx25821-medusa-video.c | 0 .../cx25821/cx25821-medusa-video.h | 0 .../{video => pci}/cx25821/cx25821-reg.h | 0 .../{video => pci}/cx25821/cx25821-sram.h | 0 .../cx25821/cx25821-video-upstream-ch2.c | 0 .../cx25821/cx25821-video-upstream-ch2.h | 0 .../cx25821/cx25821-video-upstream.c | 0 .../cx25821/cx25821-video-upstream.h | 0 .../{video => pci}/cx25821/cx25821-video.c | 2 +- .../{video => pci}/cx25821/cx25821-video.h | 2 +- .../media/{video => pci}/cx25821/cx25821.h | 0 .../drivers/media/{video => pci}/cx88/Kconfig | 36 +- .../media/{video => pci}/cx88/Makefile | 8 +- .../media/{video => pci}/cx88/cx88-alsa.c | 2 +- .../{video => pci}/cx88/cx88-blackbird.c | 2 +- .../media/{video => pci}/cx88/cx88-cards.c | 4 +- .../media/{video => pci}/cx88/cx88-core.c | 2 +- .../media/{video => pci}/cx88/cx88-dsp.c | 0 .../media/{video => pci}/cx88/cx88-dvb.c | 2 +- .../media/{video => pci}/cx88/cx88-i2c.c | 0 .../media/{video => pci}/cx88/cx88-input.c | 0 .../media/{video => pci}/cx88/cx88-mpeg.c | 0 .../media/{video => pci}/cx88/cx88-reg.h | 0 .../media/{video => pci}/cx88/cx88-tvaudio.c | 0 .../media/{video => pci}/cx88/cx88-vbi.c | 0 .../media/{video => pci}/cx88/cx88-video.c | 2 +- .../{video => pci}/cx88/cx88-vp3054-i2c.c | 0 .../{video => pci}/cx88/cx88-vp3054-i2c.h | 0 .../drivers/media/{video => pci}/cx88/cx88.h | 2 +- .../media/{dvb => pci}/ddbridge/Kconfig | 10 +- .../media/{dvb => pci}/ddbridge/Makefile | 6 +- .../{dvb => pci}/ddbridge/ddbridge-core.c | 15 +- .../{dvb => pci}/ddbridge/ddbridge-regs.h | 0 .../media/{dvb => pci}/ddbridge/ddbridge.h | 0 .../drivers/media/{dvb => pci}/dm1105/Kconfig | 14 +- trunk/drivers/media/pci/dm1105/Makefile | 3 + .../media/{dvb => pci}/dm1105/dm1105.c | 0 .../drivers/media/{video => pci}/ivtv/Kconfig | 16 + .../media/{video => pci}/ivtv/Makefile | 10 +- trunk/drivers/media/pci/ivtv/ivtv-alsa-main.c | 303 ++ .../drivers/media/pci/ivtv/ivtv-alsa-mixer.c | 175 + .../drivers/media/pci/ivtv/ivtv-alsa-mixer.h | 23 + trunk/drivers/media/pci/ivtv/ivtv-alsa-pcm.c | 356 ++ trunk/drivers/media/pci/ivtv/ivtv-alsa-pcm.h | 27 + trunk/drivers/media/pci/ivtv/ivtv-alsa.h | 75 + .../media/{video => pci}/ivtv/ivtv-cards.c | 0 .../media/{video => pci}/ivtv/ivtv-cards.h | 0 .../media/{video => pci}/ivtv/ivtv-controls.c | 0 .../media/{video => pci}/ivtv/ivtv-controls.h | 0 .../media/{video => pci}/ivtv/ivtv-driver.c | 38 + .../media/{video => pci}/ivtv/ivtv-driver.h | 11 + .../media/{video => pci}/ivtv/ivtv-fileops.c | 61 +- .../media/{video => pci}/ivtv/ivtv-fileops.h | 4 +- .../media/{video => pci}/ivtv/ivtv-firmware.c | 4 + .../media/{video => pci}/ivtv/ivtv-firmware.h | 0 .../media/{video => pci}/ivtv/ivtv-gpio.c | 0 .../media/{video => pci}/ivtv/ivtv-gpio.h | 0 .../media/{video => pci}/ivtv/ivtv-i2c.c | 0 .../media/{video => pci}/ivtv/ivtv-i2c.h | 0 .../media/{video => pci}/ivtv/ivtv-ioctl.c | 108 +- .../media/{video => pci}/ivtv/ivtv-ioctl.h | 0 .../media/{video => pci}/ivtv/ivtv-irq.c | 50 + .../media/{video => pci}/ivtv/ivtv-irq.h | 0 .../media/{video => pci}/ivtv/ivtv-mailbox.c | 0 .../media/{video => pci}/ivtv/ivtv-mailbox.h | 0 .../media/{video => pci}/ivtv/ivtv-queue.c | 0 .../media/{video => pci}/ivtv/ivtv-queue.h | 0 .../media/{video => pci}/ivtv/ivtv-routing.c | 0 .../media/{video => pci}/ivtv/ivtv-routing.h | 0 .../media/{video => pci}/ivtv/ivtv-streams.c | 51 +- .../media/{video => pci}/ivtv/ivtv-streams.h | 0 .../media/{video => pci}/ivtv/ivtv-udma.c | 0 .../media/{video => pci}/ivtv/ivtv-udma.h | 0 .../media/{video => pci}/ivtv/ivtv-vbi.c | 0 .../media/{video => pci}/ivtv/ivtv-vbi.h | 0 .../media/{video => pci}/ivtv/ivtv-version.h | 0 .../media/{video => pci}/ivtv/ivtv-yuv.c | 0 .../media/{video => pci}/ivtv/ivtv-yuv.h | 0 .../media/{video => pci}/ivtv/ivtvfb.c | 0 .../drivers/media/{dvb => pci}/mantis/Kconfig | 20 +- .../media/{dvb => pci}/mantis/Makefile | 2 +- .../media/{dvb => pci}/mantis/hopper_cards.c | 0 .../media/{dvb => pci}/mantis/hopper_vp3028.c | 0 .../media/{dvb => pci}/mantis/hopper_vp3028.h | 0 .../media/{dvb => pci}/mantis/mantis_ca.c | 0 .../media/{dvb => pci}/mantis/mantis_ca.h | 0 .../media/{dvb => pci}/mantis/mantis_cards.c | 2 +- .../media/{dvb => pci}/mantis/mantis_common.h | 0 .../media/{dvb => pci}/mantis/mantis_core.c | 2 +- .../media/{dvb => pci}/mantis/mantis_core.h | 0 .../media/{dvb => pci}/mantis/mantis_dma.c | 0 .../media/{dvb => pci}/mantis/mantis_dma.h | 0 .../media/{dvb => pci}/mantis/mantis_dvb.c | 6 +- .../media/{dvb => pci}/mantis/mantis_dvb.h | 0 .../media/{dvb => pci}/mantis/mantis_evm.c | 0 .../media/{dvb => pci}/mantis/mantis_hif.c | 0 .../media/{dvb => pci}/mantis/mantis_hif.h | 0 .../media/{dvb => pci}/mantis/mantis_i2c.c | 0 .../media/{dvb => pci}/mantis/mantis_i2c.h | 0 .../media/{dvb => pci}/mantis/mantis_input.c | 0 .../media/{dvb => pci}/mantis/mantis_ioc.c | 0 .../media/{dvb => pci}/mantis/mantis_ioc.h | 0 .../media/{dvb => pci}/mantis/mantis_link.h | 0 .../media/{dvb => pci}/mantis/mantis_pci.c | 0 .../media/{dvb => pci}/mantis/mantis_pci.h | 0 .../media/{dvb => pci}/mantis/mantis_pcmcia.c | 0 .../media/{dvb => pci}/mantis/mantis_reg.h | 0 .../media/{dvb => pci}/mantis/mantis_uart.c | 0 .../media/{dvb => pci}/mantis/mantis_uart.h | 0 .../media/{dvb => pci}/mantis/mantis_vp1033.c | 0 .../media/{dvb => pci}/mantis/mantis_vp1033.h | 0 .../media/{dvb => pci}/mantis/mantis_vp1034.c | 0 .../media/{dvb => pci}/mantis/mantis_vp1034.h | 0 .../media/{dvb => pci}/mantis/mantis_vp1041.c | 0 .../media/{dvb => pci}/mantis/mantis_vp1041.h | 0 .../media/{dvb => pci}/mantis/mantis_vp2033.c | 0 .../media/{dvb => pci}/mantis/mantis_vp2033.h | 0 .../media/{dvb => pci}/mantis/mantis_vp2040.c | 0 .../media/{dvb => pci}/mantis/mantis_vp2040.h | 0 .../media/{dvb => pci}/mantis/mantis_vp3028.c | 0 .../media/{dvb => pci}/mantis/mantis_vp3028.h | 0 .../media/{dvb => pci}/mantis/mantis_vp3030.c | 0 .../media/{dvb => pci}/mantis/mantis_vp3030.h | 0 trunk/drivers/media/pci/meye/Kconfig | 13 + trunk/drivers/media/pci/meye/Makefile | 1 + .../drivers/media/{video => pci/meye}/meye.c | 0 .../drivers/media/{video => pci/meye}/meye.h | 0 trunk/drivers/media/pci/ngene/Kconfig | 13 + .../drivers/media/{dvb => pci}/ngene/Makefile | 6 +- .../media/{dvb => pci}/ngene/ngene-cards.c | 263 + .../media/{dvb => pci}/ngene/ngene-core.c | 14 +- .../media/{dvb => pci}/ngene/ngene-dvb.c | 0 .../media/{dvb => pci}/ngene/ngene-i2c.c | 0 .../drivers/media/{dvb => pci}/ngene/ngene.h | 0 .../drivers/media/{dvb => pci}/pluto2/Kconfig | 0 trunk/drivers/media/pci/pluto2/Makefile | 3 + .../media/{dvb => pci}/pluto2/pluto2.c | 0 trunk/drivers/media/{dvb => pci}/pt1/Kconfig | 0 trunk/drivers/media/{dvb => pci}/pt1/Makefile | 2 +- trunk/drivers/media/{dvb => pci}/pt1/pt1.c | 0 .../media/{dvb => pci}/pt1/va1j5jf8007s.c | 11 +- .../media/{dvb => pci}/pt1/va1j5jf8007s.h | 0 .../media/{dvb => pci}/pt1/va1j5jf8007t.c | 0 .../media/{dvb => pci}/pt1/va1j5jf8007t.h | 0 .../media/{video => pci}/saa7134/Kconfig | 40 +- .../media/{video => pci}/saa7134/Makefile | 10 +- .../media/{video => pci}/saa7134/saa6752hs.c | 0 .../{video => pci}/saa7134/saa7134-alsa.c | 0 .../{video => pci}/saa7134/saa7134-cards.c | 0 .../{video => pci}/saa7134/saa7134-core.c | 0 .../{video => pci}/saa7134/saa7134-dvb.c | 4 +- .../{video => pci}/saa7134/saa7134-empress.c | 0 .../{video => pci}/saa7134/saa7134-i2c.c | 0 .../{video => pci}/saa7134/saa7134-input.c | 10 +- .../{video => pci}/saa7134/saa7134-reg.h | 0 .../media/{video => pci}/saa7134/saa7134-ts.c | 0 .../{video => pci}/saa7134/saa7134-tvaudio.c | 0 .../{video => pci}/saa7134/saa7134-vbi.c | 0 .../{video => pci}/saa7134/saa7134-video.c | 38 +- .../media/{video => pci}/saa7134/saa7134.h | 1 - trunk/drivers/media/pci/saa7146/Kconfig | 38 + trunk/drivers/media/pci/saa7146/Makefile | 5 + .../{video => pci/saa7146}/hexium_gemini.c | 0 .../{video => pci/saa7146}/hexium_orion.c | 0 .../media/{video => pci/saa7146}/mxb.c | 2 +- .../media/{video => pci}/saa7164/Kconfig | 8 +- .../media/{video => pci}/saa7164/Makefile | 8 +- .../{video => pci}/saa7164/saa7164-api.c | 15 +- .../{video => pci}/saa7164/saa7164-buffer.c | 0 .../{video => pci}/saa7164/saa7164-bus.c | 0 .../{video => pci}/saa7164/saa7164-cards.c | 0 .../{video => pci}/saa7164/saa7164-cmd.c | 0 .../{video => pci}/saa7164/saa7164-core.c | 46 +- .../{video => pci}/saa7164/saa7164-dvb.c | 0 .../{video => pci}/saa7164/saa7164-encoder.c | 0 .../media/{video => pci}/saa7164/saa7164-fw.c | 0 .../{video => pci}/saa7164/saa7164-i2c.c | 0 .../{video => pci}/saa7164/saa7164-reg.h | 0 .../{video => pci}/saa7164/saa7164-types.h | 0 .../{video => pci}/saa7164/saa7164-vbi.c | 0 .../media/{video => pci}/saa7164/saa7164.h | 1 - trunk/drivers/media/pci/sta2x11/Kconfig | 12 + trunk/drivers/media/pci/sta2x11/Makefile | 1 + .../{video => pci/sta2x11}/sta2x11_vip.c | 0 .../{video => pci/sta2x11}/sta2x11_vip.h | 0 .../drivers/media/{dvb => pci}/ttpci/Kconfig | 84 +- .../drivers/media/{dvb => pci}/ttpci/Makefile | 4 +- .../drivers/media/{dvb => pci}/ttpci/av7110.c | 0 .../drivers/media/{dvb => pci}/ttpci/av7110.h | 0 .../media/{dvb => pci}/ttpci/av7110_av.c | 0 .../media/{dvb => pci}/ttpci/av7110_av.h | 0 .../media/{dvb => pci}/ttpci/av7110_ca.c | 0 .../media/{dvb => pci}/ttpci/av7110_ca.h | 0 .../media/{dvb => pci}/ttpci/av7110_hw.c | 0 .../media/{dvb => pci}/ttpci/av7110_hw.h | 0 .../media/{dvb => pci}/ttpci/av7110_ipack.c | 0 .../media/{dvb => pci}/ttpci/av7110_ipack.h | 0 .../media/{dvb => pci}/ttpci/av7110_ir.c | 0 .../media/{dvb => pci}/ttpci/av7110_v4l.c | 2 +- .../media/{dvb => pci}/ttpci/budget-av.c | 0 .../media/{dvb => pci}/ttpci/budget-ci.c | 0 .../media/{dvb => pci}/ttpci/budget-core.c | 0 .../media/{dvb => pci}/ttpci/budget-patch.c | 0 .../drivers/media/{dvb => pci}/ttpci/budget.c | 60 + .../drivers/media/{dvb => pci}/ttpci/budget.h | 0 .../media/{dvb => pci}/ttpci/ttpci-eeprom.c | 0 .../media/{dvb => pci}/ttpci/ttpci-eeprom.h | 0 .../media/{video => pci}/zoran/Kconfig | 30 +- .../media/{video => pci}/zoran/Makefile | 0 .../media/{video => pci}/zoran/videocodec.c | 0 .../media/{video => pci}/zoran/videocodec.h | 0 .../media/{video => pci}/zoran/zoran.h | 0 .../media/{video => pci}/zoran/zoran_card.c | 4 + .../media/{video => pci}/zoran/zoran_card.h | 0 .../media/{video => pci}/zoran/zoran_device.c | 0 .../media/{video => pci}/zoran/zoran_device.h | 0 .../media/{video => pci}/zoran/zoran_driver.c | 8 +- .../media/{video => pci}/zoran/zoran_procfs.c | 0 .../media/{video => pci}/zoran/zoran_procfs.h | 0 .../media/{video => pci}/zoran/zr36016.c | 0 .../media/{video => pci}/zoran/zr36016.h | 0 .../media/{video => pci}/zoran/zr36050.c | 0 .../media/{video => pci}/zoran/zr36050.h | 0 .../media/{video => pci}/zoran/zr36057.h | 0 .../media/{video => pci}/zoran/zr36060.c | 0 .../media/{video => pci}/zoran/zr36060.h | 0 trunk/drivers/media/platform/Kconfig | 223 + trunk/drivers/media/platform/Makefile | 50 + trunk/drivers/media/{video => platform}/arv.c | 0 .../{video => platform}/blackfin/Kconfig | 0 .../{video => platform}/blackfin/Makefile | 0 .../blackfin/bfin_capture.c | 18 +- .../media/{video => platform}/blackfin/ppi.c | 0 trunk/drivers/media/platform/coda.c | 2049 ++++++++ trunk/drivers/media/platform/coda.h | 238 + .../media/{video => platform}/davinci/Kconfig | 4 +- .../{video => platform}/davinci/Makefile | 0 .../davinci/ccdc_hw_device.h | 0 .../{video => platform}/davinci/dm355_ccdc.c | 2 +- .../davinci/dm355_ccdc_regs.h | 0 .../{video => platform}/davinci/dm644x_ccdc.c | 2 +- .../davinci/dm644x_ccdc_regs.h | 0 .../media/{video => platform}/davinci/isif.c | 2 +- .../{video => platform}/davinci/isif_regs.h | 0 .../media/{video => platform}/davinci/vpbe.c | 0 .../davinci/vpbe_display.c | 25 +- .../{video => platform}/davinci/vpbe_osd.c | 0 .../davinci/vpbe_osd_regs.h | 0 .../{video => platform}/davinci/vpbe_venc.c | 0 .../davinci/vpbe_venc_regs.h | 0 .../davinci/vpfe_capture.c | 19 +- .../media/{video => platform}/davinci/vpif.c | 18 +- .../media/{video => platform}/davinci/vpif.h | 4 +- .../davinci/vpif_capture.c | 146 +- .../davinci/vpif_capture.h | 4 +- .../davinci/vpif_display.c | 141 +- .../davinci/vpif_display.h | 4 +- .../media/{video => platform}/davinci/vpss.c | 2 +- .../media/platform/exynos-gsc/Makefile | 3 + .../media/platform/exynos-gsc/gsc-core.c | 1252 +++++ .../media/platform/exynos-gsc/gsc-core.h | 527 ++ .../media/platform/exynos-gsc/gsc-m2m.c | 770 +++ .../media/platform/exynos-gsc/gsc-regs.c | 425 ++ .../media/platform/exynos-gsc/gsc-regs.h | 172 + .../media/{video => platform}/fsl-viu.c | 29 +- .../media/{video => platform}/indycam.c | 0 .../media/{video => platform}/indycam.h | 0 .../drivers/media/platform/m2m-deinterlace.c | 1124 +++++ .../{video => platform}/marvell-ccic/Kconfig | 0 .../{video => platform}/marvell-ccic/Makefile | 0 .../marvell-ccic/cafe-driver.c | 0 .../marvell-ccic/mcam-core.c | 0 .../marvell-ccic/mcam-core.h | 0 .../marvell-ccic/mmp-driver.c | 0 .../{video => platform}/mem2mem_testdev.c | 44 +- .../media/{video => platform}/mx2_emmaprp.c | 78 +- .../media/{video => platform}/omap/Kconfig | 0 .../media/{video => platform}/omap/Makefile | 2 +- .../{video => platform}/omap/omap_vout.c | 5 +- .../{video => platform}/omap/omap_vout_vrfb.c | 0 .../{video => platform}/omap/omap_vout_vrfb.h | 0 .../{video => platform}/omap/omap_voutdef.h | 0 .../{video => platform}/omap/omap_voutlib.c | 0 .../{video => platform}/omap/omap_voutlib.h | 0 .../{video => platform}/omap24xxcam-dma.c | 2 +- .../media/{video => platform}/omap24xxcam.c | 2 +- .../media/{video => platform}/omap24xxcam.h | 2 +- .../{video => platform}/omap3isp/Makefile | 0 .../omap3isp/cfa_coef_table.h | 16 +- .../omap3isp/gamma_table.h | 0 .../media/{video => platform}/omap3isp/isp.c | 53 +- .../media/{video => platform}/omap3isp/isp.h | 11 +- .../{video => platform}/omap3isp/ispccdc.c | 238 +- .../{video => platform}/omap3isp/ispccdc.h | 37 - .../{video => platform}/omap3isp/ispccp2.c | 0 .../{video => platform}/omap3isp/ispccp2.h | 0 .../{video => platform}/omap3isp/ispcsi2.c | 27 +- .../{video => platform}/omap3isp/ispcsi2.h | 0 .../{video => platform}/omap3isp/ispcsiphy.c | 0 .../{video => platform}/omap3isp/ispcsiphy.h | 0 .../{video => platform}/omap3isp/isph3a.h | 0 .../omap3isp/isph3a_aewb.c | 10 +- .../{video => platform}/omap3isp/isph3a_af.c | 10 +- .../{video => platform}/omap3isp/isphist.c | 6 +- .../{video => platform}/omap3isp/isphist.h | 0 .../{video => platform}/omap3isp/isppreview.c | 707 ++- .../{video => platform}/omap3isp/isppreview.h | 1 + .../{video => platform}/omap3isp/ispqueue.c | 15 +- .../{video => platform}/omap3isp/ispqueue.h | 0 .../{video => platform}/omap3isp/ispreg.h | 0 .../{video => platform}/omap3isp/ispresizer.c | 8 +- .../{video => platform}/omap3isp/ispresizer.h | 0 .../{video => platform}/omap3isp/ispstat.c | 4 +- .../{video => platform}/omap3isp/ispstat.h | 4 +- .../{video => platform}/omap3isp/ispvideo.c | 66 +- .../{video => platform}/omap3isp/ispvideo.h | 6 +- .../omap3isp/luma_enhance_table.h | 0 .../omap3isp/noise_filter_table.h | 0 .../{video => platform}/s5p-fimc/Kconfig | 2 +- .../{video => platform}/s5p-fimc/Makefile | 0 .../s5p-fimc/fimc-capture.c | 58 +- .../{video => platform}/s5p-fimc/fimc-core.c | 0 .../{video => platform}/s5p-fimc/fimc-core.h | 7 +- .../s5p-fimc/fimc-lite-reg.c | 8 +- .../s5p-fimc/fimc-lite-reg.h | 0 .../{video => platform}/s5p-fimc/fimc-lite.c | 70 +- .../{video => platform}/s5p-fimc/fimc-lite.h | 6 +- .../{video => platform}/s5p-fimc/fimc-m2m.c | 47 +- .../s5p-fimc/fimc-mdevice.c | 79 +- .../s5p-fimc/fimc-mdevice.h | 14 +- .../{video => platform}/s5p-fimc/fimc-reg.c | 6 +- .../{video => platform}/s5p-fimc/fimc-reg.h | 0 .../{video => platform}/s5p-fimc/mipi-csis.c | 160 +- .../{video => platform}/s5p-fimc/mipi-csis.h | 0 .../{video => platform}/s5p-g2d/Makefile | 0 .../{video => platform}/s5p-g2d/g2d-hw.c | 0 .../{video => platform}/s5p-g2d/g2d-regs.h | 0 .../media/{video => platform}/s5p-g2d/g2d.c | 32 +- .../media/{video => platform}/s5p-g2d/g2d.h | 0 .../{video => platform}/s5p-jpeg/Makefile | 0 .../{video => platform}/s5p-jpeg/jpeg-core.c | 41 +- .../{video => platform}/s5p-jpeg/jpeg-core.h | 2 +- .../{video => platform}/s5p-jpeg/jpeg-hw.h | 2 +- .../{video => platform}/s5p-jpeg/jpeg-regs.h | 2 +- .../{video => platform}/s5p-mfc/Makefile | 0 .../{video => platform}/s5p-mfc/regs-mfc.h | 0 .../{video => platform}/s5p-mfc/s5p_mfc.c | 127 +- .../{video => platform}/s5p-mfc/s5p_mfc_cmd.c | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_cmd.h | 2 +- .../s5p-mfc/s5p_mfc_common.h | 10 +- .../s5p-mfc/s5p_mfc_ctrl.c | 10 +- .../s5p-mfc/s5p_mfc_ctrl.h | 2 +- .../s5p-mfc/s5p_mfc_debug.h | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_dec.c | 34 +- .../{video => platform}/s5p-mfc/s5p_mfc_dec.h | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_enc.c | 142 +- .../{video => platform}/s5p-mfc/s5p_mfc_enc.h | 2 +- .../s5p-mfc/s5p_mfc_intr.c | 2 +- .../s5p-mfc/s5p_mfc_intr.h | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_opr.c | 50 +- .../{video => platform}/s5p-mfc/s5p_mfc_opr.h | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_pm.c | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_pm.h | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_shm.c | 2 +- .../{video => platform}/s5p-mfc/s5p_mfc_shm.h | 2 +- .../media/{video => platform}/s5p-tv/Kconfig | 2 +- .../media/{video => platform}/s5p-tv/Makefile | 2 +- .../{video => platform}/s5p-tv/hdmi_drv.c | 6 +- .../{video => platform}/s5p-tv/hdmiphy_drv.c | 0 .../media/{video => platform}/s5p-tv/mixer.h | 0 .../{video => platform}/s5p-tv/mixer_drv.c | 8 +- .../s5p-tv/mixer_grp_layer.c | 0 .../{video => platform}/s5p-tv/mixer_reg.c | 0 .../{video => platform}/s5p-tv/mixer_video.c | 41 +- .../s5p-tv/mixer_vp_layer.c | 0 .../{video => platform}/s5p-tv/regs-hdmi.h | 0 .../{video => platform}/s5p-tv/regs-mixer.h | 0 .../{video => platform}/s5p-tv/regs-sdo.h | 2 +- .../{video => platform}/s5p-tv/regs-vp.h | 0 .../{video => platform}/s5p-tv/sdo_drv.c | 10 +- .../{video => platform}/s5p-tv/sii9234_drv.c | 17 +- .../media/{video => platform}/sh_vou.c | 30 +- .../drivers/media/platform/soc_camera/Kconfig | 87 + .../media/platform/soc_camera/Makefile | 14 + .../soc_camera}/atmel-isi.c | 0 .../soc_camera}/mx1_camera.c | 0 .../soc_camera}/mx2_camera.c | 193 +- .../soc_camera}/mx3_camera.c | 4 +- .../soc_camera}/omap1_camera.c | 2 +- .../soc_camera}/pxa_camera.c | 0 .../soc_camera}/sh_mobile_ceu_camera.c | 4 +- .../soc_camera}/sh_mobile_csi2.c | 0 .../soc_camera}/soc_camera.c | 205 +- .../soc_camera}/soc_camera_platform.c | 11 +- .../soc_camera}/soc_mediabus.c | 0 .../media/{video => platform}/timblogiw.c | 0 .../media/{video => platform}/via-camera.c | 0 .../media/{video => platform}/via-camera.h | 0 .../drivers/media/{video => platform}/vino.c | 2 +- .../drivers/media/{video => platform}/vino.h | 0 .../drivers/media/{video => platform}/vivi.c | 56 +- trunk/drivers/media/radio/radio-keene.c | 2 +- trunk/drivers/media/radio/radio-miropcm20.c | 2 +- trunk/drivers/media/radio/radio-mr800.c | 5 +- trunk/drivers/media/radio/radio-sf16fmi.c | 2 +- trunk/drivers/media/radio/radio-shark.c | 44 +- trunk/drivers/media/radio/radio-shark2.c | 52 +- trunk/drivers/media/radio/radio-si4713.c | 11 +- trunk/drivers/media/radio/radio-tea5764.c | 15 +- trunk/drivers/media/radio/radio-tea5777.c | 205 +- trunk/drivers/media/radio/radio-tea5777.h | 3 + trunk/drivers/media/radio/radio-timb.c | 10 +- trunk/drivers/media/radio/radio-wl1273.c | 32 +- trunk/drivers/media/radio/saa7706h.c | 15 +- .../media/radio/si470x/radio-si470x-common.c | 7 +- .../media/radio/si470x/radio-si470x-i2c.c | 23 +- trunk/drivers/media/radio/si4713-i2c.c | 4 +- trunk/drivers/media/radio/wl128x/fmdrv_v4l2.c | 47 +- trunk/drivers/media/rc/Kconfig | 32 +- trunk/drivers/media/rc/Makefile | 2 + trunk/drivers/media/rc/ati_remote.c | 15 +- trunk/drivers/media/rc/fintek-cir.c | 11 +- trunk/drivers/media/rc/iguanair.c | 247 +- trunk/drivers/media/rc/ir-lirc-codec.c | 35 +- trunk/drivers/media/rc/ir-nec-decoder.c | 4 +- trunk/drivers/media/rc/ir-raw.c | 6 +- trunk/drivers/media/rc/ir-rx51.c | 498 ++ trunk/drivers/media/rc/ite-cir.c | 2 +- trunk/drivers/media/rc/keymaps/rc-tt-1500.c | 2 +- trunk/drivers/media/rc/mceusb.c | 30 +- trunk/drivers/media/rc/rc-loopback.c | 12 - trunk/drivers/media/rc/redrat3.c | 5 +- trunk/drivers/media/rc/ttusbir.c | 447 ++ trunk/drivers/media/rc/winbond-cir.c | 49 +- .../drivers/media/{common => }/tuners/Kconfig | 105 +- .../media/{common => }/tuners/Makefile | 6 +- trunk/drivers/media/tuners/e4000.c | 409 ++ trunk/drivers/media/tuners/e4000.h | 52 + trunk/drivers/media/tuners/e4000_priv.h | 147 + .../media/{common => }/tuners/fc0011.c | 0 .../media/{common => }/tuners/fc0011.h | 0 .../media/{common => }/tuners/fc0012-priv.h | 0 .../media/{common => }/tuners/fc0012.c | 0 .../media/{common => }/tuners/fc0012.h | 0 .../media/{common => }/tuners/fc0013-priv.h | 0 .../media/{common => }/tuners/fc0013.c | 0 .../media/{common => }/tuners/fc0013.h | 0 .../media/{common => }/tuners/fc001x-common.h | 0 trunk/drivers/media/tuners/fc2580.c | 529 ++ trunk/drivers/media/tuners/fc2580.h | 52 + trunk/drivers/media/tuners/fc2580_priv.h | 134 + .../media/{common => }/tuners/max2165.c | 0 .../media/{common => }/tuners/max2165.h | 0 .../media/{common => }/tuners/max2165_priv.h | 0 .../media/{common => }/tuners/mc44s803.c | 9 +- .../media/{common => }/tuners/mc44s803.h | 0 .../media/{common => }/tuners/mc44s803_priv.h | 0 .../media/{common => }/tuners/mt2060.c | 0 .../media/{common => }/tuners/mt2060.h | 0 .../media/{common => }/tuners/mt2060_priv.h | 0 .../media/{common => }/tuners/mt2063.c | 0 .../media/{common => }/tuners/mt2063.h | 0 .../media/{common => }/tuners/mt20xx.c | 0 .../media/{common => }/tuners/mt20xx.h | 0 .../media/{common => }/tuners/mt2131.c | 0 .../media/{common => }/tuners/mt2131.h | 0 .../media/{common => }/tuners/mt2131_priv.h | 0 .../media/{common => }/tuners/mt2266.c | 0 .../media/{common => }/tuners/mt2266.h | 0 .../media/{common => }/tuners/mxl5005s.c | 11 + .../media/{common => }/tuners/mxl5005s.h | 0 .../media/{common => }/tuners/mxl5007t.c | 0 .../media/{common => }/tuners/mxl5007t.h | 0 .../media/{common => }/tuners/qt1010.c | 66 +- .../media/{common => }/tuners/qt1010.h | 0 .../media/{common => }/tuners/qt1010_priv.h | 0 .../media/{common => }/tuners/tda18212.c | 37 +- .../media/{common => }/tuners/tda18212.h | 0 .../media/{common => }/tuners/tda18218.c | 52 +- .../media/{common => }/tuners/tda18218.h | 0 .../media/{common => }/tuners/tda18218_priv.h | 13 +- .../{common => }/tuners/tda18271-common.c | 10 +- .../media/{common => }/tuners/tda18271-fe.c | 19 +- .../media/{common => }/tuners/tda18271-maps.c | 0 .../media/{common => }/tuners/tda18271-priv.h | 0 .../media/{common => }/tuners/tda18271.h | 5 + .../media/{common => }/tuners/tda827x.c | 0 .../media/{common => }/tuners/tda827x.h | 0 .../media/{common => }/tuners/tda8290.c | 0 .../media/{common => }/tuners/tda8290.h | 0 .../media/{common => }/tuners/tda9887.c | 0 .../media/{common => }/tuners/tda9887.h | 0 .../media/{common => }/tuners/tea5761.c | 0 .../media/{common => }/tuners/tea5761.h | 0 .../media/{common => }/tuners/tea5767.c | 0 .../media/{common => }/tuners/tea5767.h | 0 .../media/{common => }/tuners/tua9001.c | 105 +- .../media/{common => }/tuners/tua9001.h | 20 + .../media/{common => }/tuners/tua9001_priv.h | 0 .../media/{common => }/tuners/tuner-i2c.h | 0 .../media/{common => }/tuners/tuner-simple.c | 0 .../media/{common => }/tuners/tuner-simple.h | 0 .../media/{common => }/tuners/tuner-types.c | 0 .../{common => }/tuners/tuner-xc2028-types.h | 0 .../media/{common => }/tuners/tuner-xc2028.c | 7 +- .../media/{common => }/tuners/tuner-xc2028.h | 0 .../media/{common => }/tuners/xc4000.c | 3 +- .../media/{common => }/tuners/xc4000.h | 0 .../media/{common => }/tuners/xc5000.c | 161 +- .../media/{common => }/tuners/xc5000.h | 0 trunk/drivers/media/usb/Kconfig | 54 + trunk/drivers/media/usb/Makefile | 22 + .../media/{video => usb}/au0828/Kconfig | 11 +- .../media/{video => usb}/au0828/Makefile | 6 +- .../{video => usb}/au0828/au0828-cards.c | 4 +- .../{video => usb}/au0828/au0828-cards.h | 0 .../media/{video => usb}/au0828/au0828-core.c | 59 +- .../media/{video => usb}/au0828/au0828-dvb.c | 54 +- .../media/{video => usb}/au0828/au0828-i2c.c | 21 +- .../media/{video => usb}/au0828/au0828-reg.h | 1 + .../media/{video => usb}/au0828/au0828-vbi.c | 0 .../{video => usb}/au0828/au0828-video.c | 78 +- .../media/{video => usb}/au0828/au0828.h | 2 + trunk/drivers/media/usb/b2c2/Kconfig | 15 + trunk/drivers/media/usb/b2c2/Makefile | 5 + .../media/{dvb => usb}/b2c2/flexcop-usb.c | 5 +- .../media/{dvb => usb}/b2c2/flexcop-usb.h | 0 .../media/{video => usb}/cpia2/Kconfig | 0 .../media/{video => usb}/cpia2/Makefile | 0 .../media/{video => usb}/cpia2/cpia2.h | 0 .../media/{video => usb}/cpia2/cpia2_core.c | 6 +- .../{video => usb}/cpia2/cpia2_registers.h | 0 .../media/{video => usb}/cpia2/cpia2_usb.c | 0 .../media/{video => usb}/cpia2/cpia2_v4l.c | 44 +- .../media/{video => usb}/cx231xx/Kconfig | 8 +- .../media/{video => usb}/cx231xx/Makefile | 11 +- .../{video => usb}/cx231xx/cx231xx-417.c | 2 + .../{video => usb}/cx231xx/cx231xx-audio.c | 0 .../{video => usb}/cx231xx/cx231xx-avcore.c | 0 .../{video => usb}/cx231xx/cx231xx-cards.c | 0 .../{video => usb}/cx231xx/cx231xx-conf-reg.h | 0 .../{video => usb}/cx231xx/cx231xx-core.c | 0 .../{video => usb}/cx231xx/cx231xx-dif.h | 0 .../{video => usb}/cx231xx/cx231xx-dvb.c | 0 .../{video => usb}/cx231xx/cx231xx-i2c.c | 0 .../{video => usb}/cx231xx/cx231xx-input.c | 0 .../{video => usb}/cx231xx/cx231xx-pcb-cfg.c | 0 .../{video => usb}/cx231xx/cx231xx-pcb-cfg.h | 0 .../{video => usb}/cx231xx/cx231xx-reg.h | 0 .../{video => usb}/cx231xx/cx231xx-vbi.c | 0 .../{video => usb}/cx231xx/cx231xx-vbi.h | 0 .../{video => usb}/cx231xx/cx231xx-video.c | 51 +- .../media/{video => usb}/cx231xx/cx231xx.h | 0 trunk/drivers/media/usb/dvb-usb-v2/Kconfig | 149 + trunk/drivers/media/usb/dvb-usb-v2/Makefile | 49 + trunk/drivers/media/usb/dvb-usb-v2/af9015.c | 1454 ++++++ .../{dvb/dvb-usb => usb/dvb-usb-v2}/af9015.h | 55 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/af9035.c | 884 ++-- .../{dvb/dvb-usb => usb/dvb-usb-v2}/af9035.h | 10 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/anysee.c | 671 ++- .../{dvb/dvb-usb => usb/dvb-usb-v2}/anysee.h | 10 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/au6610.c | 123 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/au6610.h | 13 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/az6007.c | 410 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/ce6230.c | 188 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/ce6230.h | 33 +- .../media/usb/dvb-usb-v2/cypress_firmware.c | 134 + .../media/usb/dvb-usb-v2/cypress_firmware.h | 31 + trunk/drivers/media/usb/dvb-usb-v2/dvb_usb.h | 403 ++ .../media/usb/dvb-usb-v2/dvb_usb_common.h | 35 + .../media/usb/dvb-usb-v2/dvb_usb_core.c | 1049 ++++ .../media/usb/dvb-usb-v2/dvb_usb_urb.c | 77 + .../{dvb/dvb-usb => usb/dvb-usb-v2}/ec168.c | 326 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/ec168.h | 24 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/gl861.c | 132 +- .../{dvb/dvb-usb => usb/dvb-usb-v2}/gl861.h | 5 +- trunk/drivers/media/usb/dvb-usb-v2/it913x.c | 799 ++++ .../{dvb/dvb-usb => usb/dvb-usb-v2}/lmedm04.c | 586 ++- .../{dvb/dvb-usb => usb/dvb-usb-v2}/lmedm04.h | 0 .../dvb-usb-v2}/mxl111sf-demod.c | 0 .../dvb-usb-v2}/mxl111sf-demod.h | 0 .../dvb-usb-v2}/mxl111sf-gpio.c | 0 .../dvb-usb-v2}/mxl111sf-gpio.h | 0 .../dvb-usb => usb/dvb-usb-v2}/mxl111sf-i2c.c | 0 .../dvb-usb => usb/dvb-usb-v2}/mxl111sf-i2c.h | 0 .../dvb-usb => usb/dvb-usb-v2}/mxl111sf-phy.c | 0 .../dvb-usb => usb/dvb-usb-v2}/mxl111sf-phy.h | 0 .../dvb-usb => usb/dvb-usb-v2}/mxl111sf-reg.h | 0 .../dvb-usb-v2}/mxl111sf-tuner.c | 2 + .../dvb-usb-v2}/mxl111sf-tuner.h | 0 trunk/drivers/media/usb/dvb-usb-v2/mxl111sf.c | 1431 ++++++ .../dvb-usb => usb/dvb-usb-v2}/mxl111sf.h | 22 +- .../dvb-usb => usb/dvb-usb-v2}/rtl28xxu.c | 1196 +++-- .../dvb-usb => usb/dvb-usb-v2}/rtl28xxu.h | 29 +- trunk/drivers/media/usb/dvb-usb-v2/usb_urb.c | 358 ++ trunk/drivers/media/usb/dvb-usb/Kconfig | 313 ++ trunk/drivers/media/usb/dvb-usb/Makefile | 83 + .../drivers/media/{dvb => usb}/dvb-usb/a800.c | 0 .../media/{dvb => usb}/dvb-usb/af9005-fe.c | 0 .../{dvb => usb}/dvb-usb/af9005-remote.c | 0 .../{dvb => usb}/dvb-usb/af9005-script.h | 0 .../media/{dvb => usb}/dvb-usb/af9005.c | 0 .../media/{dvb => usb}/dvb-usb/af9005.h | 0 .../media/{dvb => usb}/dvb-usb/az6027.c | 0 .../media/{dvb => usb}/dvb-usb/az6027.h | 0 .../{dvb => usb}/dvb-usb/cinergyT2-core.c | 0 .../media/{dvb => usb}/dvb-usb/cinergyT2-fe.c | 0 .../media/{dvb => usb}/dvb-usb/cinergyT2.h | 0 .../media/{dvb => usb}/dvb-usb/cxusb.c | 0 .../media/{dvb => usb}/dvb-usb/cxusb.h | 0 .../media/{dvb => usb}/dvb-usb/dib0700.h | 0 .../media/{dvb => usb}/dvb-usb/dib0700_core.c | 6 +- .../{dvb => usb}/dvb-usb/dib0700_devices.c | 0 .../media/{dvb => usb}/dvb-usb/dib07x0.h | 0 .../{dvb => usb}/dvb-usb/dibusb-common.c | 0 .../media/{dvb => usb}/dvb-usb/dibusb-mb.c | 0 .../media/{dvb => usb}/dvb-usb/dibusb-mc.c | 0 .../media/{dvb => usb}/dvb-usb/dibusb.h | 0 .../media/{dvb => usb}/dvb-usb/digitv.c | 0 .../media/{dvb => usb}/dvb-usb/digitv.h | 0 .../media/{dvb => usb}/dvb-usb/dtt200u-fe.c | 0 .../media/{dvb => usb}/dvb-usb/dtt200u.c | 0 .../media/{dvb => usb}/dvb-usb/dtt200u.h | 0 .../media/{dvb => usb}/dvb-usb/dtv5100.c | 0 .../media/{dvb => usb}/dvb-usb/dtv5100.h | 0 .../{dvb => usb}/dvb-usb/dvb-usb-common.h | 0 .../media/{dvb => usb}/dvb-usb/dvb-usb-dvb.c | 1 - .../{dvb => usb}/dvb-usb/dvb-usb-firmware.c | 0 .../media/{dvb => usb}/dvb-usb/dvb-usb-i2c.c | 0 .../media/{dvb => usb}/dvb-usb/dvb-usb-init.c | 0 .../{dvb => usb}/dvb-usb/dvb-usb-remote.c | 0 .../media/{dvb => usb}/dvb-usb/dvb-usb-urb.c | 0 .../media/{dvb => usb}/dvb-usb/dvb-usb.h | 2 - .../media/{dvb => usb}/dvb-usb/dw2102.c | 0 .../media/{dvb => usb}/dvb-usb/dw2102.h | 0 .../media/{dvb => usb}/dvb-usb/friio-fe.c | 0 .../media/{dvb => usb}/dvb-usb/friio.c | 0 .../media/{dvb => usb}/dvb-usb/friio.h | 0 .../media/{dvb => usb}/dvb-usb/gp8psk-fe.c | 0 .../media/{dvb => usb}/dvb-usb/gp8psk.c | 0 .../media/{dvb => usb}/dvb-usb/gp8psk.h | 0 .../media/{dvb => usb}/dvb-usb/m920x.c | 0 .../media/{dvb => usb}/dvb-usb/m920x.h | 0 .../media/{dvb => usb}/dvb-usb/nova-t-usb2.c | 0 .../media/{dvb => usb}/dvb-usb/opera1.c | 0 .../media/{dvb => usb}/dvb-usb/pctv452e.c | 7 +- .../{dvb => usb}/dvb-usb/technisat-usb2.c | 0 .../media/{dvb => usb}/dvb-usb/ttusb2.c | 2 +- .../media/{dvb => usb}/dvb-usb/ttusb2.h | 0 .../media/{dvb => usb}/dvb-usb/umt-010.c | 0 .../media/{dvb => usb}/dvb-usb/usb-urb.c | 0 .../media/{dvb => usb}/dvb-usb/vp702x-fe.c | 0 .../media/{dvb => usb}/dvb-usb/vp702x.c | 0 .../media/{dvb => usb}/dvb-usb/vp702x.h | 0 .../media/{dvb => usb}/dvb-usb/vp7045-fe.c | 0 .../media/{dvb => usb}/dvb-usb/vp7045.c | 0 .../media/{dvb => usb}/dvb-usb/vp7045.h | 0 .../media/{video => usb}/em28xx/Kconfig | 28 +- .../media/{video => usb}/em28xx/Makefile | 10 +- .../{video => usb}/em28xx/em28xx-audio.c | 1 - .../{video => usb}/em28xx/em28xx-cards.c | 22 +- .../media/{video => usb}/em28xx/em28xx-core.c | 4 - .../media/{video => usb}/em28xx/em28xx-dvb.c | 60 +- .../media/{video => usb}/em28xx/em28xx-i2c.c | 0 .../{video => usb}/em28xx/em28xx-input.c | 0 .../media/{video => usb}/em28xx/em28xx-reg.h | 0 .../media/{video => usb}/em28xx/em28xx-vbi.c | 0 .../{video => usb}/em28xx/em28xx-video.c | 56 +- .../media/{video => usb}/em28xx/em28xx.h | 0 .../media/{video => usb}/gspca/Kconfig | 6 +- .../media/{video => usb}/gspca/Makefile | 0 .../{video => usb}/gspca/autogain_functions.c | 0 .../{video => usb}/gspca/autogain_functions.h | 0 .../drivers/media/{video => usb}/gspca/benq.c | 0 .../media/{video => usb}/gspca/conex.c | 0 .../media/{video => usb}/gspca/cpia1.c | 2 +- .../media/{video => usb}/gspca/etoms.c | 0 .../media/{video => usb}/gspca/finepix.c | 18 +- .../media/{video => usb}/gspca/gl860/Kconfig | 0 .../media/{video => usb}/gspca/gl860/Makefile | 2 +- .../{video => usb}/gspca/gl860/gl860-mi1320.c | 0 .../{video => usb}/gspca/gl860/gl860-mi2020.c | 0 .../{video => usb}/gspca/gl860/gl860-ov2640.c | 0 .../{video => usb}/gspca/gl860/gl860-ov9655.c | 0 .../media/{video => usb}/gspca/gl860/gl860.c | 0 .../media/{video => usb}/gspca/gl860/gl860.h | 0 .../media/{video => usb}/gspca/gspca.c | 14 +- .../media/{video => usb}/gspca/gspca.h | 8 +- .../media/{video => usb}/gspca/jeilinj.c | 2 +- .../media/{video => usb}/gspca/jl2005bcd.c | 18 +- .../drivers/media/{video => usb}/gspca/jpeg.h | 0 .../media/{video => usb}/gspca/kinect.c | 0 .../media/{video => usb}/gspca/konica.c | 0 .../media/{video => usb}/gspca/m5602/Kconfig | 0 .../media/{video => usb}/gspca/m5602/Makefile | 2 +- .../{video => usb}/gspca/m5602/m5602_bridge.h | 0 .../{video => usb}/gspca/m5602/m5602_core.c | 0 .../gspca/m5602/m5602_mt9m111.c | 0 .../gspca/m5602/m5602_mt9m111.h | 0 .../{video => usb}/gspca/m5602/m5602_ov7660.c | 0 .../{video => usb}/gspca/m5602/m5602_ov7660.h | 0 .../{video => usb}/gspca/m5602/m5602_ov9650.c | 0 .../{video => usb}/gspca/m5602/m5602_ov9650.h | 0 .../{video => usb}/gspca/m5602/m5602_po1030.c | 0 .../{video => usb}/gspca/m5602/m5602_po1030.h | 0 .../{video => usb}/gspca/m5602/m5602_s5k4aa.c | 0 .../{video => usb}/gspca/m5602/m5602_s5k4aa.h | 0 .../{video => usb}/gspca/m5602/m5602_s5k83a.c | 0 .../{video => usb}/gspca/m5602/m5602_s5k83a.h | 0 .../{video => usb}/gspca/m5602/m5602_sensor.h | 0 .../drivers/media/{video => usb}/gspca/mars.c | 0 .../media/{video => usb}/gspca/mr97310a.c | 0 .../media/{video => usb}/gspca/nw80x.c | 0 .../media/{video => usb}/gspca/ov519.c | 18 +- .../media/{video => usb}/gspca/ov534.c | 0 .../media/{video => usb}/gspca/ov534_9.c | 0 .../media/{video => usb}/gspca/pac207.c | 0 .../media/{video => usb}/gspca/pac7302.c | 47 +- .../media/{video => usb}/gspca/pac7311.c | 0 .../media/{video => usb}/gspca/pac_common.h | 0 .../media/{video => usb}/gspca/se401.c | 0 .../media/{video => usb}/gspca/se401.h | 0 .../media/{video => usb}/gspca/sn9c2028.c | 0 .../media/{video => usb}/gspca/sn9c2028.h | 0 .../media/{video => usb}/gspca/sn9c20x.c | 2 + .../media/{video => usb}/gspca/sonixb.c | 0 .../media/{video => usb}/gspca/sonixj.c | 2 + .../media/{video => usb}/gspca/spca1528.c | 0 .../media/{video => usb}/gspca/spca500.c | 0 .../media/{video => usb}/gspca/spca501.c | 0 .../media/{video => usb}/gspca/spca505.c | 0 .../media/{video => usb}/gspca/spca506.c | 0 .../media/{video => usb}/gspca/spca508.c | 0 .../media/{video => usb}/gspca/spca561.c | 0 .../media/{video => usb}/gspca/sq905.c | 19 +- .../media/{video => usb}/gspca/sq905c.c | 25 +- .../media/{video => usb}/gspca/sq930x.c | 10 +- .../media/{video => usb}/gspca/stk014.c | 0 .../media/{video => usb}/gspca/stv0680.c | 0 .../{video => usb}/gspca/stv06xx/Kconfig | 0 .../{video => usb}/gspca/stv06xx/Makefile | 2 +- .../{video => usb}/gspca/stv06xx/stv06xx.c | 0 .../{video => usb}/gspca/stv06xx/stv06xx.h | 0 .../gspca/stv06xx/stv06xx_hdcs.c | 0 .../gspca/stv06xx/stv06xx_hdcs.h | 0 .../gspca/stv06xx/stv06xx_pb0100.c | 0 .../gspca/stv06xx/stv06xx_pb0100.h | 0 .../gspca/stv06xx/stv06xx_sensor.h | 0 .../gspca/stv06xx/stv06xx_st6422.c | 0 .../gspca/stv06xx/stv06xx_st6422.h | 0 .../gspca/stv06xx/stv06xx_vv6410.c | 0 .../gspca/stv06xx/stv06xx_vv6410.h | 0 .../media/{video => usb}/gspca/sunplus.c | 0 .../drivers/media/{video => usb}/gspca/t613.c | 0 .../media/{video => usb}/gspca/topro.c | 2 +- .../media/{video => usb}/gspca/tv8532.c | 0 .../media/{video => usb}/gspca/vc032x.c | 7 +- .../media/{video => usb}/gspca/vicam.c | 17 +- .../media/{video => usb}/gspca/w996Xcf.c | 0 .../media/{video => usb}/gspca/xirlink_cit.c | 4 +- .../media/{video => usb}/gspca/zc3xx-reg.h | 0 .../media/{video => usb}/gspca/zc3xx.c | 17 +- .../media/{video => usb}/hdpvr/Kconfig | 0 .../media/{video => usb}/hdpvr/Makefile | 2 +- .../{video => usb}/hdpvr/hdpvr-control.c | 0 .../media/{video => usb}/hdpvr/hdpvr-core.c | 0 .../media/{video => usb}/hdpvr/hdpvr-i2c.c | 0 .../media/{video => usb}/hdpvr/hdpvr-video.c | 2 +- .../media/{video => usb}/hdpvr/hdpvr.h | 0 .../media/{video => usb}/pvrusb2/Kconfig | 14 +- .../media/{video => usb}/pvrusb2/Makefile | 8 +- .../{video => usb}/pvrusb2/pvrusb2-audio.c | 0 .../{video => usb}/pvrusb2/pvrusb2-audio.h | 0 .../{video => usb}/pvrusb2/pvrusb2-context.c | 0 .../{video => usb}/pvrusb2/pvrusb2-context.h | 0 .../{video => usb}/pvrusb2/pvrusb2-cs53l32a.c | 0 .../{video => usb}/pvrusb2/pvrusb2-cs53l32a.h | 0 .../{video => usb}/pvrusb2/pvrusb2-ctrl.c | 0 .../{video => usb}/pvrusb2/pvrusb2-ctrl.h | 0 .../pvrusb2/pvrusb2-cx2584x-v4l.c | 0 .../pvrusb2/pvrusb2-cx2584x-v4l.h | 0 .../{video => usb}/pvrusb2/pvrusb2-debug.h | 0 .../{video => usb}/pvrusb2/pvrusb2-debugifc.c | 0 .../{video => usb}/pvrusb2/pvrusb2-debugifc.h | 0 .../{video => usb}/pvrusb2/pvrusb2-devattr.c | 17 +- .../{video => usb}/pvrusb2/pvrusb2-devattr.h | 0 .../{video => usb}/pvrusb2/pvrusb2-dvb.c | 0 .../{video => usb}/pvrusb2/pvrusb2-dvb.h | 0 .../{video => usb}/pvrusb2/pvrusb2-eeprom.c | 0 .../{video => usb}/pvrusb2/pvrusb2-eeprom.h | 0 .../{video => usb}/pvrusb2/pvrusb2-encoder.c | 0 .../{video => usb}/pvrusb2/pvrusb2-encoder.h | 0 .../{video => usb}/pvrusb2/pvrusb2-fx2-cmd.h | 0 .../pvrusb2/pvrusb2-hdw-internal.h | 0 .../{video => usb}/pvrusb2/pvrusb2-hdw.c | 0 .../{video => usb}/pvrusb2/pvrusb2-hdw.h | 0 .../{video => usb}/pvrusb2/pvrusb2-i2c-core.c | 0 .../{video => usb}/pvrusb2/pvrusb2-i2c-core.h | 0 .../media/{video => usb}/pvrusb2/pvrusb2-io.c | 0 .../media/{video => usb}/pvrusb2/pvrusb2-io.h | 0 .../{video => usb}/pvrusb2/pvrusb2-ioread.c | 0 .../{video => usb}/pvrusb2/pvrusb2-ioread.h | 0 .../{video => usb}/pvrusb2/pvrusb2-main.c | 0 .../{video => usb}/pvrusb2/pvrusb2-std.c | 0 .../{video => usb}/pvrusb2/pvrusb2-std.h | 0 .../{video => usb}/pvrusb2/pvrusb2-sysfs.c | 0 .../{video => usb}/pvrusb2/pvrusb2-sysfs.h | 0 .../{video => usb}/pvrusb2/pvrusb2-util.h | 0 .../{video => usb}/pvrusb2/pvrusb2-v4l2.c | 4 +- .../{video => usb}/pvrusb2/pvrusb2-v4l2.h | 0 .../pvrusb2/pvrusb2-video-v4l.c | 0 .../pvrusb2/pvrusb2-video-v4l.h | 0 .../{video => usb}/pvrusb2/pvrusb2-wm8775.c | 0 .../{video => usb}/pvrusb2/pvrusb2-wm8775.h | 0 .../media/{video => usb}/pvrusb2/pvrusb2.h | 0 .../drivers/media/{video => usb}/pwc/Kconfig | 0 .../drivers/media/{video => usb}/pwc/Makefile | 2 +- .../media/{video => usb}/pwc/philips.txt | 0 .../media/{video => usb}/pwc/pwc-ctrl.c | 0 .../media/{video => usb}/pwc/pwc-dec1.c | 0 .../media/{video => usb}/pwc/pwc-dec1.h | 0 .../media/{video => usb}/pwc/pwc-dec23.c | 0 .../media/{video => usb}/pwc/pwc-dec23.h | 0 .../drivers/media/{video => usb}/pwc/pwc-if.c | 3 +- .../media/{video => usb}/pwc/pwc-kiara.c | 0 .../media/{video => usb}/pwc/pwc-kiara.h | 0 .../media/{video => usb}/pwc/pwc-misc.c | 0 .../media/{video => usb}/pwc/pwc-nala.h | 0 .../media/{video => usb}/pwc/pwc-timon.c | 0 .../media/{video => usb}/pwc/pwc-timon.h | 0 .../media/{video => usb}/pwc/pwc-uncompress.c | 0 .../media/{video => usb}/pwc/pwc-v4l.c | 0 trunk/drivers/media/{video => usb}/pwc/pwc.h | 0 trunk/drivers/media/usb/s2255/Kconfig | 9 + trunk/drivers/media/usb/s2255/Makefile | 2 + .../media/{video => usb/s2255}/s2255drv.c | 45 +- trunk/drivers/media/usb/siano/Kconfig | 10 + trunk/drivers/media/usb/siano/Makefile | 6 + .../drivers/media/{dvb => usb}/siano/smsusb.c | 0 .../media/{video => usb}/sn9c102/Kconfig | 0 .../media/{video => usb}/sn9c102/Makefile | 0 .../media/{video => usb}/sn9c102/sn9c102.h | 0 .../{video => usb}/sn9c102/sn9c102_config.h | 0 .../{video => usb}/sn9c102/sn9c102_core.c | 0 .../{video => usb}/sn9c102/sn9c102_devtable.h | 0 .../{video => usb}/sn9c102/sn9c102_hv7131d.c | 0 .../{video => usb}/sn9c102/sn9c102_hv7131r.c | 0 .../{video => usb}/sn9c102/sn9c102_mi0343.c | 0 .../{video => usb}/sn9c102/sn9c102_mi0360.c | 0 .../{video => usb}/sn9c102/sn9c102_mt9v111.c | 0 .../{video => usb}/sn9c102/sn9c102_ov7630.c | 0 .../{video => usb}/sn9c102/sn9c102_ov7660.c | 0 .../{video => usb}/sn9c102/sn9c102_pas106b.c | 0 .../sn9c102/sn9c102_pas202bcb.c | 0 .../{video => usb}/sn9c102/sn9c102_sensor.h | 0 .../sn9c102/sn9c102_tas5110c1b.c | 0 .../{video => usb}/sn9c102/sn9c102_tas5110d.c | 0 .../sn9c102/sn9c102_tas5130d1b.c | 0 trunk/drivers/media/usb/stk1160/Kconfig | 20 + trunk/drivers/media/usb/stk1160/Makefile | 11 + .../drivers/media/usb/stk1160/stk1160-ac97.c | 152 + .../drivers/media/usb/stk1160/stk1160-core.c | 430 ++ trunk/drivers/media/usb/stk1160/stk1160-i2c.c | 294 ++ trunk/drivers/media/usb/stk1160/stk1160-reg.h | 93 + trunk/drivers/media/usb/stk1160/stk1160-v4l.c | 739 +++ .../drivers/media/usb/stk1160/stk1160-video.c | 522 ++ trunk/drivers/media/usb/stk1160/stk1160.h | 208 + trunk/drivers/media/usb/stkwebcam/Kconfig | 13 + trunk/drivers/media/usb/stkwebcam/Makefile | 4 + .../{video => usb/stkwebcam}/stk-sensor.c | 0 .../{video => usb/stkwebcam}/stk-webcam.c | 0 .../{video => usb/stkwebcam}/stk-webcam.h | 0 .../media/{video => usb}/tlg2300/Kconfig | 0 trunk/drivers/media/usb/tlg2300/Makefile | 9 + .../media/{video => usb}/tlg2300/pd-alsa.c | 4 + .../media/{video => usb}/tlg2300/pd-common.h | 0 .../media/{video => usb}/tlg2300/pd-dvb.c | 0 .../media/{video => usb}/tlg2300/pd-main.c | 0 .../media/{video => usb}/tlg2300/pd-radio.c | 2 +- .../media/{video => usb}/tlg2300/pd-video.c | 2 +- .../media/{video => usb}/tlg2300/vendorcmds.h | 0 .../media/{video => usb}/tm6000/Kconfig | 0 .../media/{video => usb}/tm6000/Makefile | 8 +- .../media/{video => usb}/tm6000/tm6000-alsa.c | 3 +- .../{video => usb}/tm6000/tm6000-cards.c | 0 .../media/{video => usb}/tm6000/tm6000-core.c | 0 .../media/{video => usb}/tm6000/tm6000-dvb.c | 0 .../media/{video => usb}/tm6000/tm6000-i2c.c | 0 .../{video => usb}/tm6000/tm6000-input.c | 3 +- .../media/{video => usb}/tm6000/tm6000-regs.h | 0 .../media/{video => usb}/tm6000/tm6000-stds.c | 0 .../{video => usb}/tm6000/tm6000-usb-isoc.h | 0 .../{video => usb}/tm6000/tm6000-video.c | 54 +- .../media/{video => usb}/tm6000/tm6000.h | 0 .../media/{dvb => usb}/ttusb-budget/Kconfig | 14 +- trunk/drivers/media/usb/ttusb-budget/Makefile | 3 + .../ttusb-budget/dvb-ttusb-budget.c | 0 .../media/{dvb => usb}/ttusb-dec/Kconfig | 0 .../media/{dvb => usb}/ttusb-dec/Makefile | 2 +- .../media/{dvb => usb}/ttusb-dec/ttusb_dec.c | 0 .../media/{dvb => usb}/ttusb-dec/ttusbdecfe.c | 0 .../media/{dvb => usb}/ttusb-dec/ttusbdecfe.h | 0 .../media/{video => usb}/usbvision/Kconfig | 2 +- .../media/{video => usb}/usbvision/Makefile | 4 +- .../usbvision/usbvision-cards.c | 0 .../usbvision/usbvision-cards.h | 0 .../{video => usb}/usbvision/usbvision-core.c | 0 .../{video => usb}/usbvision/usbvision-i2c.c | 0 .../usbvision/usbvision-video.c | 44 +- .../{video => usb}/usbvision/usbvision.h | 0 .../drivers/media/{video => usb}/uvc/Kconfig | 0 .../drivers/media/{video => usb}/uvc/Makefile | 0 .../media/{video => usb}/uvc/uvc_ctrl.c | 0 .../media/{video => usb}/uvc/uvc_debugfs.c | 0 .../media/{video => usb}/uvc/uvc_driver.c | 42 +- .../media/{video => usb}/uvc/uvc_entity.c | 0 .../media/{video => usb}/uvc/uvc_isight.c | 0 .../media/{video => usb}/uvc/uvc_queue.c | 0 .../media/{video => usb}/uvc/uvc_status.c | 0 .../media/{video => usb}/uvc/uvc_v4l2.c | 0 .../media/{video => usb}/uvc/uvc_video.c | 30 +- .../media/{video => usb}/uvc/uvcvideo.h | 9 + trunk/drivers/media/usb/zr364xx/Kconfig | 14 + trunk/drivers/media/usb/zr364xx/Makefile | 2 + .../media/{video => usb/zr364xx}/zr364xx.c | 0 trunk/drivers/media/v4l2-core/Kconfig | 81 + trunk/drivers/media/v4l2-core/Makefile | 35 + .../media/{video => v4l2-core}/tuner-core.c | 0 .../media/{video => v4l2-core}/v4l2-common.c | 362 +- .../v4l2-compat-ioctl32.c | 65 +- .../media/{video => v4l2-core}/v4l2-ctrls.c | 201 +- .../media/{video => v4l2-core}/v4l2-dev.c | 277 +- .../media/{video => v4l2-core}/v4l2-device.c | 2 +- .../media/{video => v4l2-core}/v4l2-event.c | 4 +- .../media/{video => v4l2-core}/v4l2-fh.c | 0 .../{video => v4l2-core}/v4l2-int-device.c | 0 .../media/{video => v4l2-core}/v4l2-ioctl.c | 242 +- .../media/{video => v4l2-core}/v4l2-mem2mem.c | 6 +- .../media/{video => v4l2-core}/v4l2-subdev.c | 6 + .../{video => v4l2-core}/videobuf-core.c | 0 .../videobuf-dma-contig.c | 0 .../{video => v4l2-core}/videobuf-dma-sg.c | 0 .../media/{video => v4l2-core}/videobuf-dvb.c | 11 +- .../{video => v4l2-core}/videobuf-vmalloc.c | 0 .../{video => v4l2-core}/videobuf2-core.c | 44 +- .../videobuf2-dma-contig.c | 0 .../{video => v4l2-core}/videobuf2-dma-sg.c | 0 .../{video => v4l2-core}/videobuf2-memops.c | 0 .../{video => v4l2-core}/videobuf2-vmalloc.c | 1 + trunk/drivers/media/video/Kconfig | 1263 ----- trunk/drivers/media/video/Makefile | 218 - trunk/drivers/media/video/bt8xx/Kconfig | 27 - trunk/drivers/media/video/bt8xx/Makefile | 13 - trunk/drivers/media/video/cx23885/Kconfig | 46 - trunk/drivers/media/video/tlg2300/Makefile | 9 - trunk/drivers/mfd/88pm860x-core.c | 22 +- .../ethernet/mellanox/mlx4/resource_tracker.c | 2 + trunk/drivers/net/xen-netback/netback.c | 1 + trunk/drivers/net/xen-netfront.c | 1 + trunk/drivers/pinctrl/Kconfig | 22 + trunk/drivers/pinctrl/Makefile | 5 + trunk/drivers/pinctrl/pinctrl-armada-370.c | 421 ++ trunk/drivers/pinctrl/pinctrl-armada-xp.c | 468 ++ trunk/drivers/pinctrl/pinctrl-dove.c | 620 +++ trunk/drivers/pinctrl/pinctrl-kirkwood.c | 472 ++ trunk/drivers/pinctrl/pinctrl-mvebu.c | 754 +++ trunk/drivers/pinctrl/pinctrl-mvebu.h | 192 + trunk/drivers/power/88pm860x_battery.c | 1041 ++++ trunk/drivers/power/88pm860x_charger.c | 746 +++ trunk/drivers/power/Kconfig | 20 +- trunk/drivers/power/Makefile | 3 + trunk/drivers/power/ab8500_btemp.c | 1 + trunk/drivers/power/ab8500_charger.c | 1 + trunk/drivers/power/ab8500_fg.c | 1 + trunk/drivers/power/bq27x00_battery.c | 3 +- trunk/drivers/power/charger-manager.c | 434 +- trunk/drivers/power/da9030_battery.c | 4 +- trunk/drivers/power/da9052-battery.c | 11 +- trunk/drivers/power/ds2781_battery.c | 28 +- trunk/drivers/power/lp8727_charger.c | 360 +- trunk/drivers/power/lp8788-charger.c | 795 ++++ trunk/drivers/power/pda_power.c | 13 +- trunk/drivers/power/power_supply_sysfs.c | 3 + trunk/drivers/power/sbs-battery.c | 10 + trunk/drivers/power/smb347-charger.c | 97 +- trunk/drivers/power/twl4030_charger.c | 25 +- trunk/drivers/power/wm97xx_battery.c | 4 +- trunk/drivers/remoteproc/remoteproc_virtio.c | 5 +- trunk/drivers/rpmsg/Kconfig | 1 - trunk/drivers/s390/kvm/kvm_virtio.c | 5 +- trunk/drivers/spi/spi-omap-100k.c | 2 - trunk/drivers/spi/spi-omap2-mcspi.c | 1 - trunk/drivers/staging/media/Kconfig | 2 - trunk/drivers/staging/media/Makefile | 1 - trunk/drivers/staging/media/as102/Makefile | 2 +- trunk/drivers/staging/media/cxd2099/Makefile | 6 +- trunk/drivers/staging/media/cxd2099/cxd2099.c | 13 +- .../staging/media/dt3155v4l/dt3155v4l.c | 29 +- trunk/drivers/staging/media/easycap/Kconfig | 30 - trunk/drivers/staging/media/easycap/Makefile | 10 - trunk/drivers/staging/media/easycap/README | 141 - trunk/drivers/staging/media/easycap/easycap.h | 567 --- .../staging/media/easycap/easycap_ioctl.c | 2443 ---------- .../staging/media/easycap/easycap_low.c | 968 ---- .../staging/media/easycap/easycap_main.c | 4239 ----------------- .../staging/media/easycap/easycap_settings.c | 696 --- .../staging/media/easycap/easycap_sound.c | 750 --- .../staging/media/easycap/easycap_testcard.c | 155 - trunk/drivers/staging/media/go7007/Makefile | 6 +- .../staging/media/go7007/go7007-v4l2.c | 4 +- trunk/drivers/staging/media/lirc/Kconfig | 6 - trunk/drivers/staging/media/lirc/Makefile | 1 - .../drivers/staging/media/lirc/lirc_ene0100.h | 169 - .../staging/media/lirc/lirc_igorplugusb.c | 4 +- .../drivers/staging/media/lirc/lirc_ttusbir.c | 376 -- trunk/drivers/staging/media/lirc/lirc_zilog.c | 3 +- trunk/drivers/virtio/Kconfig | 17 +- trunk/drivers/virtio/Makefile | 3 +- trunk/drivers/virtio/virtio.c | 2 +- trunk/drivers/virtio/virtio_mmio.c | 29 +- trunk/drivers/virtio/virtio_pci.c | 68 +- trunk/drivers/virtio/virtio_ring.c | 14 +- trunk/drivers/watchdog/m54xx_wdt.c | 21 +- trunk/drivers/xen/Makefile | 14 +- trunk/drivers/xen/events.c | 14 +- trunk/fs/pstore/Kconfig | 1 + trunk/fs/pstore/ftrace.c | 96 +- trunk/fs/pstore/internal.h | 6 + trunk/fs/pstore/platform.c | 9 +- trunk/fs/pstore/ram.c | 28 +- trunk/include/asm-generic/unistd.h | 4 - trunk/include/linux/Kbuild | 10 +- trunk/include/linux/dvb/frontend.h | 61 +- trunk/include/linux/dvb/version.h | 2 +- trunk/include/linux/mfd/88pm860x.h | 84 +- trunk/include/linux/omap3isp.h | 6 +- trunk/include/linux/platform_data/lp8727.h | 51 +- trunk/include/linux/power/charger-manager.h | 47 +- trunk/include/linux/power_supply.h | 5 + trunk/include/linux/pstore.h | 8 - trunk/include/linux/slab.h | 6 +- trunk/include/linux/slab_def.h | 27 +- trunk/include/linux/slob_def.h | 6 +- trunk/include/linux/v4l2-common.h | 8 +- trunk/include/linux/v4l2-controls.h | 761 +++ trunk/include/linux/v4l2-subdev.h | 10 + trunk/include/linux/videodev2.h | 726 +-- trunk/include/linux/virtio.h | 2 + trunk/include/linux/virtio_config.h | 23 + trunk/include/linux/virtio_ring.h | 3 +- trunk/include/media/ad9389b.h | 49 + trunk/include/media/adv7604.h | 153 + trunk/include/media/ir-rx51.h | 10 + trunk/include/media/mt9v032.h | 3 + trunk/include/media/omap3isp.h | 14 +- trunk/include/media/s5k4ecgx.h | 37 + trunk/include/media/s5p_fimc.h | 18 + trunk/include/media/saa7146.h | 4 - trunk/include/media/soc_camera.h | 16 +- trunk/include/media/v4l2-chip-ident.h | 6 + trunk/include/media/v4l2-common.h | 17 +- trunk/include/media/v4l2-ctrls.h | 43 +- trunk/include/media/v4l2-dev.h | 12 +- trunk/include/media/v4l2-event.h | 4 +- trunk/include/media/v4l2-ioctl.h | 26 +- trunk/include/media/v4l2-mem2mem.h | 4 +- trunk/include/media/v4l2-subdev.h | 8 +- trunk/include/media/videobuf-dvb.h | 4 +- trunk/include/media/videobuf2-core.h | 2 +- trunk/include/sound/tea575x-tuner.h | 4 + trunk/include/xen/events.h | 2 + trunk/include/xen/interface/features.h | 3 + trunk/include/xen/interface/io/protocols.h | 3 + trunk/include/xen/interface/memory.h | 12 +- trunk/include/xen/interface/physdev.h | 2 +- trunk/include/xen/interface/version.h | 2 +- trunk/include/xen/xen.h | 4 +- trunk/kernel/trace/trace.c | 8 +- trunk/kernel/trace/trace_functions.c | 15 +- trunk/lib/dma-debug.c | 5 - trunk/mm/slab.c | 348 +- trunk/mm/slab.h | 19 +- trunk/mm/slab_common.c | 159 +- trunk/mm/slob.c | 91 +- trunk/mm/slub.c | 208 +- trunk/mm/util.c | 35 +- trunk/security/integrity/ima/ima.h | 6 +- trunk/security/integrity/ima/ima_appraise.c | 2 +- trunk/sound/i2c/other/tea575x-tuner.c | 205 +- trunk/sound/pci/Kconfig | 4 +- trunk/tools/lguest/lguest.c | 1 + trunk/tools/virtio/virtio-trace/Makefile | 13 + trunk/tools/virtio/virtio-trace/README | 118 + .../virtio/virtio-trace/trace-agent-ctl.c | 137 + .../virtio/virtio-trace/trace-agent-rw.c | 192 + trunk/tools/virtio/virtio-trace/trace-agent.c | 270 ++ trunk/tools/virtio/virtio-trace/trace-agent.h | 75 + 2078 files changed, 57608 insertions(+), 31741 deletions(-) create mode 100644 trunk/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml create mode 100644 trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml create mode 100644 trunk/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt create mode 100644 trunk/Documentation/devicetree/bindings/arm/xen.txt create mode 100644 trunk/Documentation/devicetree/bindings/crypto/mv_cesa.txt create mode 100644 trunk/Documentation/devicetree/bindings/gpio/gpio-fan.txt create mode 100644 trunk/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt create mode 100644 trunk/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt create mode 100644 trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi create mode 100644 trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi create mode 100644 trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi create mode 100644 trunk/arch/arm/boot/dts/dove-cm-a510.dts create mode 100644 trunk/arch/arm/boot/dts/dove-cubox.dts create mode 100644 trunk/arch/arm/boot/dts/dove-dove-db.dts create mode 100644 trunk/arch/arm/boot/dts/dove.dtsi create mode 100644 trunk/arch/arm/boot/dts/integrator.dtsi create mode 100644 trunk/arch/arm/boot/dts/integratorap.dts create mode 100644 trunk/arch/arm/boot/dts/integratorcp.dts create mode 100644 trunk/arch/arm/boot/dts/kirkwood-dockstar.dts create mode 100644 trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts create mode 100644 trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts create mode 100644 trunk/arch/arm/boot/dts/xenvm-4.2.dts delete mode 100644 trunk/arch/arm/include/asm/current.h delete mode 100644 trunk/arch/arm/include/asm/exec.h delete mode 100644 trunk/arch/arm/include/asm/hardware/linkup-l1110.h create mode 100644 trunk/arch/arm/include/asm/hypervisor.h delete mode 100644 trunk/arch/arm/include/asm/ipcbuf.h delete mode 100644 trunk/arch/arm/include/asm/msgbuf.h create mode 100644 trunk/arch/arm/include/asm/opcodes-virt.h delete mode 100644 trunk/arch/arm/include/asm/param.h delete mode 100644 trunk/arch/arm/include/asm/parport.h delete mode 100644 trunk/arch/arm/include/asm/segment.h delete mode 100644 trunk/arch/arm/include/asm/sembuf.h delete mode 100644 trunk/arch/arm/include/asm/serial.h delete mode 100644 trunk/arch/arm/include/asm/shmbuf.h delete mode 100644 trunk/arch/arm/include/asm/socket.h delete mode 100644 trunk/arch/arm/include/asm/sockios.h create mode 100644 trunk/arch/arm/include/asm/sync_bitops.h delete mode 100644 trunk/arch/arm/include/asm/termbits.h delete mode 100644 trunk/arch/arm/include/asm/termios.h delete mode 100644 trunk/arch/arm/include/asm/types.h delete mode 100644 trunk/arch/arm/include/asm/unaligned.h create mode 100644 trunk/arch/arm/include/asm/xen/events.h create mode 100644 trunk/arch/arm/include/asm/xen/hypercall.h create mode 100644 trunk/arch/arm/include/asm/xen/hypervisor.h create mode 100644 trunk/arch/arm/include/asm/xen/interface.h create mode 100644 trunk/arch/arm/include/asm/xen/page.h rename trunk/arch/arm/kernel/{compat.c => atags_compat.c} (99%) create mode 100644 trunk/arch/arm/kernel/atags_parse.c rename trunk/arch/arm/kernel/{atags.c => atags_proc.c} (100%) delete mode 100644 trunk/arch/arm/kernel/compat.h create mode 100644 trunk/arch/arm/mach-kirkwood/board-dockstar.c create mode 100644 trunk/arch/arm/mach-kirkwood/board-iomega_ix2_200.c create mode 100644 trunk/arch/arm/mach-kirkwood/board-km_kirkwood.c create mode 100644 trunk/arch/arm/mach-mvebu/addr-map.c create mode 100644 trunk/arch/arm/mach-mvebu/include/mach/gpio.h create mode 100644 trunk/arch/arm/mach-omap2/pmu.c delete mode 100644 trunk/arch/arm/mach-sa1100/include/mach/SA-1111.h delete mode 100644 trunk/arch/arm/mach-sa1100/include/mach/lart.h delete mode 100644 trunk/arch/arm/mach-tegra/include/mach/smmu.h create mode 100644 trunk/arch/arm/plat-mxc/devices/platform-imx27-coda.c create mode 100644 trunk/arch/arm/xen/Makefile create mode 100644 trunk/arch/arm/xen/enlighten.c create mode 100644 trunk/arch/arm/xen/grant-table.c create mode 100644 trunk/arch/arm/xen/hypercall.S delete mode 100644 trunk/arch/c6x/include/asm/signal.h delete mode 100644 trunk/arch/microblaze/include/asm/clinkage.h create mode 100644 trunk/drivers/gpio/gpio-mvebu.c create mode 100644 trunk/drivers/media/common/b2c2/Kconfig create mode 100644 trunk/drivers/media/common/b2c2/Makefile rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-common.h (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-eeprom.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-fe-tuner.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-hw-filter.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-i2c.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-misc.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-reg.h (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop-sram.c (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop.c (99%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop.h (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop_ibi_value_be.h (100%) rename trunk/drivers/media/{dvb => common}/b2c2/flexcop_ibi_value_le.h (100%) create mode 100644 trunk/drivers/media/common/saa7146/Kconfig create mode 100644 trunk/drivers/media/common/saa7146/Makefile rename trunk/drivers/media/common/{ => saa7146}/saa7146_core.c (98%) rename trunk/drivers/media/common/{ => saa7146}/saa7146_fops.c (94%) rename trunk/drivers/media/common/{ => saa7146}/saa7146_hlp.c (100%) rename trunk/drivers/media/common/{ => saa7146}/saa7146_i2c.c (100%) rename trunk/drivers/media/common/{ => saa7146}/saa7146_vbi.c (100%) rename trunk/drivers/media/common/{ => saa7146}/saa7146_video.c (99%) create mode 100644 trunk/drivers/media/common/siano/Kconfig rename trunk/drivers/media/{dvb => common}/siano/Makefile (57%) rename trunk/drivers/media/{dvb => common}/siano/sms-cards.c (100%) rename trunk/drivers/media/{dvb => common}/siano/sms-cards.h (100%) rename trunk/drivers/media/{dvb => common}/siano/smscoreapi.c (100%) rename trunk/drivers/media/{dvb => common}/siano/smscoreapi.h (100%) rename trunk/drivers/media/{dvb => common}/siano/smsdvb.c (100%) rename trunk/drivers/media/{dvb => common}/siano/smsendian.c (100%) rename trunk/drivers/media/{dvb => common}/siano/smsendian.h (100%) rename trunk/drivers/media/{dvb => common}/siano/smsir.c (100%) rename trunk/drivers/media/{dvb => common}/siano/smsir.h (100%) create mode 100644 trunk/drivers/media/dvb-core/Kconfig rename trunk/drivers/media/{dvb => }/dvb-core/Makefile (100%) rename trunk/drivers/media/{dvb => }/dvb-core/demux.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dmxdev.c (99%) rename trunk/drivers/media/{dvb => }/dvb-core/dmxdev.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => dvb-core}/dvb-usb-ids.h (99%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_ca_en50221.c (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_ca_en50221.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_demux.c (98%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_demux.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_filter.c (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_filter.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_frontend.c (89%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_frontend.h (98%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_math.c (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_math.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_net.c (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_net.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_ringbuffer.c (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvb_ringbuffer.h (100%) rename trunk/drivers/media/{dvb => }/dvb-core/dvbdev.c (99%) rename trunk/drivers/media/{dvb => }/dvb-core/dvbdev.h (80%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/Kconfig (83%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/Makefile (92%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/a8293.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/a8293.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9013.c (86%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9013.h (97%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9013_priv.h (98%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9033.c (87%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9033.h (94%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/af9033_priv.h (92%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/atbm8830.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/atbm8830.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/atbm8830_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/au8522.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/au8522_common.c (93%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/au8522_decoder.c (98%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/au8522_dig.c (95%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/au8522_priv.h (93%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bcm3510.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bcm3510.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bcm3510_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bsbe1-d01a.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bsbe1.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/bsru6.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx22700.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx22700.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx22702.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx22702.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24110.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24110.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24113.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24113.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24116.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24116.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24123.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cx24123.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r.h (92%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r_c.c (89%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r_core.c (70%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r_priv.h (89%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r_t.c (91%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/cxd2820r_t2.c (91%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib0070.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib0070.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib0090.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib0090.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib3000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib3000mb.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib3000mb_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib3000mc.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib3000mc.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib7000m.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib7000m.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib7000p.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib7000p.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib8000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib8000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib9000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dib9000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dibx000_common.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dibx000_common.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxd.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxd_firm.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxd_firm.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxd_hard.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxd_map_firm.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxk.h (95%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxk_hard.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxk_hard.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/drxk_map.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ds3000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ds3000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dvb-pll.c (96%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dvb-pll.h (97%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dvb_dummy_fe.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/dvb_dummy_fe.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ec100.c (87%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ec100.h (95%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/eds1547.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/hd29l2.c (89%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/hd29l2.h (96%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/hd29l2_priv.h (96%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6405.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6405.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6421.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6421.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6423.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/isl6423.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/it913x-fe-priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/it913x-fe.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/it913x-fe.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/itd1000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/itd1000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/itd1000_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ix2505v.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ix2505v.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/l64781.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/l64781.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lg2160.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lg2160.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgdt3305.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgdt3305.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgdt330x.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgdt330x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgdt330x_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgs8gl5.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgs8gl5.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgs8gxx.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgs8gxx.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lgs8gxx_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lnbh24.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lnbp21.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lnbp21.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lnbp22.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/lnbp22.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/m88rs2000.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/m88rs2000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mb86a16.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mb86a16.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mb86a16_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mb86a20s.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mb86a20s.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt312.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt312.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt312_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt352.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt352.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/mt352_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/nxt200x.c (93%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/nxt200x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/nxt6000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/nxt6000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/nxt6000_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/or51132.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/or51132.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/or51211.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/or51211.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2830.c (88%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2830.h (90%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2830_priv.h (75%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2832.c (77%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2832.h (84%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/rtl2832_priv.h (55%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1409.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1409.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1411.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1411.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1420.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1420.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1420_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1432.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s5h1432.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s921.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/s921.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/si21xx.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/si21xx.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/sp8870.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/sp8870.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/sp887x.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/sp887x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_algo.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_cfg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_drv.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_drv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb0899_reg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6000.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6000.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6100.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6100.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6100_cfg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stb6100_proc.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0288.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0288.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0297.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0297.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0299.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0299.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0367.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0367.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0367_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0367_regs.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900_core.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900_init.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900_reg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv0900_sw.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv090x.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv090x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv090x_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv090x_reg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110x.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110x_priv.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/stv6110x_reg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10021.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10023.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda1002x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10048.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10048.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda1004x.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda1004x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10071.c (99%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10071.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10071_priv.h (98%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10086.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda10086.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda18271c2dd.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda18271c2dd.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda18271c2dd_maps.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda665x.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda665x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda8083.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda8083.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda8261.c (86%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda8261.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda8261_cfg.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda826x.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tda826x.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tdhd1.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tua6100.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/tua6100.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ves1820.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ves1820.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ves1x93.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/ves1x93.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/z0194a.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10036.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10036.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10039.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10039.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10353.c (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10353.h (100%) rename trunk/drivers/media/{dvb/frontends => dvb-frontends}/zl10353_priv.h (100%) delete mode 100644 trunk/drivers/media/dvb/Kconfig delete mode 100644 trunk/drivers/media/dvb/Makefile delete mode 100644 trunk/drivers/media/dvb/b2c2/Kconfig delete mode 100644 trunk/drivers/media/dvb/b2c2/Makefile delete mode 100644 trunk/drivers/media/dvb/bt8xx/Kconfig delete mode 100644 trunk/drivers/media/dvb/bt8xx/Makefile delete mode 100644 trunk/drivers/media/dvb/dm1105/Makefile delete mode 100644 trunk/drivers/media/dvb/dvb-usb/Kconfig delete mode 100644 trunk/drivers/media/dvb/dvb-usb/Makefile delete mode 100644 trunk/drivers/media/dvb/dvb-usb/af9015.c delete mode 100644 trunk/drivers/media/dvb/dvb-usb/it913x.c delete mode 100644 trunk/drivers/media/dvb/dvb-usb/mxl111sf.c delete mode 100644 trunk/drivers/media/dvb/frontends/ec100_priv.h delete mode 100644 trunk/drivers/media/dvb/ngene/Kconfig delete mode 100644 trunk/drivers/media/dvb/pluto2/Makefile delete mode 100644 trunk/drivers/media/dvb/siano/Kconfig delete mode 100644 trunk/drivers/media/dvb/ttusb-budget/Makefile rename trunk/drivers/media/{dvb => }/firewire/Kconfig (100%) rename trunk/drivers/media/{dvb => }/firewire/Makefile (51%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-avc.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-ci.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-dvb.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-fe.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-fw.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv-rc.c (100%) rename trunk/drivers/media/{dvb => }/firewire/firedtv.h (100%) create mode 100644 trunk/drivers/media/i2c/Kconfig create mode 100644 trunk/drivers/media/i2c/Makefile create mode 100644 trunk/drivers/media/i2c/ad9389b.c rename trunk/drivers/media/{video => i2c}/adp1653.c (99%) rename trunk/drivers/media/{video => i2c}/adv7170.c (100%) rename trunk/drivers/media/{video => i2c}/adv7175.c (100%) rename trunk/drivers/media/{video => i2c}/adv7180.c (100%) rename trunk/drivers/media/{video => i2c}/adv7183.c (100%) rename trunk/drivers/media/{video => i2c}/adv7183_regs.h (100%) rename trunk/drivers/media/{video => i2c}/adv7343.c (100%) rename trunk/drivers/media/{video => i2c}/adv7343_regs.h (100%) rename trunk/drivers/media/{video => i2c}/adv7393.c (100%) rename trunk/drivers/media/{video => i2c}/adv7393_regs.h (100%) create mode 100644 trunk/drivers/media/i2c/adv7604.c rename trunk/drivers/media/{video => i2c}/ak881x.c (100%) rename trunk/drivers/media/{video => i2c}/aptina-pll.c (100%) rename trunk/drivers/media/{video => i2c}/aptina-pll.h (100%) rename trunk/drivers/media/{video => i2c}/as3645a.c (99%) rename trunk/drivers/media/{video => i2c}/bt819.c (100%) rename trunk/drivers/media/{video => i2c}/bt856.c (100%) rename trunk/drivers/media/{video => i2c}/bt866.c (100%) rename trunk/drivers/media/{video => i2c}/btcx-risc.c (100%) rename trunk/drivers/media/{video => i2c}/btcx-risc.h (100%) rename trunk/drivers/media/{video => i2c}/cs5345.c (100%) rename trunk/drivers/media/{video => i2c}/cs53l32a.c (100%) rename trunk/drivers/media/{video => i2c}/cx2341x.c (100%) rename trunk/drivers/media/{video => i2c}/cx25840/Kconfig (100%) rename trunk/drivers/media/{video => i2c}/cx25840/Makefile (80%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-audio.c (100%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-core.c (100%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-core.h (100%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-firmware.c (92%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-ir.c (100%) rename trunk/drivers/media/{video => i2c}/cx25840/cx25840-vbi.c (98%) rename trunk/drivers/media/{video => i2c}/ir-kbd-i2c.c (100%) rename trunk/drivers/media/{video => i2c}/ks0127.c (99%) rename trunk/drivers/media/{video => i2c}/ks0127.h (100%) rename trunk/drivers/media/{video => i2c}/m52790.c (100%) rename trunk/drivers/media/{video => i2c}/m5mols/Kconfig (100%) rename trunk/drivers/media/{video => i2c}/m5mols/Makefile (100%) rename trunk/drivers/media/{video => i2c}/m5mols/m5mols.h (98%) rename trunk/drivers/media/{video => i2c}/m5mols/m5mols_capture.c (100%) rename trunk/drivers/media/{video => i2c}/m5mols/m5mols_controls.c (99%) rename trunk/drivers/media/{video => i2c}/m5mols/m5mols_core.c (95%) rename trunk/drivers/media/{video => i2c}/m5mols/m5mols_reg.h (100%) rename trunk/drivers/media/{video => i2c}/msp3400-driver.c (98%) rename trunk/drivers/media/{video => i2c}/msp3400-driver.h (100%) rename trunk/drivers/media/{video => i2c}/msp3400-kthreads.c (100%) rename trunk/drivers/media/{video => i2c}/mt9m032.c (99%) rename trunk/drivers/media/{video => i2c}/mt9p031.c (98%) rename trunk/drivers/media/{video => i2c}/mt9t001.c (100%) rename trunk/drivers/media/{video => i2c}/mt9v011.c (100%) rename trunk/drivers/media/{video => i2c}/mt9v032.c (88%) rename trunk/drivers/media/{video => i2c}/noon010pc30.c (100%) rename trunk/drivers/media/{video => i2c}/ov7670.c (100%) create mode 100644 trunk/drivers/media/i2c/s5k4ecgx.c rename trunk/drivers/media/{video => i2c}/s5k6aa.c (99%) rename trunk/drivers/media/{video => i2c}/saa6588.c (100%) rename trunk/drivers/media/{video => i2c}/saa7110.c (100%) rename trunk/drivers/media/{video => i2c}/saa7115.c (99%) rename trunk/drivers/media/{video => i2c}/saa711x_regs.h (100%) rename trunk/drivers/media/{video => i2c}/saa7127.c (99%) rename trunk/drivers/media/{video => i2c}/saa717x.c (100%) rename trunk/drivers/media/{video => i2c}/saa7185.c (100%) rename trunk/drivers/media/{video => i2c}/saa7191.c (100%) rename trunk/drivers/media/{video => i2c}/saa7191.h (100%) rename trunk/drivers/media/{video => i2c}/smiapp-pll.c (99%) rename trunk/drivers/media/{video => i2c}/smiapp-pll.h (98%) rename trunk/drivers/media/{video => i2c}/smiapp/Kconfig (100%) rename trunk/drivers/media/{video => i2c}/smiapp/Makefile (78%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-core.c (98%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-limits.c (99%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-limits.h (99%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-quirk.c (94%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-quirk.h (98%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-reg-defs.h (99%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-reg.h (98%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-regs.c (99%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp-regs.h (100%) rename trunk/drivers/media/{video => i2c}/smiapp/smiapp.h (99%) create mode 100644 trunk/drivers/media/i2c/soc_camera/Kconfig create mode 100644 trunk/drivers/media/i2c/soc_camera/Makefile rename trunk/drivers/media/{video => i2c/soc_camera}/imx074.c (95%) rename trunk/drivers/media/{video => i2c/soc_camera}/mt9m001.c (97%) rename trunk/drivers/media/{video => i2c/soc_camera}/mt9m111.c (95%) rename trunk/drivers/media/{video => i2c/soc_camera}/mt9t031.c (97%) rename trunk/drivers/media/{video => i2c/soc_camera}/mt9t112.c (98%) rename trunk/drivers/media/{video => i2c/soc_camera}/mt9v022.c (93%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov2640.c (98%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov5642.c (96%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov6650.c (95%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov772x.c (81%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov9640.c (97%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov9640.h (100%) rename trunk/drivers/media/{video => i2c/soc_camera}/ov9740.c (97%) rename trunk/drivers/media/{video => i2c/soc_camera}/rj54n1cb0c.c (98%) rename trunk/drivers/media/{video => i2c/soc_camera}/tw9910.c (98%) rename trunk/drivers/media/{video => i2c}/sr030pc30.c (100%) rename trunk/drivers/media/{video => i2c}/tcm825x.c (99%) rename trunk/drivers/media/{video => i2c}/tcm825x.h (99%) rename trunk/drivers/media/{video => i2c}/tda7432.c (100%) rename trunk/drivers/media/{video => i2c}/tda9840.c (100%) rename trunk/drivers/media/{video => i2c}/tea6415c.c (99%) rename trunk/drivers/media/{video => i2c}/tea6415c.h (100%) rename trunk/drivers/media/{video => i2c}/tea6420.c (100%) rename trunk/drivers/media/{video => i2c}/tea6420.h (100%) rename trunk/drivers/media/{video => i2c}/ths7303.c (100%) rename trunk/drivers/media/{video => i2c}/tlv320aic23b.c (100%) rename trunk/drivers/media/{video => i2c}/tvaudio.c (99%) rename trunk/drivers/media/{video => i2c}/tveeprom.c (100%) rename trunk/drivers/media/{video => i2c}/tvp514x.c (99%) rename trunk/drivers/media/{video => i2c}/tvp514x_regs.h (99%) rename trunk/drivers/media/{video => i2c}/tvp5150.c (99%) rename trunk/drivers/media/{video => i2c}/tvp5150_reg.h (100%) rename trunk/drivers/media/{video => i2c}/tvp7002.c (100%) rename trunk/drivers/media/{video => i2c}/tvp7002_reg.h (100%) rename trunk/drivers/media/{video => i2c}/upd64031a.c (100%) rename trunk/drivers/media/{video => i2c}/upd64083.c (100%) rename trunk/drivers/media/{video => i2c}/vp27smpx.c (100%) rename trunk/drivers/media/{video => i2c}/vpx3220.c (100%) rename trunk/drivers/media/{video => i2c}/vs6624.c (100%) rename trunk/drivers/media/{video => i2c}/vs6624_regs.h (100%) rename trunk/drivers/media/{video => i2c}/wm8739.c (100%) rename trunk/drivers/media/{video => i2c}/wm8775.c (100%) create mode 100644 trunk/drivers/media/mmc/Kconfig create mode 100644 trunk/drivers/media/mmc/Makefile create mode 100644 trunk/drivers/media/mmc/siano/Kconfig create mode 100644 trunk/drivers/media/mmc/siano/Makefile rename trunk/drivers/media/{dvb => mmc}/siano/smssdio.c (100%) create mode 100644 trunk/drivers/media/parport/Kconfig create mode 100644 trunk/drivers/media/parport/Makefile rename trunk/drivers/media/{video => parport}/bw-qcam.c (100%) rename trunk/drivers/media/{video => parport}/c-qcam.c (100%) rename trunk/drivers/media/{video => parport}/pms.c (100%) rename trunk/drivers/media/{video => parport}/w9966.c (100%) create mode 100644 trunk/drivers/media/pci/Kconfig create mode 100644 trunk/drivers/media/pci/Makefile create mode 100644 trunk/drivers/media/pci/b2c2/Kconfig create mode 100644 trunk/drivers/media/pci/b2c2/Makefile rename trunk/drivers/media/{dvb => pci}/b2c2/flexcop-dma.c (100%) rename trunk/drivers/media/{dvb => pci}/b2c2/flexcop-pci.c (100%) create mode 100644 trunk/drivers/media/pci/bt8xx/Kconfig create mode 100644 trunk/drivers/media/pci/bt8xx/Makefile rename trunk/drivers/media/{video => pci}/bt8xx/bt848.h (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/bt878.c (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/bt878.h (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-audio-hook.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-audio-hook.h (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-cards.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-driver.c (99%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-gpio.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-i2c.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-if.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-input.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-risc.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv-vbi.c (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttv.h (100%) rename trunk/drivers/media/{video => pci}/bt8xx/bttvp.h (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dst.c (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dst_ca.c (99%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dst_ca.h (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dst_common.h (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dst_priv.h (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dvb-bt8xx.c (100%) rename trunk/drivers/media/{dvb => pci}/bt8xx/dvb-bt8xx.h (100%) rename trunk/drivers/media/{video => pci}/cx18/Kconfig (68%) rename trunk/drivers/media/{video => pci}/cx18/Makefile (78%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa-main.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa-mixer.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa-mixer.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa-pcm.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa-pcm.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-alsa.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-audio.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-audio.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-av-audio.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-av-core.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-av-core.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-av-firmware.c (99%) rename trunk/drivers/media/{video => pci}/cx18/cx18-av-vbi.c (99%) rename trunk/drivers/media/{video => pci}/cx18/cx18-cards.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-cards.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-controls.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-controls.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-driver.c (99%) rename trunk/drivers/media/{video => pci}/cx18/cx18-driver.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-dvb.c (99%) rename trunk/drivers/media/{video => pci}/cx18/cx18-dvb.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-fileops.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-fileops.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-firmware.c (98%) rename trunk/drivers/media/{video => pci}/cx18/cx18-firmware.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-gpio.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-gpio.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-i2c.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-i2c.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-io.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-io.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-ioctl.c (99%) rename trunk/drivers/media/{video => pci}/cx18/cx18-ioctl.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-irq.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-irq.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-mailbox.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-mailbox.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-queue.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-queue.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-scb.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-scb.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-streams.c (98%) rename trunk/drivers/media/{video => pci}/cx18/cx18-streams.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-vbi.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-vbi.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-version.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-video.c (100%) rename trunk/drivers/media/{video => pci}/cx18/cx18-video.h (100%) rename trunk/drivers/media/{video => pci}/cx18/cx23418.h (100%) create mode 100644 trunk/drivers/media/pci/cx23885/Kconfig rename trunk/drivers/media/{video => pci}/cx23885/Makefile (72%) rename trunk/drivers/media/{video => pci}/cx23885/altera-ci.c (99%) rename trunk/drivers/media/{video => pci}/cx23885/altera-ci.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cimax2.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cimax2.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-417.c (99%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-alsa.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-av.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-av.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-cards.c (98%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-core.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-dvb.c (95%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-f300.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-f300.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-i2c.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-input.c (96%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-input.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-ioctl.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-ioctl.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-ir.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-ir.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-reg.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-vbi.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885-video.c (99%) rename trunk/drivers/media/{video => pci}/cx23885/cx23885.h (99%) rename trunk/drivers/media/{video => pci}/cx23885/cx23888-ir.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/cx23888-ir.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/netup-eeprom.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/netup-eeprom.h (100%) rename trunk/drivers/media/{video => pci}/cx23885/netup-init.c (100%) rename trunk/drivers/media/{video => pci}/cx23885/netup-init.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/Kconfig (100%) rename trunk/drivers/media/{video => pci}/cx25821/Makefile (67%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-alsa.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-audio-upstream.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-audio-upstream.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-audio.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-biffuncs.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-cards.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-core.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-gpio.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-i2c.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-medusa-defines.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-medusa-reg.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-medusa-video.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-medusa-video.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-reg.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-sram.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video-upstream-ch2.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video-upstream-ch2.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video-upstream.c (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video-upstream.h (100%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video.c (99%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821-video.h (99%) rename trunk/drivers/media/{video => pci}/cx25821/cx25821.h (100%) rename trunk/drivers/media/{video => pci}/cx88/Kconfig (70%) rename trunk/drivers/media/{video => pci}/cx88/Makefile (73%) rename trunk/drivers/media/{video => pci}/cx88/cx88-alsa.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-blackbird.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-cards.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-core.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-dsp.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-dvb.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-i2c.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-input.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-mpeg.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-reg.h (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-tvaudio.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-vbi.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-video.c (99%) rename trunk/drivers/media/{video => pci}/cx88/cx88-vp3054-i2c.c (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88-vp3054-i2c.h (100%) rename trunk/drivers/media/{video => pci}/cx88/cx88.h (99%) rename trunk/drivers/media/{dvb => pci}/ddbridge/Kconfig (60%) rename trunk/drivers/media/{dvb => pci}/ddbridge/Makefile (61%) rename trunk/drivers/media/{dvb => pci}/ddbridge/ddbridge-core.c (99%) rename trunk/drivers/media/{dvb => pci}/ddbridge/ddbridge-regs.h (100%) rename trunk/drivers/media/{dvb => pci}/ddbridge/ddbridge.h (100%) rename trunk/drivers/media/{dvb => pci}/dm1105/Kconfig (57%) create mode 100644 trunk/drivers/media/pci/dm1105/Makefile rename trunk/drivers/media/{dvb => pci}/dm1105/dm1105.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/Kconfig (67%) rename trunk/drivers/media/{video => pci}/ivtv/Makefile (53%) create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa-main.c create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa-mixer.c create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa-mixer.h create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa-pcm.c create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa-pcm.h create mode 100644 trunk/drivers/media/pci/ivtv/ivtv-alsa.h rename trunk/drivers/media/{video => pci}/ivtv/ivtv-cards.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-cards.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-controls.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-controls.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-driver.c (97%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-driver.h (98%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-fileops.c (96%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-fileops.h (94%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-firmware.c (98%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-firmware.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-gpio.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-gpio.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-i2c.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-i2c.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-ioctl.c (95%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-ioctl.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-irq.c (95%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-irq.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-mailbox.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-mailbox.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-queue.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-queue.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-routing.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-routing.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-streams.c (95%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-streams.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-udma.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-udma.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-vbi.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-vbi.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-version.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-yuv.c (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtv-yuv.h (100%) rename trunk/drivers/media/{video => pci}/ivtv/ivtvfb.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/Kconfig (62%) rename trunk/drivers/media/{dvb => pci}/mantis/Makefile (88%) rename trunk/drivers/media/{dvb => pci}/mantis/hopper_cards.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/hopper_vp3028.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/hopper_vp3028.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_ca.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_ca.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_cards.c (99%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_common.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_core.c (99%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_core.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_dma.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_dma.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_dvb.c (98%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_dvb.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_evm.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_hif.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_hif.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_i2c.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_i2c.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_input.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_ioc.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_ioc.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_link.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_pci.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_pci.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_pcmcia.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_reg.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_uart.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_uart.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1033.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1033.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1034.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1034.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1041.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp1041.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp2033.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp2033.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp2040.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp2040.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp3028.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp3028.h (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp3030.c (100%) rename trunk/drivers/media/{dvb => pci}/mantis/mantis_vp3030.h (100%) create mode 100644 trunk/drivers/media/pci/meye/Kconfig create mode 100644 trunk/drivers/media/pci/meye/Makefile rename trunk/drivers/media/{video => pci/meye}/meye.c (100%) rename trunk/drivers/media/{video => pci/meye}/meye.h (100%) create mode 100644 trunk/drivers/media/pci/ngene/Kconfig rename trunk/drivers/media/{dvb => pci}/ngene/Makefile (63%) rename trunk/drivers/media/{dvb => pci}/ngene/ngene-cards.c (71%) rename trunk/drivers/media/{dvb => pci}/ngene/ngene-core.c (98%) rename trunk/drivers/media/{dvb => pci}/ngene/ngene-dvb.c (100%) rename trunk/drivers/media/{dvb => pci}/ngene/ngene-i2c.c (100%) rename trunk/drivers/media/{dvb => pci}/ngene/ngene.h (100%) rename trunk/drivers/media/{dvb => pci}/pluto2/Kconfig (100%) create mode 100644 trunk/drivers/media/pci/pluto2/Makefile rename trunk/drivers/media/{dvb => pci}/pluto2/pluto2.c (100%) rename trunk/drivers/media/{dvb => pci}/pt1/Kconfig (100%) rename trunk/drivers/media/{dvb => pci}/pt1/Makefile (56%) rename trunk/drivers/media/{dvb => pci}/pt1/pt1.c (100%) rename trunk/drivers/media/{dvb => pci}/pt1/va1j5jf8007s.c (98%) rename trunk/drivers/media/{dvb => pci}/pt1/va1j5jf8007s.h (100%) rename trunk/drivers/media/{dvb => pci}/pt1/va1j5jf8007t.c (100%) rename trunk/drivers/media/{dvb => pci}/pt1/va1j5jf8007t.h (100%) rename trunk/drivers/media/{video => pci}/saa7134/Kconfig (56%) rename trunk/drivers/media/{video => pci}/saa7134/Makefile (54%) rename trunk/drivers/media/{video => pci}/saa7134/saa6752hs.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-alsa.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-cards.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-core.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-dvb.c (99%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-empress.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-i2c.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-input.c (99%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-reg.h (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-ts.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-tvaudio.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-vbi.c (100%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134-video.c (98%) rename trunk/drivers/media/{video => pci}/saa7134/saa7134.h (99%) create mode 100644 trunk/drivers/media/pci/saa7146/Kconfig create mode 100644 trunk/drivers/media/pci/saa7146/Makefile rename trunk/drivers/media/{video => pci/saa7146}/hexium_gemini.c (100%) rename trunk/drivers/media/{video => pci/saa7146}/hexium_orion.c (100%) rename trunk/drivers/media/{video => pci/saa7146}/mxb.c (99%) rename trunk/drivers/media/{video => pci}/saa7164/Kconfig (62%) rename trunk/drivers/media/{video => pci}/saa7164/Makefile (57%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-api.c (98%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-buffer.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-bus.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-cards.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-cmd.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-core.c (96%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-dvb.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-encoder.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-fw.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-i2c.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-reg.h (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-types.h (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164-vbi.c (100%) rename trunk/drivers/media/{video => pci}/saa7164/saa7164.h (99%) create mode 100644 trunk/drivers/media/pci/sta2x11/Kconfig create mode 100644 trunk/drivers/media/pci/sta2x11/Makefile rename trunk/drivers/media/{video => pci/sta2x11}/sta2x11_vip.c (100%) rename trunk/drivers/media/{video => pci/sta2x11}/sta2x11_vip.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/Kconfig (66%) rename trunk/drivers/media/{dvb => pci}/ttpci/Makefile (82%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_av.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_av.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_ca.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_ca.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_hw.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_hw.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_ipack.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_ipack.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_ir.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/av7110_v4l.c (99%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget-av.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget-ci.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget-core.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget-patch.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget.c (91%) rename trunk/drivers/media/{dvb => pci}/ttpci/budget.h (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/ttpci-eeprom.c (100%) rename trunk/drivers/media/{dvb => pci}/ttpci/ttpci-eeprom.h (100%) rename trunk/drivers/media/{video => pci}/zoran/Kconfig (71%) rename trunk/drivers/media/{video => pci}/zoran/Makefile (100%) rename trunk/drivers/media/{video => pci}/zoran/videocodec.c (100%) rename trunk/drivers/media/{video => pci}/zoran/videocodec.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran_card.c (99%) rename trunk/drivers/media/{video => pci}/zoran/zoran_card.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran_device.c (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran_device.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran_driver.c (99%) rename trunk/drivers/media/{video => pci}/zoran/zoran_procfs.c (100%) rename trunk/drivers/media/{video => pci}/zoran/zoran_procfs.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36016.c (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36016.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36050.c (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36050.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36057.h (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36060.c (100%) rename trunk/drivers/media/{video => pci}/zoran/zr36060.h (100%) create mode 100644 trunk/drivers/media/platform/Kconfig create mode 100644 trunk/drivers/media/platform/Makefile rename trunk/drivers/media/{video => platform}/arv.c (100%) rename trunk/drivers/media/{video => platform}/blackfin/Kconfig (100%) rename trunk/drivers/media/{video => platform}/blackfin/Makefile (100%) rename trunk/drivers/media/{video => platform}/blackfin/bfin_capture.c (98%) rename trunk/drivers/media/{video => platform}/blackfin/ppi.c (100%) create mode 100644 trunk/drivers/media/platform/coda.c create mode 100644 trunk/drivers/media/platform/coda.h rename trunk/drivers/media/{video => platform}/davinci/Kconfig (97%) rename trunk/drivers/media/{video => platform}/davinci/Makefile (100%) rename trunk/drivers/media/{video => platform}/davinci/ccdc_hw_device.h (100%) rename trunk/drivers/media/{video => platform}/davinci/dm355_ccdc.c (99%) rename trunk/drivers/media/{video => platform}/davinci/dm355_ccdc_regs.h (100%) rename trunk/drivers/media/{video => platform}/davinci/dm644x_ccdc.c (99%) rename trunk/drivers/media/{video => platform}/davinci/dm644x_ccdc_regs.h (100%) rename trunk/drivers/media/{video => platform}/davinci/isif.c (99%) rename trunk/drivers/media/{video => platform}/davinci/isif_regs.h (100%) rename trunk/drivers/media/{video => platform}/davinci/vpbe.c (100%) rename trunk/drivers/media/{video => platform}/davinci/vpbe_display.c (98%) rename trunk/drivers/media/{video => platform}/davinci/vpbe_osd.c (100%) rename trunk/drivers/media/{video => platform}/davinci/vpbe_osd_regs.h (100%) rename trunk/drivers/media/{video => platform}/davinci/vpbe_venc.c (100%) rename trunk/drivers/media/{video => platform}/davinci/vpbe_venc_regs.h (100%) rename trunk/drivers/media/{video => platform}/davinci/vpfe_capture.c (99%) rename trunk/drivers/media/{video => platform}/davinci/vpif.c (96%) rename trunk/drivers/media/{video => platform}/davinci/vpif.h (99%) rename trunk/drivers/media/{video => platform}/davinci/vpif_capture.c (95%) rename trunk/drivers/media/{video => platform}/davinci/vpif_capture.h (98%) rename trunk/drivers/media/{video => platform}/davinci/vpif_display.c (94%) rename trunk/drivers/media/{video => platform}/davinci/vpif_display.h (98%) rename trunk/drivers/media/{video => platform}/davinci/vpss.c (99%) create mode 100644 trunk/drivers/media/platform/exynos-gsc/Makefile create mode 100644 trunk/drivers/media/platform/exynos-gsc/gsc-core.c create mode 100644 trunk/drivers/media/platform/exynos-gsc/gsc-core.h create mode 100644 trunk/drivers/media/platform/exynos-gsc/gsc-m2m.c create mode 100644 trunk/drivers/media/platform/exynos-gsc/gsc-regs.c create mode 100644 trunk/drivers/media/platform/exynos-gsc/gsc-regs.h rename trunk/drivers/media/{video => platform}/fsl-viu.c (98%) rename trunk/drivers/media/{video => platform}/indycam.c (100%) rename trunk/drivers/media/{video => platform}/indycam.h (100%) create mode 100644 trunk/drivers/media/platform/m2m-deinterlace.c rename trunk/drivers/media/{video => platform}/marvell-ccic/Kconfig (100%) rename trunk/drivers/media/{video => platform}/marvell-ccic/Makefile (100%) rename trunk/drivers/media/{video => platform}/marvell-ccic/cafe-driver.c (100%) rename trunk/drivers/media/{video => platform}/marvell-ccic/mcam-core.c (100%) rename trunk/drivers/media/{video => platform}/marvell-ccic/mcam-core.h (100%) rename trunk/drivers/media/{video => platform}/marvell-ccic/mmp-driver.c (100%) rename trunk/drivers/media/{video => platform}/mem2mem_testdev.c (97%) rename trunk/drivers/media/{video => platform}/mx2_emmaprp.c (94%) rename trunk/drivers/media/{video => platform}/omap/Kconfig (100%) rename trunk/drivers/media/{video => platform}/omap/Makefile (81%) rename trunk/drivers/media/{video => platform}/omap/omap_vout.c (99%) rename trunk/drivers/media/{video => platform}/omap/omap_vout_vrfb.c (100%) rename trunk/drivers/media/{video => platform}/omap/omap_vout_vrfb.h (100%) rename trunk/drivers/media/{video => platform}/omap/omap_voutdef.h (100%) rename trunk/drivers/media/{video => platform}/omap/omap_voutlib.c (100%) rename trunk/drivers/media/{video => platform}/omap/omap_voutlib.h (100%) rename trunk/drivers/media/{video => platform}/omap24xxcam-dma.c (99%) rename trunk/drivers/media/{video => platform}/omap24xxcam.c (99%) rename trunk/drivers/media/{video => platform}/omap24xxcam.h (99%) rename trunk/drivers/media/{video => platform}/omap3isp/Makefile (100%) rename trunk/drivers/media/{video => platform}/omap3isp/cfa_coef_table.h (91%) rename trunk/drivers/media/{video => platform}/omap3isp/gamma_table.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/isp.c (98%) rename trunk/drivers/media/{video => platform}/omap3isp/isp.h (97%) rename trunk/drivers/media/{video => platform}/omap3isp/ispccdc.c (93%) rename trunk/drivers/media/{video => platform}/omap3isp/ispccdc.h (83%) rename trunk/drivers/media/{video => platform}/omap3isp/ispccp2.c (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispccp2.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispcsi2.c (98%) rename trunk/drivers/media/{video => platform}/omap3isp/ispcsi2.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispcsiphy.c (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispcsiphy.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/isph3a.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/isph3a_aewb.c (96%) rename trunk/drivers/media/{video => platform}/omap3isp/isph3a_af.c (96%) rename trunk/drivers/media/{video => platform}/omap3isp/isphist.c (98%) rename trunk/drivers/media/{video => platform}/omap3isp/isphist.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/isppreview.c (89%) rename trunk/drivers/media/{video => platform}/omap3isp/isppreview.h (99%) rename trunk/drivers/media/{video => platform}/omap3isp/ispqueue.c (98%) rename trunk/drivers/media/{video => platform}/omap3isp/ispqueue.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispreg.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispresizer.c (99%) rename trunk/drivers/media/{video => platform}/omap3isp/ispresizer.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/ispstat.c (99%) rename trunk/drivers/media/{video => platform}/omap3isp/ispstat.h (97%) rename trunk/drivers/media/{video => platform}/omap3isp/ispvideo.c (96%) rename trunk/drivers/media/{video => platform}/omap3isp/ispvideo.h (97%) rename trunk/drivers/media/{video => platform}/omap3isp/luma_enhance_table.h (100%) rename trunk/drivers/media/{video => platform}/omap3isp/noise_filter_table.h (100%) rename trunk/drivers/media/{video => platform}/s5p-fimc/Kconfig (96%) rename trunk/drivers/media/{video => platform}/s5p-fimc/Makefile (100%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-capture.c (97%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-core.c (100%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-core.h (99%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-lite-reg.c (97%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-lite-reg.h (100%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-lite.c (97%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-lite.h (97%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-m2m.c (95%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-mdevice.c (92%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-mdevice.h (83%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-reg.c (99%) rename trunk/drivers/media/{video => platform}/s5p-fimc/fimc-reg.h (100%) rename trunk/drivers/media/{video => platform}/s5p-fimc/mipi-csis.c (82%) rename trunk/drivers/media/{video => platform}/s5p-fimc/mipi-csis.h (100%) rename trunk/drivers/media/{video => platform}/s5p-g2d/Makefile (100%) rename trunk/drivers/media/{video => platform}/s5p-g2d/g2d-hw.c (100%) rename trunk/drivers/media/{video => platform}/s5p-g2d/g2d-regs.h (100%) rename trunk/drivers/media/{video => platform}/s5p-g2d/g2d.c (96%) rename trunk/drivers/media/{video => platform}/s5p-g2d/g2d.h (100%) rename trunk/drivers/media/{video => platform}/s5p-jpeg/Makefile (100%) rename trunk/drivers/media/{video => platform}/s5p-jpeg/jpeg-core.c (98%) rename trunk/drivers/media/{video => platform}/s5p-jpeg/jpeg-core.h (98%) rename trunk/drivers/media/{video => platform}/s5p-jpeg/jpeg-hw.h (99%) rename trunk/drivers/media/{video => platform}/s5p-jpeg/jpeg-regs.h (98%) rename trunk/drivers/media/{video => platform}/s5p-mfc/Makefile (100%) rename trunk/drivers/media/{video => platform}/s5p-mfc/regs-mfc.h (100%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc.c (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_cmd.c (98%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_cmd.h (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_common.h (98%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_ctrl.c (95%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_ctrl.h (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_debug.h (95%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_dec.c (97%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_dec.h (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_enc.c (95%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_enc.h (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_intr.c (97%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_intr.h (93%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_opr.c (97%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_opr.h (98%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_pm.c (98%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_pm.h (92%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_shm.c (96%) rename trunk/drivers/media/{video => platform}/s5p-mfc/s5p_mfc_shm.h (98%) rename trunk/drivers/media/{video => platform}/s5p-tv/Kconfig (98%) rename trunk/drivers/media/{video => platform}/s5p-tv/Makefile (92%) rename trunk/drivers/media/{video => platform}/s5p-tv/hdmi_drv.c (99%) rename trunk/drivers/media/{video => platform}/s5p-tv/hdmiphy_drv.c (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer.h (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer_drv.c (98%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer_grp_layer.c (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer_reg.c (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer_video.c (97%) rename trunk/drivers/media/{video => platform}/s5p-tv/mixer_vp_layer.c (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/regs-hdmi.h (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/regs-mixer.h (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/regs-sdo.h (97%) rename trunk/drivers/media/{video => platform}/s5p-tv/regs-vp.h (100%) rename trunk/drivers/media/{video => platform}/s5p-tv/sdo_drv.c (98%) rename trunk/drivers/media/{video => platform}/s5p-tv/sii9234_drv.c (97%) rename trunk/drivers/media/{video => platform}/sh_vou.c (97%) create mode 100644 trunk/drivers/media/platform/soc_camera/Kconfig create mode 100644 trunk/drivers/media/platform/soc_camera/Makefile rename trunk/drivers/media/{video => platform/soc_camera}/atmel-isi.c (100%) rename trunk/drivers/media/{video => platform/soc_camera}/mx1_camera.c (100%) rename trunk/drivers/media/{video => platform/soc_camera}/mx2_camera.c (93%) rename trunk/drivers/media/{video => platform/soc_camera}/mx3_camera.c (99%) rename trunk/drivers/media/{video => platform/soc_camera}/omap1_camera.c (99%) rename trunk/drivers/media/{video => platform/soc_camera}/pxa_camera.c (100%) rename trunk/drivers/media/{video => platform/soc_camera}/sh_mobile_ceu_camera.c (99%) rename trunk/drivers/media/{video => platform/soc_camera}/sh_mobile_csi2.c (100%) rename trunk/drivers/media/{video => platform/soc_camera}/soc_camera.c (91%) rename trunk/drivers/media/{video => platform/soc_camera}/soc_camera_platform.c (94%) rename trunk/drivers/media/{video => platform/soc_camera}/soc_mediabus.c (100%) rename trunk/drivers/media/{video => platform}/timblogiw.c (100%) rename trunk/drivers/media/{video => platform}/via-camera.c (100%) rename trunk/drivers/media/{video => platform}/via-camera.h (100%) rename trunk/drivers/media/{video => platform}/vino.c (99%) rename trunk/drivers/media/{video => platform}/vino.h (100%) rename trunk/drivers/media/{video => platform}/vivi.c (97%) create mode 100644 trunk/drivers/media/rc/ir-rx51.c create mode 100644 trunk/drivers/media/rc/ttusbir.c rename trunk/drivers/media/{common => }/tuners/Kconfig (72%) rename trunk/drivers/media/{common => }/tuners/Makefile (88%) create mode 100644 trunk/drivers/media/tuners/e4000.c create mode 100644 trunk/drivers/media/tuners/e4000.h create mode 100644 trunk/drivers/media/tuners/e4000_priv.h rename trunk/drivers/media/{common => }/tuners/fc0011.c (100%) rename trunk/drivers/media/{common => }/tuners/fc0011.h (100%) rename trunk/drivers/media/{common => }/tuners/fc0012-priv.h (100%) rename trunk/drivers/media/{common => }/tuners/fc0012.c (100%) rename trunk/drivers/media/{common => }/tuners/fc0012.h (100%) rename trunk/drivers/media/{common => }/tuners/fc0013-priv.h (100%) rename trunk/drivers/media/{common => }/tuners/fc0013.c (100%) rename trunk/drivers/media/{common => }/tuners/fc0013.h (100%) rename trunk/drivers/media/{common => }/tuners/fc001x-common.h (100%) create mode 100644 trunk/drivers/media/tuners/fc2580.c create mode 100644 trunk/drivers/media/tuners/fc2580.h create mode 100644 trunk/drivers/media/tuners/fc2580_priv.h rename trunk/drivers/media/{common => }/tuners/max2165.c (100%) rename trunk/drivers/media/{common => }/tuners/max2165.h (100%) rename trunk/drivers/media/{common => }/tuners/max2165_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/mc44s803.c (97%) rename trunk/drivers/media/{common => }/tuners/mc44s803.h (100%) rename trunk/drivers/media/{common => }/tuners/mc44s803_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2060.c (100%) rename trunk/drivers/media/{common => }/tuners/mt2060.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2060_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2063.c (100%) rename trunk/drivers/media/{common => }/tuners/mt2063.h (100%) rename trunk/drivers/media/{common => }/tuners/mt20xx.c (100%) rename trunk/drivers/media/{common => }/tuners/mt20xx.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2131.c (100%) rename trunk/drivers/media/{common => }/tuners/mt2131.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2131_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/mt2266.c (100%) rename trunk/drivers/media/{common => }/tuners/mt2266.h (100%) rename trunk/drivers/media/{common => }/tuners/mxl5005s.c (99%) rename trunk/drivers/media/{common => }/tuners/mxl5005s.h (100%) rename trunk/drivers/media/{common => }/tuners/mxl5007t.c (100%) rename trunk/drivers/media/{common => }/tuners/mxl5007t.h (100%) rename trunk/drivers/media/{common => }/tuners/qt1010.c (90%) rename trunk/drivers/media/{common => }/tuners/qt1010.h (100%) rename trunk/drivers/media/{common => }/tuners/qt1010_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/tda18212.c (91%) rename trunk/drivers/media/{common => }/tuners/tda18212.h (100%) rename trunk/drivers/media/{common => }/tuners/tda18218.c (87%) rename trunk/drivers/media/{common => }/tuners/tda18218.h (100%) rename trunk/drivers/media/{common => }/tuners/tda18218_priv.h (90%) rename trunk/drivers/media/{common => }/tuners/tda18271-common.c (99%) rename trunk/drivers/media/{common => }/tuners/tda18271-fe.c (98%) rename trunk/drivers/media/{common => }/tuners/tda18271-maps.c (100%) rename trunk/drivers/media/{common => }/tuners/tda18271-priv.h (100%) rename trunk/drivers/media/{common => }/tuners/tda18271.h (95%) rename trunk/drivers/media/{common => }/tuners/tda827x.c (100%) rename trunk/drivers/media/{common => }/tuners/tda827x.h (100%) rename trunk/drivers/media/{common => }/tuners/tda8290.c (100%) rename trunk/drivers/media/{common => }/tuners/tda8290.h (100%) rename trunk/drivers/media/{common => }/tuners/tda9887.c (100%) rename trunk/drivers/media/{common => }/tuners/tda9887.h (100%) rename trunk/drivers/media/{common => }/tuners/tea5761.c (100%) rename trunk/drivers/media/{common => }/tuners/tea5761.h (100%) rename trunk/drivers/media/{common => }/tuners/tea5767.c (100%) rename trunk/drivers/media/{common => }/tuners/tea5767.h (100%) rename trunk/drivers/media/{common => }/tuners/tua9001.c (65%) rename trunk/drivers/media/{common => }/tuners/tua9001.h (78%) rename trunk/drivers/media/{common => }/tuners/tua9001_priv.h (100%) rename trunk/drivers/media/{common => }/tuners/tuner-i2c.h (100%) rename trunk/drivers/media/{common => }/tuners/tuner-simple.c (100%) rename trunk/drivers/media/{common => }/tuners/tuner-simple.h (100%) rename trunk/drivers/media/{common => }/tuners/tuner-types.c (100%) rename trunk/drivers/media/{common => }/tuners/tuner-xc2028-types.h (100%) rename trunk/drivers/media/{common => }/tuners/tuner-xc2028.c (99%) rename trunk/drivers/media/{common => }/tuners/tuner-xc2028.h (100%) rename trunk/drivers/media/{common => }/tuners/xc4000.c (99%) rename trunk/drivers/media/{common => }/tuners/xc4000.h (100%) rename trunk/drivers/media/{common => }/tuners/xc5000.c (88%) rename trunk/drivers/media/{common => }/tuners/xc5000.h (100%) create mode 100644 trunk/drivers/media/usb/Kconfig create mode 100644 trunk/drivers/media/usb/Makefile rename trunk/drivers/media/{video => usb}/au0828/Kconfig (54%) rename trunk/drivers/media/{video => usb}/au0828/Makefile (59%) rename trunk/drivers/media/{video => usb}/au0828/au0828-cards.c (99%) rename trunk/drivers/media/{video => usb}/au0828/au0828-cards.h (100%) rename trunk/drivers/media/{video => usb}/au0828/au0828-core.c (85%) rename trunk/drivers/media/{video => usb}/au0828/au0828-dvb.c (90%) rename trunk/drivers/media/{video => usb}/au0828/au0828-i2c.c (93%) rename trunk/drivers/media/{video => usb}/au0828/au0828-reg.h (98%) rename trunk/drivers/media/{video => usb}/au0828/au0828-vbi.c (100%) rename trunk/drivers/media/{video => usb}/au0828/au0828-video.c (96%) rename trunk/drivers/media/{video => usb}/au0828/au0828.h (98%) create mode 100644 trunk/drivers/media/usb/b2c2/Kconfig create mode 100644 trunk/drivers/media/usb/b2c2/Makefile rename trunk/drivers/media/{dvb => usb}/b2c2/flexcop-usb.c (99%) rename trunk/drivers/media/{dvb => usb}/b2c2/flexcop-usb.h (100%) rename trunk/drivers/media/{video => usb}/cpia2/Kconfig (100%) rename trunk/drivers/media/{video => usb}/cpia2/Makefile (100%) rename trunk/drivers/media/{video => usb}/cpia2/cpia2.h (100%) rename trunk/drivers/media/{video => usb}/cpia2/cpia2_core.c (99%) rename trunk/drivers/media/{video => usb}/cpia2/cpia2_registers.h (100%) rename trunk/drivers/media/{video => usb}/cpia2/cpia2_usb.c (100%) rename trunk/drivers/media/{video => usb}/cpia2/cpia2_v4l.c (97%) rename trunk/drivers/media/{video => usb}/cx231xx/Kconfig (86%) rename trunk/drivers/media/{video => usb}/cx231xx/Makefile (65%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-417.c (99%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-audio.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-avcore.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-cards.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-conf-reg.h (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-core.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-dif.h (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-dvb.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-i2c.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-input.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-pcb-cfg.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-pcb-cfg.h (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-reg.h (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-vbi.c (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-vbi.h (100%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx-video.c (98%) rename trunk/drivers/media/{video => usb}/cx231xx/cx231xx.h (100%) create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/Kconfig create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/Makefile create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/af9015.c rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/af9015.h (78%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/af9035.c (57%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/af9035.h (93%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/anysee.c (67%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/anysee.h (97%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/au6610.c (64%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/au6610.h (80%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/az6007.c (63%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/ce6230.c (58%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/ce6230.h (58%) create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/cypress_firmware.c create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/cypress_firmware.h create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/dvb_usb.h create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/dvb_usb_common.h create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/ec168.c (57%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/ec168.h (62%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/gl861.c (54%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/gl861.h (59%) create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/it913x.c rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/lmedm04.c (69%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/lmedm04.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-demod.c (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-demod.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-gpio.c (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-gpio.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-i2c.c (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-i2c.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-phy.c (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-phy.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-reg.h (100%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-tuner.c (99%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf-tuner.h (100%) create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/mxl111sf.c rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/mxl111sf.h (98%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/rtl28xxu.c (62%) rename trunk/drivers/media/{dvb/dvb-usb => usb/dvb-usb-v2}/rtl28xxu.h (91%) create mode 100644 trunk/drivers/media/usb/dvb-usb-v2/usb_urb.c create mode 100644 trunk/drivers/media/usb/dvb-usb/Kconfig create mode 100644 trunk/drivers/media/usb/dvb-usb/Makefile rename trunk/drivers/media/{dvb => usb}/dvb-usb/a800.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/af9005-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/af9005-remote.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/af9005-script.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/af9005.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/af9005.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/az6027.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/az6027.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/cinergyT2-core.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/cinergyT2-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/cinergyT2.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/cxusb.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/cxusb.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dib0700.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dib0700_core.c (99%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dib0700_devices.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dib07x0.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dibusb-common.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dibusb-mb.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dibusb-mc.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dibusb.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/digitv.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/digitv.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dtt200u-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dtt200u.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dtt200u.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dtv5100.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dtv5100.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-common.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-dvb.c (99%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-firmware.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-i2c.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-init.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-remote.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb-urb.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dvb-usb.h (99%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dw2102.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/dw2102.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/friio-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/friio.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/friio.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/gp8psk-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/gp8psk.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/gp8psk.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/m920x.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/m920x.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/nova-t-usb2.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/opera1.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/pctv452e.c (99%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/technisat-usb2.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/ttusb2.c (99%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/ttusb2.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/umt-010.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/usb-urb.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp702x-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp702x.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp702x.h (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp7045-fe.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp7045.c (100%) rename trunk/drivers/media/{dvb => usb}/dvb-usb/vp7045.h (100%) rename trunk/drivers/media/{video => usb}/em28xx/Kconfig (67%) rename trunk/drivers/media/{video => usb}/em28xx/Makefile (57%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-audio.c (99%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-cards.c (99%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-core.c (99%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-dvb.c (95%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-i2c.c (100%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-input.c (100%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-reg.h (100%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-vbi.c (100%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx-video.c (98%) rename trunk/drivers/media/{video => usb}/em28xx/em28xx.h (100%) rename trunk/drivers/media/{video => usb}/gspca/Kconfig (98%) rename trunk/drivers/media/{video => usb}/gspca/Makefile (100%) rename trunk/drivers/media/{video => usb}/gspca/autogain_functions.c (100%) rename trunk/drivers/media/{video => usb}/gspca/autogain_functions.h (100%) rename trunk/drivers/media/{video => usb}/gspca/benq.c (100%) rename trunk/drivers/media/{video => usb}/gspca/conex.c (100%) rename trunk/drivers/media/{video => usb}/gspca/cpia1.c (99%) rename trunk/drivers/media/{video => usb}/gspca/etoms.c (100%) rename trunk/drivers/media/{video => usb}/gspca/finepix.c (92%) rename trunk/drivers/media/{video => usb}/gspca/gl860/Kconfig (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/Makefile (75%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860-mi1320.c (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860-mi2020.c (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860-ov2640.c (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860-ov9655.c (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860.c (100%) rename trunk/drivers/media/{video => usb}/gspca/gl860/gl860.h (100%) rename trunk/drivers/media/{video => usb}/gspca/gspca.c (99%) rename trunk/drivers/media/{video => usb}/gspca/gspca.h (97%) rename trunk/drivers/media/{video => usb}/gspca/jeilinj.c (99%) rename trunk/drivers/media/{video => usb}/gspca/jl2005bcd.c (95%) rename trunk/drivers/media/{video => usb}/gspca/jpeg.h (100%) rename trunk/drivers/media/{video => usb}/gspca/kinect.c (100%) rename trunk/drivers/media/{video => usb}/gspca/konica.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/Kconfig (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/Makefile (80%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_bridge.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_core.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_mt9m111.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_mt9m111.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_ov7660.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_ov7660.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_ov9650.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_ov9650.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_po1030.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_po1030.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_s5k4aa.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_s5k4aa.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_s5k83a.c (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_s5k83a.h (100%) rename trunk/drivers/media/{video => usb}/gspca/m5602/m5602_sensor.h (100%) rename trunk/drivers/media/{video => usb}/gspca/mars.c (100%) rename trunk/drivers/media/{video => usb}/gspca/mr97310a.c (100%) rename trunk/drivers/media/{video => usb}/gspca/nw80x.c (100%) rename trunk/drivers/media/{video => usb}/gspca/ov519.c (99%) rename trunk/drivers/media/{video => usb}/gspca/ov534.c (100%) rename trunk/drivers/media/{video => usb}/gspca/ov534_9.c (100%) rename trunk/drivers/media/{video => usb}/gspca/pac207.c (100%) rename trunk/drivers/media/{video => usb}/gspca/pac7302.c (95%) rename trunk/drivers/media/{video => usb}/gspca/pac7311.c (100%) rename trunk/drivers/media/{video => usb}/gspca/pac_common.h (100%) rename trunk/drivers/media/{video => usb}/gspca/se401.c (100%) rename trunk/drivers/media/{video => usb}/gspca/se401.h (100%) rename trunk/drivers/media/{video => usb}/gspca/sn9c2028.c (100%) rename trunk/drivers/media/{video => usb}/gspca/sn9c2028.h (100%) rename trunk/drivers/media/{video => usb}/gspca/sn9c20x.c (99%) rename trunk/drivers/media/{video => usb}/gspca/sonixb.c (100%) rename trunk/drivers/media/{video => usb}/gspca/sonixj.c (99%) rename trunk/drivers/media/{video => usb}/gspca/spca1528.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca500.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca501.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca505.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca506.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca508.c (100%) rename trunk/drivers/media/{video => usb}/gspca/spca561.c (100%) rename trunk/drivers/media/{video => usb}/gspca/sq905.c (95%) rename trunk/drivers/media/{video => usb}/gspca/sq905c.c (91%) rename trunk/drivers/media/{video => usb}/gspca/sq930x.c (99%) rename trunk/drivers/media/{video => usb}/gspca/stk014.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv0680.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/Kconfig (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/Makefile (78%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx.h (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_hdcs.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_hdcs.h (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_pb0100.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_pb0100.h (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_sensor.h (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_st6422.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_st6422.h (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_vv6410.c (100%) rename trunk/drivers/media/{video => usb}/gspca/stv06xx/stv06xx_vv6410.h (100%) rename trunk/drivers/media/{video => usb}/gspca/sunplus.c (100%) rename trunk/drivers/media/{video => usb}/gspca/t613.c (100%) rename trunk/drivers/media/{video => usb}/gspca/topro.c (99%) rename trunk/drivers/media/{video => usb}/gspca/tv8532.c (100%) rename trunk/drivers/media/{video => usb}/gspca/vc032x.c (99%) rename trunk/drivers/media/{video => usb}/gspca/vicam.c (94%) rename trunk/drivers/media/{video => usb}/gspca/w996Xcf.c (100%) rename trunk/drivers/media/{video => usb}/gspca/xirlink_cit.c (99%) rename trunk/drivers/media/{video => usb}/gspca/zc3xx-reg.h (100%) rename trunk/drivers/media/{video => usb}/gspca/zc3xx.c (99%) rename trunk/drivers/media/{video => usb}/hdpvr/Kconfig (100%) rename trunk/drivers/media/{video => usb}/hdpvr/Makefile (81%) rename trunk/drivers/media/{video => usb}/hdpvr/hdpvr-control.c (100%) rename trunk/drivers/media/{video => usb}/hdpvr/hdpvr-core.c (100%) rename trunk/drivers/media/{video => usb}/hdpvr/hdpvr-i2c.c (100%) rename trunk/drivers/media/{video => usb}/hdpvr/hdpvr-video.c (99%) rename trunk/drivers/media/{video => usb}/hdpvr/hdpvr.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/Kconfig (82%) rename trunk/drivers/media/{video => usb}/pvrusb2/Makefile (80%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-audio.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-audio.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-context.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-context.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-cs53l32a.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-cs53l32a.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-ctrl.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-ctrl.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-cx2584x-v4l.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-cx2584x-v4l.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-debug.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-debugifc.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-debugifc.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-devattr.c (97%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-devattr.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-dvb.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-dvb.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-eeprom.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-eeprom.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-encoder.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-encoder.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-fx2-cmd.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-hdw-internal.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-hdw.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-hdw.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-i2c-core.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-i2c-core.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-io.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-io.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-ioread.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-ioread.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-main.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-std.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-std.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-sysfs.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-sysfs.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-util.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-v4l2.c (99%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-v4l2.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-video-v4l.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-video-v4l.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-wm8775.c (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2-wm8775.h (100%) rename trunk/drivers/media/{video => usb}/pvrusb2/pvrusb2.h (100%) rename trunk/drivers/media/{video => usb}/pwc/Kconfig (100%) rename trunk/drivers/media/{video => usb}/pwc/Makefile (60%) rename trunk/drivers/media/{video => usb}/pwc/philips.txt (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-ctrl.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-dec1.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-dec1.h (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-dec23.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-dec23.h (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-if.c (99%) rename trunk/drivers/media/{video => usb}/pwc/pwc-kiara.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-kiara.h (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-misc.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-nala.h (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-timon.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-timon.h (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-uncompress.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc-v4l.c (100%) rename trunk/drivers/media/{video => usb}/pwc/pwc.h (100%) create mode 100644 trunk/drivers/media/usb/s2255/Kconfig create mode 100644 trunk/drivers/media/usb/s2255/Makefile rename trunk/drivers/media/{video => usb/s2255}/s2255drv.c (99%) create mode 100644 trunk/drivers/media/usb/siano/Kconfig create mode 100644 trunk/drivers/media/usb/siano/Makefile rename trunk/drivers/media/{dvb => usb}/siano/smsusb.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/Kconfig (100%) rename trunk/drivers/media/{video => usb}/sn9c102/Makefile (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102.h (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_config.h (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_core.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_devtable.h (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_hv7131d.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_hv7131r.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_mi0343.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_mi0360.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_mt9v111.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_ov7630.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_ov7660.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_pas106b.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_pas202bcb.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_sensor.h (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_tas5110c1b.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_tas5110d.c (100%) rename trunk/drivers/media/{video => usb}/sn9c102/sn9c102_tas5130d1b.c (100%) create mode 100644 trunk/drivers/media/usb/stk1160/Kconfig create mode 100644 trunk/drivers/media/usb/stk1160/Makefile create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-ac97.c create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-core.c create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-i2c.c create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-reg.h create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-v4l.c create mode 100644 trunk/drivers/media/usb/stk1160/stk1160-video.c create mode 100644 trunk/drivers/media/usb/stk1160/stk1160.h create mode 100644 trunk/drivers/media/usb/stkwebcam/Kconfig create mode 100644 trunk/drivers/media/usb/stkwebcam/Makefile rename trunk/drivers/media/{video => usb/stkwebcam}/stk-sensor.c (100%) rename trunk/drivers/media/{video => usb/stkwebcam}/stk-webcam.c (100%) rename trunk/drivers/media/{video => usb/stkwebcam}/stk-webcam.h (100%) rename trunk/drivers/media/{video => usb}/tlg2300/Kconfig (100%) create mode 100644 trunk/drivers/media/usb/tlg2300/Makefile rename trunk/drivers/media/{video => usb}/tlg2300/pd-alsa.c (99%) rename trunk/drivers/media/{video => usb}/tlg2300/pd-common.h (100%) rename trunk/drivers/media/{video => usb}/tlg2300/pd-dvb.c (100%) rename trunk/drivers/media/{video => usb}/tlg2300/pd-main.c (100%) rename trunk/drivers/media/{video => usb}/tlg2300/pd-radio.c (99%) rename trunk/drivers/media/{video => usb}/tlg2300/pd-video.c (99%) rename trunk/drivers/media/{video => usb}/tlg2300/vendorcmds.h (100%) rename trunk/drivers/media/{video => usb}/tm6000/Kconfig (100%) rename trunk/drivers/media/{video => usb}/tm6000/Makefile (62%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-alsa.c (99%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-cards.c (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-core.c (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-dvb.c (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-i2c.c (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-input.c (99%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-regs.h (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-stds.c (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-usb-isoc.h (100%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000-video.c (97%) rename trunk/drivers/media/{video => usb}/tm6000/tm6000.h (100%) rename trunk/drivers/media/{dvb => usb}/ttusb-budget/Kconfig (56%) create mode 100644 trunk/drivers/media/usb/ttusb-budget/Makefile rename trunk/drivers/media/{dvb => usb}/ttusb-budget/dvb-ttusb-budget.c (100%) rename trunk/drivers/media/{dvb => usb}/ttusb-dec/Kconfig (100%) rename trunk/drivers/media/{dvb => usb}/ttusb-dec/Makefile (57%) rename trunk/drivers/media/{dvb => usb}/ttusb-dec/ttusb_dec.c (100%) rename trunk/drivers/media/{dvb => usb}/ttusb-dec/ttusbdecfe.c (100%) rename trunk/drivers/media/{dvb => usb}/ttusb-dec/ttusbdecfe.h (100%) rename trunk/drivers/media/{video => usb}/usbvision/Kconfig (88%) rename trunk/drivers/media/{video => usb}/usbvision/Makefile (63%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision-cards.c (100%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision-cards.h (100%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision-core.c (100%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision-i2c.c (100%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision-video.c (97%) rename trunk/drivers/media/{video => usb}/usbvision/usbvision.h (100%) rename trunk/drivers/media/{video => usb}/uvc/Kconfig (100%) rename trunk/drivers/media/{video => usb}/uvc/Makefile (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_ctrl.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_debugfs.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_driver.c (98%) rename trunk/drivers/media/{video => usb}/uvc/uvc_entity.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_isight.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_queue.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_status.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_v4l2.c (100%) rename trunk/drivers/media/{video => usb}/uvc/uvc_video.c (98%) rename trunk/drivers/media/{video => usb}/uvc/uvcvideo.h (98%) create mode 100644 trunk/drivers/media/usb/zr364xx/Kconfig create mode 100644 trunk/drivers/media/usb/zr364xx/Makefile rename trunk/drivers/media/{video => usb/zr364xx}/zr364xx.c (100%) create mode 100644 trunk/drivers/media/v4l2-core/Kconfig create mode 100644 trunk/drivers/media/v4l2-core/Makefile rename trunk/drivers/media/{video => v4l2-core}/tuner-core.c (100%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-common.c (62%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-compat-ioctl32.c (94%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-ctrls.c (94%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-dev.c (79%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-device.c (99%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-event.c (98%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-fh.c (100%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-int-device.c (100%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-ioctl.c (92%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-mem2mem.c (98%) rename trunk/drivers/media/{video => v4l2-core}/v4l2-subdev.c (98%) rename trunk/drivers/media/{video => v4l2-core}/videobuf-core.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf-dma-contig.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf-dma-sg.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf-dvb.c (96%) rename trunk/drivers/media/{video => v4l2-core}/videobuf-vmalloc.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf2-core.c (98%) rename trunk/drivers/media/{video => v4l2-core}/videobuf2-dma-contig.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf2-dma-sg.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf2-memops.c (100%) rename trunk/drivers/media/{video => v4l2-core}/videobuf2-vmalloc.c (99%) delete mode 100644 trunk/drivers/media/video/Kconfig delete mode 100644 trunk/drivers/media/video/Makefile delete mode 100644 trunk/drivers/media/video/bt8xx/Kconfig delete mode 100644 trunk/drivers/media/video/bt8xx/Makefile delete mode 100644 trunk/drivers/media/video/cx23885/Kconfig delete mode 100644 trunk/drivers/media/video/tlg2300/Makefile create mode 100644 trunk/drivers/pinctrl/pinctrl-armada-370.c create mode 100644 trunk/drivers/pinctrl/pinctrl-armada-xp.c create mode 100644 trunk/drivers/pinctrl/pinctrl-dove.c create mode 100644 trunk/drivers/pinctrl/pinctrl-kirkwood.c create mode 100644 trunk/drivers/pinctrl/pinctrl-mvebu.c create mode 100644 trunk/drivers/pinctrl/pinctrl-mvebu.h create mode 100644 trunk/drivers/power/88pm860x_battery.c create mode 100644 trunk/drivers/power/88pm860x_charger.c create mode 100644 trunk/drivers/power/lp8788-charger.c delete mode 100644 trunk/drivers/staging/media/easycap/Kconfig delete mode 100644 trunk/drivers/staging/media/easycap/Makefile delete mode 100644 trunk/drivers/staging/media/easycap/README delete mode 100644 trunk/drivers/staging/media/easycap/easycap.h delete mode 100644 trunk/drivers/staging/media/easycap/easycap_ioctl.c delete mode 100644 trunk/drivers/staging/media/easycap/easycap_low.c delete mode 100644 trunk/drivers/staging/media/easycap/easycap_main.c delete mode 100644 trunk/drivers/staging/media/easycap/easycap_settings.c delete mode 100644 trunk/drivers/staging/media/easycap/easycap_sound.c delete mode 100644 trunk/drivers/staging/media/easycap/easycap_testcard.c delete mode 100644 trunk/drivers/staging/media/lirc/lirc_ene0100.h delete mode 100644 trunk/drivers/staging/media/lirc/lirc_ttusbir.c create mode 100644 trunk/include/linux/v4l2-controls.h create mode 100644 trunk/include/media/ad9389b.h create mode 100644 trunk/include/media/adv7604.h create mode 100644 trunk/include/media/ir-rx51.h create mode 100644 trunk/include/media/s5k4ecgx.h create mode 100644 trunk/tools/virtio/virtio-trace/Makefile create mode 100644 trunk/tools/virtio/virtio-trace/README create mode 100644 trunk/tools/virtio/virtio-trace/trace-agent-ctl.c create mode 100644 trunk/tools/virtio/virtio-trace/trace-agent-rw.c create mode 100644 trunk/tools/virtio/virtio-trace/trace-agent.c create mode 100644 trunk/tools/virtio/virtio-trace/trace-agent.h diff --git a/[refs] b/[refs] index 8ef3a15cf3e7..ad4253dba73b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c415b303a704e5c5f766fc0404093910c36cc4ab +refs/heads/master: 1b033447bf847ba49c3816c564c9191c97456b36 diff --git a/trunk/Documentation/DocBook/media/Makefile b/trunk/Documentation/DocBook/media/Makefile index 362520992ced..9b7e4c557928 100644 --- a/trunk/Documentation/DocBook/media/Makefile +++ b/trunk/Documentation/DocBook/media/Makefile @@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml @( \ for ident in $(IOCTLS) ; do \ entity=`echo $$ident | tr _ -` ; \ - id=`grep "$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \ + id=`grep "$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml $(MEDIA_OBJ_DIR)/media-ioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \ echo "$$ident\">" \ >>$@ ; \ diff --git a/trunk/Documentation/DocBook/media/dvb/audio.xml b/trunk/Documentation/DocBook/media/dvb/audio.xml index d64386237207..a7ea56c71a27 100644 --- a/trunk/Documentation/DocBook/media/dvb/audio.xml +++ b/trunk/Documentation/DocBook/media/dvb/audio.xml @@ -1,12 +1,16 @@ DVB Audio Device The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It can be accessed through /dev/dvb/adapter0/audio0. Data types and and -ioctl definitions can be accessed by including linux/dvb/video.h in your +ioctl definitions can be accessed by including linux/dvb/audio.h in your application. Please note that some DVB cards don’t have their own MPEG decoder, which results in the omission of the audio and video device. + +These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use +of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls +have been created to replace that functionality.
Audio Data Types @@ -558,6 +562,8 @@ role="subsection">AUDIO_SELECT_SOURCE role="subsection">AUDIO_SET_MUTE DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +&VIDIOC-DECODER-CMD; with the V4L2_DEC_CMD_START_MUTE_AUDIO flag instead. This ioctl call asks the audio device to mute the stream that is currently being @@ -730,6 +736,8 @@ role="subsection">AUDIO_SET_BYPASS_MODE role="subsection">AUDIO_CHANNEL_SELECT DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK control instead. This ioctl call asks the Audio Device to select the requested channel if possible. @@ -772,6 +780,109 @@ role="subsection">AUDIO_CHANNEL_SELECT &return-value-dvb; +
AUDIO_BILINGUAL_CHANNEL_SELECT +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. It has been replaced by +the V4L2 V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK control +for MPEG decoders controlled through V4L2. + +This ioctl call asks the Audio Device to select the requested channel for bilingual streams if possible. + + +SYNOPSIS + + +int ioctl(int fd, int request = + AUDIO_BILINGUAL_CHANNEL_SELECT, audio_channel_select_t); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this + command. + + +audio_channel_select_t +ch + +Select the output format of the audio (mono left/right, + stereo). + + + +&return-value-dvb; + +
AUDIO_GET_PTS +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. If you need this functionality, +then please contact the linux-media mailing list (&v4l-ml;). + +This ioctl call asks the Audio Device to return the current PTS timestamp. + + +SYNOPSIS + + +int ioctl(int fd, int request = + AUDIO_GET_PTS, __u64 *pts); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals AUDIO_GET_PTS for this + command. + + +__u64 *pts + + +Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1. + + +The PTS should belong to the currently played +frame if possible, but may also be a value close to it +like the PTS of the last decoded frame or the last PTS +extracted by the PES parser. + + +&return-value-dvb; +
AUDIO_GET_STATUS DESCRIPTION diff --git a/trunk/Documentation/DocBook/media/dvb/ca.xml b/trunk/Documentation/DocBook/media/dvb/ca.xml index 5c4adb44b1c1..85eaf4fe2931 100644 --- a/trunk/Documentation/DocBook/media/dvb/ca.xml +++ b/trunk/Documentation/DocBook/media/dvb/ca.xml @@ -226,4 +226,357 @@ typedef struct ca_pid {
+ +
CA_RESET +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_RESET); + + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_RESET for this command. + + +&return-value-dvb; +
+ +
CA_GET_CAP +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_GET_CAP, + ca_caps_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_GET_CAP for this command. + + +ca_caps_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_GET_SLOT_INFO +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_GET_SLOT_INFO, + ca_slot_info_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_GET_SLOT_INFO for this command. + + +ca_slot_info_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_GET_DESCR_INFO +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_GET_DESCR_INFO, + ca_descr_info_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_GET_DESCR_INFO for this command. + + +ca_descr_info_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_GET_MSG +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_GET_MSG, + ca_msg_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_GET_MSG for this command. + + +ca_msg_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_SEND_MSG +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_SEND_MSG, + ca_msg_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_SEND_MSG for this command. + + +ca_msg_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_SET_DESCR +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_SET_DESCR, + ca_descr_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_SET_DESCR for this command. + + +ca_descr_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
CA_SET_PID +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = CA_SET_PID, + ca_pid_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals CA_SET_PID for this command. + + +ca_pid_t * + + +Undocumented. + + +&return-value-dvb; +
+ diff --git a/trunk/Documentation/DocBook/media/dvb/demux.xml b/trunk/Documentation/DocBook/media/dvb/demux.xml index 37c17908aa40..86de89cfbd67 100644 --- a/trunk/Documentation/DocBook/media/dvb/demux.xml +++ b/trunk/Documentation/DocBook/media/dvb/demux.xml @@ -899,4 +899,232 @@ typedef enum { Invalid stc number. - + + +
DMX_GET_PES_PIDS +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = DMX_GET_PES_PIDS, + __u16[5]); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals DMX_GET_PES_PIDS for this command. + + +__u16[5] + + +Undocumented. + + +&return-value-dvb; +
+ +
DMX_GET_CAPS +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = DMX_GET_CAPS, + dmx_caps_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals DMX_GET_CAPS for this command. + + +dmx_caps_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
DMX_SET_SOURCE +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = DMX_SET_SOURCE, + dmx_source_t *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals DMX_SET_SOURCE for this command. + + +dmx_source_t * + + +Undocumented. + + +&return-value-dvb; +
+ +
DMX_ADD_PID +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = DMX_ADD_PID, + __u16 *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals DMX_ADD_PID for this command. + + +__u16 * + + +Undocumented. + + +&return-value-dvb; +
+ +
DMX_REMOVE_PID +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = DMX_REMOVE_PID, + __u16 *); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals DMX_REMOVE_PID for this command. + + +__u16 * + + +Undocumented. + + +&return-value-dvb; +
+ + + diff --git a/trunk/Documentation/DocBook/media/dvb/dvbapi.xml b/trunk/Documentation/DocBook/media/dvb/dvbapi.xml index 2ab6ddcfc4e0..757488b24f4f 100644 --- a/trunk/Documentation/DocBook/media/dvb/dvbapi.xml +++ b/trunk/Documentation/DocBook/media/dvb/dvbapi.xml @@ -28,7 +28,7 @@ Convergence GmbH - 2009-2011 + 2009-2012 Mauro Carvalho Chehab @@ -84,7 +84,7 @@ Added ISDB-T test originally written by Patrick Boettcher LINUX DVB API -Version 5.2 +Version 5.8 &sub-intro; diff --git a/trunk/Documentation/DocBook/media/dvb/dvbproperty.xml b/trunk/Documentation/DocBook/media/dvb/dvbproperty.xml index e633c097a8d1..957e3acaae8e 100644 --- a/trunk/Documentation/DocBook/media/dvb/dvbproperty.xml +++ b/trunk/Documentation/DocBook/media/dvb/dvbproperty.xml @@ -194,6 +194,7 @@ get/set up to 64 properties. The actual meaning of each property is described on APSK_16, APSK_32, DQPSK, + QAM_4_NR, } fe_modulation_t; @@ -265,6 +266,7 @@ typedef enum fe_code_rate { FEC_AUTO, FEC_3_5, FEC_9_10, + FEC_2_5, } fe_code_rate_t; which correspond to error correction rates of 1/2, 2/3, etc., @@ -351,7 +353,7 @@ typedef enum fe_delivery_system { SYS_ISDBC, SYS_ATSC, SYS_ATSCMH, - SYS_DMBTH, + SYS_DTMB, SYS_CMMB, SYS_DAB, SYS_DVBT2, @@ -567,28 +569,33 @@ typedef enum fe_delivery_system { <constant>DTV_ATSCMH_RS_FRAME_MODE</constant> RS frame mode. Possible values are: + typedef enum atscmh_rs_frame_mode { ATSCMH_RSFRAME_PRI_ONLY = 0, ATSCMH_RSFRAME_PRI_SEC = 1, } atscmh_rs_frame_mode_t; +
<constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant> RS frame ensemble. Possible values are: + typedef enum atscmh_rs_frame_ensemble { ATSCMH_RSFRAME_ENS_PRI = 0, ATSCMH_RSFRAME_ENS_SEC = 1, } atscmh_rs_frame_ensemble_t; +
<constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant> RS code mode (primary). Possible values are: + typedef enum atscmh_rs_code_mode { ATSCMH_RSCODE_211_187 = 0, @@ -596,6 +603,7 @@ typedef enum atscmh_rs_code_mode { ATSCMH_RSCODE_235_187 = 2, } atscmh_rs_code_mode_t; +
<constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant> @@ -613,23 +621,27 @@ typedef enum atscmh_rs_code_mode { <constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant> Series Concatenated Convolutional Code Block Mode. Possible values are: + typedef enum atscmh_sccc_block_mode { ATSCMH_SCCC_BLK_SEP = 0, ATSCMH_SCCC_BLK_COMB = 1, } atscmh_sccc_block_mode_t; +
<constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant> Series Concatenated Convolutional Code Rate. Possible values are: + typedef enum atscmh_sccc_code_mode { ATSCMH_SCCC_CODE_HLF = 0, ATSCMH_SCCC_CODE_QTR = 1, } atscmh_sccc_code_mode_t; +
<constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant> @@ -725,6 +737,9 @@ typedef enum fe_guard_interval { GUARD_INTERVAL_1_128, GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_256, + GUARD_INTERVAL_PN420, + GUARD_INTERVAL_PN595, + GUARD_INTERVAL_PN945, } fe_guard_interval_t; @@ -733,6 +748,7 @@ typedef enum fe_guard_interval { try to find the correct guard interval (if capable) and will use TMCC to fill in the missing parameters. 2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present + 3) DTMB specifies PN420, PN595 and PN945.
<constant>DTV_TRANSMISSION_MODE</constant> @@ -749,6 +765,8 @@ typedef enum fe_transmit_mode { TRANSMISSION_MODE_1K, TRANSMISSION_MODE_16K, TRANSMISSION_MODE_32K, + TRANSMISSION_MODE_C1, + TRANSMISSION_MODE_C3780, } fe_transmit_mode_t; Notes: @@ -760,6 +778,7 @@ typedef enum fe_transmit_mode { use TMCC to fill in the missing parameters. 3) DVB-T specifies 2K and 8K as valid sizes. 4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K. + 5) DTMB specifies C1 and C3780.
<constant>DTV_HIERARCHY</constant> @@ -774,17 +793,28 @@ typedef enum fe_hierarchy { } fe_hierarchy_t;
-
- <constant>DTV_ISDBS_TS_ID</constant> - Currently unused. +
+ <constant>DTV_STREAM_ID</constant> + DVB-S2, DVB-T2 and ISDB-S support the transmission of several + streams on a single transport stream. + This property enables the DVB driver to handle substream filtering, + when supported by the hardware. + By default, substream filtering is disabled. + + For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255. + + For ISDB, the valid substream id range is from 1 to 65535. + + To disable it, you should use the special macro NO_STREAM_ID_FILTER. + + Note: any value outside the id range also disables filtering. +
-
- <constant>DTV_DVBT2_PLP_ID</constant> - DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of - many data types via a single multiplex. The API will soon support this - at which point this section will be expanded. +
+ <constant>DTV_DVBT2_PLP_ID_LEGACY</constant> + Obsolete, replaced with DTV_STREAM_ID.
-
+
<constant>DTV_ENUM_DELSYS</constant> A Multi standard frontend needs to advertise the delivery systems provided. Applications need to enumerate the provided delivery systems, before using @@ -796,6 +826,29 @@ typedef enum fe_hierarchy { FE_GET_INFO. In the case of a legacy frontend, the result is just the same as with FE_GET_INFO, but in a more structured format
+
+ <constant>DTV_INTERLEAVING</constant> + Interleaving mode + +enum fe_interleaving { + INTERLEAVING_NONE, + INTERLEAVING_AUTO, + INTERLEAVING_240, + INTERLEAVING_720, +}; + +
+
+ <constant>DTV_LNA</constant> + Low-noise amplifier. + Hardware might offer controllable LNA which can be set manually + using that parameter. Usually LNA could be found only from + terrestrial devices if at all. + Possible values: 0, 1, LNA_AUTO + 0, LNA off + 1, LNA on + use the special macro LNA_AUTO to set LNA auto +
Properties used on terrestrial delivery systems @@ -816,6 +869,7 @@ typedef enum fe_hierarchy { DTV_GUARD_INTERVAL DTV_TRANSMISSION_MODE DTV_HIERARCHY + DTV_LNA
@@ -838,7 +892,8 @@ typedef enum fe_hierarchy { DTV_GUARD_INTERVAL DTV_TRANSMISSION_MODE DTV_HIERARCHY - DTV_DVBT2_PLP_ID + DTV_STREAM_ID + DTV_LNA
@@ -925,13 +980,32 @@ typedef enum fe_hierarchy { DTV_ATSCMH_PRC DTV_ATSCMH_RS_FRAME_MODE DTV_ATSCMH_RS_FRAME_ENSEMBLE - DTV_ATSCMH_CODE_MODE_PRI - DTV_ATSCMH_CODE_MODE_SEC + DTV_ATSCMH_RS_CODE_MODE_PRI + DTV_ATSCMH_RS_CODE_MODE_SEC DTV_ATSCMH_SCCC_BLOCK_MODE - DTV_ATSCMH_SCCC_CODE_MODE_A - DTV_ATSCMH_SCCC_CODE_MODE_B - DTV_ATSCMH_SCCC_CODE_MODE_C - DTV_ATSCMH_SCCC_CODE_MODE_D + DTV_ATSCMH_SCCC_CODE_MODE_A + DTV_ATSCMH_SCCC_CODE_MODE_B + DTV_ATSCMH_SCCC_CODE_MODE_C + DTV_ATSCMH_SCCC_CODE_MODE_D + +
+
+ DTMB delivery system + The following parameters are valid for DTMB: + + DTV_API_VERSION + DTV_DELIVERY_SYSTEM + DTV_TUNE + DTV_CLEAR + DTV_FREQUENCY + DTV_MODULATION + DTV_BANDWIDTH_HZ + DTV_INVERSION + DTV_INNER_FEC + DTV_GUARD_INTERVAL + DTV_TRANSMISSION_MODE + DTV_INTERLEAVING + DTV_LNA
@@ -952,6 +1026,7 @@ typedef enum fe_hierarchy { DTV_INVERSION DTV_SYMBOL_RATE DTV_INNER_FEC + DTV_LNA
@@ -966,6 +1041,7 @@ typedef enum fe_hierarchy { DTV_FREQUENCY DTV_MODULATION DTV_INVERSION + DTV_LNA
@@ -999,6 +1075,7 @@ typedef enum fe_hierarchy { DTV_MODULATION DTV_PILOT DTV_ROLLOFF + DTV_STREAM_ID
@@ -1021,7 +1098,7 @@ typedef enum fe_hierarchy { DTV_SYMBOL_RATE DTV_INNER_FEC DTV_VOLTAGE - DTV_ISDBS_TS_ID + DTV_STREAM_ID
diff --git a/trunk/Documentation/DocBook/media/dvb/frontend.xml b/trunk/Documentation/DocBook/media/dvb/frontend.xml index aeaed59d0f1f..426c2526a454 100644 --- a/trunk/Documentation/DocBook/media/dvb/frontend.xml +++ b/trunk/Documentation/DocBook/media/dvb/frontend.xml @@ -66,7 +66,7 @@ supported via the new FE_GET_PROPERTY/FE_GET The usage of this field is deprecated, as it doesn't report all supported standards, and will provide an incomplete information for frontends that support multiple delivery systems. -Please use DTV_ENUM_DELSYS instead. +Please use DTV_ENUM_DELSYS instead.
@@ -101,6 +101,7 @@ a specific frontend type. FE_CAN_8VSB = 0x200000, FE_CAN_16VSB = 0x400000, FE_HAS_EXTENDED_CAPS = 0x800000, + FE_CAN_MULTISTREAM = 0x4000000, FE_CAN_TURBO_FEC = 0x8000000, FE_CAN_2G_MODULATION = 0x10000000, FE_NEEDS_BENDING = 0x20000000, @@ -207,18 +208,44 @@ spec. Several functions of the frontend device use the fe_status data type defined by - typedef enum fe_status { - FE_HAS_SIGNAL = 0x01, /⋆ found something above the noise level ⋆/ - FE_HAS_CARRIER = 0x02, /⋆ found a DVB signal ⋆/ - FE_HAS_VITERBI = 0x04, /⋆ FEC is stable ⋆/ - FE_HAS_SYNC = 0x08, /⋆ found sync bytes ⋆/ - FE_HAS_LOCK = 0x10, /⋆ everything's working... ⋆/ - FE_TIMEDOUT = 0x20, /⋆ no lock within the last ~2 seconds ⋆/ - FE_REINIT = 0x40 /⋆ frontend was reinitialized, ⋆/ - } fe_status_t; /⋆ application is recommned to reset ⋆/ +typedef enum fe_status { + FE_HAS_SIGNAL = 0x01, + FE_HAS_CARRIER = 0x02, + FE_HAS_VITERBI = 0x04, + FE_HAS_SYNC = 0x08, + FE_HAS_LOCK = 0x10, + FE_TIMEDOUT = 0x20, + FE_REINIT = 0x40, +} fe_status_t; -to indicate the current state and/or state changes of the frontend hardware. - +to indicate the current state and/or state changes of the frontend hardware: + + + + +FE_HAS_SIGNAL +The frontend has found something above the noise level + +FE_HAS_CARRIER +The frontend has found a DVB signal + +FE_HAS_VITERBI +The frontend FEC code is stable + +FE_HAS_SYNC +Syncronization bytes was found + +FE_HAS_LOCK +The DVB were locked and everything is working + +FE_TIMEDOUT +no lock within the last about 2 seconds + +FE_REINIT +The frontend was reinitialized, application is +recommended to reset DiSEqC, tone and parameters + +
@@ -238,7 +265,7 @@ and to add newer delivery systems. FE_GET_PROPERTY/FE_SET_PROPERTY instead, in order to be able to support the newer System Delivery like DVB-S2, DVB-T2, DVB-C2, ISDB, etc. -All kinds of parameters are combined as an union in the FrontendParameters structure: +All kinds of parameters are combined as an union in the FrontendParameters structure: struct dvb_frontend_parameters { uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/ @@ -251,12 +278,13 @@ struct dvb_frontend_parameters { struct dvb_vsb_parameters vsb; } u; }; - + In the case of QPSK frontends the frequency field specifies the intermediate frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and OFDM frontends the frequency specifies the absolute frequency and is given in Hz. +
QPSK parameters For satellite QPSK frontends you have to use the dvb_qpsk_parameters structure: @@ -321,8 +349,8 @@ itself.
frontend code rate The possible values for the fec_inner field used on -struct dvb_qpsk_parameters and -struct dvb_qam_parameters are: +struct dvb_qpsk_parameters and +struct dvb_qam_parameters are: typedef enum fe_code_rate { @@ -347,9 +375,9 @@ detection.
frontend modulation type for QAM, OFDM and VSB For cable and terrestrial frontends, e. g. for -struct dvb_qpsk_parameters, -struct dvb_qam_parameters and -struct dvb_qam_parameters, +struct dvb_qpsk_parameters, +struct dvb_qam_parameters and +struct dvb_qam_parameters, it needs to specify the quadrature modulation mode which can be one of the following: @@ -370,8 +398,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo } fe_modulation_t;
-Finally, there are several more parameters for OFDM: - +
+More OFDM parameters
Number of carriers per channel @@ -427,6 +455,7 @@ typedef enum fe_hierarchy { } fe_hierarchy_t;
+
diff --git a/trunk/Documentation/DocBook/media/dvb/intro.xml b/trunk/Documentation/DocBook/media/dvb/intro.xml index 170064a3dc8f..2048b53d19b9 100644 --- a/trunk/Documentation/DocBook/media/dvb/intro.xml +++ b/trunk/Documentation/DocBook/media/dvb/intro.xml @@ -205,7 +205,7 @@ a partial path like: additional include file linux/dvb/version.h exists, which defines the constant DVB_API_VERSION. This document -describes DVB_API_VERSION 5.4. +describes DVB_API_VERSION 5.8.
diff --git a/trunk/Documentation/DocBook/media/dvb/kdapi.xml b/trunk/Documentation/DocBook/media/dvb/kdapi.xml index 6c67481eaa4b..6c11ec52cbee 100644 --- a/trunk/Documentation/DocBook/media/dvb/kdapi.xml +++ b/trunk/Documentation/DocBook/media/dvb/kdapi.xml @@ -2,7 +2,7 @@ The kernel demux API defines a driver-internal interface for registering low-level, hardware specific driver to a hardware independent demux layer. It is only of interest for DVB device driver writers. The header file for this API is named demux.h and located in -drivers/media/dvb/dvb-core. +drivers/media/dvb-core. Maintainer note: This section must be reviewed. It is probably out of date. diff --git a/trunk/Documentation/DocBook/media/dvb/net.xml b/trunk/Documentation/DocBook/media/dvb/net.xml index 67d37e5ce597..a193e86941b5 100644 --- a/trunk/Documentation/DocBook/media/dvb/net.xml +++ b/trunk/Documentation/DocBook/media/dvb/net.xml @@ -26,4 +26,131 @@ struct dvb_net_if { DVB net Function Calls To be written… + +
NET_ADD_IF +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = NET_ADD_IF, + struct dvb_net_if *if); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals NET_ADD_IF for this command. + + +struct dvb_net_if *if + + +Undocumented. + + +&return-value-dvb; +
+ +
NET_REMOVE_IF +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = NET_REMOVE_IF); + + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals NET_REMOVE_IF for this command. + + +&return-value-dvb; +
+ +
NET_GET_IF +DESCRIPTION + + +This ioctl is undocumented. Documentation is welcome. + + +SYNOPSIS + + +int ioctl(fd, int request = NET_GET_IF, + struct dvb_net_if *if); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals NET_GET_IF for this command. + + +struct dvb_net_if *if + + +Undocumented. + + +&return-value-dvb; +
diff --git a/trunk/Documentation/DocBook/media/dvb/video.xml b/trunk/Documentation/DocBook/media/dvb/video.xml index 25fb823226b4..3ea1ca7e785e 100644 --- a/trunk/Documentation/DocBook/media/dvb/video.xml +++ b/trunk/Documentation/DocBook/media/dvb/video.xml @@ -15,6 +15,10 @@ the audio and video device as well as the video4linux device. The ioctls that deal with SPUs (sub picture units) and navigation packets are only supported on some MPEG decoders made for DVD playback. + +These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use +of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls +have been created to replace that functionality.
Video Data Types @@ -55,7 +59,7 @@ typedef enum {
-video stream source +video_stream_source_t The video stream source is set through the VIDEO_SELECT_SOURCE call and can take the following values, depending on whether we are replaying from an internal (demuxer) or external (user write) source. @@ -76,7 +80,7 @@ call.
-video play state +video_play_state_t The following values can be returned by the VIDEO_GET_STATUS call representing the state of video playback. @@ -90,9 +94,9 @@ typedef enum {
+struct video_command The structure must be zeroed before use by the application This ensures it can be extended safely in the future. -struct video-command struct video_command { __u32 cmd; @@ -121,7 +125,7 @@ struct video_command {
-struct video_size-t +video_size_t typedef struct { int w; @@ -217,7 +221,7 @@ bits set according to the hardwares capabilities.
-video system +video_system_t A call to VIDEO_SET_SYSTEM sets the desired video system for TV output. The following system types can be set: @@ -263,7 +267,7 @@ call expects the following format for that information:
-video SPU +struct video_spu Calling VIDEO_SET_SPU deactivates or activates SPU decoding, according to the following format: @@ -277,12 +281,12 @@ following format:
-video SPU palette +struct video_spu_palette The following structure is used to set the SPU palette by calling VIDEO_SPU_PALETTE: typedef - struct video_spu_palette{ + struct video_spu_palette { int length; uint8_t ⋆palette; } video_spu_palette_t; @@ -290,13 +294,13 @@ following format:
-video NAVI pack +struct video_navi_pack In order to get the navigational data the following structure has to be passed to the ioctl VIDEO_GET_NAVI: typedef - struct video_navi_pack{ + struct video_navi_pack { int length; /⋆ 0 ... 1024 ⋆/ uint8_t data[1024]; } video_navi_pack_t; @@ -305,7 +309,7 @@ VIDEO_GET_NAVI:
-video attributes +video_attributes_t The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES: @@ -541,6 +545,8 @@ VIDEO_GET_NAVI: role="subsection">VIDEO_STOP DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +&VIDIOC-DECODER-CMD; instead. This ioctl call asks the Video Device to stop playing the current stream. @@ -598,6 +604,8 @@ role="subsection">VIDEO_STOP role="subsection">VIDEO_PLAY DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +&VIDIOC-DECODER-CMD; instead. This ioctl call asks the Video Device to start playing a video stream from the @@ -634,6 +642,8 @@ role="subsection">VIDEO_PLAY role="subsection">VIDEO_FREEZE DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +&VIDIOC-DECODER-CMD; instead. This ioctl call suspends the live video stream being played. Decoding @@ -674,6 +684,8 @@ role="subsection">VIDEO_FREEZE role="subsection">VIDEO_CONTINUE DESCRIPTION +This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2 +&VIDIOC-DECODER-CMD; instead. This ioctl call restarts decoding and playing processes of the video stream @@ -710,6 +722,9 @@ role="subsection">VIDEO_CONTINUE role="subsection">VIDEO_SELECT_SOURCE DESCRIPTION +This ioctl is for DVB devices only. This ioctl was also supported by the +V4L2 ivtv driver, but that has been replaced by the ivtv-specific +IVTV_IOC_PASSTHROUGH_MODE ioctl. This ioctl call informs the video device which source shall be used for the input @@ -845,10 +860,160 @@ role="subsection">VIDEO_GET_STATUS &return-value-dvb; +
VIDEO_GET_FRAME_COUNT +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this +ioctl has been replaced by the V4L2_CID_MPEG_VIDEO_DEC_FRAME control. + +This ioctl call asks the Video Device to return the number of displayed frames +since the decoder was started. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_GET_FRAME_COUNT, __u64 *pts); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_GET_FRAME_COUNT for this + command. + + +__u64 *pts + + +Returns the number of frames displayed since the decoder was started. + + + +&return-value-dvb; + +
VIDEO_GET_PTS +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this +ioctl has been replaced by the V4L2_CID_MPEG_VIDEO_DEC_PTS control. + +This ioctl call asks the Video Device to return the current PTS timestamp. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_GET_PTS, __u64 *pts); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_GET_PTS for this + command. + + +__u64 *pts + + +Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1. + + +The PTS should belong to the currently played +frame if possible, but may also be a value close to it +like the PTS of the last decoded frame or the last PTS +extracted by the PES parser. + + +&return-value-dvb; + +
VIDEO_GET_FRAME_RATE +DESCRIPTION + + +This ioctl call asks the Video Device to return the current framerate. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_GET_FRAME_RATE, unsigned int *rate); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_GET_FRAME_RATE for this + command. + + +unsigned int *rate + + +Returns the framerate in number of frames per 1000 seconds. + + + +&return-value-dvb; +
VIDEO_GET_EVENT DESCRIPTION +This ioctl is for DVB devices only. To get events from a V4L2 decoder use the V4L2 +&VIDIOC-DQEVENT; ioctl instead. This ioctl call returns an event of type video_event if available. If an event is @@ -914,6 +1079,152 @@ role="subsection">VIDEO_GET_EVENT +
VIDEO_COMMAND +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this +ioctl has been replaced by the &VIDIOC-DECODER-CMD; ioctl. + +This ioctl commands the decoder. The video_command struct +is a subset of the v4l2_decoder_cmd struct, so refer to the +&VIDIOC-DECODER-CMD; documentation for more information. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_COMMAND, struct video_command *cmd); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_COMMAND for this + command. + + +struct video_command *cmd + + +Commands the decoder. + + + +&return-value-dvb; + +
VIDEO_TRY_COMMAND +DESCRIPTION + +This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this +ioctl has been replaced by the &VIDIOC-TRY-DECODER-CMD; ioctl. + +This ioctl tries a decoder command. The video_command struct +is a subset of the v4l2_decoder_cmd struct, so refer to the +&VIDIOC-TRY-DECODER-CMD; documentation for more information. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_TRY_COMMAND, struct video_command *cmd); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_TRY_COMMAND for this + command. + + +struct video_command *cmd + + +Try a decoder command. + + + +&return-value-dvb; + +
VIDEO_GET_SIZE +DESCRIPTION + + +This ioctl returns the size and aspect ratio. + + +SYNOPSIS + + +int ioctl(int fd, int request = + VIDEO_GET_SIZE, video_size_t *size); + + +PARAMETERS + + +int fd + +File descriptor returned by a previous call to open(). + + +int request + +Equals VIDEO_GET_SIZE for this + command. + + +video_size_t *size + + +Returns the size and aspect ratio. + + + +&return-value-dvb; +
VIDEO_SET_DISPLAY_FORMAT DESCRIPTION diff --git a/trunk/Documentation/DocBook/media/v4l/biblio.xml b/trunk/Documentation/DocBook/media/v4l/biblio.xml index 1078e45f189f..d2eb79e41a01 100644 --- a/trunk/Documentation/DocBook/media/v4l/biblio.xml +++ b/trunk/Documentation/DocBook/media/v4l/biblio.xml @@ -178,23 +178,23 @@ Signal - NTSC for Studio Applications" 1125-Line High-Definition Production" - - EN 50067 + + IEC 62106 - European Committee for Electrotechnical Standardization -(http://www.cenelec.eu) + International Electrotechnical Commission +(http://www.iec.ch) Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range from 87,5 to 108,0 MHz - NRSC-4 + NRSC-4-B National Radio Systems Committee (http://www.nrscstandards.org) - NRSC-4: United States RBDS Standard + NRSC-4-B: United States RBDS Standard @@ -226,4 +226,44 @@ in the frequency range from 87,5 to 108,0 MHz VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT) + + EDID + + Video Electronics Standards Association +(http://www.vesa.org) + + VESA Enhanced Extended Display Identification Data Standard + Release A, Revision 2 + + + + HDCP + + Digital Content Protection LLC +(http://www.digital-cp.com) + + High-bandwidth Digital Content Protection System + Revision 1.3 + + + + HDMI + + HDMI Licensing LLC +(http://www.hdmi.org) + + High-Definition Multimedia Interface + Specification Version 1.4a + + + + DP + + Video Electronics Standards Association +(http://www.vesa.org) + + VESA DisplayPort Standard + Version 1, Revision 2 + + diff --git a/trunk/Documentation/DocBook/media/v4l/common.xml b/trunk/Documentation/DocBook/media/v4l/common.xml index b91d25313b63..73c6847436c9 100644 --- a/trunk/Documentation/DocBook/media/v4l/common.xml +++ b/trunk/Documentation/DocBook/media/v4l/common.xml @@ -564,7 +564,7 @@ automatically. To query and select the standard used by the current video input or output applications call the &VIDIOC-G-STD; and &VIDIOC-S-STD; ioctl, respectively. The received -standard can be sensed with the &VIDIOC-QUERYSTD; ioctl. Note parameter of all these ioctls is a pointer to a &v4l2-std-id; type (a standard set), not an index into the standard enumeration. +standard can be sensed with the &VIDIOC-QUERYSTD; ioctl. Note that the parameter of all these ioctls is a pointer to a &v4l2-std-id; type (a standard set), not an index into the standard enumeration. An alternative to the current scheme is to use pointers to indices as arguments of VIDIOC_G_STD and VIDIOC_S_STD, the &v4l2-input; and @@ -588,30 +588,28 @@ switch to a standard by &v4l2-std-id;. Drivers must implement all video standard ioctls when the device has one or more video inputs or outputs. - Special rules apply to USB cameras where the notion of video -standards makes little sense. More generally any capture device, -output devices accordingly, which is + Special rules apply to devices such as USB cameras where the notion of video +standards makes little sense. More generally for any capture or output device +which is: incapable of capturing fields or frames at the nominal rate of the video standard, or - where timestamps refer -to the instant the field or frame was received by the driver, not the -capture time, or - - - where sequence numbers -refer to the frames received by the driver, not the captured -frames. + that does not support the video standard formats at all. Here the driver shall set the std field of &v4l2-input; and &v4l2-output; -to zero, the VIDIOC_G_STD, +to zero and the VIDIOC_G_STD, VIDIOC_S_STD, VIDIOC_QUERYSTD and VIDIOC_ENUMSTD ioctls shall return the -&EINVAL;. +&ENOTTY;. + See for a rationale. + Applications can make use of the and + flags to determine whether the video standard ioctls +are available for the device. +&ENOTTY;. See for a rationale. Probably even USB cameras follow some well known video standard. It might have been better to explicitly indicate elsewhere if a device cannot live @@ -626,9 +624,9 @@ up to normal expectations, instead of this exception. &v4l2-standard; standard; if (-1 == ioctl (fd, &VIDIOC-G-STD;, &std_id)) { - /* Note when VIDIOC_ENUMSTD always returns EINVAL this + /* Note when VIDIOC_ENUMSTD always returns ENOTTY this is no video device or it falls under the USB exception, - and VIDIOC_G_STD returning EINVAL is no error. */ + and VIDIOC_G_STD returning ENOTTY is no error. */ perror ("VIDIOC_G_STD"); exit (EXIT_FAILURE); diff --git a/trunk/Documentation/DocBook/media/v4l/compat.xml b/trunk/Documentation/DocBook/media/v4l/compat.xml index faa0fd14666a..c6ae4c9d0e0c 100644 --- a/trunk/Documentation/DocBook/media/v4l/compat.xml +++ b/trunk/Documentation/DocBook/media/v4l/compat.xml @@ -1476,7 +1476,7 @@ follows. V4L2_BUF_TYPE_PRIVATE_BASE - V4L2_BUF_TYPE_PRIVATE + V4L2_BUF_TYPE_PRIVATE (but this is deprecated) @@ -2468,21 +2468,9 @@ that used it. It was originally scheduled for removal in 2.6.35. reserved2 and removed V4L2_BUF_FLAG_INPUT. - -
- -
- V4L2 in Linux 3.6 - Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities. - -
- -
- V4L2 in Linux 3.6 - Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;. @@ -2567,29 +2555,6 @@ and may change in the future. Video Output Overlay (OSD) Interface, . - - V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY, - &v4l2-buf-type;, . - - - V4L2_CAP_VIDEO_OUTPUT_OVERLAY, -&VIDIOC-QUERYCAP; ioctl, . - - - &VIDIOC-ENUM-FRAMESIZES; and -&VIDIOC-ENUM-FRAMEINTERVALS; ioctls. - - - &VIDIOC-G-ENC-INDEX; ioctl. - - - &VIDIOC-ENCODER-CMD; and &VIDIOC-TRY-ENCODER-CMD; -ioctls. - - - &VIDIOC-DECODER-CMD; and &VIDIOC-TRY-DECODER-CMD; -ioctls. - &VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER; ioctls. @@ -2614,10 +2579,6 @@ ioctls. Sub-device selection API: &VIDIOC-SUBDEV-G-SELECTION; and &VIDIOC-SUBDEV-S-SELECTION; ioctls. - - - V4L2_CID_AUTO_FOCUS_AREA control. - Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl. diff --git a/trunk/Documentation/DocBook/media/v4l/controls.xml b/trunk/Documentation/DocBook/media/v4l/controls.xml index b0964fb4e834..272a5f718509 100644 --- a/trunk/Documentation/DocBook/media/v4l/controls.xml +++ b/trunk/Documentation/DocBook/media/v4l/controls.xml @@ -3505,7 +3505,7 @@ This encodes up to 31 pre-defined programme types. Sets the Programme Service name (PS_NAME) for transmission. It is intended for static display on a receiver. It is the primary aid to listeners in programme service -identification and selection. In Annex E of , the RDS specification, +identification and selection. In Annex E of , the RDS specification, there is a full description of the correct character encoding for Programme Service name strings. Also from RDS specification, PS is usually a single eight character text. However, it is also possible to find receivers which can scroll strings sized as 8 x N characters. So, this control must be configured @@ -3519,7 +3519,7 @@ with steps of 8 characters. The result is it must always contain a string with s what is being broadcasted. RDS Radio Text can be applied when broadcaster wishes to transmit longer PS names, programme-related information or any other text. In these cases, RadioText should be used in addition to V4L2_CID_RDS_TX_PS_NAME. The encoding for Radio Text strings is also fully described -in Annex E of . The length of Radio Text strings depends on which RDS Block is being +in Annex E of . The length of Radio Text strings depends on which RDS Block is being used to transmit it, either 32 (2A block) or 64 (2B block). However, it is also possible to find receivers which can scroll strings sized as 32 x N or 64 x N characters. So, this control must be configured with steps of 32 or 64 characters. The result is it must always contain a string with size multiple of 32 or 64. @@ -3650,7 +3650,7 @@ manually or automatically if set to zero. Unit, range and step are driver-specif For more details about RDS specification, refer to - document, from CENELEC. + document, from CENELEC.
@@ -3717,232 +3717,231 @@ interface and may change in the future. use case involving camera or individually. -
+ + Flash Control IDs + + + + + + + + + + + ID + Type + Description + + + + + + V4L2_CID_FLASH_CLASS + class + + + The FLASH class descriptor. + + + V4L2_CID_FLASH_LED_MODE + menu + + + Defines the mode of the flash LED, + the high-power white LED attached to the flash controller. + Setting this control may not be possible in presence of + some faults. See V4L2_CID_FLASH_FAULT. + + + + + + V4L2_FLASH_LED_MODE_NONE + Off. + + + V4L2_FLASH_LED_MODE_FLASH + Flash mode. + + + V4L2_FLASH_LED_MODE_TORCH + Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. + + + + + + V4L2_CID_FLASH_STROBE_SOURCE + menu + + Defines the source of the flash LED + strobe. + + + + + + V4L2_FLASH_STROBE_SOURCE_SOFTWARE + The flash strobe is triggered by using + the V4L2_CID_FLASH_STROBE control. + + + V4L2_FLASH_STROBE_SOURCE_EXTERNAL + The flash strobe is triggered by an + external source. Typically this is a sensor, + which makes it possible to synchronises the + flash strobe start to exposure start. + + + + + + V4L2_CID_FLASH_STROBE + button + + + Strobe flash. Valid when + V4L2_CID_FLASH_LED_MODE is set to + V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE + is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this + control may not be possible in presence of some faults. + See V4L2_CID_FLASH_FAULT. + + + V4L2_CID_FLASH_STROBE_STOP + button + + Stop flash strobe immediately. + + + V4L2_CID_FLASH_STROBE_STATUS + boolean + + + Strobe status: whether the flash + is strobing at the moment or not. This is a read-only + control. + + + V4L2_CID_FLASH_TIMEOUT + integer + + + Hardware timeout for flash. The + flash strobe is stopped after this period of time has + passed from the start of the strobe. + + + V4L2_CID_FLASH_INTENSITY + integer + + + Intensity of the flash strobe when + the flash LED is in flash mode + (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps + (mA) if possible. + + + V4L2_CID_FLASH_TORCH_INTENSITY + integer + + + Intensity of the flash LED in + torch mode (V4L2_FLASH_LED_MODE_TORCH). The unit should be + milliamps (mA) if possible. Setting this control may not + be possible in presence of some faults. See + V4L2_CID_FLASH_FAULT. + + + V4L2_CID_FLASH_INDICATOR_INTENSITY + integer + + + Intensity of the indicator LED. + The indicator LED may be fully independent of the flash + LED. The unit should be microamps (uA) if possible. + + + V4L2_CID_FLASH_FAULT + bitmask + + + Faults related to the flash. The + faults tell about specific problems in the flash chip + itself or the LEDs attached to it. Faults may prevent + further use of some of the flash controls. In particular, + V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE + if the fault affects the flash LED. Exactly which faults + have such an effect is chip dependent. Reading the faults + resets the control and returns the chip to a usable state + if possible. + + + + + + V4L2_FLASH_FAULT_OVER_VOLTAGE + Flash controller voltage to the flash LED + has exceeded the limit specific to the flash + controller. + + + V4L2_FLASH_FAULT_TIMEOUT + The flash strobe was still on when + the timeout set by the user --- + V4L2_CID_FLASH_TIMEOUT control --- has expired. + Not all flash controllers may set this in all + such conditions. + + + V4L2_FLASH_FAULT_OVER_TEMPERATURE + The flash controller has overheated. + + + V4L2_FLASH_FAULT_SHORT_CIRCUIT + The short circuit protection of the flash + controller has been triggered. + + + V4L2_FLASH_FAULT_OVER_CURRENT + Current in the LED power supply has exceeded the limit + specific to the flash controller. + + + V4L2_FLASH_FAULT_INDICATOR + The flash controller has detected a short or open + circuit condition on the indicator LED. + + + + + + V4L2_CID_FLASH_CHARGE + boolean + + Enable or disable charging of the xenon + flash capacitor. + + + V4L2_CID_FLASH_READY + boolean + + + Is the flash ready to strobe? + Xenon flashes require their capacitors charged before + strobing. LED flashes often require a cooldown period + after strobe during which another strobe will not be + possible. This is a read-only control. + + + + +
+
- - - Flash Control IDs - - - - - - - - - - - ID - Type - Description - - - - - - V4L2_CID_FLASH_CLASS - class - - - The FLASH class descriptor. - - - V4L2_CID_FLASH_LED_MODE - menu - - - Defines the mode of the flash LED, - the high-power white LED attached to the flash controller. - Setting this control may not be possible in presence of - some faults. See V4L2_CID_FLASH_FAULT. - - - - - - V4L2_FLASH_LED_MODE_NONE - Off. - - - V4L2_FLASH_LED_MODE_FLASH - Flash mode. - - - V4L2_FLASH_LED_MODE_TORCH - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. - - - - - - V4L2_CID_FLASH_STROBE_SOURCE - menu - - Defines the source of the flash LED - strobe. - - - - - - V4L2_FLASH_STROBE_SOURCE_SOFTWARE - The flash strobe is triggered by using - the V4L2_CID_FLASH_STROBE control. - - - V4L2_FLASH_STROBE_SOURCE_EXTERNAL - The flash strobe is triggered by an - external source. Typically this is a sensor, - which makes it possible to synchronises the - flash strobe start to exposure start. - - - - - - V4L2_CID_FLASH_STROBE - button - - - Strobe flash. Valid when - V4L2_CID_FLASH_LED_MODE is set to - V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE - is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this - control may not be possible in presence of some faults. - See V4L2_CID_FLASH_FAULT. - - - V4L2_CID_FLASH_STROBE_STOP - button - - Stop flash strobe immediately. - - - V4L2_CID_FLASH_STROBE_STATUS - boolean - - - Strobe status: whether the flash - is strobing at the moment or not. This is a read-only - control. - - - V4L2_CID_FLASH_TIMEOUT - integer - - - Hardware timeout for flash. The - flash strobe is stopped after this period of time has - passed from the start of the strobe. - - - V4L2_CID_FLASH_INTENSITY - integer - - - Intensity of the flash strobe when - the flash LED is in flash mode - (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps - (mA) if possible. - - - V4L2_CID_FLASH_TORCH_INTENSITY - integer - - - Intensity of the flash LED in - torch mode (V4L2_FLASH_LED_MODE_TORCH). The unit should be - milliamps (mA) if possible. Setting this control may not - be possible in presence of some faults. See - V4L2_CID_FLASH_FAULT. - - - V4L2_CID_FLASH_INDICATOR_INTENSITY - integer - - - Intensity of the indicator LED. - The indicator LED may be fully independent of the flash - LED. The unit should be microamps (uA) if possible. - - - V4L2_CID_FLASH_FAULT - bitmask - - - Faults related to the flash. The - faults tell about specific problems in the flash chip - itself or the LEDs attached to it. Faults may prevent - further use of some of the flash controls. In particular, - V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE - if the fault affects the flash LED. Exactly which faults - have such an effect is chip dependent. Reading the faults - resets the control and returns the chip to a usable state - if possible. - - - - - - V4L2_FLASH_FAULT_OVER_VOLTAGE - Flash controller voltage to the flash LED - has exceeded the limit specific to the flash - controller. - - - V4L2_FLASH_FAULT_TIMEOUT - The flash strobe was still on when - the timeout set by the user --- - V4L2_CID_FLASH_TIMEOUT control --- has expired. - Not all flash controllers may set this in all - such conditions. - - - V4L2_FLASH_FAULT_OVER_TEMPERATURE - The flash controller has overheated. - - - V4L2_FLASH_FAULT_SHORT_CIRCUIT - The short circuit protection of the flash - controller has been triggered. - - - V4L2_FLASH_FAULT_OVER_CURRENT - Current in the LED power supply has exceeded the limit - specific to the flash controller. - - - V4L2_FLASH_FAULT_INDICATOR - The flash controller has detected a short or open - circuit condition on the indicator LED. - - - - - - V4L2_CID_FLASH_CHARGE - boolean - - Enable or disable charging of the xenon - flash capacitor. - - - V4L2_CID_FLASH_READY - boolean - - - Is the flash ready to strobe? - Xenon flashes require their capacitors charged before - strobing. LED flashes often require a cooldown period - after strobe during which another strobe will not be - possible. This is a read-only control. - - - - -
@@ -4274,4 +4273,165 @@ interface and may change in the future.
+ +
+ Digital Video Control Reference + + + Experimental + + This is an experimental interface and may + change in the future. + + + + The Digital Video control class is intended to control receivers + and transmitters for VGA, + DVI + (Digital Visual Interface), HDMI () and DisplayPort (). + These controls are generally expected to be private to the receiver or transmitter + subdevice that implements them, so they are only exposed on the + /dev/v4l-subdev* device node. + + + Note that these devices can have multiple input or output pads which are + hooked up to e.g. HDMI connectors. Even though the subdevice will receive or + transmit video from/to only one of those pads, the other pads can still be + active when it comes to EDID (Extended Display Identification Data, + ) and HDCP (High-bandwidth Digital Content + Protection System, ) processing, allowing the device + to do the fairly slow EDID/HDCP handling in advance. This allows for quick + switching between connectors. + + These pads appear in several of the controls in this section as + bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad 1, + etc. The maximum value of the control is the set of valid pads. + + + Digital Video Control IDs + + + + + + + + + + + ID + Type + Description + + + + + + V4L2_CID_DV_CLASS + class + + + The Digital Video class descriptor. + + + V4L2_CID_DV_TX_HOTPLUG + bitmask + + + Many connectors have a hotplug pin which is high + if EDID information is available from the source. This control shows the + state of the hotplug pin as seen by the transmitter. + Each bit corresponds to an output pad on the transmitter. If an output pad + does not have an associated hotplug pin, then the bit for that pad will be 0. + This read-only control is applicable to DVI-D, HDMI and DisplayPort connectors. + + + + V4L2_CID_DV_TX_RXSENSE + bitmask + + + Rx Sense is the detection of pull-ups on the TMDS + clock lines. This normally means that the sink has left/entered standby (i.e. + the transmitter can sense that the receiver is ready to receive video). + Each bit corresponds to an output pad on the transmitter. If an output pad + does not have an associated Rx Sense, then the bit for that pad will be 0. + This read-only control is applicable to DVI-D and HDMI devices. + + + + V4L2_CID_DV_TX_EDID_PRESENT + bitmask + + + When the transmitter sees the hotplug signal from the + receiver it will attempt to read the EDID. If set, then the transmitter has read + at least the first block (= 128 bytes). + Each bit corresponds to an output pad on the transmitter. If an output pad + does not support EDIDs, then the bit for that pad will be 0. + This read-only control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors. + + + + V4L2_CID_DV_TX_MODE + enum v4l2_dv_tx_mode + + + HDMI transmitters can transmit in DVI-D mode (just video) + or in HDMI mode (video + audio + auxiliary data). This control selects which mode + to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI. + This control is applicable to HDMI connectors. + + + + V4L2_CID_DV_TX_RGB_RANGE + enum v4l2_dv_rgb_range + + + Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO + follows the RGB quantization range specified in the standard for the video interface + (ie. for HDMI). V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the standard + to be compatible with sinks that have not implemented the standard correctly + (unfortunately quite common for HDMI and DVI-D). Full range allows all possible values to be + used whereas limited range sets the range to (16 << (N-8)) - (235 << (N-8)) + where N is the number of bits per component. + This control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors. + + + + V4L2_CID_DV_RX_POWER_PRESENT + bitmask + + + Detects whether the receiver receives power from the source + (e.g. HDMI carries 5V on one of the pins). This is often used to power an eeprom + which contains EDID information, such that the source can read the EDID even if + the sink is in standby/power off. + Each bit corresponds to an input pad on the transmitter. If an input pad + cannot detect whether power is present, then the bit for that pad will be 0. + This read-only control is applicable to DVI-D, HDMI and DisplayPort connectors. + + + + V4L2_CID_DV_RX_RGB_RANGE + enum v4l2_dv_rgb_range + + + Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO + follows the RGB quantization range specified in the standard for the video interface + (ie. for HDMI). V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the standard + to be compatible with sources that have not implemented the standard correctly + (unfortunately quite common for HDMI and DVI-D). Full range allows all possible values to be + used whereas limited range sets the range to (16 << (N-8)) - (235 << (N-8)) + where N is the number of bits per component. + This control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors. + + + + + +
+ +
diff --git a/trunk/Documentation/DocBook/media/v4l/dev-osd.xml b/trunk/Documentation/DocBook/media/v4l/dev-osd.xml index 479d9433869a..dd91d6134e8c 100644 --- a/trunk/Documentation/DocBook/media/v4l/dev-osd.xml +++ b/trunk/Documentation/DocBook/media/v4l/dev-osd.xml @@ -1,13 +1,6 @@ Video Output Overlay Interface Also known as On-Screen Display (OSD) - - Experimental - - This is an experimental -interface and may change in the future. - - Some video output devices can overlay a framebuffer image onto the outgoing video signal. Applications can set up such an overlay using this interface, which borrows structures and ioctls of the - For more information see the core RDS standard + For more information see the core RDS standard and the RBDS standard . Note that the RBDS standard as is used in the USA is almost identical diff --git a/trunk/Documentation/DocBook/media/v4l/dev-subdev.xml b/trunk/Documentation/DocBook/media/v4l/dev-subdev.xml index a3d9dd093268..d15aaf83f56f 100644 --- a/trunk/Documentation/DocBook/media/v4l/dev-subdev.xml +++ b/trunk/Documentation/DocBook/media/v4l/dev-subdev.xml @@ -374,29 +374,29 @@ rectangle --- if it is supported by the hardware. - Sink pad format. The user configures the sink pad + Sink pad format. The user configures the sink pad format. This format defines the parameters of the image the - entity receives through the pad for further processing. + entity receives through the pad for further processing. - Sink pad actual crop selection. The sink pad crop - defines the crop performed to the sink pad format. + Sink pad actual crop selection. The sink pad crop + defines the crop performed to the sink pad format. - Sink pad actual compose selection. The size of the + Sink pad actual compose selection. The size of the sink pad compose rectangle defines the scaling ratio compared to the size of the sink pad crop rectangle. The location of the compose rectangle specifies the location of the actual sink compose rectangle in the sink compose bounds - rectangle. + rectangle. - Source pad actual crop selection. Crop on the source + Source pad actual crop selection. Crop on the source pad defines crop performed to the image in the sink compose - bounds rectangle. + bounds rectangle. - Source pad format. The source pad format defines the + Source pad format. The source pad format defines the output pixel format of the subdev, as well as the other parameters with the exception of the image width and height. Width and height are defined by the size of the source pad - actual crop selection. + actual crop selection. Accessing any of the above rectangles not supported by the diff --git a/trunk/Documentation/DocBook/media/v4l/gen-errors.xml b/trunk/Documentation/DocBook/media/v4l/gen-errors.xml index 5bbf3ce1973a..7e29a4e1f696 100644 --- a/trunk/Documentation/DocBook/media/v4l/gen-errors.xml +++ b/trunk/Documentation/DocBook/media/v4l/gen-errors.xml @@ -6,6 +6,15 @@ &cs-str; + + EAGAIN (aka EWOULDBLOCK) + The ioctl can't be handled because the device is in state where + it can't perform it. This could happen for example in case where + device is sleeping and ioctl is performed to query statistics. + It is also returned when the ioctl would need to wait + for an event, but the device was opened in non-blocking mode. + + EBADF The file descriptor is not a valid. @@ -50,22 +59,12 @@ that this request would overcommit the usb bandwidth reserved for periodic transfers (up to 80% of the USB bandwidth). - - ENOSYS or EOPNOTSUPP - Function not available for this device (dvb API only. Will likely - be replaced anytime soon by ENOTTY). - EPERM Permission denied. Can be returned if the device needs write permission, or some special capabilities is needed (e. g. root) - - EWOULDBLOCK - Operation would block. Used when the ioctl would need to wait - for an event, but the device was opened in non-blocking mode. - diff --git a/trunk/Documentation/DocBook/media/v4l/io.xml b/trunk/Documentation/DocBook/media/v4l/io.xml index 1885cc0755cb..97f785add841 100644 --- a/trunk/Documentation/DocBook/media/v4l/io.xml +++ b/trunk/Documentation/DocBook/media/v4l/io.xml @@ -613,8 +613,8 @@ field is independent of the timestamp and __u32 sequence - Set by the driver, counting the frames in the -sequence. + Set by the driver, counting the frames (not fields!) in +sequence. This field is set for both input and output devices. In for details. __u32 reserved2 - A place holder for future extensions and custom -(driver defined) buffer types -V4L2_BUF_TYPE_PRIVATE and higher. Applications + A place holder for future extensions. Applications should set this to 0. __u32 reserved - A place holder for future extensions and custom -(driver defined) buffer types -V4L2_BUF_TYPE_PRIVATE and higher. Applications + A place holder for future extensions. Applications should set this to 0. @@ -827,14 +823,7 @@ should set this to 0. V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY 8 Buffer for video output overlay (OSD), see . Status: Experimental. - - - V4L2_BUF_TYPE_PRIVATE - 0x80 - This and higher values are reserved for custom -(driver defined) buffer types. + linkend="osd" />. diff --git a/trunk/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml b/trunk/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml index 8eace3e2e7d4..2d3f0b1aefe0 100644 --- a/trunk/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml +++ b/trunk/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml @@ -22,8 +22,7 @@ with 10 bits per colour compressed to 8 bits each, using DPCM compression. DPCM, differential pulse-code modulation, is lossy. Each colour component consumes 8 bits of memory. In other respects - this format is similar to . + this format is similar to . diff --git a/trunk/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml b/trunk/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml new file mode 100644 index 000000000000..2330667907c7 --- /dev/null +++ b/trunk/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml @@ -0,0 +1,154 @@ + + + V4L2_PIX_FMT_YVU420M ('YM21') + &manvol; + + + V4L2_PIX_FMT_YVU420M + Variation of V4L2_PIX_FMT_YVU420 + with planes non contiguous in memory. + + + + Description + + This is a multi-planar format, as opposed to a packed format. +The three components are separated into three sub-images or planes. + +The Y plane is first. The Y plane has one byte per pixel. The Cr data +constitutes the second plane which is half the width and half +the height of the Y plane (and of the image). Each Cr belongs to four +pixels, a two-by-two square of the image. For example, +Cr0 belongs to Y'00, +Y'01, Y'10, and +Y'11. The Cb data, just like the Cr plane, constitutes +the third plane. + + If the Y plane has pad bytes after each row, then the Cr +and Cb planes have half as many pad bytes after their rows. In other +words, two Cx rows (including padding) is exactly as long as one Y row +(including padding). + + V4L2_PIX_FMT_YVU420M is intended to be +used only in drivers and applications that support the multi-planar API, +described in . + + + <constant>V4L2_PIX_FMT_YVU420M</constant> 4 × 4 +pixel image + + + Byte Order. + Each cell is one byte. + + + + + + start0 + 0: + Y'00 + Y'01 + Y'02 + Y'03 + + + start0 + 4: + Y'10 + Y'11 + Y'12 + Y'13 + + + start0 + 8: + Y'20 + Y'21 + Y'22 + Y'23 + + + start0 + 12: + Y'30 + Y'31 + Y'32 + Y'33 + + + + start1 + 0: + Cr00 + Cr01 + + + start1 + 2: + Cr10 + Cr11 + + + + start2 + 0: + Cb00 + Cb01 + + + start2 + 2: + Cb10 + Cb11 + + + + + + + + + Color Sample Location. + + + + + + + 01 + 23 + + + 0 + YY + YY + + + + C + C + + + 1 + YY + YY + + + + + + 2 + YY + YY + + + + C + C + + + 3 + YY + YY + + + + + + + + + diff --git a/trunk/Documentation/DocBook/media/v4l/pixfmt.xml b/trunk/Documentation/DocBook/media/v4l/pixfmt.xml index e58934c92895..1ddbfabe3195 100644 --- a/trunk/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/trunk/Documentation/DocBook/media/v4l/pixfmt.xml @@ -708,6 +708,7 @@ information. &sub-y41p; &sub-yuv420; &sub-yuv420m; + &sub-yvu420m; &sub-yuv410; &sub-yuv422p; &sub-yuv411p; diff --git a/trunk/Documentation/DocBook/media/v4l/selection-api.xml b/trunk/Documentation/DocBook/media/v4l/selection-api.xml index e7ed5077834d..4c238ce068b0 100644 --- a/trunk/Documentation/DocBook/media/v4l/selection-api.xml +++ b/trunk/Documentation/DocBook/media/v4l/selection-api.xml @@ -40,6 +40,7 @@ cropping and composing rectangles have the same size.
Selection targets +
Cropping and composing targets @@ -52,12 +53,12 @@ cropping and composing rectangles have the same size.
+
+ See for more + information.
- See for more - information. -
Configuration @@ -216,18 +217,17 @@ composing and cropping operations by setting the appropriate targets. The V4L2 API lacks any support for composing to and cropping from an image inside a memory buffer. The application could configure a capture device to fill only a part of an image by abusing V4L2 API. Cropping a smaller image from a larger -one is achieved by setting the field -&v4l2-pix-format;::bytesperline . Introducing an image offsets -could be done by modifying field &v4l2-buffer;::m:userptr - before calling VIDIOC_QBUF . Those +one is achieved by setting the field +&v4l2-pix-format;::bytesperline. Introducing an image offsets +could be done by modifying field &v4l2-buffer;::m_userptr +before calling VIDIOC_QBUF . Those operations should be avoided because they are not portable (endianness), and do not work for macroblock and Bayer formats and mmap buffers. The selection API deals with configuration of buffer cropping/composing in a clear, intuitive and portable way. Next, with the selection API the concepts of the padded target -and constraints flags are introduced. Finally, &v4l2-crop; - and &v4l2-cropcap; have no reserved -fields. Therefore there is no way to extend their functionality. The new - &v4l2-selection; provides a lot of place for future +and constraints flags are introduced. Finally, &v4l2-crop; and &v4l2-cropcap; +have no reserved fields. Therefore there is no way to extend their functionality. +The new &v4l2-selection; provides a lot of place for future extensions. Driver developers are encouraged to implement only selection API. The former cropping API would be simulated using the new one. diff --git a/trunk/Documentation/DocBook/media/v4l/v4l2.xml b/trunk/Documentation/DocBook/media/v4l/v4l2.xml index eee6908c749f..10ccde9d16d0 100644 --- a/trunk/Documentation/DocBook/media/v4l/v4l2.xml +++ b/trunk/Documentation/DocBook/media/v4l/v4l2.xml @@ -145,9 +145,12 @@ applications. --> hv Added VIDIOC_ENUM_FREQ_BANDS. + + + 3.5 2012-05-07 - sa, sn + sa, sn, hv Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev selections API. Improved the description of V4L2_CID_COLORFX control, added V4L2_CID_COLORFX_CBCR control. @@ -158,11 +161,8 @@ applications. --> V4L2_CID_3A_LOCK, V4L2_CID_AUTO_FOCUS_START, V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS and V4L2_CID_AUTO_FOCUS_RANGE. - - 2012-05-01 - hv - Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and - VIDIOC_DV_TIMINGS_CAP. + Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and + VIDIOC_DV_TIMINGS_CAP. @@ -472,7 +472,7 @@ and discussions on the V4L mailing list. Video for Linux Two API Specification - Revision 3.5 + Revision 3.6 &sub-common; @@ -581,6 +581,7 @@ and discussions on the V4L mailing list. &sub-subdev-enum-frame-size; &sub-subdev-enum-mbus-code; &sub-subdev-g-crop; + &sub-subdev-g-edid; &sub-subdev-g-fmt; &sub-subdev-g-frame-interval; &sub-subdev-g-selection; diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-cropcap.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-cropcap.xml index f1bac2c6e978..bf7cc979fdfa 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-cropcap.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-cropcap.xml @@ -59,6 +59,9 @@ constant except when switching the video standard. Remember this switch can occur implicit when switching the video input or output. + This ioctl must be implemented for video capture or output devices that +support cropping and/or scaling and/or have non-square pixels, and for overlay devices. + struct <structname>v4l2_cropcap</structname> @@ -70,10 +73,10 @@ output. Type of the data stream, set by the application. Only these types are valid here: V4L2_BUF_TYPE_VIDEO_CAPTURE, +V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, V4L2_BUF_TYPE_VIDEO_OUTPUT, -V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver -defined) types with code V4L2_BUF_TYPE_PRIVATE -and higher. See . +V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE and +V4L2_BUF_TYPE_VIDEO_OVERLAY. See . struct v4l2_rect @@ -156,8 +159,7 @@ on 22 Oct 2002 subject "Re:[V4L][patches!] Re:v4l2/kernel-2.5" --> EINVAL The &v4l2-cropcap; type is -invalid. This is not permitted for video capture, output and overlay devices, -which must support VIDIOC_CROPCAP. +invalid. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml index 74b87f6e480a..9215627b04c7 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml @@ -49,13 +49,6 @@ Description - - Experimental - - This is an experimental -interface and may change in the future. - - These ioctls control an audio/video (usually MPEG-) decoder. VIDIOC_DECODER_CMD sends a command to the decoder, VIDIOC_TRY_DECODER_CMD can be used to diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml index f431b3ba79bd..0619ca5d2d36 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml @@ -49,13 +49,6 @@ Description - - Experimental - - This is an experimental -interface and may change in the future. - - These ioctls control an audio/video (usually MPEG-) encoder. VIDIOC_ENCODER_CMD sends a command to the encoder, VIDIOC_TRY_ENCODER_CMD can be used to diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml index 509f0012d2a6..fced5fb0dbf0 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml @@ -229,6 +229,12 @@ intended for the user. is out of bounds. + + ENODATA + + Digital video presets are not supported for this input or output. + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml index 24c3bf4fd29a..b3e17c1dfaf5 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml @@ -106,6 +106,12 @@ application. is out of bounds. + + ENODATA + + Digital video presets are not supported for this input or output. + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml index 81ebe48317fe..f8dfeed34fca 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml @@ -58,6 +58,9 @@ structure. Drivers fill the rest of the structure or return an incrementing by one until EINVAL is returned. + Note that after switching input or output the list of enumerated image +formats may be different. +
struct <structname>v4l2_fmtdesc</structname> @@ -78,10 +81,8 @@ Only these types are valid here: V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, V4L2_BUF_TYPE_VIDEO_OUTPUT, -V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, -V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver -defined) types with code V4L2_BUF_TYPE_PRIVATE -and higher. See . +V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE and +V4L2_BUF_TYPE_VIDEO_OVERLAY. See . __u32 diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml index f77a13f486d7..a78454b5abcd 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml @@ -50,13 +50,6 @@ and pixel format and receives a frame width and height. Description - - Experimental - - This is an experimental -interface and may change in the future. - - This ioctl allows applications to enumerate all frame sizes (&ie; width and height in pixels) that the device supports for the given pixel format. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enuminput.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enuminput.xml index 46d5a044a537..3c9a81305ad4 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enuminput.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enuminput.xml @@ -283,7 +283,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009. This input supports setting DV presets by using VIDIOC_S_DV_PRESET. - V4L2_IN_CAP_CUSTOM_TIMINGS + V4L2_IN_CAP_DV_TIMINGS 0x00000002 This input supports setting video timings by using VIDIOC_S_DV_TIMINGS. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml index 428020000ef0..f4ab0798545d 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml @@ -168,7 +168,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009. This output supports setting DV presets by using VIDIOC_S_DV_PRESET. - V4L2_OUT_CAP_CUSTOM_TIMINGS + V4L2_OUT_CAP_DV_TIMINGS 0x00000002 This output supports setting video timings by using VIDIOC_S_DV_TIMINGS. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-enumstd.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-enumstd.xml index 3a5fc5405f96..8065099401d1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-enumstd.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-enumstd.xml @@ -378,6 +378,12 @@ system) is out of bounds. + + ENODATA + + Standard video timings are not supported for this input or output. + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-crop.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-crop.xml index c4ff3b1887fb..75c6a93de3c1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-crop.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-crop.xml @@ -104,10 +104,8 @@ changed and VIDIOC_S_CROP returns the type Type of the data stream, set by the application. Only these types are valid here: V4L2_BUF_TYPE_VIDEO_CAPTURE, -V4L2_BUF_TYPE_VIDEO_OUTPUT, -V4L2_BUF_TYPE_VIDEO_OVERLAY, and custom (driver -defined) types with code V4L2_BUF_TYPE_PRIVATE -and higher. See . +V4L2_BUF_TYPE_VIDEO_OUTPUT and +V4L2_BUF_TYPE_VIDEO_OVERLAY. See . &v4l2-rect; diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml index 61be9fa3803a..b9ea37634f6c 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml @@ -77,6 +77,12 @@ If the preset is not supported, it returns an &EINVAL; VIDIOC_S_DV_PRESET,VIDIOC_S_DV_PRESET parameter was unsuitable. + + ENODATA + + Digital video presets are not supported for this input or output. + + EBUSY @@ -104,7 +110,4 @@ If the preset is not supported, it returns an &EINVAL;
- - &return-value; - diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml index eda1a2991bbe..72369707bd77 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml @@ -56,7 +56,9 @@ a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not su or the timing values are not correct, the driver returns &EINVAL;. The linux/v4l2-dv-timings.h header can be used to get the timings of the formats in the and -standards. +standards. If the current input or output does not support DV timings (e.g. if +&VIDIOC-ENUMINPUT; does not set the V4L2_IN_CAP_DV_TIMINGS flag), then +&ENODATA; is returned. @@ -70,6 +72,12 @@ standards. VIDIOC_S_DV_TIMINGS parameter was unsuitable. + + ENODATA + + Digital video timings are not supported for this input or output. + + EBUSY @@ -320,7 +328,4 @@ detected or used depends on the hardware. - - &return-value; - diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml index 2aef02c9044e..be25029a16f1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml @@ -48,13 +48,6 @@ Description - - Experimental - - This is an experimental -interface and may change in the future. - - The VIDIOC_G_ENC_INDEX ioctl provides meta data about a compressed video stream the same or another application currently reads from the driver, which is useful for diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml index 52acff193a6f..ee8f56e1bac0 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml @@ -81,7 +81,7 @@ the application calls the VIDIOC_S_FMT ioctl with a pointer to a v4l2_format structure the driver checks and adjusts the parameters against hardware abilities. Drivers -should not return an error code unless the input is ambiguous, this is +should not return an error code unless the type field is invalid, this is a mechanism to fathom device capabilities and to approach parameters acceptable for both the application and driver. On success the driver may program the hardware, allocate resources and generally prepare for @@ -107,6 +107,10 @@ disabling I/O or possibly time consuming hardware preparations. Although strongly recommended drivers are not required to implement this ioctl. + The format as returned by VIDIOC_TRY_FMT +must be identical to what VIDIOC_S_FMT returns for +the same input or output. + struct <structname>v4l2_format</structname> @@ -170,9 +174,7 @@ capture and output devices. __u8 raw_data[200] - Place holder for future extensions and custom -(driver defined) formats with type -V4L2_BUF_TYPE_PRIVATE and higher. + Place holder for future extensions. @@ -187,8 +189,7 @@ capture and output devices.EINVAL The &v4l2-format; type -field is invalid, the requested buffer type not supported, or the -format is not supported with this buffer type. +field is invalid or the requested buffer type not supported. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-parm.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-parm.xml index f83d2cdd1185..9058224d1bbf 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-parm.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-parm.xml @@ -108,9 +108,7 @@ devices.__u8raw_data[200] - A place holder for future extensions and custom -(driver defined) buffer types V4L2_BUF_TYPE_PRIVATE and -higher. + A place holder for future extensions. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-selection.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-selection.xml index f76d8a6d9b92..b11ec75e21a1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-selection.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-selection.xml @@ -152,12 +152,10 @@ satisfactory parameters have been negotiated. If constraints flags have to be violated at then ERANGE is returned. The error indicates that there exist no rectangle that satisfies the constraints. - - Selection targets and flags are documented in . -
+
Size adjustments with constraint flags. @@ -170,9 +168,9 @@ exist no rectangle that satisfies the constraints.
-
+ - +
struct <structname>v4l2_selection</structname> @@ -208,6 +206,7 @@ exist no rectangle that satisfies the constraints.
+
diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-std.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-std.xml index 99ff1a016220..4a898417de28 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-std.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-std.xml @@ -72,7 +72,9 @@ flags, being a write-only ioctl it does not return the actual new standard as the current input does not support the requested standard the driver returns an &EINVAL;. When the standard set is ambiguous drivers may return EINVAL or choose any of the requested -standards. +standards. If the current input or output does not support standard video timings (e.g. if +&VIDIOC-ENUMINPUT; does not set the V4L2_IN_CAP_STD flag), then +&ENODATA; is returned. @@ -85,6 +87,12 @@ standards. The VIDIOC_S_STD parameter was unsuitable. + + ENODATA + + Standard video timings are not supported for this input or output. + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml index 701138f1209d..6cc82010c736 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml @@ -354,6 +354,12 @@ radio tuners. The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate the available frequency bands. + + V4L2_TUNER_CAP_HWSEEK_PROG_LIM + 0x0800 + The range to search when using the hardware seek functionality + is programmable, see &VIDIOC-S-HW-FREQ-SEEK; for details. + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-qbuf.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-qbuf.xml index 77ff5be0809d..6a821a65a5ae 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-qbuf.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-qbuf.xml @@ -155,6 +155,8 @@ or no buffers have been allocated yet, or the userptr or length are invalid. + + EIO VIDIOC_DQBUF failed due to an diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml index 1bc8aeb3ff1f..68b49d09e245 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml @@ -65,5 +65,14 @@ returned. &return-value; + + + + ENODATA + + Digital video presets are not supported for this input or output. + + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml index 44935a0ffcf0..e185f149e0a1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml @@ -77,6 +77,12 @@ capabilities in order to give more precise feedback to the user. &return-value; + + ENODATA + + Digital video timings are not supported for this input or output. + + ENOLINK diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-querycap.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-querycap.xml index f33dd746b66b..4c70215ae03f 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-querycap.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-querycap.xml @@ -90,11 +90,13 @@ ambiguities. __u8 bus_info[32] Location of the device in the system, a -NUL-terminated ASCII string. For example: "PCI Slot 4". This +NUL-terminated ASCII string. For example: "PCI:0000:05:06.0". This information is intended for users, to distinguish multiple -identical devices. If no such information is available the field may -simply count the devices controlled by the driver, or contain the -empty string (bus_info[0] = 0). +identical devices. If no such information is available the field must +simply count the devices controlled by the driver ("platform:vivi-000"). +The bus_info must start with "PCI:" for PCI boards, "PCIe:" for PCI Express boards, +"usb-" for USB devices, "I2C:" for i2c devices, "ISA:" for ISA devices, +"parport" for parallel port devices and "platform:" for platform devices. __u32 diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-querystd.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-querystd.xml index 4b79c7c04ed6..fe80a183d957 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-querystd.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-querystd.xml @@ -62,5 +62,13 @@ current video input or output. &return-value; + + + ENODATA + + Standard video timings are not supported for this input or output. + + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml index d7c95057bc51..2b50ef2007f3 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml @@ -109,9 +109,8 @@ as the &v4l2-format; type field. See __u32 reserved[2] - A place holder for future extensions and custom -(driver defined) buffer types V4L2_BUF_TYPE_PRIVATE and -higher. This array should be zeroed by applications. + A place holder for future extensions. This array should +be zeroed by applications. diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml index 3dd1bec6d3c7..5b379e752194 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml @@ -75,6 +75,9 @@ seek is started. This ioctl is supported if the V4L2_CAP_HW_FREQ_SEEK capability is set. + If this ioctl is called from a non-blocking filehandle, then &EAGAIN; is + returned and no seek takes place. + struct <structname>v4l2_hw_freq_seek</structname> @@ -157,6 +160,13 @@ one of the values in the type, fields is wrong. + + EAGAIN + + Attempted to call VIDIOC_S_HW_FREQ_SEEK + with the filehandle in non-blocking mode. + + ENODATA diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-streamon.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-streamon.xml index 81cca4569050..716ea15e54a1 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-streamon.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-streamon.xml @@ -74,7 +74,12 @@ not transmitted yet. I/O returns to the same state as after calling stream type. This is the same as &v4l2-requestbuffers; type. - Note applications can be preempted for unknown periods right + If VIDIOC_STREAMON is called when streaming +is already in progress, or if VIDIOC_STREAMOFF is called +when streaming is already stopped, then the ioctl does nothing and 0 is +returned. + + Note that applications can be preempted for unknown periods right before or after the VIDIOC_STREAMON or VIDIOC_STREAMOFF calls, there is no notion of starting or stopping "now". Buffer timestamps can be used to diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml new file mode 100644 index 000000000000..bbd18f0e6ede --- /dev/null +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml @@ -0,0 +1,152 @@ + + + ioctl VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID + &manvol; + + + + VIDIOC_SUBDEV_G_EDID + VIDIOC_SUBDEV_S_EDID + Get or set the EDID of a video receiver/transmitter + + + + + + int ioctl + int fd + int request + struct v4l2_subdev_edid *argp + + + + + int ioctl + int fd + int request + const struct v4l2_subdev_edid *argp + + + + + + Arguments + + + + fd + + &fd; + + + + request + + VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID + + + + argp + + + + + + + + + Description + These ioctls can be used to get or set an EDID associated with an input pad + from a receiver or an output pad of a transmitter subdevice. + + To get the EDID data the application has to fill in the pad, + start_block, blocks and edid + fields and call VIDIOC_SUBDEV_G_EDID. The current EDID from block + start_block and of size blocks + will be placed in the memory edid points to. The edid + pointer must point to memory at least blocks * 128 bytes + large (the size of one block is 128 bytes). + + If there are fewer blocks than specified, then the driver will set blocks + to the actual number of blocks. If there are no EDID blocks available at all, then the error code + ENODATA is set. + + If blocks have to be retrieved from the sink, then this call will block until they + have been read. + + To set the EDID blocks of a receiver the application has to fill in the pad, + blocks and edid fields and set + start_block to 0. It is not possible to set part of an EDID, + it is always all or nothing. Setting the EDID data is only valid for receivers as it makes + no sense for a transmitter. + + The driver assumes that the full EDID is passed in. If there are more EDID blocks than + the hardware can handle then the EDID is not written, but instead the error code E2BIG is set + and blocks is set to the maximum that the hardware supports. + If start_block is any + value other than 0 then the error code EINVAL is set. + + To disable an EDID you set blocks to 0. Depending on the + hardware this will drive the hotplug pin low and/or block the source from reading the EDID + data in some way. In any case, the end result is the same: the EDID is no longer available. + + +
+ struct <structname>v4l2_subdev_edid</structname> + + &cs-str; + + + __u32 + pad + Pad for which to get/set the EDID blocks. + + + __u32 + start_block + Read the EDID from starting with this block. Must be 0 when setting + the EDID. + + + __u32 + blocks + The number of blocks to get or set. Must be less or equal to 256 (the + maximum number of blocks as defined by the standard). When you set the EDID and + blocks is 0, then the EDID is disabled or erased. + + + __u8 * + edid + Pointer to memory that contains the EDID. The minimum size is + blocks * 128. + + + __u32 + reserved[5] + Reserved for future extensions. Applications and drivers must + set the array to zero. + + + +
+ + + + &return-value; + + + + ENODATA + + The EDID data is not available. + + + + E2BIG + + The EDID data you provided is more than the hardware can handle. + + + + + diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml index f33cc814a01d..1ba9e999af3f 100644 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml +++ b/trunk/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml @@ -69,23 +69,22 @@ more information on how each selection target affects the image processing pipeline inside the subdevice. -
+ Types of selection targets There are two types of selection targets: actual and bounds. The actual targets are the targets which configure the hardware. The BOUNDS target will return a rectangle that contain all possible actual rectangles. -
+ -
+ Discovering supported features To discover which targets are supported, the user can perform VIDIOC_SUBDEV_G_SELECTION on them. Any unsupported target will return EINVAL. -
Selection targets and flags are documented in . @@ -132,6 +131,7 @@ + diff --git a/trunk/Documentation/DocBook/media_api.tmpl b/trunk/Documentation/DocBook/media_api.tmpl index 4e8e8985cc17..f2413acfe241 100644 --- a/trunk/Documentation/DocBook/media_api.tmpl +++ b/trunk/Documentation/DocBook/media_api.tmpl @@ -29,7 +29,7 @@ LINUX MEDIA INFRASTRUCTURE API - 2009-2011 + 2009-2012 LinuxTV Developers @@ -53,7 +53,7 @@ Foundation. A copy of the license is included in the chapter entitled video and radio straming devices, including video cameras, analog and digital TV receiver cards, AM/FM receiver cards, streaming capture devices. - It is divided into three parts. + It is divided into four parts. The first part covers radio, capture, cameras and analog TV devices. The second part covers the @@ -62,7 +62,8 @@ Foundation. A copy of the license is included in the chapter entitled in fact it covers several different video standards including DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated to documment support also for DVB-S2, ISDB-T and ISDB-S. - The third part covers Remote Controller API + The third part covers the Remote Controller API. + The fourth part covers the Media Controller API. For additional information and for the latest development code, see: http://linuxtv.org. For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: Linux Media Mailing List (LMML).. @@ -87,7 +88,7 @@ Foundation. A copy of the license is included in the chapter entitled - 2009-2011 + 2009-2012 Mauro Carvalho Chehab diff --git a/trunk/Documentation/devicetree/bindings/arm/arm-boards b/trunk/Documentation/devicetree/bindings/arm/arm-boards index 91f26148af79..fc81a7d6b0f1 100644 --- a/trunk/Documentation/devicetree/bindings/arm/arm-boards +++ b/trunk/Documentation/devicetree/bindings/arm/arm-boards @@ -1,3 +1,15 @@ +ARM Integrator/AP (Application Platform) and Integrator/CP (Compact Platform) +----------------------------------------------------------------------------- +ARM's oldest Linux-supported platform with connectors for different core +tiles of ARMv4, ARMv5 and ARMv6 type. + +Required properties (in root node): + compatible = "arm,integrator-ap"; /* Application Platform */ + compatible = "arm,integrator-cp"; /* Compact Platform */ + +FPGA type interrupt controllers, see the versatile-fpga-irq binding doc. + + ARM Versatile Application and Platform Baseboards ------------------------------------------------- ARM's development hardware platform with connectors for customizable diff --git a/trunk/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt b/trunk/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt new file mode 100644 index 000000000000..9989eda755d9 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/versatile-fpga-irq.txt @@ -0,0 +1,31 @@ +* ARM Versatile FPGA interrupt controller + +One or more FPGA IRQ controllers can be synthesized in an ARM reference board +such as the Integrator or Versatile family. The output of these different +controllers are OR:ed together and fed to the CPU tile's IRQ input. Each +instance can handle up to 32 interrupts. + +Required properties: +- compatible: "arm,versatile-fpga-irq" +- interrupt-controller: Identifies the node as an interrupt controller +- #interrupt-cells: The number of cells to define the interrupts. Must be 1 + as the FPGA IRQ controller has no configuration options for interrupt + sources. The cell is a u32 and defines the interrupt number. +- reg: The register bank for the FPGA interrupt controller. +- clear-mask: a u32 number representing the mask written to clear all IRQs + on the controller at boot for example. +- valid-mask: a u32 number representing a bit mask determining which of + the interrupts are valid. Unconnected/unused lines are set to 0, and + the system till not make it possible for devices to request these + interrupts. + +Example: + +pic: pic@14000000 { + compatible = "arm,versatile-fpga-irq"; + #interrupt-cells = <1>; + interrupt-controller; + reg = <0x14000000 0x100>; + clear-mask = <0xffffffff>; + valid-mask = <0x003fffff>; +}; diff --git a/trunk/Documentation/devicetree/bindings/arm/xen.txt b/trunk/Documentation/devicetree/bindings/arm/xen.txt new file mode 100644 index 000000000000..0f7b9c2109f8 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/arm/xen.txt @@ -0,0 +1,25 @@ +* Xen hypervisor device tree bindings + +Xen ARM virtual platforms shall have a top-level "hypervisor" node with +the following properties: + +- compatible: + compatible = "xen,xen-", "xen,xen"; + where is the version of the Xen ABI of the platform. + +- reg: specifies the base physical address and size of a region in + memory where the grant table should be mapped to, using an + HYPERVISOR_memory_op hypercall. The memory region is large enough to map + the whole grant table (it is larger or equal to gnttab_max_grant_frames()). + +- interrupts: the interrupt used by Xen to inject event notifications. + A GIC node is also required. + + +Example (assuming #address-cells = <2> and #size-cells = <2>): + +hypervisor { + compatible = "xen,xen-4.3", "xen,xen"; + reg = <0 0xb0000000 0 0x20000>; + interrupts = <1 15 0xf08>; +}; diff --git a/trunk/Documentation/devicetree/bindings/crypto/mv_cesa.txt b/trunk/Documentation/devicetree/bindings/crypto/mv_cesa.txt new file mode 100644 index 000000000000..47229b1a594b --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/crypto/mv_cesa.txt @@ -0,0 +1,20 @@ +Marvell Cryptographic Engines And Security Accelerator + +Required properties: +- compatible : should be "marvell,orion-crypto" +- reg : base physical address of the engine and length of memory mapped + region, followed by base physical address of sram and its memory + length +- reg-names : "regs" , "sram"; +- interrupts : interrupt number + +Examples: + + crypto@30000 { + compatible = "marvell,orion-crypto"; + reg = <0x30000 0x10000>, + <0x4000000 0x800>; + reg-names = "regs" , "sram"; + interrupts = <22>; + status = "okay"; + }; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio-fan.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio-fan.txt new file mode 100644 index 000000000000..2dd457a3469a --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio-fan.txt @@ -0,0 +1,25 @@ +Bindings for fan connected to GPIO lines + +Required properties: +- compatible : "gpio-fan" +- gpios: Specifies the pins that map to bits in the control value, + ordered MSB-->LSB. +- gpio-fan,speed-map: A mapping of possible fan RPM speeds and the + control value that should be set to achieve them. This array + must have the RPM values in ascending order. + +Optional properties: +- alarm-gpios: This pin going active indicates something is wrong with + the fan, and a udev event will be fired. + +Examples: + + gpio_fan { + compatible = "gpio-fan"; + gpios = <&gpio1 14 1 + &gpio1 13 1>; + gpio-fan,speed-map = <0 0 + 3000 1 + 6000 2>; + alarm-gpios = <&gpio1 15 1>; + }; diff --git a/trunk/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt b/trunk/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt new file mode 100644 index 000000000000..a6f3bec1da7d --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt @@ -0,0 +1,53 @@ +* Marvell EBU GPIO controller + +Required properties: + +- compatible : Should be "marvell,orion-gpio", "marvell,mv78200-gpio" + or "marvell,armadaxp-gpio". "marvell,orion-gpio" should be used for + Orion, Kirkwood, Dove, Discovery (except MV78200) and Armada + 370. "marvell,mv78200-gpio" should be used for the Discovery + MV78200. "marvel,armadaxp-gpio" should be used for all Armada XP + SoCs (MV78230, MV78260, MV78460). + +- reg: Address and length of the register set for the device. Only one + entry is expected, except for the "marvell,armadaxp-gpio" variant + for which two entries are expected: one for the general registers, + one for the per-cpu registers. + +- interrupts: The list of interrupts that are used for all the pins + managed by this GPIO bank. There can be more than one interrupt + (example: 1 interrupt per 8 pins on Armada XP, which means 4 + interrupts per bank of 32 GPIOs). + +- interrupt-controller: identifies the node as an interrupt controller + +- #interrupt-cells: specifies the number of cells needed to encode an + interrupt source. Should be two. + The first cell is the GPIO number. + The second cell is used to specify flags: + bits[3:0] trigger type and level flags: + 1 = low-to-high edge triggered. + 2 = high-to-low edge triggered. + 4 = active high level-sensitive. + 8 = active low level-sensitive. + +- gpio-controller: marks the device node as a gpio controller + +- ngpios: number of GPIOs this controller has + +- #gpio-cells: Should be two. The first cell is the pin number. The + second cell is reserved for flags, unused at the moment. + +Example: + + gpio0: gpio@d0018100 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018100 0x40>, + <0xd0018800 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + interrupts = <16>, <17>, <18>, <19>; + }; diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt new file mode 100644 index 000000000000..01ef408e205f --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-370-pinctrl.txt @@ -0,0 +1,95 @@ +* Marvell Armada 370 SoC pinctrl driver for mpp + +Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding +part and usage. + +Required properties: +- compatible: "marvell,88f6710-pinctrl" + +Available mpp pins/groups and functions: +Note: brackets (x) are not part of the mpp name for marvell,function and given +only for more detailed description in this document. + +name pins functions +================================================================================ +mpp0 0 gpio, uart0(rxd) +mpp1 1 gpo, uart0(txd) +mpp2 2 gpio, i2c0(sck), uart0(txd) +mpp3 3 gpio, i2c0(sda), uart0(rxd) +mpp4 4 gpio, cpu_pd(vdd) +mpp5 5 gpo, ge0(txclko), uart1(txd), spi1(clk), audio(mclk) +mpp6 6 gpio, ge0(txd0), sata0(prsnt), tdm(rst), audio(sdo) +mpp7 7 gpo, ge0(txd1), tdm(tdx), audio(lrclk) +mpp8 8 gpio, ge0(txd2), uart0(rts), tdm(drx), audio(bclk) +mpp9 9 gpo, ge0(txd3), uart1(txd), sd0(clk), audio(spdifo) +mpp10 10 gpio, ge0(txctl), uart0(cts), tdm(fsync), audio(sdi) +mpp11 11 gpio, ge0(rxd0), uart1(rxd), sd0(cmd), spi0(cs1), + sata1(prsnt), spi1(cs1) +mpp12 12 gpio, ge0(rxd1), i2c1(sda), sd0(d0), spi1(cs0), + audio(spdifi) +mpp13 13 gpio, ge0(rxd2), i2c1(sck), sd0(d1), tdm(pclk), + audio(rmclk) +mpp14 14 gpio, ge0(rxd3), pcie(clkreq0), sd0(d2), spi1(mosi), + spi0(cs2) +mpp15 15 gpio, ge0(rxctl), pcie(clkreq1), sd0(d3), spi1(miso), + spi0(cs3) +mpp16 16 gpio, ge0(rxclk), uart1(rxd), tdm(int), audio(extclk) +mpp17 17 gpo, ge(mdc) +mpp18 18 gpio, ge(mdio) +mpp19 19 gpio, ge0(txclk), ge1(txclkout), tdm(pclk) +mpp20 20 gpo, ge0(txd4), ge1(txd0) +mpp21 21 gpo, ge0(txd5), ge1(txd1), uart1(txd) +mpp22 22 gpo, ge0(txd6), ge1(txd2), uart0(rts) +mpp23 23 gpo, ge0(txd7), ge1(txd3), spi1(mosi) +mpp24 24 gpio, ge0(col), ge1(txctl), spi1(cs0) +mpp25 25 gpio, ge0(rxerr), ge1(rxd0), uart1(rxd) +mpp26 26 gpio, ge0(crs), ge1(rxd1), spi1(miso) +mpp27 27 gpio, ge0(rxd4), ge1(rxd2), uart0(cts) +mpp28 28 gpio, ge0(rxd5), ge1(rxd3) +mpp29 29 gpio, ge0(rxd6), ge1(rxctl), i2c1(sda) +mpp30 30 gpio, ge0(rxd7), ge1(rxclk), i2c1(sck) +mpp31 31 gpio, tclk, ge0(txerr) +mpp32 32 gpio, spi0(cs0) +mpp33 33 gpio, dev(bootcs), spi0(cs0) +mpp34 34 gpo, dev(wen0), spi0(mosi) +mpp35 35 gpo, dev(oen), spi0(sck) +mpp36 36 gpo, dev(a1), spi0(miso) +mpp37 37 gpo, dev(a0), sata0(prsnt) +mpp38 38 gpio, dev(ready), uart1(cts), uart0(cts) +mpp39 39 gpo, dev(ad0), audio(spdifo) +mpp40 40 gpio, dev(ad1), uart1(rts), uart0(rts) +mpp41 41 gpio, dev(ad2), uart1(rxd) +mpp42 42 gpo, dev(ad3), uart1(txd) +mpp43 43 gpo, dev(ad4), audio(bclk) +mpp44 44 gpo, dev(ad5), audio(mclk) +mpp45 45 gpo, dev(ad6), audio(lrclk) +mpp46 46 gpo, dev(ad7), audio(sdo) +mpp47 47 gpo, dev(ad8), sd0(clk), audio(spdifo) +mpp48 48 gpio, dev(ad9), uart0(rts), sd0(cmd), sata1(prsnt), + spi0(cs1) +mpp49 49 gpio, dev(ad10), pcie(clkreq1), sd0(d0), spi1(cs0), + audio(spdifi) +mpp50 50 gpio, dev(ad11), uart0(cts), sd0(d1), spi1(miso), + audio(rmclk) +mpp51 51 gpio, dev(ad12), i2c1(sda), sd0(d2), spi1(mosi) +mpp52 52 gpio, dev(ad13), i2c1(sck), sd0(d3), spi1(sck) +mpp53 53 gpio, dev(ad14), sd0(clk), tdm(pclk), spi0(cs2), + pcie(clkreq1) +mpp54 54 gpo, dev(ad15), tdm(dtx) +mpp55 55 gpio, dev(cs1), uart1(txd), tdm(rst), sata1(prsnt), + sata0(prsnt) +mpp56 56 gpio, dev(cs2), uart1(cts), uart0(cts), spi0(cs3), + pcie(clkreq0), spi1(cs1) +mpp57 57 gpio, dev(cs3), uart1(rxd), tdm(fsync), sata0(prsnt), + audio(sdo) +mpp58 58 gpio, dev(cs0), uart1(rts), tdm(int), audio(extclk), + uart0(rts) +mpp59 59 gpo, dev(ale0), uart1(rts), uart0(rts), audio(bclk) +mpp60 60 gpio, dev(ale1), uart1(rxd), sata0(prsnt), pcie(rst-out), + audio(sdi) +mpp61 61 gpo, dev(wen1), uart1(txd), audio(rclk) +mpp62 62 gpio, dev(a2), uart1(cts), tdm(drx), pcie(clkreq0), + audio(mclk), uart0(cts) +mpp63 63 gpo, spi0(sck), tclk +mpp64 64 gpio, spi0(miso), spi0-1(cs1) +mpp65 65 gpio, spi0(mosi), spi0-1(cs2) diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt new file mode 100644 index 000000000000..bfa0a2e5e0cb --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,armada-xp-pinctrl.txt @@ -0,0 +1,100 @@ +* Marvell Armada XP SoC pinctrl driver for mpp + +Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding +part and usage. + +Required properties: +- compatible: "marvell,mv78230-pinctrl", "marvell,mv78260-pinctrl", + "marvell,mv78460-pinctrl" + +This driver supports all Armada XP variants, i.e. mv78230, mv78260, and mv78460. + +Available mpp pins/groups and functions: +Note: brackets (x) are not part of the mpp name for marvell,function and given +only for more detailed description in this document. + +* Marvell Armada XP (all variants) + +name pins functions +================================================================================ +mpp0 0 gpio, ge0(txclko), lcd(d0) +mpp1 1 gpio, ge0(txd0), lcd(d1) +mpp2 2 gpio, ge0(txd1), lcd(d2) +mpp3 3 gpio, ge0(txd2), lcd(d3) +mpp4 4 gpio, ge0(txd3), lcd(d4) +mpp5 5 gpio, ge0(txctl), lcd(d5) +mpp6 6 gpio, ge0(rxd0), lcd(d6) +mpp7 7 gpio, ge0(rxd1), lcd(d7) +mpp8 8 gpio, ge0(rxd2), lcd(d8) +mpp9 9 gpio, ge0(rxd3), lcd(d9) +mpp10 10 gpio, ge0(rxctl), lcd(d10) +mpp11 11 gpio, ge0(rxclk), lcd(d11) +mpp12 12 gpio, ge0(txd4), ge1(txd0), lcd(d12) +mpp13 13 gpio, ge0(txd5), ge1(txd1), lcd(d13) +mpp14 14 gpio, ge0(txd6), ge1(txd2), lcd(d15) +mpp15 15 gpio, ge0(txd7), ge1(txd3), lcd(d16) +mpp16 16 gpio, ge0(txd7), ge1(txd3), lcd(d16) +mpp17 17 gpio, ge0(col), ge1(txctl), lcd(d17) +mpp18 18 gpio, ge0(rxerr), ge1(rxd0), lcd(d18), ptp(trig) +mpp19 19 gpio, ge0(crs), ge1(rxd1), lcd(d19), ptp(evreq) +mpp20 20 gpio, ge0(rxd4), ge1(rxd2), lcd(d20), ptp(clk) +mpp21 21 gpio, ge0(rxd5), ge1(rxd3), lcd(d21), mem(bat) +mpp22 22 gpio, ge0(rxd6), ge1(rxctl), lcd(d22), sata0(prsnt) +mpp23 23 gpio, ge0(rxd7), ge1(rxclk), lcd(d23), sata1(prsnt) +mpp24 24 gpio, lcd(hsync), sata1(prsnt), nf(bootcs-re), tdm(rst) +mpp25 25 gpio, lcd(vsync), sata0(prsnt), nf(bootcs-we), tdm(pclk) +mpp26 26 gpio, lcd(clk), tdm(fsync), vdd(cpu1-pd) +mpp27 27 gpio, lcd(e), tdm(dtx), ptp(trig) +mpp28 28 gpio, lcd(pwm), tdm(drx), ptp(evreq) +mpp29 29 gpio, lcd(ref-clk), tdm(int0), ptp(clk), vdd(cpu0-pd) +mpp30 30 gpio, tdm(int1), sd0(clk) +mpp31 31 gpio, tdm(int2), sd0(cmd), vdd(cpu0-pd) +mpp32 32 gpio, tdm(int3), sd0(d0), vdd(cpu1-pd) +mpp33 33 gpio, tdm(int4), sd0(d1), mem(bat) +mpp34 34 gpio, tdm(int5), sd0(d2), sata0(prsnt) +mpp35 35 gpio, tdm(int6), sd0(d3), sata1(prsnt) +mpp36 36 gpio, spi(mosi) +mpp37 37 gpio, spi(miso) +mpp38 38 gpio, spi(sck) +mpp39 39 gpio, spi(cs0) +mpp40 40 gpio, spi(cs1), uart2(cts), lcd(vga-hsync), vdd(cpu1-pd), + pcie(clkreq0) +mpp41 41 gpio, spi(cs2), uart2(rts), lcd(vga-vsync), sata1(prsnt), + pcie(clkreq1) +mpp42 42 gpio, uart2(rxd), uart0(cts), tdm(int7), tdm-1(timer), + vdd(cpu0-pd) +mpp43 43 gpio, uart2(txd), uart0(rts), spi(cs3), pcie(rstout), + vdd(cpu2-3-pd){1} +mpp44 44 gpio, uart2(cts), uart3(rxd), spi(cs4), pcie(clkreq2), + mem(bat) +mpp45 45 gpio, uart2(rts), uart3(txd), spi(cs5), sata1(prsnt) +mpp46 46 gpio, uart3(rts), uart1(rts), spi(cs6), sata0(prsnt) +mpp47 47 gpio, uart3(cts), uart1(cts), spi(cs7), pcie(clkreq3), + ref(clkout) +mpp48 48 gpio, tclk, dev(burst/last) + +* Marvell Armada XP (mv78260 and mv78460 only) + +name pins functions +================================================================================ +mpp49 49 gpio, dev(we3) +mpp50 50 gpio, dev(we2) +mpp51 51 gpio, dev(ad16) +mpp52 52 gpio, dev(ad17) +mpp53 53 gpio, dev(ad18) +mpp54 54 gpio, dev(ad19) +mpp55 55 gpio, dev(ad20), vdd(cpu0-pd) +mpp56 56 gpio, dev(ad21), vdd(cpu1-pd) +mpp57 57 gpio, dev(ad22), vdd(cpu2-3-pd){1} +mpp58 58 gpio, dev(ad23) +mpp59 59 gpio, dev(ad24) +mpp60 60 gpio, dev(ad25) +mpp61 61 gpio, dev(ad26) +mpp62 62 gpio, dev(ad27) +mpp63 63 gpio, dev(ad28) +mpp64 64 gpio, dev(ad29) +mpp65 65 gpio, dev(ad30) +mpp66 66 gpio, dev(ad31) + +Notes: +* {1} vdd(cpu2-3-pd) only available on mv78460. diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt new file mode 100644 index 000000000000..a648aaad6110 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,dove-pinctrl.txt @@ -0,0 +1,72 @@ +* Marvell Dove SoC pinctrl driver for mpp + +Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding +part and usage. + +Required properties: +- compatible: "marvell,dove-pinctrl" +- clocks: (optional) phandle of pdma clock + +Available mpp pins/groups and functions: +Note: brackets (x) are not part of the mpp name for marvell,function and given +only for more detailed description in this document. + +name pins functions +================================================================================ +mpp0 0 gpio, pmu, uart2(rts), sdio0(cd), lcd0(pwm) +mpp1 1 gpio, pmu, uart2(cts), sdio0(wp), lcd1(pwm) +mpp2 2 gpio, pmu, uart2(txd), sdio0(buspwr), sata(prsnt), + uart1(rts) +mpp3 3 gpio, pmu, uart2(rxd), sdio0(ledctrl), sata(act), + uart1(cts), lcd-spi(cs1) +mpp4 4 gpio, pmu, uart3(rts), sdio1(cd), spi1(miso) +mpp5 5 gpio, pmu, uart3(cts), sdio1(wp), spi1(cs) +mpp6 6 gpio, pmu, uart3(txd), sdio1(buspwr), spi1(mosi) +mpp7 7 gpio, pmu, uart3(rxd), sdio1(ledctrl), spi1(sck) +mpp8 8 gpio, pmu, watchdog(rstout) +mpp9 9 gpio, pmu, pex1(clkreq) +mpp10 10 gpio, pmu, ssp(sclk) +mpp11 11 gpio, pmu, sata(prsnt), sata-1(act), sdio0(ledctrl), + sdio1(ledctrl), pex0(clkreq) +mpp12 12 gpio, pmu, uart2(rts), audio0(extclk), sdio1(cd), sata(act) +mpp13 13 gpio, pmu, uart2(cts), audio1(extclk), sdio1(wp), + ssp(extclk) +mpp14 14 gpio, pmu, uart2(txd), sdio1(buspwr), ssp(rxd) +mpp15 15 gpio, pmu, uart2(rxd), sdio1(ledctrl), ssp(sfrm) +mpp16 16 gpio, uart3(rts), sdio0(cd), ac97(sdi1), lcd-spi(cs1) +mpp17 17 gpio, uart3(cts), sdio0(wp), ac97(sdi2), twsi(sda), + ac97-1(sysclko) +mpp18 18 gpio, uart3(txd), sdio0(buspwr), ac97(sdi3), lcd0(pwm) +mpp19 19 gpio, uart3(rxd), sdio0(ledctrl), twsi(sck) +mpp20 20 gpio, sdio0(cd), sdio1(cd), spi1(miso), lcd-spi(miso), + ac97(sysclko) +mpp21 21 gpio, sdio0(wp), sdio1(wp), spi1(cs), lcd-spi(cs0), + uart1(cts), ssp(sfrm) +mpp22 22 gpio, sdio0(buspwr), sdio1(buspwr), spi1(mosi), + lcd-spi(mosi), uart1(cts), ssp(txd) +mpp23 23 gpio, sdio0(ledctrl), sdio1(ledctrl), spi1(sck), + lcd-spi(sck), ssp(sclk) +mpp_camera 24-39 gpio, camera +mpp_sdio0 40-45 gpio, sdio0 +mpp_sdio1 46-51 gpio, sdio1 +mpp_audio1 52-57 gpio, i2s1/spdifo, i2s1, spdifo, twsi, ssp/spdifo, ssp, + ssp/twsi +mpp_spi0 58-61 gpio, spi0 +mpp_uart1 62-63 gpio, uart1 +mpp_nand 64-71 gpo, nand +audio0 - i2s, ac97 +twsi - none, opt1, opt2, opt3 + +Notes: +* group "mpp_audio1" allows the following functions and gpio pins: + - gpio : gpio on pins 52-57 + - i2s1/spdifo : audio1 i2s on pins 52-55 and spdifo on 57, no gpios + - i2s1 : audio1 i2s on pins 52-55, gpio on pins 56,57 + - spdifo : spdifo on pin 57, gpio on pins 52-55 + - twsi : twsi on pins 56,57, gpio on pins 52-55 + - ssp/spdifo : ssp on pins 52-55, spdifo on pin 57, no gpios + - ssp : ssp on pins 52-55, gpio on pins 56,57 + - ssp/twsi : ssp on pins 52-55, twsi on pins 56,57, no gpios +* group "audio0" internally muxes i2s0 or ac97 controller to the dedicated + audio0 pins. +* group "twsi" internally muxes twsi controller to the dedicated or option pins. diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt new file mode 100644 index 000000000000..361bccb7ec89 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,kirkwood-pinctrl.txt @@ -0,0 +1,279 @@ +* Marvell Kirkwood SoC pinctrl driver for mpp + +Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding +part and usage. + +Required properties: +- compatible: "marvell,88f6180-pinctrl", + "marvell,88f6190-pinctrl", "marvell,88f6192-pinctrl", + "marvell,88f6281-pinctrl", "marvell,88f6282-pinctrl" + +This driver supports all kirkwood variants, i.e. 88f6180, 88f619x, and 88f628x. + +Available mpp pins/groups and functions: +Note: brackets (x) are not part of the mpp name for marvell,function and given +only for more detailed description in this document. + +* Marvell Kirkwood 88f6180 + +name pins functions +================================================================================ +mpp0 0 gpio, nand(io2), spi(cs) +mpp1 1 gpo, nand(io3), spi(mosi) +mpp2 2 gpo, nand(io4), spi(sck) +mpp3 3 gpo, nand(io5), spi(miso) +mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk) +mpp5 5 gpo, nand(io7), uart0(txd), ptp(trig) +mpp6 6 sysrst(out), spi(mosi), ptp(trig) +mpp7 7 gpo, pex(rsto), spi(cs), ptp(trig) +mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk), + mii(col) +mpp9 9 gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq), + mii(crs) +mpp10 10 gpo, spi(sck), uart0(txd), ptp(trig) +mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq), + ptp-2(trig) +mpp12 12 gpo, sdio(clk) +mpp13 13 gpio, sdio(cmd), uart1(txd) +mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col) +mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd) +mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs) +mpp17 17 gpio, sdio(d3) +mpp18 18 gpo, nand(io0) +mpp19 19 gpo, nand(io1) +mpp20 20 gpio, mii(rxerr) +mpp21 21 gpio, audio(spdifi) +mpp22 22 gpio, audio(spdifo) +mpp23 23 gpio, audio(rmclk) +mpp24 24 gpio, audio(bclk) +mpp25 25 gpio, audio(sdo) +mpp26 26 gpio, audio(lrclk) +mpp27 27 gpio, audio(mclk) +mpp28 28 gpio, audio(sdi) +mpp29 29 gpio, audio(extclk) + +* Marvell Kirkwood 88f6190 + +name pins functions +================================================================================ +mpp0 0 gpio, nand(io2), spi(cs) +mpp1 1 gpo, nand(io3), spi(mosi) +mpp2 2 gpo, nand(io4), spi(sck) +mpp3 3 gpo, nand(io5), spi(miso) +mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk) +mpp5 5 gpo, nand(io7), uart0(txd), ptp(trig), sata0(act) +mpp6 6 sysrst(out), spi(mosi), ptp(trig) +mpp7 7 gpo, pex(rsto), spi(cs), ptp(trig) +mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk), + mii(col), mii-1(rxerr) +mpp9 9 gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq), + mii(crs), sata0(prsnt) +mpp10 10 gpo, spi(sck), uart0(txd), ptp(trig) +mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq), + ptp-2(trig), sata0(act) +mpp12 12 gpo, sdio(clk) +mpp13 13 gpio, sdio(cmd), uart1(txd) +mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col) +mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act) +mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs) +mpp17 17 gpio, sdio(d3), sata0(prsnt) +mpp18 18 gpo, nand(io0) +mpp19 19 gpo, nand(io1) +mpp20 20 gpio, ge1(txd0) +mpp21 21 gpio, ge1(txd1), sata0(act) +mpp22 22 gpio, ge1(txd2) +mpp23 23 gpio, ge1(txd3), sata0(prsnt) +mpp24 24 gpio, ge1(rxd0) +mpp25 25 gpio, ge1(rxd1) +mpp26 26 gpio, ge1(rxd2) +mpp27 27 gpio, ge1(rxd3) +mpp28 28 gpio, ge1(col) +mpp29 29 gpio, ge1(txclk) +mpp30 30 gpio, ge1(rxclk) +mpp31 31 gpio, ge1(rxclk) +mpp32 32 gpio, ge1(txclko) +mpp33 33 gpo, ge1(txclk) +mpp34 34 gpio, ge1(txen) +mpp35 35 gpio, ge1(rxerr), sata0(act), mii(rxerr) + +* Marvell Kirkwood 88f6192 + +name pins functions +================================================================================ +mpp0 0 gpio, nand(io2), spi(cs) +mpp1 1 gpo, nand(io3), spi(mosi) +mpp2 2 gpo, nand(io4), spi(sck) +mpp3 3 gpo, nand(io5), spi(miso) +mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act) +mpp5 5 gpo, nand(io7), uart0(txd), ptp(trig), sata0(act) +mpp6 6 sysrst(out), spi(mosi), ptp(trig) +mpp7 7 gpo, pex(rsto), spi(cs), ptp(trig) +mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk), + mii(col), mii-1(rxerr), sata1(prsnt) +mpp9 9 gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq), + mii(crs), sata0(prsnt) +mpp10 10 gpo, spi(sck), uart0(txd), ptp(trig), sata1(act) +mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq), + ptp-2(trig), sata0(act) +mpp12 12 gpo, sdio(clk) +mpp13 13 gpio, sdio(cmd), uart1(txd) +mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt) +mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act) +mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs), + sata1(act) +mpp17 17 gpio, sdio(d3), sata0(prsnt) +mpp18 18 gpo, nand(io0) +mpp19 19 gpo, nand(io1) +mpp20 20 gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi), + sata1(act) +mpp21 21 gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql), + audio(spdifo) +mpp22 22 gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk), + sata1(prsnt) +mpp23 23 gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql), + audio(bclk) +mpp24 24 gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo) +mpp25 25 gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk) +mpp26 26 gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk) +mpp27 27 gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi) +mpp28 28 gpio, ge1(col), ts(mp8), tdm(int), audio(extclk) +mpp29 29 gpio, ge1(txclk), ts(mp9), tdm(rst) +mpp30 30 gpio, ge1(rxclk), ts(mp10), tdm(pclk) +mpp31 31 gpio, ge1(rxclk), ts(mp11), tdm(fs) +mpp32 32 gpio, ge1(txclko), ts(mp12), tdm(drx) +mpp33 33 gpo, ge1(txclk), tdm(drx) +mpp34 34 gpio, ge1(txen), tdm(spi-cs1) +mpp35 35 gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql) + +* Marvell Kirkwood 88f6281 + +name pins functions +================================================================================ +mpp0 0 gpio, nand(io2), spi(cs) +mpp1 1 gpo, nand(io3), spi(mosi) +mpp2 2 gpo, nand(io4), spi(sck) +mpp3 3 gpo, nand(io5), spi(miso) +mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act) +mpp5 5 gpo, nand(io7), uart0(txd), ptp(trig), sata0(act) +mpp6 6 sysrst(out), spi(mosi), ptp(trig) +mpp7 7 gpo, pex(rsto), spi(cs), ptp(trig) +mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk), + mii(col), mii-1(rxerr), sata1(prsnt) +mpp9 9 gpio, twsi(sck), uart0(cts), uart1(cts), ptp(evreq), + mii(crs), sata0(prsnt) +mpp10 10 gpo, spi(sck), uart0(txd), ptp(trig), sata1(act) +mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq), + ptp-2(trig), sata0(act) +mpp12 12 gpio, sdio(clk) +mpp13 13 gpio, sdio(cmd), uart1(txd) +mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt) +mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act) +mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs), + sata1(act) +mpp17 17 gpio, sdio(d3), sata0(prsnt) +mpp18 18 gpo, nand(io0) +mpp19 19 gpo, nand(io1) +mpp20 20 gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi), + sata1(act) +mpp21 21 gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql), + audio(spdifo) +mpp22 22 gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk), + sata1(prsnt) +mpp23 23 gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql), + audio(bclk) +mpp24 24 gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo) +mpp25 25 gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk) +mpp26 26 gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk) +mpp27 27 gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi) +mpp28 28 gpio, ge1(col), ts(mp8), tdm(int), audio(extclk) +mpp29 29 gpio, ge1(txclk), ts(mp9), tdm(rst) +mpp30 30 gpio, ge1(rxclk), ts(mp10), tdm(pclk) +mpp31 31 gpio, ge1(rxclk), ts(mp11), tdm(fs) +mpp32 32 gpio, ge1(txclko), ts(mp12), tdm(drx) +mpp33 33 gpo, ge1(txclk), tdm(drx) +mpp34 34 gpio, ge1(txen), tdm(spi-cs1), sata1(act) +mpp35 35 gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql) +mpp36 36 gpio, ts(mp0), tdm(spi-cs1), audio(spdifi) +mpp37 37 gpio, ts(mp1), tdm(tx2ql), audio(spdifo) +mpp38 38 gpio, ts(mp2), tdm(rx2ql), audio(rmclk) +mpp39 39 gpio, ts(mp3), tdm(spi-cs0), audio(bclk) +mpp40 40 gpio, ts(mp4), tdm(spi-sck), audio(sdo) +mpp41 41 gpio, ts(mp5), tdm(spi-miso), audio(lrclk) +mpp42 42 gpio, ts(mp6), tdm(spi-mosi), audio(mclk) +mpp43 43 gpio, ts(mp7), tdm(int), audio(sdi) +mpp44 44 gpio, ts(mp8), tdm(rst), audio(extclk) +mpp45 45 gpio, ts(mp9), tdm(pclk) +mpp46 46 gpio, ts(mp10), tdm(fs) +mpp47 47 gpio, ts(mp11), tdm(drx) +mpp48 48 gpio, ts(mp12), tdm(dtx) +mpp49 49 gpio, ts(mp9), tdm(rx0ql), ptp(clk) + +* Marvell Kirkwood 88f6282 + +name pins functions +================================================================================ +mpp0 0 gpio, nand(io2), spi(cs) +mpp1 1 gpo, nand(io3), spi(mosi) +mpp2 2 gpo, nand(io4), spi(sck) +mpp3 3 gpo, nand(io5), spi(miso) +mpp4 4 gpio, nand(io6), uart0(rxd), sata1(act), lcd(hsync) +mpp5 5 gpo, nand(io7), uart0(txd), sata0(act), lcd(vsync) +mpp6 6 sysrst(out), spi(mosi) +mpp7 7 gpo, spi(cs), lcd(pwm) +mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), mii(col), + mii-1(rxerr), sata1(prsnt) +mpp9 9 gpio, twsi(sck), uart0(cts), uart1(cts), mii(crs), + sata0(prsnt) +mpp10 10 gpo, spi(sck), uart0(txd), sata1(act) +mpp11 11 gpio, spi(miso), uart0(rxd), sata0(act) +mpp12 12 gpo, sdio(clk), audio(spdifo), spi(mosi), twsi(sda) +mpp13 13 gpio, sdio(cmd), uart1(txd), audio(rmclk), lcd(pwm) +mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col), sata1(prsnt), + audio(spdifi), audio-1(sdi) +mpp15 15 gpio, sdio(d1), uart0(rts), uart1(txd), sata0(act), + spi(cs) +mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs), + sata1(act), lcd(extclk) +mpp17 17 gpio, sdio(d3), sata0(prsnt), sata1(act), twsi1(sck) +mpp18 18 gpo, nand(io0), pex(clkreq) +mpp19 19 gpo, nand(io1) +mpp20 20 gpio, ge1(txd0), ts(mp0), tdm(tx0ql), audio(spdifi), + sata1(act), lcd(d0) +mpp21 21 gpio, ge1(txd1), sata0(act), ts(mp1), tdm(rx0ql), + audio(spdifo), lcd(d1) +mpp22 22 gpio, ge1(txd2), ts(mp2), tdm(tx2ql), audio(rmclk), + sata1(prsnt), lcd(d2) +mpp23 23 gpio, ge1(txd3), sata0(prsnt), ts(mp3), tdm(rx2ql), + audio(bclk), lcd(d3) +mpp24 24 gpio, ge1(rxd0), ts(mp4), tdm(spi-cs0), audio(sdo), + lcd(d4) +mpp25 25 gpio, ge1(rxd1), ts(mp5), tdm(spi-sck), audio(lrclk), + lcd(d5) +mpp26 26 gpio, ge1(rxd2), ts(mp6), tdm(spi-miso), audio(mclk), + lcd(d6) +mpp27 27 gpio, ge1(rxd3), ts(mp7), tdm(spi-mosi), audio(sdi), + lcd(d7) +mpp28 28 gpio, ge1(col), ts(mp8), tdm(int), audio(extclk), + lcd(d8) +mpp29 29 gpio, ge1(txclk), ts(mp9), tdm(rst), lcd(d9) +mpp30 30 gpio, ge1(rxclk), ts(mp10), tdm(pclk), lcd(d10) +mpp31 31 gpio, ge1(rxclk), ts(mp11), tdm(fs), lcd(d11) +mpp32 32 gpio, ge1(txclko), ts(mp12), tdm(drx), lcd(d12) +mpp33 33 gpo, ge1(txclk), tdm(drx), lcd(d13) +mpp34 34 gpio, ge1(txen), tdm(spi-cs1), sata1(act), lcd(d14) +mpp35 35 gpio, ge1(rxerr), sata0(act), mii(rxerr), tdm(tx0ql), + lcd(d15) +mpp36 36 gpio, ts(mp0), tdm(spi-cs1), audio(spdifi), twsi1(sda) +mpp37 37 gpio, ts(mp1), tdm(tx2ql), audio(spdifo), twsi1(sck) +mpp38 38 gpio, ts(mp2), tdm(rx2ql), audio(rmclk), lcd(d18) +mpp39 39 gpio, ts(mp3), tdm(spi-cs0), audio(bclk), lcd(d19) +mpp40 40 gpio, ts(mp4), tdm(spi-sck), audio(sdo), lcd(d20) +mpp41 41 gpio, ts(mp5), tdm(spi-miso), audio(lrclk), lcd(d21) +mpp42 42 gpio, ts(mp6), tdm(spi-mosi), audio(mclk), lcd(d22) +mpp43 43 gpio, ts(mp7), tdm(int), audio(sdi), lcd(d23) +mpp44 44 gpio, ts(mp8), tdm(rst), audio(extclk), lcd(clk) +mpp45 45 gpio, ts(mp9), tdm(pclk), lcd(e) +mpp46 46 gpio, ts(mp10), tdm(fs), lcd(hsync) +mpp47 47 gpio, ts(mp11), tdm(drx), lcd(vsync) +mpp48 48 gpio, ts(mp12), tdm(dtx), lcd(d16) +mpp49 49 gpo, tdm(rx0ql), pex(clkreq), lcd(d17) diff --git a/trunk/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt new file mode 100644 index 000000000000..0a26c3aa4e6d --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/pinctrl/marvell,mvebu-pinctrl.txt @@ -0,0 +1,46 @@ +* Marvell SoC pinctrl core driver for mpp + +The pinctrl driver enables Marvell SoCs to configure the multi-purpose pins +(mpp) to a specific function. For each SoC family there is a SoC specific +driver using this core driver. + +Please refer to pinctrl-bindings.txt in this directory for details of the +common pinctrl bindings used by client devices, including the meaning of the +phrase "pin configuration node". + +A Marvell SoC pin configuration node is a node of a group of pins which can +be used for a specific device or function. Each node requires one or more +mpp pins or group of pins and a mpp function common to all pins. + +Required properties for pinctrl driver: +- compatible: "marvell,-pinctrl" + Please refer to each marvell,-pinctrl.txt binding doc for supported SoCs. + +Required properties for pin configuration node: +- marvell,pins: string array of mpp pins or group of pins to be muxed. +- marvell,function: string representing a function to mux to for all + marvell,pins given in this pin configuration node. The function has to be + common for all marvell,pins. Please refer to marvell,-pinctrl.txt for + valid pin/pin group names and available function names for each SoC. + +Examples: + +uart1: serial@12100 { + compatible = "ns16550a"; + reg = <0x12100 0x100>; + reg-shift = <2>; + interrupts = <7>; + + pinctrl-0 = <&pmx_uart1_sw>; + pinctrl-names = "default"; +}; + +pinctrl: pinctrl@d0200 { + compatible = "marvell,dove-pinctrl"; + reg = <0xd0200 0x20>; + + pmx_uart1_sw: pmx-uart1-sw { + marvell,pins = "mpp_uart1"; + marvell,function = "uart1"; + }; +}; diff --git a/trunk/Documentation/dvb/README.dvb-usb b/trunk/Documentation/dvb/README.dvb-usb index c4d963a67d6f..8eb92264ee04 100644 --- a/trunk/Documentation/dvb/README.dvb-usb +++ b/trunk/Documentation/dvb/README.dvb-usb @@ -30,7 +30,7 @@ with the device via the bus. The connection between the DVB-API-functionality is done via callbacks, assigned in a static device-description (struct dvb_usb_device) each device-driver has to have. -For an example have a look in drivers/media/dvb/dvb-usb/vp7045*. +For an example have a look in drivers/media/usb/dvb-usb/vp7045*. Objective is to migrate all the usb-devices (dibusb, cinergyT2, maybe the ttusb; flexcop-usb already benefits from the generic flexcop-device) to use diff --git a/trunk/Documentation/dvb/get_dvb_firmware b/trunk/Documentation/dvb/get_dvb_firmware index 12d3952e83d5..32bc56b13b1c 100755 --- a/trunk/Documentation/dvb/get_dvb_firmware +++ b/trunk/Documentation/dvb/get_dvb_firmware @@ -116,7 +116,7 @@ sub tda10045 { sub tda10046 { my $sourcefile = "TT_PCI_2.19h_28_11_2006.zip"; - my $url = "http://www.tt-download.com/download/updates/219/$sourcefile"; + my $url = "http://technotrend.com.ua/download/software/219/$sourcefile"; my $hash = "6a7e1e2f2644b162ff0502367553c72d"; my $outfile = "dvb-fe-tda10046.fw"; my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); diff --git a/trunk/Documentation/ioctl/ioctl-number.txt b/trunk/Documentation/ioctl/ioctl-number.txt index 849b771c5e03..2152b0e7237d 100644 --- a/trunk/Documentation/ioctl/ioctl-number.txt +++ b/trunk/Documentation/ioctl/ioctl-number.txt @@ -178,7 +178,6 @@ Code Seq#(hex) Include File Comments 'V' C0 linux/ivtv.h conflict! 'V' C0 media/davinci/vpfe_capture.h conflict! 'V' C0 media/si4713.h conflict! -'V' C0-CF drivers/media/video/mxb.h conflict! 'W' 00-1F linux/watchdog.h conflict! 'W' 00-1F linux/wanrouter.h conflict! 'W' 00-3F sound/asound.h conflict! @@ -204,8 +203,6 @@ Code Seq#(hex) Include File Comments 'c' A0-AF arch/x86/include/asm/msr.h conflict! 'd' 00-FF linux/char/drm/drm/h conflict! 'd' 02-40 pcmcia/ds.h conflict! -'d' 10-3F drivers/media/video/dabusb.h conflict! -'d' C0-CF drivers/media/video/saa7191.h conflict! 'd' F0-FF linux/digi1.h 'e' all linux/digi1.h conflict! 'e' 00-1F drivers/net/irda/irtty-sir.h conflict! @@ -267,9 +264,7 @@ Code Seq#(hex) Include File Comments 'v' 00-1F linux/ext2_fs.h conflict! 'v' 00-1F linux/fs.h conflict! 'v' 00-0F linux/sonypi.h conflict! -'v' C0-DF media/pwc-ioctl.h conflict! 'v' C0-FF linux/meye.h conflict! -'v' D0-DF drivers/media/video/cpia2/cpia2dev.h conflict! 'w' all CERN SCI driver 'y' 00-1F packet based user level communications diff --git a/trunk/Documentation/power/power_supply_class.txt b/trunk/Documentation/power/power_supply_class.txt index 2f0ddc15b5ac..9c647bd7c5a9 100644 --- a/trunk/Documentation/power/power_supply_class.txt +++ b/trunk/Documentation/power/power_supply_class.txt @@ -81,6 +81,9 @@ This defines trickle and fast charges. For batteries that are already charged or discharging, 'n/a' can be displayed (or 'unknown', if the status is not known). +AUTHENTIC - indicates the power supply (battery or charger) connected +to the platform is authentic(1) or non authentic(0). + HEALTH - represents health of the battery, values corresponds to POWER_SUPPLY_HEALTH_*, defined in battery.h. @@ -113,8 +116,12 @@ be negative; there is no empty or full value. It is only useful for relative, time-based measurements. CONSTANT_CHARGE_CURRENT - constant charge current programmed by charger. +CONSTANT_CHARGE_CURRENT_MAX - maximum charge current supported by the +power supply object. CONSTANT_CHARGE_VOLTAGE - constant charge voltage programmed by charger. +CONSTANT_CHARGE_VOLTAGE_MAX - maximum charge voltage supported by the +power supply object. ENERGY_FULL, ENERGY_EMPTY - same as above but for energy. diff --git a/trunk/Documentation/ramoops.txt b/trunk/Documentation/ramoops.txt index 197ad59ab9bf..69b3cac4749d 100644 --- a/trunk/Documentation/ramoops.txt +++ b/trunk/Documentation/ramoops.txt @@ -102,9 +102,7 @@ related hangs. The functions call chain log is stored in a "ftrace-ramoops" file. Here is an example of usage: # mount -t debugfs debugfs /sys/kernel/debug/ - # cd /sys/kernel/debug/tracing - # echo function > current_tracer - # echo 1 > options/func_pstore + # echo 1 > /sys/kernel/debug/pstore/record_ftrace # reboot -f [...] # mount -t pstore pstore /mnt/ diff --git a/trunk/Documentation/video4linux/CARDLIST.cx23885 b/trunk/Documentation/video4linux/CARDLIST.cx23885 index 652aecd13199..1299b5e82d7f 100644 --- a/trunk/Documentation/video4linux/CARDLIST.cx23885 +++ b/trunk/Documentation/video4linux/CARDLIST.cx23885 @@ -35,3 +35,4 @@ 34 -> TerraTec Cinergy T PCIe Dual [153b:117e] 35 -> TeVii S471 [d471:9022] 36 -> Hauppauge WinTV-HVR1255 [0070:2259] + 37 -> Prof Revolution DVB-S2 8000 [8000:3034] diff --git a/trunk/Documentation/video4linux/CQcam.txt b/trunk/Documentation/video4linux/CQcam.txt index 6e680fec1e9c..0b69e4ee8e31 100644 --- a/trunk/Documentation/video4linux/CQcam.txt +++ b/trunk/Documentation/video4linux/CQcam.txt @@ -18,7 +18,7 @@ Table of Contents 1.0 Introduction - The file ../../drivers/media/video/c-qcam.c is a device driver for + The file ../../drivers/media/parport/c-qcam.c is a device driver for the Logitech (nee Connectix) parallel port interface color CCD camera. This is a fairly inexpensive device for capturing images. Logitech does not currently provide information for developers, but many people diff --git a/trunk/Documentation/video4linux/README.davinci-vpbe b/trunk/Documentation/video4linux/README.davinci-vpbe index 7a460b0685bb..dc9a297f49c3 100644 --- a/trunk/Documentation/video4linux/README.davinci-vpbe +++ b/trunk/Documentation/video4linux/README.davinci-vpbe @@ -5,22 +5,22 @@ File partitioning ----------------- V4L2 display device driver - drivers/media/video/davinci/vpbe_display.c - drivers/media/video/davinci/vpbe_display.h + drivers/media/platform/davinci/vpbe_display.c + drivers/media/platform/davinci/vpbe_display.h VPBE display controller - drivers/media/video/davinci/vpbe.c - drivers/media/video/davinci/vpbe.h + drivers/media/platform/davinci/vpbe.c + drivers/media/platform/davinci/vpbe.h VPBE venc sub device driver - drivers/media/video/davinci/vpbe_venc.c - drivers/media/video/davinci/vpbe_venc.h - drivers/media/video/davinci/vpbe_venc_regs.h + drivers/media/platform/davinci/vpbe_venc.c + drivers/media/platform/davinci/vpbe_venc.h + drivers/media/platform/davinci/vpbe_venc_regs.h VPBE osd driver - drivers/media/video/davinci/vpbe_osd.c - drivers/media/video/davinci/vpbe_osd.h - drivers/media/video/davinci/vpbe_osd_regs.h + drivers/media/platform/davinci/vpbe_osd.c + drivers/media/platform/davinci/vpbe_osd.h + drivers/media/platform/davinci/vpbe_osd_regs.h Functional partitioning ----------------------- diff --git a/trunk/Documentation/video4linux/fimc.txt b/trunk/Documentation/video4linux/fimc.txt index eb049708f3e4..fd02d9a4930a 100644 --- a/trunk/Documentation/video4linux/fimc.txt +++ b/trunk/Documentation/video4linux/fimc.txt @@ -10,7 +10,7 @@ data from LCD controller (FIMD) through the SoC internal writeback data path. There are multiple FIMC instances in the SoCs (up to 4), having slightly different capabilities, like pixel alignment constraints, rotator availability, LCD writeback support, etc. The driver is located at -drivers/media/video/s5p-fimc directory. +drivers/media/platform/s5p-fimc directory. 1. Supported SoCs ================= @@ -36,21 +36,21 @@ Not currently supported: ===================== - media device driver - drivers/media/video/s5p-fimc/fimc-mdevice.[ch] + drivers/media/platform/s5p-fimc/fimc-mdevice.[ch] - camera capture video device driver - drivers/media/video/s5p-fimc/fimc-capture.c + drivers/media/platform/s5p-fimc/fimc-capture.c - MIPI-CSI2 receiver subdev - drivers/media/video/s5p-fimc/mipi-csis.[ch] + drivers/media/platform/s5p-fimc/mipi-csis.[ch] - video post-processor (mem-to-mem) - drivers/media/video/s5p-fimc/fimc-core.c + drivers/media/platform/s5p-fimc/fimc-core.c - common files - drivers/media/video/s5p-fimc/fimc-core.h - drivers/media/video/s5p-fimc/fimc-reg.h - drivers/media/video/s5p-fimc/regs-fimc.h + drivers/media/platform/s5p-fimc/fimc-core.h + drivers/media/platform/s5p-fimc/fimc-reg.h + drivers/media/platform/s5p-fimc/regs-fimc.h 4. User space interfaces ======================== diff --git a/trunk/Documentation/video4linux/omap3isp.txt b/trunk/Documentation/video4linux/omap3isp.txt index 5dd1439b61fd..b9a9f83b1587 100644 --- a/trunk/Documentation/video4linux/omap3isp.txt +++ b/trunk/Documentation/video4linux/omap3isp.txt @@ -12,7 +12,7 @@ Introduction ============ This file documents the Texas Instruments OMAP 3 Image Signal Processor (ISP) -driver located under drivers/media/video/omap3isp. The original driver was +driver located under drivers/media/platform/omap3isp. The original driver was written by Texas Instruments but since that it has been rewritten (twice) at Nokia. diff --git a/trunk/Documentation/video4linux/v4l2-controls.txt b/trunk/Documentation/video4linux/v4l2-controls.txt index 43da22b89728..54270df99d5c 100644 --- a/trunk/Documentation/video4linux/v4l2-controls.txt +++ b/trunk/Documentation/video4linux/v4l2-controls.txt @@ -594,7 +594,11 @@ handler and finally add the first handler to the second. For example: v4l2_ctrl_new_std(&radio_ctrl_handler, &radio_ops, V4L2_CID_AUDIO_MUTE, ...); v4l2_ctrl_new_std(&video_ctrl_handler, &video_ops, V4L2_CID_BRIGHTNESS, ...); v4l2_ctrl_new_std(&video_ctrl_handler, &video_ops, V4L2_CID_CONTRAST, ...); - v4l2_ctrl_add_handler(&video_ctrl_handler, &radio_ctrl_handler); + v4l2_ctrl_add_handler(&video_ctrl_handler, &radio_ctrl_handler, NULL); + +The last argument to v4l2_ctrl_add_handler() is a filter function that allows +you to filter which controls will be added. Set it to NULL if you want to add +all controls. Or you can add specific controls to a handler: diff --git a/trunk/Documentation/video4linux/v4l2-framework.txt b/trunk/Documentation/video4linux/v4l2-framework.txt index 89318be6c1d2..32bfe926e8d7 100644 --- a/trunk/Documentation/video4linux/v4l2-framework.txt +++ b/trunk/Documentation/video4linux/v4l2-framework.txt @@ -583,11 +583,19 @@ You should also set these fields: - name: set to something descriptive and unique. +- vfl_dir: set this to VFL_DIR_RX for capture devices (VFL_DIR_RX has value 0, + so this is normally already the default), set to VFL_DIR_TX for output + devices and VFL_DIR_M2M for mem2mem (codec) devices. + - fops: set to the v4l2_file_operations struct. - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance (highly recommended to use this and it might become compulsory in the - future!), then set this to your v4l2_ioctl_ops struct. + future!), then set this to your v4l2_ioctl_ops struct. The vfl_type and + vfl_dir fields are used to disable ops that do not match the type/dir + combination. E.g. VBI ops are disabled for non-VBI nodes, and output ops + are disabled for a capture device. This makes it possible to provide + just one v4l2_ioctl_ops struct for both vbi and video nodes. - lock: leave to NULL if you want to do all the locking in the driver. Otherwise you give it a pointer to a struct mutex_lock and before the @@ -1054,4 +1062,4 @@ The first event type in the class is reserved for future use, so the first available event type is 'class base + 1'. An example on how the V4L2 events may be used can be found in the OMAP -3 ISP driver (drivers/media/video/omap3isp). +3 ISP driver (drivers/media/platform/omap3isp). diff --git a/trunk/Documentation/video4linux/videobuf b/trunk/Documentation/video4linux/videobuf index 1d00d7f15b8f..3ffe9e960b6f 100644 --- a/trunk/Documentation/video4linux/videobuf +++ b/trunk/Documentation/video4linux/videobuf @@ -349,7 +349,7 @@ again. Developers who are interested in more information can go into the relevant header files; there are a few low-level functions declared there which have not been talked about here. Also worthwhile is the vivi driver -(drivers/media/video/vivi.c), which is maintained as an example of how V4L2 +(drivers/media/platform/vivi.c), which is maintained as an example of how V4L2 drivers should be written. Vivi only uses the vmalloc() API, but it's good enough to get started with. Note also that all of these calls are exported GPL-only, so they will not be available to non-GPL kernel modules. diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 0976bd1381b5..84ee86719bd9 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -184,6 +184,16 @@ S: Maintained F: Documentation/filesystems/9p.txt F: fs/9p/ +A8293 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/a8293* + AACRAID SCSI RAID DRIVER M: Adaptec OEM Raid Solutions L: linux-scsi@vger.kernel.org @@ -391,6 +401,26 @@ M: Riccardo Facchetti S: Maintained F: sound/oss/aedsp16.c +AF9013 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/af9013* + +AF9033 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/af9033* + AFFS FILE SYSTEM L: linux-fsdevel@vger.kernel.org S: Orphan @@ -1063,7 +1093,7 @@ L: linux-media@vger.kernel.org S: Maintained F: arch/arm/plat-s5p/dev-fimc* F: arch/arm/plat-samsung/include/plat/*fimc* -F: drivers/media/video/s5p-fimc/ +F: drivers/media/platform/s5p-fimc/ ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT M: Kyungmin Park @@ -1073,7 +1103,7 @@ L: linux-arm-kernel@lists.infradead.org L: linux-media@vger.kernel.org S: Maintained F: arch/arm/plat-s5p/dev-mfc.c -F: drivers/media/video/s5p-mfc/ +F: drivers/media/platform/s5p-mfc/ ARM/SAMSUNG S5P SERIES TV SUBSYSTEM SUPPORT M: Kyungmin Park @@ -1081,7 +1111,7 @@ M: Tomasz Stanislawski L: linux-arm-kernel@lists.infradead.org L: linux-media@vger.kernel.org S: Maintained -F: drivers/media/video/s5p-tv/ +F: drivers/media/platform/s5p-tv/ ARM/SHMOBILE ARM ARCHITECTURE M: Paul Mundt @@ -1353,7 +1383,7 @@ ATMEL ISI DRIVER M: Josh Wu L: linux-media@vger.kernel.org S: Supported -F: drivers/media/video/atmel-isi.c +F: drivers/media/platform/atmel-isi.c F: include/media/atmel-isi.h ATMEL LCDFB DRIVER @@ -1700,7 +1730,7 @@ W: http://linuxtv.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained F: Documentation/video4linux/bttv/ -F: drivers/media/video/bt8xx/bttv* +F: drivers/media/pci/bt8xx/bttv* C-MEDIA CMI8788 DRIVER M: Clemens Ladisch @@ -1730,7 +1760,7 @@ L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained F: Documentation/video4linux/cafe_ccic -F: drivers/media/video/marvell-ccic/ +F: drivers/media/platform/marvell-ccic/ CAIF NETWORK LAYER M: Sjur Braendeland @@ -2119,7 +2149,17 @@ W: http://linuxtv.org W: http://www.ivtvdriver.org/index.php/Cx18 S: Maintained F: Documentation/video4linux/cx18.txt -F: drivers/media/video/cx18/ +F: drivers/media/pci/cx18/ + +CXD2820R MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/cxd2820r* CXGB3 ETHERNET DRIVER (CXGB3) M: Divy Le Ray @@ -2474,6 +2514,117 @@ L: netdev@vger.kernel.org S: Maintained F: drivers/net/wan/dscc4.c +DVB_USB_AF9015 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/af9015* + +DVB_USB_AF9035 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/af9035* + +DVB_USB_ANYSEE MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/anysee* + +DVB_USB_AU6610 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/au6610* + +DVB_USB_CE6230 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/ce6230* + +DVB_USB_CXUSB MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/cxusb* + +DVB_USB_CYPRESS_FIRMWARE MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/cypress_firmware* + +DVB_USB_EC168 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/ec168* + +DVB_USB_MXL111SF MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/mxl111sf.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/mxl111sf* + +DVB_USB_RTL28XXU MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/rtl28xxu* + +DVB_USB_V2 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/usb/dvb-usb-v2/dvb_usb* +F: drivers/media/usb/dvb-usb-v2/usb_urb.c + DYNAMIC DEBUG M: Jason Baron S: Maintained @@ -2485,6 +2636,16 @@ M: "Maciej W. Rozycki" S: Maintained F: drivers/tty/serial/dz.* +E4000 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/e4000* + EATA-DMA SCSI DRIVER M: Michael Neuffer L: linux-eata@i-connect.net @@ -2513,6 +2674,16 @@ S: Maintained F: include/linux/netfilter_bridge/ebt_*.h F: net/bridge/netfilter/ebt*.c +EC100 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/ec100* + ECRYPT FILE SYSTEM M: Tyler Hicks M: Dustin Kirkland @@ -2795,8 +2966,18 @@ FC0011 TUNER DRIVER M: Michael Buesch L: linux-media@vger.kernel.org S: Maintained -F: drivers/media/common/tuners/fc0011.h -F: drivers/media/common/tuners/fc0011.c +F: drivers/media/tuners/fc0011.h +F: drivers/media/tuners/fc0011.c + +FC2580 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/fc2580* FANOTIFY M: Eric Paris @@ -3026,7 +3207,7 @@ M: Kyungmin Park M: Heungjun Kim L: linux-media@vger.kernel.org S: Maintained -F: drivers/media/video/m5mols/ +F: drivers/media/i2c/m5mols/ F: include/media/m5mols.h FUJITSU TABLET EXTRAS @@ -3144,49 +3325,56 @@ M: Frank Zago L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/finepix.c +F: drivers/media/usb/gspca/finepix.c GSPCA GL860 SUBDRIVER M: Olivier Lorin L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/gl860/ +F: drivers/media/usb/gspca/gl860/ GSPCA M5602 SUBDRIVER M: Erik Andren L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/m5602/ +F: drivers/media/usb/gspca/m5602/ GSPCA PAC207 SONIXB SUBDRIVER M: Hans de Goede L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/pac207.c +F: drivers/media/usb/gspca/pac207.c GSPCA SN9C20X SUBDRIVER M: Brian Johnson L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/sn9c20x.c +F: drivers/media/usb/gspca/sn9c20x.c GSPCA T613 SUBDRIVER M: Leandro Costantino L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/t613.c +F: drivers/media/usb/gspca/t613.c GSPCA USB WEBCAM DRIVER M: Hans de Goede L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/gspca/ +F: drivers/media/usb/gspca/ + +STK1160 USB VIDEO CAPTURE DRIVER +M: Ezequiel Garcia +L: linux-media@vger.kernel.org +T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git +S: Maintained +F: drivers/media/usb/stk1160/ HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER M: Frank Seidel @@ -3240,6 +3428,16 @@ L: linux-parisc@vger.kernel.org S: Maintained F: sound/parisc/harmony.* +HD29L2 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/hd29l2* + HEWLETT-PACKARD SMART2 RAID DRIVER M: Chirag Kantharia L: iss_storagedev@hp.com @@ -3906,7 +4104,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git W: http://www.ivtvdriver.org S: Maintained F: Documentation/video4linux/*.ivtv -F: drivers/media/video/ivtv/ +F: drivers/media/pci/ivtv/ F: include/linux/ivtv* JC42.4 TEMPERATURE SENSOR DRIVER @@ -4200,6 +4398,26 @@ W: http://legousb.sourceforge.net/ S: Maintained F: drivers/usb/misc/legousbtower.c +LG2160 MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/dvb-frontends/lg2160.* + +LGDT3305 MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/dvb-frontends/lgdt3305.* + LGUEST M: Rusty Russell L: lguest@lists.ozlabs.org @@ -4602,7 +4820,7 @@ MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER W: http://popies.net/meye/ S: Orphan F: Documentation/video4linux/meye.txt -F: drivers/media/video/meye.* +F: drivers/media/pci/meye/ F: include/linux/meye.h MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER @@ -4666,6 +4884,16 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git S: Maintained F: drivers/usb/musb/ +MXL5007T MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/tuners/mxl5007t.* + MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE) M: Andrew Gallatin L: netdev@vger.kernel.org @@ -5006,7 +5234,7 @@ OMAP IMAGE SIGNAL PROCESSOR (ISP) M: Laurent Pinchart L: linux-media@vger.kernel.org S: Maintained -F: drivers/media/video/omap3isp/* +F: drivers/media/platform/omap3isp/ OMAP USB SUPPORT M: Felipe Balbi @@ -5047,7 +5275,7 @@ M: Jonathan Corbet L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: drivers/media/video/ov7670.c +F: drivers/media/i2c/ov7670.c ONENAND FLASH DRIVER M: Kyungmin Park @@ -5550,6 +5778,18 @@ L: cbe-oss-dev@lists.ozlabs.org S: Maintained F: drivers/block/ps3vram.c +PSTORE FILESYSTEM +M: Anton Vorontsov +M: Colin Cross +M: Kees Cook +M: Tony Luck +S: Maintained +T: git git://git.infradead.org/users/cbou/linux-pstore.git +F: fs/pstore/ +F: include/linux/pstore* +F: drivers/firmware/efivars.c +F: drivers/acpi/apei/erst.c + PTP HARDWARE CLOCK SUPPORT M: Richard Cochran S: Maintained @@ -5579,7 +5819,7 @@ W: http://www.isely.net/pvrusb2/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained F: Documentation/video4linux/README.pvrusb2 -F: drivers/media/video/pvrusb2/ +F: drivers/media/usb/pvrusb2/ PWM SUBSYSTEM M: Thierry Reding @@ -5689,6 +5929,16 @@ F: fs/qnx4/ F: include/linux/qnx4_fs.h F: include/linux/qnxtypes.h +QT1010 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/qt1010* + QUALCOMM HEXAGON ARCHITECTURE M: Richard Kuo L: linux-hexagon@vger.kernel.org @@ -5855,6 +6105,16 @@ F: include/linux/rose.h F: include/net/rose.h F: net/rose/ +RTL2830 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/rtl2830* + RTL8180 WIRELESS DRIVER M: "John W. Linville" L: linux-wireless@vger.kernel.org @@ -5949,9 +6209,9 @@ L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git W: http://www.mihu.de/linux/saa7146 S: Maintained -F: drivers/media/common/saa7146* -F: drivers/media/video/*7146* -F: include/media/*7146* +F: drivers/media/common/saa7146/ +F: drivers/media/pci/saa7146/ +F: include/media/saa7146* SAMSUNG LAPTOP DRIVER M: Corentin Chary @@ -6012,7 +6272,7 @@ M: Huang Shijie M: Kang Yong M: Zhang Xiaobing S: Supported -F: drivers/media/video/tlg2300 +F: drivers/media/usb/tlg2300 SC1200 WDT DRIVER M: Zwane Mwaikambo @@ -6400,8 +6660,9 @@ M: Guennadi Liakhovetski L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git S: Maintained -F: include/media/v4l2* -F: drivers/media/video/v4l2* +F: include/media/soc* +F: drivers/media/i2c/soc_camera/ +F: drivers/media/platform/soc_camera/ SOEKRIS NET48XX LED SUPPORT M: Chris Boot @@ -6819,6 +7080,66 @@ W: http://tcp-lp-mod.sourceforge.net/ S: Maintained F: net/ipv4/tcp_lp.c +TDA10071 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/dvb-frontends/tda10071* + +TDA18212 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/tda18212* + +TDA18218 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/tda18218* + +TDA18271 MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/tuners/tda18271* + +TDA827x MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/tuners/tda8290.* + +TDA8290 MEDIA DRIVER +M: Michael Krufky +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://github.com/mkrufky +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/mkrufky/tuners.git +S: Maintained +F: drivers/media/tuners/tda8290.* + TEAM DRIVER M: Jiri Pirko L: netdev@vger.kernel.org @@ -7009,6 +7330,16 @@ F: include/linux/serial_core.h F: include/linux/serial.h F: include/linux/tty.h +TUA9001 MEDIA DRIVER +M: Antti Palosaari +L: linux-media@vger.kernel.org +W: http://linuxtv.org/ +W: http://palosaari.fi/linux/ +Q: http://patchwork.linuxtv.org/project/linux-media/list/ +T: git git://linuxtv.org/anttip/media_tree.git +S: Maintained +F: drivers/media/tuners/tua9001* + TULIP NETWORK DRIVERS M: Grant Grundler L: netdev@vger.kernel.org @@ -7181,15 +7512,6 @@ S: Maintained F: Documentation/usb/ehci.txt F: drivers/usb/host/ehci* -USB ET61X[12]51 DRIVER -M: Luca Risolia -L: linux-usb@vger.kernel.org -L: linux-media@vger.kernel.org -T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git -W: http://www.linux-projects.org -S: Maintained -F: drivers/media/video/et61x251/ - USB GADGET/PERIPHERAL SUBSYSTEM M: Felipe Balbi L: linux-usb@vger.kernel.org @@ -7359,7 +7681,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git W: http://www.linux-projects.org S: Maintained F: Documentation/video4linux/sn9c102.txt -F: drivers/media/video/sn9c102/ +F: drivers/media/usb/sn9c102/ USB SUBSYSTEM M: Greg Kroah-Hartman @@ -7394,17 +7716,7 @@ L: linux-media@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git W: http://www.ideasonboard.org/uvc/ S: Maintained -F: drivers/media/video/uvc/ - -USB W996[87]CF DRIVER -M: Luca Risolia -L: linux-usb@vger.kernel.org -L: linux-media@vger.kernel.org -T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git -W: http://www.linux-projects.org -S: Maintained -F: Documentation/video4linux/w9968cf.txt -F: drivers/media/video/w996* +F: drivers/media/usb/uvc/ USB WIRELESS RNDIS DRIVER (rndis_wlan) M: Jussi Kivilinna @@ -7433,7 +7745,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media.git W: http://royale.zerezo.com/zr364xx/ S: Maintained F: Documentation/video4linux/zr364xx.txt -F: drivers/media/video/zr364xx.c +F: drivers/media/usb/zr364xx/ USER-MODE LINUX (UML) M: Jeff Dike @@ -7491,7 +7803,7 @@ M: Marek Szyprowski M: Kyungmin Park L: linux-media@vger.kernel.org S: Maintained -F: drivers/media/video/videobuf2-* +F: drivers/media/v4l2-core/videobuf2-* F: include/media/videobuf2-* VIRTIO CONSOLE DRIVER @@ -7803,6 +8115,13 @@ F: drivers/xen/ F: arch/x86/include/asm/xen/ F: include/xen/ +XEN HYPERVISOR ARM +M: Stefano Stabellini +L: xen-devel@lists.xensource.com (moderated for non-subscribers) +S: Supported +F: arch/arm/xen/ +F: arch/arm/include/asm/xen/ + XEN NETWORK BACKEND DRIVER M: Ian Campbell L: xen-devel@lists.xensource.com (moderated for non-subscribers) @@ -7893,7 +8212,7 @@ L: linux-media@vger.kernel.org W: http://mjpeg.sourceforge.net/driver-zoran/ T: Mercurial http://linuxtv.org/hg/v4l-dvb S: Odd Fixes -F: drivers/media/video/zoran/ +F: drivers/media/pci/zoran/ ZS DECSTATION Z85C30 SERIAL DRIVER M: "Maciej W. Rozycki" diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 7bab17ed2972..6d2f7f5c0036 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -16,6 +16,7 @@ config ARM select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK + select HAVE_SYSCALL_TRACEPOINTS select HAVE_KPROBES if !XIP_KERNEL select HAVE_KRETPROBES if (HAVE_KPROBES) select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) @@ -529,10 +530,11 @@ config ARCH_IXP4XX config ARCH_DOVE bool "Marvell Dove" select CPU_V7 - select PCI select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS - select PLAT_ORION + select MIGHT_HAVE_PCI + select PLAT_ORION_LEGACY + select USB_ARCH_HAS_EHCI help Support for the Marvell Dove SoC 88AP510 @@ -542,7 +544,7 @@ config ARCH_KIRKWOOD select PCI select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS - select PLAT_ORION + select PLAT_ORION_LEGACY help Support for the following Marvell Kirkwood series SoCs: 88F6180, 88F6192 and 88F6281. @@ -568,7 +570,7 @@ config ARCH_MV78XX0 select PCI select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS - select PLAT_ORION + select PLAT_ORION_LEGACY help Support for the following Marvell MV78xx0 series SoCs: MV781x0, MV782x0. @@ -580,7 +582,7 @@ config ARCH_ORION5X select PCI select ARCH_REQUIRE_GPIOLIB select GENERIC_CLOCKEVENTS - select PLAT_ORION + select PLAT_ORION_LEGACY help Support for the following Marvell Orion 5x series SoCs: Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182), @@ -1138,6 +1140,10 @@ config PLAT_ORION select IRQ_DOMAIN select COMMON_CLK +config PLAT_ORION_LEGACY + bool + select PLAT_ORION + config PLAT_PXA bool @@ -1397,6 +1403,16 @@ config PL310_ERRATA_769419 on systems with an outer cache, the store buffer is drained explicitly. +config ARM_ERRATA_775420 + bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock" + depends on CPU_V7 + help + This option enables the workaround for the 775420 Cortex-A9 (r2p2, + r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance + operation aborts with MMU exception, it might cause the processor + to deadlock. This workaround puts DSB before executing ISB if + an abort may occur on cache maintenance. + endmenu source "arch/arm/common/Kconfig" @@ -1781,8 +1797,8 @@ config ALIGNMENT_TRAP configuration it is safe to say N, otherwise say Y. config UACCESS_WITH_MEMCPY - bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)" - depends on MMU && EXPERIMENTAL + bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()" + depends on MMU default y if CPU_FEROCEON help Implement faster copy_to_user and clear_user methods for CPU @@ -1823,11 +1839,15 @@ config CC_STACKPROTECTOR neutralized via a kernel panic. This feature requires gcc version 4.2 or above. -config DEPRECATED_PARAM_STRUCT - bool "Provide old way to pass kernel parameters" +config XEN_DOM0 + def_bool y + depends on XEN + +config XEN + bool "Xen guest support on ARM (EXPERIMENTAL)" + depends on EXPERIMENTAL && ARM && OF help - This was deprecated in 2001 and announced to live on for 5 years. - Some old boot loaders still use this way. + Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. endmenu @@ -1841,6 +1861,23 @@ config USE_OF help Include support for flattened device tree machine descriptions. +config ATAGS + bool "Support for the traditional ATAGS boot data passing" if USE_OF + default y + help + This is the traditional way of passing data to the kernel at boot + time. If you are solely relying on the flattened device tree (or + the ARM_ATAG_DTB_COMPAT option) then you may unselect this option + to remove ATAGS support from your kernel binary. If unsure, + leave this to y. + +config DEPRECATED_PARAM_STRUCT + bool "Provide old way to pass kernel parameters" + depends on ATAGS + help + This was deprecated in 2001 and announced to live on for 5 years. + Some old boot loaders still use this way. + # Compressed boot loader in ROM. Yes, we really want to ask about # TEXT and BSS so we preserve their values in the config files. config ZBOOT_ROM_TEXT @@ -1967,6 +2004,7 @@ config CMDLINE choice prompt "Kernel command line type" if CMDLINE != "" default CMDLINE_FROM_BOOTLOADER + depends on ATAGS config CMDLINE_FROM_BOOTLOADER bool "Use bootloader kernel arguments if available" @@ -2036,7 +2074,7 @@ config KEXEC config ATAGS_PROC bool "Export atags in procfs" - depends on KEXEC + depends on ATAGS && KEXEC default y help Should the atags used to boot the kernel be exported in an "atags" diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index b86e57ef146b..f023e3acdfbd 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -250,6 +250,7 @@ endif core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/ core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ) core-$(CONFIG_VFP) += arch/arm/vfp/ +core-$(CONFIG_XEN) += arch/arm/xen/ # If we have a machine-specific directory, then include it in the build. core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/ @@ -268,7 +269,12 @@ else KBUILD_IMAGE := zImage endif -all: $(KBUILD_IMAGE) +# Build the DT binary blobs if we have OF configured +ifeq ($(CONFIG_USE_OF),y) +KBUILD_DTBS := dtbs +endif + +all: $(KBUILD_IMAGE) $(KBUILD_DTBS) boot := arch/arm/boot @@ -306,7 +312,7 @@ define archhelp echo ' uImage - U-Boot wrapped zImage' echo ' bootpImage - Combined zImage and initial RAM disk' echo ' (supply initrd image via make variable INITRD=)' - echo ' dtbs - Build device tree blobs for enabled boards' + echo '* dtbs - Build device tree blobs for enabled boards' echo ' install - Install uncompressed kernel' echo ' zinstall - Install compressed kernel' echo ' uinstall - Install U-Boot wrapped compressed kernel' diff --git a/trunk/arch/arm/boot/compressed/decompress.c b/trunk/arch/arm/boot/compressed/decompress.c index f41b38cafce8..9deb56a702ce 100644 --- a/trunk/arch/arm/boot/compressed/decompress.c +++ b/trunk/arch/arm/boot/compressed/decompress.c @@ -32,6 +32,9 @@ extern void error(char *); # define Tracecv(c,x) #endif +/* Not needed, but used in some headers pulled in by decompressors */ +extern char * strstr(const char * s1, const char *s2); + #ifdef CONFIG_KERNEL_GZIP #include "../../../../lib/decompress_inflate.c" #endif diff --git a/trunk/arch/arm/boot/dts/Makefile b/trunk/arch/arm/boot/dts/Makefile index 43c084c2cd66..29f541f0e653 100644 --- a/trunk/arch/arm/boot/dts/Makefile +++ b/trunk/arch/arm/boot/dts/Makefile @@ -17,6 +17,9 @@ dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \ usb_a9263.dtb \ usb_a9g20.dtb dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb +dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ + dove-cubox.dtb \ + dove-dove-db.dtb dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ exynos4210-smdkv310.dtb \ exynos4210-trats.dtb \ @@ -33,10 +36,13 @@ dtb-$(CONFIG_SOC_IMX6Q) += imx6q-arm2.dtb \ dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-dns325.dtb \ + kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ kirkwood-goflexnet.dtb \ kirkwood-ib62x0.dtb \ kirkwood-iconnect.dtb \ + kirkwood-iomega_ix2_200.dtb \ + kirkwood-km_kirkwood.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ kirkwood-ts219-6281.dtb \ @@ -96,6 +102,7 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \ vexpress-v2p-ca9.dtb \ vexpress-v2p-ca15-tc1.dtb \ - vexpress-v2p-ca15_a7.dtb + vexpress-v2p-ca15_a7.dtb \ + xenvm-4.2.dtb endif diff --git a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi index 6b6b932a5a7d..16cc82cdaa81 100644 --- a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi @@ -63,6 +63,11 @@ reg = <0xd0020300 0x30>; interrupts = <37>, <38>, <39>, <40>; }; + + addr-decoding@d0020000 { + compatible = "marvell,armada-addr-decoding-controller"; + reg = <0xd0020000 0x258>; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-370.dtsi b/trunk/arch/arm/boot/dts/armada-370.dtsi index 3228ccc83332..2069151afe01 100644 --- a/trunk/arch/arm/boot/dts/armada-370.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370.dtsi @@ -21,6 +21,12 @@ model = "Marvell Armada 370 family SoC"; compatible = "marvell,armada370", "marvell,armada-370-xp"; + aliases { + gpio0 = &gpio0; + gpio1 = &gpio1; + gpio2 = &gpio2; + }; + mpic: interrupt-controller@d0020000 { reg = <0xd0020a00 0x1d0>, <0xd0021870 0x58>; @@ -31,5 +37,43 @@ compatible = "marvell,armada-370-xp-system-controller"; reg = <0xd0018200 0x100>; }; + + pinctrl { + compatible = "marvell,mv88f6710-pinctrl"; + reg = <0xd0018000 0x38>; + }; + + gpio0: gpio@d0018100 { + compatible = "marvell,orion-gpio"; + reg = <0xd0018100 0x40>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <82>, <83>, <84>, <85>; + }; + + gpio1: gpio@d0018140 { + compatible = "marvell,orion-gpio"; + reg = <0xd0018140 0x40>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <87>, <88>, <89>, <90>; + }; + + gpio2: gpio@d0018180 { + compatible = "marvell,orion-gpio"; + reg = <0xd0018180 0x40>; + ngpios = <2>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <91>; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-xp-db.dts b/trunk/arch/arm/boot/dts/armada-xp-db.dts index f97040d4258d..b1fc728515e9 100644 --- a/trunk/arch/arm/boot/dts/armada-xp-db.dts +++ b/trunk/arch/arm/boot/dts/armada-xp-db.dts @@ -14,11 +14,11 @@ */ /dts-v1/; -/include/ "armada-xp.dtsi" +/include/ "armada-xp-mv78460.dtsi" / { model = "Marvell Armada XP Evaluation Board"; - compatible = "marvell,axp-db", "marvell,armadaxp", "marvell,armada-370-xp"; + compatible = "marvell,axp-db", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp"; chosen { bootargs = "console=ttyS0,115200 earlyprintk"; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi new file mode 100644 index 000000000000..ea355192be6f --- /dev/null +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78230.dtsi @@ -0,0 +1,57 @@ +/* + * Device Tree Include file for Marvell Armada XP family SoC + * + * Copyright (C) 2012 Marvell + * + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * Contains definitions specific to the Armada XP MV78230 SoC that are not + * common to all Armada XP SoCs. + */ + +/include/ "armada-xp.dtsi" + +/ { + model = "Marvell Armada XP MV78230 SoC"; + compatible = "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp"; + + aliases { + gpio0 = &gpio0; + gpio1 = &gpio1; + }; + + soc { + pinctrl { + compatible = "marvell,mv78230-pinctrl"; + reg = <0xd0018000 0x38>; + }; + + gpio0: gpio@d0018100 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018100 0x40>, + <0xd0018800 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <16>, <17>, <18>, <19>; + }; + + gpio1: gpio@d0018140 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018140 0x40>, + <0xd0018840 0x30>; + ngpios = <17>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <20>, <21>, <22>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi new file mode 100644 index 000000000000..2057863f3dfa --- /dev/null +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78260.dtsi @@ -0,0 +1,70 @@ +/* + * Device Tree Include file for Marvell Armada XP family SoC + * + * Copyright (C) 2012 Marvell + * + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * Contains definitions specific to the Armada XP MV78260 SoC that are not + * common to all Armada XP SoCs. + */ + +/include/ "armada-xp.dtsi" + +/ { + model = "Marvell Armada XP MV78260 SoC"; + compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp"; + + aliases { + gpio0 = &gpio0; + gpio1 = &gpio1; + gpio2 = &gpio2; + }; + + soc { + pinctrl { + compatible = "marvell,mv78260-pinctrl"; + reg = <0xd0018000 0x38>; + }; + + gpio0: gpio@d0018100 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018100 0x40>, + <0xd0018800 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <16>, <17>, <18>, <19>; + }; + + gpio1: gpio@d0018140 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018140 0x40>, + <0xd0018840 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <20>, <21>, <22>, <23>; + }; + + gpio2: gpio@d0018180 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018180 0x40>, + <0xd0018870 0x30>; + ngpios = <3>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <24>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi new file mode 100644 index 000000000000..ffac98373792 --- /dev/null +++ b/trunk/arch/arm/boot/dts/armada-xp-mv78460.dtsi @@ -0,0 +1,70 @@ +/* + * Device Tree Include file for Marvell Armada XP family SoC + * + * Copyright (C) 2012 Marvell + * + * Thomas Petazzoni + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * Contains definitions specific to the Armada XP MV78460 SoC that are not + * common to all Armada XP SoCs. + */ + +/include/ "armada-xp.dtsi" + +/ { + model = "Marvell Armada XP MV78460 SoC"; + compatible = "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp"; + + aliases { + gpio0 = &gpio0; + gpio1 = &gpio1; + gpio2 = &gpio2; + }; + + soc { + pinctrl { + compatible = "marvell,mv78460-pinctrl"; + reg = <0xd0018000 0x38>; + }; + + gpio0: gpio@d0018100 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018100 0x40>, + <0xd0018800 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <16>, <17>, <18>, <19>; + }; + + gpio1: gpio@d0018140 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018140 0x40>, + <0xd0018840 0x30>; + ngpios = <32>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <20>, <21>, <22>, <23>; + }; + + gpio2: gpio@d0018180 { + compatible = "marvell,armadaxp-gpio"; + reg = <0xd0018180 0x40>, + <0xd0018870 0x30>; + ngpios = <3>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupts-cells = <2>; + interrupts = <24>; + }; + }; + }; diff --git a/trunk/arch/arm/boot/dts/dove-cm-a510.dts b/trunk/arch/arm/boot/dts/dove-cm-a510.dts new file mode 100644 index 000000000000..61a8062e56de --- /dev/null +++ b/trunk/arch/arm/boot/dts/dove-cm-a510.dts @@ -0,0 +1,38 @@ +/dts-v1/; + +/include/ "dove.dtsi" + +/ { + model = "Compulab CM-A510"; + compatible = "compulab,cm-a510", "marvell,dove"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x40000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; +}; + +&uart0 { status = "okay"; }; +&uart1 { status = "okay"; }; +&sdio0 { status = "okay"; }; +&sdio1 { status = "okay"; }; +&sata0 { status = "okay"; }; + +&spi0 { + status = "okay"; + + /* spi0.0: 4M Flash Winbond W25Q32BV */ + spi-flash@0 { + compatible = "st,w25q32"; + spi-max-frequency = <20000000>; + reg = <0>; + }; +}; + +&i2c0 { + status = "okay"; +}; diff --git a/trunk/arch/arm/boot/dts/dove-cubox.dts b/trunk/arch/arm/boot/dts/dove-cubox.dts new file mode 100644 index 000000000000..0adbd5a38095 --- /dev/null +++ b/trunk/arch/arm/boot/dts/dove-cubox.dts @@ -0,0 +1,42 @@ +/dts-v1/; + +/include/ "dove.dtsi" + +/ { + model = "SolidRun CuBox"; + compatible = "solidrun,cubox", "marvell,dove"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x40000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + leds { + compatible = "gpio-leds"; + power { + label = "Power"; + gpios = <&gpio0 18 1>; + linux,default-trigger = "default-on"; + }; + }; +}; + +&uart0 { status = "okay"; }; +&sdio0 { status = "okay"; }; +&sata0 { status = "okay"; }; +&i2c0 { status = "okay"; }; + +&spi0 { + status = "okay"; + + /* spi0.0: 4M Flash Winbond W25Q32BV */ + spi-flash@0 { + compatible = "st,w25q32"; + spi-max-frequency = <20000000>; + reg = <0>; + }; +}; diff --git a/trunk/arch/arm/boot/dts/dove-dove-db.dts b/trunk/arch/arm/boot/dts/dove-dove-db.dts new file mode 100644 index 000000000000..e5a920beab45 --- /dev/null +++ b/trunk/arch/arm/boot/dts/dove-dove-db.dts @@ -0,0 +1,38 @@ +/dts-v1/; + +/include/ "dove.dtsi" + +/ { + model = "Marvell DB-MV88AP510-BP Development Board"; + compatible = "marvell,dove-db", "marvell,dove"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x40000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; +}; + +&uart0 { status = "okay"; }; +&uart1 { status = "okay"; }; +&sdio0 { status = "okay"; }; +&sdio1 { status = "okay"; }; +&sata0 { status = "okay"; }; + +&spi0 { + status = "okay"; + + /* spi0.0: 4M Flash ST-M25P32-VMF6P */ + spi-flash@0 { + compatible = "st,m25p32"; + spi-max-frequency = <20000000>; + reg = <0>; + }; +}; + +&i2c0 { + status = "okay"; +}; diff --git a/trunk/arch/arm/boot/dts/dove.dtsi b/trunk/arch/arm/boot/dts/dove.dtsi new file mode 100644 index 000000000000..96fb824b5e6e --- /dev/null +++ b/trunk/arch/arm/boot/dts/dove.dtsi @@ -0,0 +1,143 @@ +/include/ "skeleton.dtsi" + +/ { + compatible = "marvell,dove"; + model = "Marvell Armada 88AP510 SoC"; + + interrupt-parent = <&intc>; + + intc: interrupt-controller { + compatible = "marvell,orion-intc"; + interrupt-controller; + #interrupt-cells = <1>; + reg = <0xf1020204 0x04>, + <0xf1020214 0x04>; + }; + + mbus@f1000000 { + compatible = "simple-bus"; + ranges = <0 0xf1000000 0x4000000>; + #address-cells = <1>; + #size-cells = <1>; + + uart0: serial@12000 { + compatible = "ns16550a"; + reg = <0x12000 0x100>; + reg-shift = <2>; + interrupts = <7>; + clock-frequency = <166666667>; + status = "disabled"; + }; + + uart1: serial@12100 { + compatible = "ns16550a"; + reg = <0x12100 0x100>; + reg-shift = <2>; + interrupts = <8>; + clock-frequency = <166666667>; + status = "disabled"; + }; + + uart2: serial@12200 { + compatible = "ns16550a"; + reg = <0x12000 0x100>; + reg-shift = <2>; + interrupts = <9>; + clock-frequency = <166666667>; + status = "disabled"; + }; + + uart3: serial@12300 { + compatible = "ns16550a"; + reg = <0x12100 0x100>; + reg-shift = <2>; + interrupts = <10>; + clock-frequency = <166666667>; + status = "disabled"; + }; + + wdt: wdt@20300 { + compatible = "marvell,orion-wdt"; + reg = <0x20300 0x28>; + }; + + gpio0: gpio@d0400 { + compatible = "marvell,orion-gpio"; + #gpio-cells = <2>; + gpio-controller; + reg = <0xd0400 0x20>; + ngpio = <32>; + interrupts = <12>, <13>, <14>, <60>; + }; + + gpio1: gpio@d0420 { + compatible = "marvell,orion-gpio"; + #gpio-cells = <2>; + gpio-controller; + reg = <0xd0420 0x20>; + ngpio = <32>; + interrupts = <61>; + }; + + gpio2: gpio@e8400 { + compatible = "marvell,orion-gpio"; + #gpio-cells = <2>; + gpio-controller; + reg = <0xe8400 0x0c>; + ngpio = <8>; + }; + + spi0: spi@10600 { + compatible = "marvell,orion-spi"; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + interrupts = <6>; + reg = <0x10600 0x28>; + status = "disabled"; + }; + + spi1: spi@14600 { + compatible = "marvell,orion-spi"; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <1>; + interrupts = <5>; + reg = <0x14600 0x28>; + status = "disabled"; + }; + + i2c0: i2c@11000 { + compatible = "marvell,mv64xxx-i2c"; + reg = <0x11000 0x20>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <11>; + clock-frequency = <400000>; + timeout-ms = <1000>; + status = "disabled"; + }; + + sdio0: sdio@92000 { + compatible = "marvell,dove-sdhci"; + reg = <0x92000 0x100>; + interrupts = <35>, <37>; + status = "disabled"; + }; + + sdio1: sdio@90000 { + compatible = "marvell,dove-sdhci"; + reg = <0x90000 0x100>; + interrupts = <36>, <38>; + status = "disabled"; + }; + + sata0: sata@a0000 { + compatible = "marvell,orion-sata"; + reg = <0xa0000 0x2400>; + interrupts = <62>; + nr-ports = <1>; + status = "disabled"; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/integrator.dtsi b/trunk/arch/arm/boot/dts/integrator.dtsi new file mode 100644 index 000000000000..813b91d7bea2 --- /dev/null +++ b/trunk/arch/arm/boot/dts/integrator.dtsi @@ -0,0 +1,76 @@ +/* + * SoC core Device Tree for the ARM Integrator platforms + */ + +/include/ "skeleton.dtsi" + +/ { + timer@13000000 { + reg = <0x13000000 0x100>; + interrupt-parent = <&pic>; + interrupts = <5>; + }; + + timer@13000100 { + reg = <0x13000100 0x100>; + interrupt-parent = <&pic>; + interrupts = <6>; + }; + + timer@13000200 { + reg = <0x13000200 0x100>; + interrupt-parent = <&pic>; + interrupts = <7>; + }; + + pic@14000000 { + compatible = "arm,versatile-fpga-irq"; + #interrupt-cells = <1>; + interrupt-controller; + reg = <0x14000000 0x100>; + clear-mask = <0xffffffff>; + }; + + flash@24000000 { + compatible = "cfi-flash"; + reg = <0x24000000 0x02000000>; + }; + + fpga { + compatible = "arm,amba-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + interrupt-parent = <&pic>; + + /* + * These PrimeCells are in the same locations and using the + * same interrupts in all Integrators, however the silicon + * version deployed is different. + */ + rtc@15000000 { + reg = <0x15000000 0x1000>; + interrupts = <8>; + }; + + uart@16000000 { + reg = <0x16000000 0x1000>; + interrupts = <1>; + }; + + uart@17000000 { + reg = <0x17000000 0x1000>; + interrupts = <2>; + }; + + kmi@18000000 { + reg = <0x18000000 0x1000>; + interrupts = <3>; + }; + + kmi@19000000 { + reg = <0x19000000 0x1000>; + interrupts = <4>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/integratorap.dts b/trunk/arch/arm/boot/dts/integratorap.dts new file mode 100644 index 000000000000..61767757b50a --- /dev/null +++ b/trunk/arch/arm/boot/dts/integratorap.dts @@ -0,0 +1,68 @@ +/* + * Device Tree for the ARM Integrator/AP platform + */ + +/dts-v1/; +/include/ "integrator.dtsi" + +/ { + model = "ARM Integrator/AP"; + compatible = "arm,integrator-ap"; + + aliases { + arm,timer-primary = &timer2; + arm,timer-secondary = &timer1; + }; + + chosen { + bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk"; + }; + + timer0: timer@13000000 { + compatible = "arm,integrator-timer"; + }; + + timer1: timer@13000100 { + compatible = "arm,integrator-timer"; + }; + + timer2: timer@13000200 { + compatible = "arm,integrator-timer"; + }; + + pic: pic@14000000 { + valid-mask = <0x003fffff>; + }; + + fpga { + /* + * The Integator/AP predates the idea to have magic numbers + * identifying the PrimeCell in hardware, thus we have to + * supply these from the device tree. + */ + rtc: rtc@15000000 { + compatible = "arm,pl030", "arm,primecell"; + arm,primecell-periphid = <0x00041030>; + }; + + uart0: uart@16000000 { + compatible = "arm,pl010", "arm,primecell"; + arm,primecell-periphid = <0x00041010>; + }; + + uart1: uart@17000000 { + compatible = "arm,pl010", "arm,primecell"; + arm,primecell-periphid = <0x00041010>; + }; + + kmi0: kmi@18000000 { + compatible = "arm,pl050", "arm,primecell"; + arm,primecell-periphid = <0x00041050>; + }; + + kmi1: kmi@19000000 { + compatible = "arm,pl050", "arm,primecell"; + arm,primecell-periphid = <0x00041050>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/integratorcp.dts b/trunk/arch/arm/boot/dts/integratorcp.dts new file mode 100644 index 000000000000..2dd5e4e48481 --- /dev/null +++ b/trunk/arch/arm/boot/dts/integratorcp.dts @@ -0,0 +1,110 @@ +/* + * Device Tree for the ARM Integrator/CP platform + */ + +/dts-v1/; +/include/ "integrator.dtsi" + +/ { + model = "ARM Integrator/CP"; + compatible = "arm,integrator-cp"; + + aliases { + arm,timer-primary = &timer2; + arm,timer-secondary = &timer1; + }; + + chosen { + bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; + }; + + timer0: timer@13000000 { + compatible = "arm,sp804", "arm,primecell"; + }; + + timer1: timer@13000100 { + compatible = "arm,sp804", "arm,primecell"; + }; + + timer2: timer@13000200 { + compatible = "arm,sp804", "arm,primecell"; + }; + + pic: pic@14000000 { + valid-mask = <0x1fc003ff>; + }; + + cic: cic@10000040 { + compatible = "arm,versatile-fpga-irq"; + #interrupt-cells = <1>; + interrupt-controller; + reg = <0x10000040 0x100>; + clear-mask = <0xffffffff>; + valid-mask = <0x00000007>; + }; + + sic: sic@ca000000 { + compatible = "arm,versatile-fpga-irq"; + #interrupt-cells = <1>; + interrupt-controller; + reg = <0xca000000 0x100>; + clear-mask = <0x00000fff>; + valid-mask = <0x00000fff>; + }; + + ethernet@c8000000 { + compatible = "smsc,lan91c111"; + reg = <0xc8000000 0x10>; + interrupt-parent = <&pic>; + interrupts = <27>; + }; + + fpga { + /* + * These PrimeCells are at the same location and using + * the same interrupts in all Integrators, but in the CP + * slightly newer versions are deployed. + */ + rtc@15000000 { + compatible = "arm,pl031", "arm,primecell"; + }; + + uart@16000000 { + compatible = "arm,pl011", "arm,primecell"; + }; + + uart@17000000 { + compatible = "arm,pl011", "arm,primecell"; + }; + + kmi@18000000 { + compatible = "arm,pl050", "arm,primecell"; + }; + + kmi@19000000 { + compatible = "arm,pl050", "arm,primecell"; + }; + + /* + * These PrimeCells are only available on the Integrator/CP + */ + mmc@1c000000 { + compatible = "arm,pl180", "arm,primecell"; + reg = <0x1c000000 0x1000>; + interrupts = <23 24>; + max-frequency = <515633>; + }; + + aaci@1d000000 { + compatible = "arm,pl041", "arm,primecell"; + reg = <0x1d000000 0x1000>; + interrupts = <25>; + }; + + clcd@c0000000 { + compatible = "arm,pl110", "arm,primecell"; + reg = <0xC0000000 0x1000>; + interrupts = <22>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/trunk/arch/arm/boot/dts/kirkwood-dnskw.dtsi index 7408655f91b5..9b32d0272825 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-dnskw.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood-dnskw.dtsi @@ -25,6 +25,16 @@ }; }; + gpio_fan { + /* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */ + compatible = "gpio-fan"; + gpios = <&gpio1 14 1 + &gpio1 13 1>; + gpio-fan,speed-map = <0 0 + 3000 1 + 6000 2>; + }; + ocp@f1000000 { sata@80000 { status = "okay"; diff --git a/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts b/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts new file mode 100644 index 000000000000..08a582414b88 --- /dev/null +++ b/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts @@ -0,0 +1,57 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Seagate FreeAgent Dockstar"; + compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x8000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10"; + }; + + ocp@f1000000 { + serial@12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand@3000000 { + status = "okay"; + + partition@0 { + label = "u-boot"; + reg = <0x0000000 0x100000>; + read-only; + }; + + partition@100000 { + label = "uImage"; + reg = <0x0100000 0x400000>; + }; + + partition@500000 { + label = "data"; + reg = <0x0500000 0xfb00000>; + }; + }; + }; + gpio-leds { + compatible = "gpio-leds"; + + health { + label = "status:green:health"; + gpios = <&gpio1 14 1>; + linux,default-trigger = "default-on"; + }; + fault { + label = "status:orange:fault"; + gpios = <&gpio1 15 1>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts b/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts index f8ca6fa88192..d97cd9d4753e 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts @@ -12,7 +12,7 @@ }; chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),0x300000@0x540000(initrd),0x1f400000@0x980000(boot)"; + bootargs = "console=ttyS0,115200n8 earlyprintk"; linux,initrd-start = <0x4500040>; linux,initrd-end = <0x4800000>; }; @@ -30,7 +30,37 @@ clock-frequency = <200000000>; status = "ok"; }; + + nand@3000000 { + status = "okay"; + + partition@0 { + label = "uboot"; + reg = <0x0000000 0xc0000>; + }; + + partition@a0000 { + label = "env"; + reg = <0xa0000 0x20000>; + }; + + partition@100000 { + label = "zImage"; + reg = <0x100000 0x300000>; + }; + + partition@540000 { + label = "initrd"; + reg = <0x540000 0x300000>; + }; + + partition@980000 { + label = "boot"; + reg = <0x980000 0x1f400000>; + }; + }; }; + gpio-leds { compatible = "gpio-leds"; @@ -69,4 +99,22 @@ gpios = <&gpio1 16 0>; }; }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + button@1 { + label = "OTB Button"; + linux,code = <133>; + gpios = <&gpio1 3 1>; + debounce-interval = <100>; + }; + button@2 { + label = "Reset"; + linux,code = <0x198>; + gpios = <&gpio0 12 1>; + debounce-interval = <100>; + }; + }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts new file mode 100644 index 000000000000..865aeec40a26 --- /dev/null +++ b/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts @@ -0,0 +1,105 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Iomega StorCenter ix2-200"; + compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x10000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp@f1000000 { + i2c@11000 { + status = "okay"; + + lm63: lm63@4c { + compatible = "national,lm63"; + reg = <0x4c>; + }; + }; + + serial@12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand@3000000 { + status = "okay"; + + partition@0 { + label = "u-boot"; + reg = <0x0000000 0x100000>; + read-only; + }; + + partition@a0000 { + label = "env"; + reg = <0xa0000 0x20000>; + read-only; + }; + + partition@100000 { + label = "uImage"; + reg = <0x100000 0x300000>; + }; + + partition@400000 { + label = "uInitrd"; + reg = <0x540000 0x1000000>; + }; + }; + sata@80000 { + status = "okay"; + nr-ports = <2>; + }; + + }; + gpio-leds { + compatible = "gpio-leds"; + + power_led { + label = "status:white:power_led"; + gpios = <&gpio0 16 0>; + linux,default-trigger = "default-on"; + }; + health_led1 { + label = "status:red:health_led"; + gpios = <&gpio1 5 0>; + }; + health_led2 { + label = "status:white:health_led"; + gpios = <&gpio1 4 0>; + }; + backup_led { + label = "status:blue:backup_led"; + gpios = <&gpio0 15 0>; + }; + }; + gpio-keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + Power { + label = "Power Button"; + linux,code = <116>; + gpios = <&gpio0 14 1>; + }; + Reset { + label = "Reset Button"; + linux,code = <0x198>; + gpios = <&gpio0 12 1>; + }; + OTB { + label = "OTB Button"; + linux,code = <133>; + gpios = <&gpio1 3 1>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts new file mode 100644 index 000000000000..75bdb93fed26 --- /dev/null +++ b/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts @@ -0,0 +1,29 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Keymile Kirkwood Reference Design"; + compatible = "keymile,km_kirkwood", "marvell,kirkwood-98DX4122", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x08000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp@f1000000 { + serial@12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand@3000000 { + status = "ok"; + chip-delay = <25>; + }; + }; +}; diff --git a/trunk/arch/arm/boot/dts/kirkwood.dtsi b/trunk/arch/arm/boot/dts/kirkwood.dtsi index cef9616f330a..4e5b8154a5be 100644 --- a/trunk/arch/arm/boot/dts/kirkwood.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood.dtsi @@ -14,7 +14,8 @@ ocp@f1000000 { compatible = "simple-bus"; - ranges = <0 0xf1000000 0x4000000>; + ranges = <0x00000000 0xf1000000 0x4000000 + 0xf5000000 0xf5000000 0x0000400>; #address-cells = <1>; #size-cells = <1>; @@ -105,5 +106,14 @@ clock-frequency = <100000>; status = "disabled"; }; + + crypto@30000 { + compatible = "marvell,orion-crypto"; + reg = <0x30000 0x10000>, + <0xf5000000 0x800>; + reg-names = "regs", "sram"; + interrupts = <22>; + status = "okay"; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/xenvm-4.2.dts b/trunk/arch/arm/boot/dts/xenvm-4.2.dts new file mode 100644 index 000000000000..ec3f9528e180 --- /dev/null +++ b/trunk/arch/arm/boot/dts/xenvm-4.2.dts @@ -0,0 +1,68 @@ +/* + * Xen Virtual Machine for unprivileged guests + * + * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU) + * Cortex-A15 MPCore (V2P-CA15) + * + */ + +/dts-v1/; + +/ { + model = "XENVM-4.2"; + compatible = "xen,xenvm-4.2", "xen,xenvm"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + chosen { + /* this field is going to be adjusted by the hypervisor */ + bootargs = "console=hvc0 root=/dev/xvda"; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a15"; + reg = <0>; + }; + }; + + memory@80000000 { + device_type = "memory"; + /* this field is going to be adjusted by the hypervisor */ + reg = <0 0x80000000 0 0x08000000>; + }; + + gic: interrupt-controller@2c001000 { + compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0 0x2c001000 0 0x1000>, + <0 0x2c002000 0 0x100>; + }; + + timer { + compatible = "arm,armv7-timer"; + interrupts = <1 13 0xf08>, + <1 14 0xf08>, + <1 11 0xf08>, + <1 10 0xf08>; + }; + + hypervisor { + compatible = "xen,xen-4.2", "xen,xen"; + /* this field is going to be adjusted by the hypervisor */ + reg = <0 0xb0000000 0 0x20000>; + /* this field is going to be adjusted by the hypervisor */ + interrupts = <1 15 0xf08>; + }; + + motherboard { + arm,v2m-memory-map = "rs1"; + }; +}; diff --git a/trunk/arch/arm/configs/imx_v6_v7_defconfig b/trunk/arch/arm/configs/imx_v6_v7_defconfig index 565132d02105..66aa7a6db884 100644 --- a/trunk/arch/arm/configs/imx_v6_v7_defconfig +++ b/trunk/arch/arm/configs/imx_v6_v7_defconfig @@ -40,7 +40,6 @@ CONFIG_VMSPLIT_2G=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" CONFIG_VFP=y CONFIG_NEON=y @@ -177,6 +176,9 @@ CONFIG_SND_SOC_IMX_MC13783=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_MXS_PHY=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_SDHCI=y diff --git a/trunk/arch/arm/configs/kirkwood_defconfig b/trunk/arch/arm/configs/kirkwood_defconfig index aeb3af541fed..74eee0c78f28 100644 --- a/trunk/arch/arm/configs/kirkwood_defconfig +++ b/trunk/arch/arm/configs/kirkwood_defconfig @@ -1,5 +1,7 @@ CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y CONFIG_LOG_BUF_SHIFT=19 CONFIG_PROFILING=y CONFIG_OPROFILE=y @@ -15,9 +17,19 @@ CONFIG_MACH_MV88F6281GTW_GE=y CONFIG_MACH_SHEEVAPLUG=y CONFIG_MACH_ESATA_SHEEVAPLUG=y CONFIG_MACH_GURUPLUG=y -CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_DREAMPLUG_DT=y +CONFIG_MACH_ICONNECT_DT=y +CONFIG_MACH_DLINK_KIRKWOOD_DT=y +CONFIG_MACH_IB62X0_DT=y +CONFIG_MACH_TS219_DT=y +CONFIG_MACH_DOCKSTAR_DT=y +CONFIG_MACH_GOFLEXNET_DT=y +CONFIG_MACH_LSXL_DT=y +CONFIG_MACH_IOMEGA_IX2_200_DT=y +CONFIG_MACH_KM_KIRKWOOD_DT=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y +CONFIG_MACH_DOCKSTAR=y CONFIG_MACH_OPENRD_BASE=y CONFIG_MACH_OPENRD_CLIENT=y CONFIG_MACH_OPENRD_ULTIMATE=y @@ -29,8 +41,6 @@ CONFIG_MACH_NET2BIG_V2=y CONFIG_MACH_NET5BIG_V2=y CONFIG_MACH_T5325=y # CONFIG_CPU_FEROCEON_OLD_ID is not set -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y CONFIG_PREEMPT=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set @@ -47,13 +57,11 @@ CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y # CONFIG_IPV6 is not set CONFIG_NET_DSA=y -CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_NET_PKTGEN=m CONFIG_CFG80211=y CONFIG_MAC80211=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_MTD=y -CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y @@ -69,7 +77,6 @@ CONFIG_MTD_M25P80=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ORION=y CONFIG_BLK_DEV_LOOP=y -# CONFIG_MISC_DEVICES is not set # CONFIG_SCSI_PROC_FS is not set CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=m @@ -78,22 +85,21 @@ CONFIG_ATA=y CONFIG_SATA_AHCI=y CONFIG_SATA_MV=y CONFIG_NETDEVICES=y -CONFIG_MARVELL_PHY=y -CONFIG_NET_ETHERNET=y CONFIG_MII=y -CONFIG_NET_PCI=y +CONFIG_NET_DSA_MV88E6123_61_65=y CONFIG_MV643XX_ETH=y -# CONFIG_NETDEV_10000 is not set +CONFIG_MARVELL_PHY=y CONFIG_LIBERTAS=y CONFIG_LIBERTAS_SDIO=y CONFIG_INPUT_EVDEV=y CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set +CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_DEVKMEM is not set CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_OF_PLATFORM=y # CONFIG_HW_RANDOM is not set CONFIG_I2C=y # CONFIG_I2C_COMPAT is not set @@ -103,7 +109,8 @@ CONFIG_SPI=y CONFIG_SPI_ORION=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set -# CONFIG_VGA_CONSOLE is not set +CONFIG_WATCHDOG=y +CONFIG_ORION_WATCHDOG=y CONFIG_HID_DRAGONRISE=y CONFIG_HID_GYRATION=y CONFIG_HID_TWINHAN=y @@ -119,10 +126,8 @@ CONFIG_HID_TOPSEED=y CONFIG_HID_THRUSTMASTER=y CONFIG_HID_ZEROPLUS=y CONFIG_USB=y -CONFIG_USB_DEVICEFS=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_PRINTER=m CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE_DATAFAB=y @@ -148,7 +153,6 @@ CONFIG_MV_XOR=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set -CONFIG_INOTIFY=y CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_UDF_FS=m @@ -158,7 +162,6 @@ CONFIG_TMPFS=y CONFIG_JFFS2_FS=y CONFIG_CRAMFS=y CONFIG_NFS_FS=y -CONFIG_NFS_V3=y CONFIG_ROOT_NFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_850=y @@ -171,11 +174,8 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set CONFIG_DEBUG_INFO=y -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_FTRACE is not set CONFIG_DEBUG_USER=y -CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_LL=y CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_PCBC=m diff --git a/trunk/arch/arm/configs/lpc32xx_defconfig b/trunk/arch/arm/configs/lpc32xx_defconfig index e42a0e3d4c3a..92386b20bd09 100644 --- a/trunk/arch/arm/configs/lpc32xx_defconfig +++ b/trunk/arch/arm/configs/lpc32xx_defconfig @@ -133,7 +133,6 @@ CONFIG_SND_DEBUG_VERBOSE=y # CONFIG_SND_ARM is not set # CONFIG_SND_SPI is not set CONFIG_SND_SOC=y -# CONFIG_HID_SUPPORT is not set CONFIG_USB=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_STORAGE=y @@ -149,6 +148,7 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_PCA9532=y CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y @@ -161,10 +161,13 @@ CONFIG_RTC_DRV_DS1374=y CONFIG_RTC_DRV_PCF8563=y CONFIG_RTC_DRV_LPC32XX=y CONFIG_DMADEVICES=y +CONFIG_AMBA_PL08X=y CONFIG_STAGING=y CONFIG_LPC32XX_ADC=y -CONFIG_MAX517=y CONFIG_IIO=y +CONFIG_MAX517=y +CONFIG_PWM=y +CONFIG_PWM_LPC32XX=y CONFIG_EXT2_FS=y CONFIG_AUTOFS4_FS=y CONFIG_MSDOS_FS=y diff --git a/trunk/arch/arm/configs/marzen_defconfig b/trunk/arch/arm/configs/marzen_defconfig index f513acedc10a..53382b6c8bb4 100644 --- a/trunk/arch/arm/configs/marzen_defconfig +++ b/trunk/arch/arm/configs/marzen_defconfig @@ -1,13 +1,14 @@ # CONFIG_ARM_PATCH_PHYS_VIRT is not set CONFIG_EXPERIMENTAL=y CONFIG_KERNEL_LZMA=y +CONFIG_NO_HZ=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=16 CONFIG_SYSCTL_SYSCALL=y CONFIG_EMBEDDED=y CONFIG_SLAB=y -# CONFIG_BLOCK is not set +# CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_SHMOBILE=y CONFIG_ARCH_R8A7779=y CONFIG_MACH_MARZEN=y @@ -21,7 +22,6 @@ CONFIG_ARM_ERRATA_458693=y CONFIG_ARM_ERRATA_460075=y CONFIG_ARM_ERRATA_743622=y CONFIG_ARM_ERRATA_754322=y -CONFIG_NO_HZ=y CONFIG_SMP=y # CONFIG_ARM_CPU_TOPOLOGY is not set CONFIG_AEABI=y @@ -29,13 +29,16 @@ CONFIG_AEABI=y CONFIG_HIGHMEM=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel" +CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on" CONFIG_CMDLINE_FORCE=y CONFIG_KEXEC=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_PM_RUNTIME=y CONFIG_NET=y +CONFIG_UNIX=y CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y # CONFIG_IPV6 is not set # CONFIG_WIRELESS is not set CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" @@ -71,16 +74,18 @@ CONFIG_GPIO_SYSFS=y CONFIG_THERMAL=y CONFIG_RCAR_THERMAL=y CONFIG_SSB=y -# CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_SDHI=y CONFIG_UIO=y CONFIG_UIO_PDRV_GENIRQ=y # CONFIG_IOMMU_SUPPORT is not set -# CONFIG_FILE_LOCKING is not set # CONFIG_DNOTIFY is not set # CONFIG_INOTIFY_USER is not set CONFIG_TMPFS=y # CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NFS_FS=y +CONFIG_ROOT_NFS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y diff --git a/trunk/arch/arm/configs/mvebu_defconfig b/trunk/arch/arm/configs/mvebu_defconfig index 2e86b31c33cf..7bcf850eddcd 100644 --- a/trunk/arch/arm/configs/mvebu_defconfig +++ b/trunk/arch/arm/configs/mvebu_defconfig @@ -21,6 +21,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig index 36d60dda310c..048aaca60814 100644 --- a/trunk/arch/arm/configs/mxs_defconfig +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -53,6 +53,9 @@ CONFIG_DEVTMPFS=y # CONFIG_FIRMWARE_IN_KERNEL is not set # CONFIG_BLK_DEV is not set CONFIG_MTD=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_M25P80 CONFIG_MTD_NAND=y CONFIG_MTD_NAND_GPMI_NAND=y CONFIG_NETDEVICES=y @@ -82,13 +85,13 @@ CONFIG_I2C_CHARDEV=y CONFIG_I2C_MXS=y CONFIG_SPI=y CONFIG_SPI_GPIO=m +CONFIG_SPI_MXS=y CONFIG_DEBUG_GPIO=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set # CONFIG_MFD_SUPPORT is not set CONFIG_DISPLAY_SUPPORT=m # CONFIG_HID_SUPPORT is not set -# CONFIG_USB_SUPPORT is not set CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_TIMER=y @@ -103,14 +106,45 @@ CONFIG_SND_SOC_I2C_AND_SPI=y CONFIG_SND_SOC_SGTL5000=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_FB=y +CONFIG_FB_MXS=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +CONFIG_LOGO=y +CONFIG_USB=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_STORAGE=y +CONFIG_USB_MXS_PHY=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y CONFIG_MMC=y CONFIG_MMC_MXS=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=y +CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_STMP=y CONFIG_DMADEVICES=y CONFIG_MXS_DMA=y +CONFIG_STAGING=y +CONFIG_MXS_LRADC=y +CONFIG_IIO_SYSFS_TRIGGER=y CONFIG_COMMON_CLK_DEBUG=y +CONFIG_IIO=y +CONFIG_PWM=y +CONFIG_PWM_MXS=y CONFIG_EXT3_FS=y # CONFIG_DNOTIFY is not set CONFIG_FSCACHE=m diff --git a/trunk/arch/arm/configs/s3c6400_defconfig b/trunk/arch/arm/configs/s3c6400_defconfig index ba6a515086b5..3a186d653dac 100644 --- a/trunk/arch/arm/configs/s3c6400_defconfig +++ b/trunk/arch/arm/configs/s3c6400_defconfig @@ -9,11 +9,14 @@ CONFIG_ARCH_S3C64XX=y CONFIG_S3C_BOOT_ERROR_RESET=y CONFIG_MACH_SMDK6400=y CONFIG_MACH_ANW6410=y +CONFIG_MACH_MINI6410=y +CONFIG_MACH_REAL6410=y CONFIG_MACH_SMDK6410=y CONFIG_MACH_NCP=y CONFIG_MACH_HMT=y CONFIG_MACH_SMARTQ5=y CONFIG_MACH_SMARTQ7=y +CONFIG_MACH_WLF_CRAGG_6410=y CONFIG_CPU_32v6K=y CONFIG_AEABI=y CONFIG_CMDLINE="console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x51000000,6M ramdisk_size=6144" diff --git a/trunk/arch/arm/configs/tegra_defconfig b/trunk/arch/arm/configs/tegra_defconfig index 0d6bb738c6de..e2184f6c20b3 100644 --- a/trunk/arch/arm/configs/tegra_defconfig +++ b/trunk/arch/arm/configs/tegra_defconfig @@ -24,11 +24,11 @@ CONFIG_EFI_PARTITION=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_TEGRA=y +CONFIG_GPIO_PCA953X=y CONFIG_ARCH_TEGRA_2x_SOC=y CONFIG_ARCH_TEGRA_3x_SOC=y -CONFIG_MACH_HARMONY=y -CONFIG_MACH_PAZ00=y -CONFIG_MACH_TRIMSLICE=y +CONFIG_TEGRA_PCI=y +CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA=y CONFIG_TEGRA_EMC_SCALING_ENABLE=y CONFIG_SMP=y CONFIG_PREEMPT=y @@ -67,7 +67,18 @@ CONFIG_INET6_IPCOMP=y CONFIG_IPV6_MIP6=y CONFIG_IPV6_TUNNEL=y CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_WIRELESS is not set +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_BNEP=y +CONFIG_BT_HIDP=y +CONFIG_BT_HCIBTUSB=m +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_RFKILL=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_GPIO=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_PROC_DEVICETREE=y CONFIG_BLK_DEV_LOOP=y @@ -87,7 +98,8 @@ CONFIG_USB_PEGASUS=y CONFIG_USB_USBNET=y CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y -# CONFIG_WLAN is not set +CONFIG_RT2X00=y +CONFIG_RT2800USB=m CONFIG_INPUT_EVDEV=y CONFIG_INPUT_MISC=y CONFIG_INPUT_MPU3050=y @@ -105,25 +117,31 @@ CONFIG_I2C_MUX_PINCTRL=y CONFIG_I2C_TEGRA=y CONFIG_SPI=y CONFIG_SPI_TEGRA=y -CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_PCA953X_IRQ=y CONFIG_GPIO_TPS6586X=y +CONFIG_GPIO_TPS65910=y CONFIG_POWER_SUPPLY=y CONFIG_BATTERY_SBS=y CONFIG_SENSORS_LM90=y CONFIG_MFD_TPS6586X=y CONFIG_MFD_TPS65910=y +CONFIG_MFD_MAX8907=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_VIRTUAL_CONSUMER=y CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_MAX8907=y CONFIG_REGULATOR_TPS62360=y CONFIG_REGULATOR_TPS6586X=y CONFIG_REGULATOR_TPS65910=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m CONFIG_SOUND=y CONFIG_SND=y # CONFIG_SND_SUPPORT_OLD_API is not set # CONFIG_SND_DRIVERS is not set -# CONFIG_SND_PCI is not set # CONFIG_SND_ARM is not set # CONFIG_SND_SPI is not set # CONFIG_SND_USB is not set @@ -136,13 +154,25 @@ CONFIG_SND_SOC_TEGRA_ALC5632=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_TEGRA=y +CONFIG_USB_ACM=y +CONFIG_USB_WDM=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_BLOCK_MINORS=16 CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MMC_SDHCI_TEGRA=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_GPIO=y CONFIG_RTC_CLASS=y +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_DRV_MAX8907=y +CONFIG_RTC_DRV_TPS65910=y CONFIG_RTC_DRV_EM3027=y CONFIG_RTC_DRV_TEGRA=y CONFIG_DMADEVICES=y @@ -154,10 +184,14 @@ CONFIG_SENSORS_AK8975=y CONFIG_MFD_NVEC=y CONFIG_KEYBOARD_NVEC=y CONFIG_SERIO_NVEC_PS2=y +CONFIG_NVEC_POWER=y +CONFIG_NVEC_PAZ00=y CONFIG_TEGRA_IOMMU_GART=y CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_MEMORY=y CONFIG_IIO=y +CONFIG_PWM=y +CONFIG_PWM_TEGRA=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -170,6 +204,7 @@ CONFIG_EXT4_FS=y # CONFIG_DNOTIFY is not set CONFIG_VFAT_FS=y CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y CONFIG_NLS_CODEPAGE_437=y @@ -188,8 +223,6 @@ CONFIG_DEBUG_VM=y CONFIG_DEBUG_SG=y CONFIG_DEBUG_LL=y CONFIG_EARLY_PRINTK=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_TWOFISH=y # CONFIG_CRYPTO_ANSI_CPRNG is not set CONFIG_CRYPTO_DEV_TEGRA_AES=y diff --git a/trunk/arch/arm/include/asm/Kbuild b/trunk/arch/arm/include/asm/Kbuild index 960abceb8e14..8a7196ca5106 100644 --- a/trunk/arch/arm/include/asm/Kbuild +++ b/trunk/arch/arm/include/asm/Kbuild @@ -5,16 +5,33 @@ header-y += hwcap.h generic-y += auxvec.h generic-y += bitsperlong.h generic-y += cputime.h +generic-y += current.h generic-y += emergency-restart.h generic-y += errno.h +generic-y += exec.h generic-y += ioctl.h +generic-y += ipcbuf.h generic-y += irq_regs.h generic-y += kdebug.h generic-y += local.h generic-y += local64.h +generic-y += msgbuf.h +generic-y += param.h +generic-y += parport.h generic-y += percpu.h generic-y += poll.h generic-y += resource.h generic-y += sections.h +generic-y += segment.h +generic-y += sembuf.h +generic-y += serial.h +generic-y += shmbuf.h generic-y += siginfo.h generic-y += sizes.h +generic-y += socket.h +generic-y += sockios.h +generic-y += termbits.h +generic-y += termios.h +generic-y += timex.h +generic-y += types.h +generic-y += unaligned.h diff --git a/trunk/arch/arm/include/asm/arch_timer.h b/trunk/arch/arm/include/asm/arch_timer.h index 62e75475e57e..d40229d9a1c9 100644 --- a/trunk/arch/arm/include/asm/arch_timer.h +++ b/trunk/arch/arm/include/asm/arch_timer.h @@ -2,11 +2,12 @@ #define __ASMARM_ARCH_TIMER_H #include +#include #ifdef CONFIG_ARM_ARCH_TIMER -#define ARCH_HAS_READ_CURRENT_TIMER int arch_timer_of_register(void); int arch_timer_sched_clock_init(void); +struct timecounter *arch_timer_get_timecounter(void); #else static inline int arch_timer_of_register(void) { @@ -17,6 +18,11 @@ static inline int arch_timer_sched_clock_init(void) { return -ENXIO; } + +static inline struct timecounter *arch_timer_get_timecounter(void) +{ + return NULL; +} #endif #endif diff --git a/trunk/arch/arm/include/asm/current.h b/trunk/arch/arm/include/asm/current.h deleted file mode 100644 index 75d21e2a3ff7..000000000000 --- a/trunk/arch/arm/include/asm/current.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _ASMARM_CURRENT_H -#define _ASMARM_CURRENT_H - -#include - -static inline struct task_struct *get_current(void) __attribute_const__; - -static inline struct task_struct *get_current(void) -{ - return current_thread_info()->task; -} - -#define current (get_current()) - -#endif /* _ASMARM_CURRENT_H */ diff --git a/trunk/arch/arm/include/asm/delay.h b/trunk/arch/arm/include/asm/delay.h index dc6145120de3..ab98fdd083bd 100644 --- a/trunk/arch/arm/include/asm/delay.h +++ b/trunk/arch/arm/include/asm/delay.h @@ -15,6 +15,11 @@ #ifndef __ASSEMBLY__ +struct delay_timer { + unsigned long (*read_current_timer)(void); + unsigned long freq; +}; + extern struct arm_delay_ops { void (*delay)(unsigned long); void (*const_udelay)(unsigned long); @@ -56,6 +61,10 @@ extern void __loop_delay(unsigned long loops); extern void __loop_udelay(unsigned long usecs); extern void __loop_const_udelay(unsigned long); +/* Delay-loop timer registration. */ +#define ARCH_HAS_READ_CURRENT_TIMER +extern void register_current_timer_delay(const struct delay_timer *timer); + #endif /* __ASSEMBLY__ */ #endif /* defined(_ARM_DELAY_H) */ diff --git a/trunk/arch/arm/include/asm/exec.h b/trunk/arch/arm/include/asm/exec.h deleted file mode 100644 index 7c4fbef72b3a..000000000000 --- a/trunk/arch/arm/include/asm/exec.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASM_ARM_EXEC_H -#define __ASM_ARM_EXEC_H - -#define arch_align_stack(x) (x) - -#endif /* __ASM_ARM_EXEC_H */ diff --git a/trunk/arch/arm/include/asm/glue-cache.h b/trunk/arch/arm/include/asm/glue-cache.h index 7e30874377e6..4f8d2c0dc441 100644 --- a/trunk/arch/arm/include/asm/glue-cache.h +++ b/trunk/arch/arm/include/asm/glue-cache.h @@ -110,19 +110,19 @@ #endif #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) -//# ifdef _CACHE +# ifdef _CACHE # define MULTI_CACHE 1 -//# else -//# define _CACHE v6 -//# endif +# else +# define _CACHE v6 +# endif #endif #if defined(CONFIG_CPU_V7) -//# ifdef _CACHE +# ifdef _CACHE # define MULTI_CACHE 1 -//# else -//# define _CACHE v7 -//# endif +# else +# define _CACHE v7 +# endif #endif #if !defined(_CACHE) && !defined(MULTI_CACHE) diff --git a/trunk/arch/arm/include/asm/hardirq.h b/trunk/arch/arm/include/asm/hardirq.h index 436e60b2cf7a..2740c2a2df63 100644 --- a/trunk/arch/arm/include/asm/hardirq.h +++ b/trunk/arch/arm/include/asm/hardirq.h @@ -5,7 +5,7 @@ #include #include -#define NR_IPI 5 +#define NR_IPI 6 typedef struct { unsigned int __softirq_pending; diff --git a/trunk/arch/arm/include/asm/hardware/linkup-l1110.h b/trunk/arch/arm/include/asm/hardware/linkup-l1110.h deleted file mode 100644 index 7ec91168a576..000000000000 --- a/trunk/arch/arm/include/asm/hardware/linkup-l1110.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -* -* Definitions for H3600 Handheld Computer -* -* Copyright 2001 Compaq Computer Corporation. -* -* Use consistent with the GNU GPL is permitted, -* provided that this copyright notice is -* preserved in its entirety in all copies and derived works. -* -* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, -* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS -* FITNESS FOR ANY PARTICULAR PURPOSE. -* -* Author: Jamey Hicks. -* -*/ - -/* LinkUp Systems PCCard/CompactFlash Interface for SA-1100 */ - -/* PC Card Status Register */ -#define LINKUP_PRS_S1 (1 << 0) /* voltage control bits S1-S4 */ -#define LINKUP_PRS_S2 (1 << 1) -#define LINKUP_PRS_S3 (1 << 2) -#define LINKUP_PRS_S4 (1 << 3) -#define LINKUP_PRS_BVD1 (1 << 4) -#define LINKUP_PRS_BVD2 (1 << 5) -#define LINKUP_PRS_VS1 (1 << 6) -#define LINKUP_PRS_VS2 (1 << 7) -#define LINKUP_PRS_RDY (1 << 8) -#define LINKUP_PRS_CD1 (1 << 9) -#define LINKUP_PRS_CD2 (1 << 10) - -/* PC Card Command Register */ -#define LINKUP_PRC_S1 (1 << 0) -#define LINKUP_PRC_S2 (1 << 1) -#define LINKUP_PRC_S3 (1 << 2) -#define LINKUP_PRC_S4 (1 << 3) -#define LINKUP_PRC_RESET (1 << 4) -#define LINKUP_PRC_APOE (1 << 5) /* Auto Power Off Enable: clears S1-S4 when either nCD goes high */ -#define LINKUP_PRC_CFE (1 << 6) /* CompactFlash mode Enable: addresses A[10:0] only, A[25:11] high */ -#define LINKUP_PRC_SOE (1 << 7) /* signal output driver enable */ -#define LINKUP_PRC_SSP (1 << 8) /* sock select polarity: 0 for socket 0, 1 for socket 1 */ -#define LINKUP_PRC_MBZ (1 << 15) /* must be zero */ - -struct linkup_l1110 { - volatile short prc; -}; diff --git a/trunk/arch/arm/include/asm/hypervisor.h b/trunk/arch/arm/include/asm/hypervisor.h new file mode 100644 index 000000000000..b90d9e523d6f --- /dev/null +++ b/trunk/arch/arm/include/asm/hypervisor.h @@ -0,0 +1,6 @@ +#ifndef _ASM_ARM_HYPERVISOR_H +#define _ASM_ARM_HYPERVISOR_H + +#include + +#endif diff --git a/trunk/arch/arm/include/asm/io.h b/trunk/arch/arm/include/asm/io.h index 8f4db67533e5..35c1ed89b936 100644 --- a/trunk/arch/arm/include/asm/io.h +++ b/trunk/arch/arm/include/asm/io.h @@ -47,13 +47,68 @@ extern void __raw_readsb(const void __iomem *addr, void *data, int bytelen); extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen); extern void __raw_readsl(const void __iomem *addr, void *data, int longlen); -#define __raw_writeb(v,a) ((void)(__chk_io_ptr(a), *(volatile unsigned char __force *)(a) = (v))) -#define __raw_writew(v,a) ((void)(__chk_io_ptr(a), *(volatile unsigned short __force *)(a) = (v))) -#define __raw_writel(v,a) ((void)(__chk_io_ptr(a), *(volatile unsigned int __force *)(a) = (v))) +#if __LINUX_ARM_ARCH__ < 6 +/* + * Half-word accesses are problematic with RiscPC due to limitations of + * the bus. Rather than special-case the machine, just let the compiler + * generate the access for CPUs prior to ARMv6. + */ +#define __raw_readw(a) (__chk_io_ptr(a), *(volatile unsigned short __force *)(a)) +#define __raw_writew(v,a) ((void)(__chk_io_ptr(a), *(volatile unsigned short __force *)(a) = (v))) +#else +/* + * When running under a hypervisor, we want to avoid I/O accesses with + * writeback addressing modes as these incur a significant performance + * overhead (the address generation must be emulated in software). + */ +static inline void __raw_writew(u16 val, volatile void __iomem *addr) +{ + asm volatile("strh %1, %0" + : "+Qo" (*(volatile u16 __force *)addr) + : "r" (val)); +} + +static inline u16 __raw_readw(const volatile void __iomem *addr) +{ + u16 val; + asm volatile("ldrh %1, %0" + : "+Qo" (*(volatile u16 __force *)addr), + "=r" (val)); + return val; +} +#endif -#define __raw_readb(a) (__chk_io_ptr(a), *(volatile unsigned char __force *)(a)) -#define __raw_readw(a) (__chk_io_ptr(a), *(volatile unsigned short __force *)(a)) -#define __raw_readl(a) (__chk_io_ptr(a), *(volatile unsigned int __force *)(a)) +static inline void __raw_writeb(u8 val, volatile void __iomem *addr) +{ + asm volatile("strb %1, %0" + : "+Qo" (*(volatile u8 __force *)addr) + : "r" (val)); +} + +static inline void __raw_writel(u32 val, volatile void __iomem *addr) +{ + asm volatile("str %1, %0" + : "+Qo" (*(volatile u32 __force *)addr) + : "r" (val)); +} + +static inline u8 __raw_readb(const volatile void __iomem *addr) +{ + u8 val; + asm volatile("ldrb %1, %0" + : "+Qo" (*(volatile u8 __force *)addr), + "=r" (val)); + return val; +} + +static inline u32 __raw_readl(const volatile void __iomem *addr) +{ + u32 val; + asm volatile("ldr %1, %0" + : "+Qo" (*(volatile u32 __force *)addr), + "=r" (val)); + return val; +} /* * Architecture ioremap implementation. diff --git a/trunk/arch/arm/include/asm/ipcbuf.h b/trunk/arch/arm/include/asm/ipcbuf.h deleted file mode 100644 index 84c7e51cb6d0..000000000000 --- a/trunk/arch/arm/include/asm/ipcbuf.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/trunk/arch/arm/include/asm/msgbuf.h b/trunk/arch/arm/include/asm/msgbuf.h deleted file mode 100644 index 33b35b946eaa..000000000000 --- a/trunk/arch/arm/include/asm/msgbuf.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _ASMARM_MSGBUF_H -#define _ASMARM_MSGBUF_H - -/* - * The msqid64_ds structure for arm architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct msqid64_ds { - struct ipc64_perm msg_perm; - __kernel_time_t msg_stime; /* last msgsnd time */ - unsigned long __unused1; - __kernel_time_t msg_rtime; /* last msgrcv time */ - unsigned long __unused2; - __kernel_time_t msg_ctime; /* last change time */ - unsigned long __unused3; - unsigned long msg_cbytes; /* current number of bytes on queue */ - unsigned long msg_qnum; /* number of messages in queue */ - unsigned long msg_qbytes; /* max number of bytes on queue */ - __kernel_pid_t msg_lspid; /* pid of last msgsnd */ - __kernel_pid_t msg_lrpid; /* last receive pid */ - unsigned long __unused4; - unsigned long __unused5; -}; - -#endif /* _ASMARM_MSGBUF_H */ diff --git a/trunk/arch/arm/include/asm/mutex.h b/trunk/arch/arm/include/asm/mutex.h index b1479fd04a95..87c044910fe0 100644 --- a/trunk/arch/arm/include/asm/mutex.h +++ b/trunk/arch/arm/include/asm/mutex.h @@ -9,8 +9,13 @@ #define _ASM_MUTEX_H /* * On pre-ARMv6 hardware this results in a swp-based implementation, - * which is the most efficient. For ARMv6+, we emit a pair of exclusive - * accesses instead. + * which is the most efficient. For ARMv6+, we have exclusive memory + * accessors and use atomic_dec to avoid the extra xchg operations + * on the locking slowpaths. */ +#if __LINUX_ARM_ARCH__ < 6 #include +#else +#include #endif +#endif /* _ASM_MUTEX_H */ diff --git a/trunk/arch/arm/include/asm/opcodes-virt.h b/trunk/arch/arm/include/asm/opcodes-virt.h new file mode 100644 index 000000000000..b85665a96f8e --- /dev/null +++ b/trunk/arch/arm/include/asm/opcodes-virt.h @@ -0,0 +1,29 @@ +/* + * opcodes-virt.h: Opcode definitions for the ARM virtualization extensions + * Copyright (C) 2012 Linaro Limited + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef __ASM_ARM_OPCODES_VIRT_H +#define __ASM_ARM_OPCODES_VIRT_H + +#include + +#define __HVC(imm16) __inst_arm_thumb32( \ + 0xE1400070 | (((imm16) & 0xFFF0) << 4) | ((imm16) & 0x000F), \ + 0xF7E08000 | (((imm16) & 0xF000) << 4) | ((imm16) & 0x0FFF) \ +) + +#endif /* ! __ASM_ARM_OPCODES_VIRT_H */ diff --git a/trunk/arch/arm/include/asm/opcodes.h b/trunk/arch/arm/include/asm/opcodes.h index 19c48deda70f..74e211a6fb24 100644 --- a/trunk/arch/arm/include/asm/opcodes.h +++ b/trunk/arch/arm/include/asm/opcodes.h @@ -18,6 +18,33 @@ extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr); #define ARM_OPCODE_CONDTEST_UNCOND 2 +/* + * Assembler opcode byteswap helpers. + * These are only intended for use by this header: don't use them directly, + * because they will be suboptimal in most cases. + */ +#define ___asm_opcode_swab32(x) ( \ + (((x) << 24) & 0xFF000000) \ + | (((x) << 8) & 0x00FF0000) \ + | (((x) >> 8) & 0x0000FF00) \ + | (((x) >> 24) & 0x000000FF) \ +) +#define ___asm_opcode_swab16(x) ( \ + (((x) << 8) & 0xFF00) \ + | (((x) >> 8) & 0x00FF) \ +) +#define ___asm_opcode_swahb32(x) ( \ + (((x) << 8) & 0xFF00FF00) \ + | (((x) >> 8) & 0x00FF00FF) \ +) +#define ___asm_opcode_swahw32(x) ( \ + (((x) << 16) & 0xFFFF0000) \ + | (((x) >> 16) & 0x0000FFFF) \ +) +#define ___asm_opcode_identity32(x) ((x) & 0xFFFFFFFF) +#define ___asm_opcode_identity16(x) ((x) & 0xFFFF) + + /* * Opcode byteswap helpers * @@ -41,39 +68,163 @@ extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr); * Note that values in the range 0x0000E800..0xE7FFFFFF intentionally do not * represent any valid Thumb-2 instruction. For this range, * __opcode_is_thumb32() and __opcode_is_thumb16() will both be false. + * + * The ___asm variants are intended only for use by this header, in situations + * involving inline assembler. For .S files, the normal __opcode_*() macros + * should do the right thing. */ +#ifdef __ASSEMBLY__ -#ifndef __ASSEMBLY__ +#define ___opcode_swab32(x) ___asm_opcode_swab32(x) +#define ___opcode_swab16(x) ___asm_opcode_swab16(x) +#define ___opcode_swahb32(x) ___asm_opcode_swahb32(x) +#define ___opcode_swahw32(x) ___asm_opcode_swahw32(x) +#define ___opcode_identity32(x) ___asm_opcode_identity32(x) +#define ___opcode_identity16(x) ___asm_opcode_identity16(x) + +#else /* ! __ASSEMBLY__ */ #include #include +#define ___opcode_swab32(x) swab32(x) +#define ___opcode_swab16(x) swab16(x) +#define ___opcode_swahb32(x) swahb32(x) +#define ___opcode_swahw32(x) swahw32(x) +#define ___opcode_identity32(x) ((u32)(x)) +#define ___opcode_identity16(x) ((u16)(x)) + +#endif /* ! __ASSEMBLY__ */ + + #ifdef CONFIG_CPU_ENDIAN_BE8 -#define __opcode_to_mem_arm(x) swab32(x) -#define __opcode_to_mem_thumb16(x) swab16(x) -#define __opcode_to_mem_thumb32(x) swahb32(x) -#else -#define __opcode_to_mem_arm(x) ((u32)(x)) -#define __opcode_to_mem_thumb16(x) ((u16)(x)) -#define __opcode_to_mem_thumb32(x) swahw32(x) + +#define __opcode_to_mem_arm(x) ___opcode_swab32(x) +#define __opcode_to_mem_thumb16(x) ___opcode_swab16(x) +#define __opcode_to_mem_thumb32(x) ___opcode_swahb32(x) +#define ___asm_opcode_to_mem_arm(x) ___asm_opcode_swab32(x) +#define ___asm_opcode_to_mem_thumb16(x) ___asm_opcode_swab16(x) +#define ___asm_opcode_to_mem_thumb32(x) ___asm_opcode_swahb32(x) + +#else /* ! CONFIG_CPU_ENDIAN_BE8 */ + +#define __opcode_to_mem_arm(x) ___opcode_identity32(x) +#define __opcode_to_mem_thumb16(x) ___opcode_identity16(x) +#define ___asm_opcode_to_mem_arm(x) ___asm_opcode_identity32(x) +#define ___asm_opcode_to_mem_thumb16(x) ___asm_opcode_identity16(x) +#ifndef CONFIG_CPU_ENDIAN_BE32 +/* + * On BE32 systems, using 32-bit accesses to store Thumb instructions will not + * work in all cases, due to alignment constraints. For now, a correct + * version is not provided for BE32. + */ +#define __opcode_to_mem_thumb32(x) ___opcode_swahw32(x) +#define ___asm_opcode_to_mem_thumb32(x) ___asm_opcode_swahw32(x) #endif +#endif /* ! CONFIG_CPU_ENDIAN_BE8 */ + #define __mem_to_opcode_arm(x) __opcode_to_mem_arm(x) #define __mem_to_opcode_thumb16(x) __opcode_to_mem_thumb16(x) +#ifndef CONFIG_CPU_ENDIAN_BE32 #define __mem_to_opcode_thumb32(x) __opcode_to_mem_thumb32(x) +#endif /* Operations specific to Thumb opcodes */ /* Instruction size checks: */ -#define __opcode_is_thumb32(x) ((u32)(x) >= 0xE8000000UL) -#define __opcode_is_thumb16(x) ((u32)(x) < 0xE800UL) +#define __opcode_is_thumb32(x) ( \ + ((x) & 0xF8000000) == 0xE8000000 \ + || ((x) & 0xF0000000) == 0xF0000000 \ +) +#define __opcode_is_thumb16(x) ( \ + ((x) & 0xFFFF0000) == 0 \ + && !(((x) & 0xF800) == 0xE800 || ((x) & 0xF000) == 0xF000) \ +) /* Operations to construct or split 32-bit Thumb instructions: */ -#define __opcode_thumb32_first(x) ((u16)((x) >> 16)) -#define __opcode_thumb32_second(x) ((u16)(x)) -#define __opcode_thumb32_compose(first, second) \ - (((u32)(u16)(first) << 16) | (u32)(u16)(second)) +#define __opcode_thumb32_first(x) (___opcode_identity16((x) >> 16)) +#define __opcode_thumb32_second(x) (___opcode_identity16(x)) +#define __opcode_thumb32_compose(first, second) ( \ + (___opcode_identity32(___opcode_identity16(first)) << 16) \ + | ___opcode_identity32(___opcode_identity16(second)) \ +) +#define ___asm_opcode_thumb32_first(x) (___asm_opcode_identity16((x) >> 16)) +#define ___asm_opcode_thumb32_second(x) (___asm_opcode_identity16(x)) +#define ___asm_opcode_thumb32_compose(first, second) ( \ + (___asm_opcode_identity32(___asm_opcode_identity16(first)) << 16) \ + | ___asm_opcode_identity32(___asm_opcode_identity16(second)) \ +) -#endif /* __ASSEMBLY__ */ +/* + * Opcode injection helpers + * + * In rare cases it is necessary to assemble an opcode which the + * assembler does not support directly, or which would normally be + * rejected because of the CFLAGS or AFLAGS used to build the affected + * file. + * + * Before using these macros, consider carefully whether it is feasible + * instead to change the build flags for your file, or whether it really + * makes sense to support old assembler versions when building that + * particular kernel feature. + * + * The macros defined here should only be used where there is no viable + * alternative. + * + * + * __inst_arm(x): emit the specified ARM opcode + * __inst_thumb16(x): emit the specified 16-bit Thumb opcode + * __inst_thumb32(x): emit the specified 32-bit Thumb opcode + * + * __inst_arm_thumb16(arm, thumb): emit either the specified arm or + * 16-bit Thumb opcode, depending on whether an ARM or Thumb-2 + * kernel is being built + * + * __inst_arm_thumb32(arm, thumb): emit either the specified arm or + * 32-bit Thumb opcode, depending on whether an ARM or Thumb-2 + * kernel is being built + * + * + * Note that using these macros directly is poor practice. Instead, you + * should use them to define human-readable wrapper macros to encode the + * instructions that you care about. In code which might run on ARMv7 or + * above, you can usually use the __inst_arm_thumb{16,32} macros to + * specify the ARM and Thumb alternatives at the same time. This ensures + * that the correct opcode gets emitted depending on the instruction set + * used for the kernel build. + * + * Look at opcodes-virt.h for an example of how to use these macros. + */ +#include + +#define __inst_arm(x) ___inst_arm(___asm_opcode_to_mem_arm(x)) +#define __inst_thumb32(x) ___inst_thumb32( \ + ___asm_opcode_to_mem_thumb16(___asm_opcode_thumb32_first(x)), \ + ___asm_opcode_to_mem_thumb16(___asm_opcode_thumb32_second(x)) \ +) +#define __inst_thumb16(x) ___inst_thumb16(___asm_opcode_to_mem_thumb16(x)) + +#ifdef CONFIG_THUMB2_KERNEL +#define __inst_arm_thumb16(arm_opcode, thumb_opcode) \ + __inst_thumb16(thumb_opcode) +#define __inst_arm_thumb32(arm_opcode, thumb_opcode) \ + __inst_thumb32(thumb_opcode) +#else +#define __inst_arm_thumb16(arm_opcode, thumb_opcode) __inst_arm(arm_opcode) +#define __inst_arm_thumb32(arm_opcode, thumb_opcode) __inst_arm(arm_opcode) +#endif + +/* Helpers for the helpers. Don't use these directly. */ +#ifdef __ASSEMBLY__ +#define ___inst_arm(x) .long x +#define ___inst_thumb16(x) .short x +#define ___inst_thumb32(first, second) .short first, second +#else +#define ___inst_arm(x) ".long " __stringify(x) "\n\t" +#define ___inst_thumb16(x) ".short " __stringify(x) "\n\t" +#define ___inst_thumb32(first, second) \ + ".short " __stringify(first) ", " __stringify(second) "\n\t" +#endif #endif /* __ASM_ARM_OPCODES_H */ diff --git a/trunk/arch/arm/include/asm/param.h b/trunk/arch/arm/include/asm/param.h deleted file mode 100644 index 8b24bf94c06b..000000000000 --- a/trunk/arch/arm/include/asm/param.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * arch/arm/include/asm/param.h - * - * Copyright (C) 1995-1999 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#ifndef __ASM_PARAM_H -#define __ASM_PARAM_H - -#ifdef __KERNEL__ -# define HZ CONFIG_HZ /* Internal kernel timer frequency */ -# define USER_HZ 100 /* User interfaces are in "ticks" */ -# define CLOCKS_PER_SEC (USER_HZ) /* like times() */ -#else -# define HZ 100 -#endif - -#define EXEC_PAGESIZE 4096 - -#ifndef NOGROUP -#define NOGROUP (-1) -#endif - -/* max length of hostname */ -#define MAXHOSTNAMELEN 64 - -#endif - diff --git a/trunk/arch/arm/include/asm/parport.h b/trunk/arch/arm/include/asm/parport.h deleted file mode 100644 index 26e94b09035a..000000000000 --- a/trunk/arch/arm/include/asm/parport.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * arch/arm/include/asm/parport.h: ARM-specific parport initialisation - * - * Copyright (C) 1999, 2000 Tim Waugh - * - * This file should only be included by drivers/parport/parport_pc.c. - */ - -#ifndef __ASMARM_PARPORT_H -#define __ASMARM_PARPORT_H - -static int __devinit parport_pc_find_isa_ports (int autoirq, int autodma); -static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) -{ - return parport_pc_find_isa_ports (autoirq, autodma); -} - -#endif /* !(_ASMARM_PARPORT_H) */ diff --git a/trunk/arch/arm/include/asm/segment.h b/trunk/arch/arm/include/asm/segment.h deleted file mode 100644 index 9e24c21f6304..000000000000 --- a/trunk/arch/arm/include/asm/segment.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ASM_ARM_SEGMENT_H -#define __ASM_ARM_SEGMENT_H - -#define __KERNEL_CS 0x0 -#define __KERNEL_DS 0x0 - -#define __USER_CS 0x1 -#define __USER_DS 0x1 - -#endif /* __ASM_ARM_SEGMENT_H */ - diff --git a/trunk/arch/arm/include/asm/sembuf.h b/trunk/arch/arm/include/asm/sembuf.h deleted file mode 100644 index 1c0283954289..000000000000 --- a/trunk/arch/arm/include/asm/sembuf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _ASMARM_SEMBUF_H -#define _ASMARM_SEMBUF_H - -/* - * The semid64_ds structure for arm architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct semid64_ds { - struct ipc64_perm sem_perm; /* permissions .. see ipc.h */ - __kernel_time_t sem_otime; /* last semop time */ - unsigned long __unused1; - __kernel_time_t sem_ctime; /* last change time */ - unsigned long __unused2; - unsigned long sem_nsems; /* no. of semaphores in array */ - unsigned long __unused3; - unsigned long __unused4; -}; - -#endif /* _ASMARM_SEMBUF_H */ diff --git a/trunk/arch/arm/include/asm/serial.h b/trunk/arch/arm/include/asm/serial.h deleted file mode 100644 index ebb049091e26..000000000000 --- a/trunk/arch/arm/include/asm/serial.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * arch/arm/include/asm/serial.h - * - * Copyright (C) 1996 Russell King. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Changelog: - * 15-10-1996 RMK Created - */ - -#ifndef __ASM_SERIAL_H -#define __ASM_SERIAL_H - -#define BASE_BAUD (1843200 / 16) - -#endif diff --git a/trunk/arch/arm/include/asm/shmbuf.h b/trunk/arch/arm/include/asm/shmbuf.h deleted file mode 100644 index 2e5c67ba1c97..000000000000 --- a/trunk/arch/arm/include/asm/shmbuf.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef _ASMARM_SHMBUF_H -#define _ASMARM_SHMBUF_H - -/* - * The shmid64_ds structure for arm architecture. - * Note extra padding because this structure is passed back and forth - * between kernel and user space. - * - * Pad space is left for: - * - 64-bit time_t to solve y2038 problem - * - 2 miscellaneous 32-bit values - */ - -struct shmid64_ds { - struct ipc64_perm shm_perm; /* operation perms */ - size_t shm_segsz; /* size of segment (bytes) */ - __kernel_time_t shm_atime; /* last attach time */ - unsigned long __unused1; - __kernel_time_t shm_dtime; /* last detach time */ - unsigned long __unused2; - __kernel_time_t shm_ctime; /* last change time */ - unsigned long __unused3; - __kernel_pid_t shm_cpid; /* pid of creator */ - __kernel_pid_t shm_lpid; /* pid of last operator */ - unsigned long shm_nattch; /* no. of current attaches */ - unsigned long __unused4; - unsigned long __unused5; -}; - -struct shminfo64 { - unsigned long shmmax; - unsigned long shmmin; - unsigned long shmmni; - unsigned long shmseg; - unsigned long shmall; - unsigned long __unused1; - unsigned long __unused2; - unsigned long __unused3; - unsigned long __unused4; -}; - -#endif /* _ASMARM_SHMBUF_H */ diff --git a/trunk/arch/arm/include/asm/socket.h b/trunk/arch/arm/include/asm/socket.h deleted file mode 100644 index 6433cadb6ed4..000000000000 --- a/trunk/arch/arm/include/asm/socket.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef _ASMARM_SOCKET_H -#define _ASMARM_SOCKET_H - -#include - -/* For setsockopt(2) */ -#define SOL_SOCKET 1 - -#define SO_DEBUG 1 -#define SO_REUSEADDR 2 -#define SO_TYPE 3 -#define SO_ERROR 4 -#define SO_DONTROUTE 5 -#define SO_BROADCAST 6 -#define SO_SNDBUF 7 -#define SO_RCVBUF 8 -#define SO_SNDBUFFORCE 32 -#define SO_RCVBUFFORCE 33 -#define SO_KEEPALIVE 9 -#define SO_OOBINLINE 10 -#define SO_NO_CHECK 11 -#define SO_PRIORITY 12 -#define SO_LINGER 13 -#define SO_BSDCOMPAT 14 -/* To add :#define SO_REUSEPORT 15 */ -#define SO_PASSCRED 16 -#define SO_PEERCRED 17 -#define SO_RCVLOWAT 18 -#define SO_SNDLOWAT 19 -#define SO_RCVTIMEO 20 -#define SO_SNDTIMEO 21 - -/* Security levels - as per NRL IPv6 - don't actually do anything */ -#define SO_SECURITY_AUTHENTICATION 22 -#define SO_SECURITY_ENCRYPTION_TRANSPORT 23 -#define SO_SECURITY_ENCRYPTION_NETWORK 24 - -#define SO_BINDTODEVICE 25 - -/* Socket filtering */ -#define SO_ATTACH_FILTER 26 -#define SO_DETACH_FILTER 27 - -#define SO_PEERNAME 28 -#define SO_TIMESTAMP 29 -#define SCM_TIMESTAMP SO_TIMESTAMP - -#define SO_ACCEPTCONN 30 - -#define SO_PEERSEC 31 -#define SO_PASSSEC 34 -#define SO_TIMESTAMPNS 35 -#define SCM_TIMESTAMPNS SO_TIMESTAMPNS - -#define SO_MARK 36 - -#define SO_TIMESTAMPING 37 -#define SCM_TIMESTAMPING SO_TIMESTAMPING - -#define SO_PROTOCOL 38 -#define SO_DOMAIN 39 - -#define SO_RXQ_OVFL 40 - -#define SO_WIFI_STATUS 41 -#define SCM_WIFI_STATUS SO_WIFI_STATUS -#define SO_PEEK_OFF 42 - -/* Instruct lower device to use last 4-bytes of skb data as FCS */ -#define SO_NOFCS 43 - -#endif /* _ASM_SOCKET_H */ diff --git a/trunk/arch/arm/include/asm/sockios.h b/trunk/arch/arm/include/asm/sockios.h deleted file mode 100644 index a2588a2512df..000000000000 --- a/trunk/arch/arm/include/asm/sockios.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __ARCH_ARM_SOCKIOS_H -#define __ARCH_ARM_SOCKIOS_H - -/* Socket-level I/O control calls. */ -#define FIOSETOWN 0x8901 -#define SIOCSPGRP 0x8902 -#define FIOGETOWN 0x8903 -#define SIOCGPGRP 0x8904 -#define SIOCATMARK 0x8905 -#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ -#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ - -#endif diff --git a/trunk/arch/arm/include/asm/sync_bitops.h b/trunk/arch/arm/include/asm/sync_bitops.h new file mode 100644 index 000000000000..63479eecbf76 --- /dev/null +++ b/trunk/arch/arm/include/asm/sync_bitops.h @@ -0,0 +1,27 @@ +#ifndef __ASM_SYNC_BITOPS_H__ +#define __ASM_SYNC_BITOPS_H__ + +#include +#include + +/* sync_bitops functions are equivalent to the SMP implementation of the + * original functions, independently from CONFIG_SMP being defined. + * + * We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But + * under Xen you might be communicating with a completely external entity + * who might be on another CPU (e.g. two uniprocessor guests communicating + * via event channels and grant tables). So we need a variant of the bit + * ops which are SMP safe even on a UP kernel. + */ + +#define sync_set_bit(nr, p) _set_bit(nr, p) +#define sync_clear_bit(nr, p) _clear_bit(nr, p) +#define sync_change_bit(nr, p) _change_bit(nr, p) +#define sync_test_and_set_bit(nr, p) _test_and_set_bit(nr, p) +#define sync_test_and_clear_bit(nr, p) _test_and_clear_bit(nr, p) +#define sync_test_and_change_bit(nr, p) _test_and_change_bit(nr, p) +#define sync_test_bit(nr, addr) test_bit(nr, addr) +#define sync_cmpxchg cmpxchg + + +#endif diff --git a/trunk/arch/arm/include/asm/syscall.h b/trunk/arch/arm/include/asm/syscall.h index c334a23ddf75..9fdded6b1089 100644 --- a/trunk/arch/arm/include/asm/syscall.h +++ b/trunk/arch/arm/include/asm/syscall.h @@ -8,6 +8,11 @@ #define _ASM_ARM_SYSCALL_H #include +#include + +#include + +#define NR_syscalls (__NR_syscalls) extern const unsigned long sys_call_table[]; diff --git a/trunk/arch/arm/include/asm/termbits.h b/trunk/arch/arm/include/asm/termbits.h deleted file mode 100644 index 704135d28d1d..000000000000 --- a/trunk/arch/arm/include/asm/termbits.h +++ /dev/null @@ -1,198 +0,0 @@ -#ifndef __ASM_ARM_TERMBITS_H -#define __ASM_ARM_TERMBITS_H - -typedef unsigned char cc_t; -typedef unsigned int speed_t; -typedef unsigned int tcflag_t; - -#define NCCS 19 -struct termios { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ -}; - -struct termios2 { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ -}; - -struct ktermios { - tcflag_t c_iflag; /* input mode flags */ - tcflag_t c_oflag; /* output mode flags */ - tcflag_t c_cflag; /* control mode flags */ - tcflag_t c_lflag; /* local mode flags */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ -}; - - -/* c_cc characters */ -#define VINTR 0 -#define VQUIT 1 -#define VERASE 2 -#define VKILL 3 -#define VEOF 4 -#define VTIME 5 -#define VMIN 6 -#define VSWTC 7 -#define VSTART 8 -#define VSTOP 9 -#define VSUSP 10 -#define VEOL 11 -#define VREPRINT 12 -#define VDISCARD 13 -#define VWERASE 14 -#define VLNEXT 15 -#define VEOL2 16 - -/* c_iflag bits */ -#define IGNBRK 0000001 -#define BRKINT 0000002 -#define IGNPAR 0000004 -#define PARMRK 0000010 -#define INPCK 0000020 -#define ISTRIP 0000040 -#define INLCR 0000100 -#define IGNCR 0000200 -#define ICRNL 0000400 -#define IUCLC 0001000 -#define IXON 0002000 -#define IXANY 0004000 -#define IXOFF 0010000 -#define IMAXBEL 0020000 -#define IUTF8 0040000 - -/* c_oflag bits */ -#define OPOST 0000001 -#define OLCUC 0000002 -#define ONLCR 0000004 -#define OCRNL 0000010 -#define ONOCR 0000020 -#define ONLRET 0000040 -#define OFILL 0000100 -#define OFDEL 0000200 -#define NLDLY 0000400 -#define NL0 0000000 -#define NL1 0000400 -#define CRDLY 0003000 -#define CR0 0000000 -#define CR1 0001000 -#define CR2 0002000 -#define CR3 0003000 -#define TABDLY 0014000 -#define TAB0 0000000 -#define TAB1 0004000 -#define TAB2 0010000 -#define TAB3 0014000 -#define XTABS 0014000 -#define BSDLY 0020000 -#define BS0 0000000 -#define BS1 0020000 -#define VTDLY 0040000 -#define VT0 0000000 -#define VT1 0040000 -#define FFDLY 0100000 -#define FF0 0000000 -#define FF1 0100000 - -/* c_cflag bit meaning */ -#define CBAUD 0010017 -#define B0 0000000 /* hang up */ -#define B50 0000001 -#define B75 0000002 -#define B110 0000003 -#define B134 0000004 -#define B150 0000005 -#define B200 0000006 -#define B300 0000007 -#define B600 0000010 -#define B1200 0000011 -#define B1800 0000012 -#define B2400 0000013 -#define B4800 0000014 -#define B9600 0000015 -#define B19200 0000016 -#define B38400 0000017 -#define EXTA B19200 -#define EXTB B38400 -#define CSIZE 0000060 -#define CS5 0000000 -#define CS6 0000020 -#define CS7 0000040 -#define CS8 0000060 -#define CSTOPB 0000100 -#define CREAD 0000200 -#define PARENB 0000400 -#define PARODD 0001000 -#define HUPCL 0002000 -#define CLOCAL 0004000 -#define CBAUDEX 0010000 -#define BOTHER 0010000 -#define B57600 0010001 -#define B115200 0010002 -#define B230400 0010003 -#define B460800 0010004 -#define B500000 0010005 -#define B576000 0010006 -#define B921600 0010007 -#define B1000000 0010010 -#define B1152000 0010011 -#define B1500000 0010012 -#define B2000000 0010013 -#define B2500000 0010014 -#define B3000000 0010015 -#define B3500000 0010016 -#define B4000000 0010017 -#define CIBAUD 002003600000 /* input baud rate */ -#define CMSPAR 010000000000 /* mark or space (stick) parity */ -#define CRTSCTS 020000000000 /* flow control */ - -#define IBSHIFT 16 - -/* c_lflag bits */ -#define ISIG 0000001 -#define ICANON 0000002 -#define XCASE 0000004 -#define ECHO 0000010 -#define ECHOE 0000020 -#define ECHOK 0000040 -#define ECHONL 0000100 -#define NOFLSH 0000200 -#define TOSTOP 0000400 -#define ECHOCTL 0001000 -#define ECHOPRT 0002000 -#define ECHOKE 0004000 -#define FLUSHO 0010000 -#define PENDIN 0040000 -#define IEXTEN 0100000 -#define EXTPROC 0200000 - -/* tcflow() and TCXONC use these */ -#define TCOOFF 0 -#define TCOON 1 -#define TCIOFF 2 -#define TCION 3 - -/* tcflush() and TCFLSH use these */ -#define TCIFLUSH 0 -#define TCOFLUSH 1 -#define TCIOFLUSH 2 - -/* tcsetattr uses these */ -#define TCSANOW 0 -#define TCSADRAIN 1 -#define TCSAFLUSH 2 - -#endif /* __ASM_ARM_TERMBITS_H */ diff --git a/trunk/arch/arm/include/asm/termios.h b/trunk/arch/arm/include/asm/termios.h deleted file mode 100644 index 293e3f1bc3f2..000000000000 --- a/trunk/arch/arm/include/asm/termios.h +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef __ASM_ARM_TERMIOS_H -#define __ASM_ARM_TERMIOS_H - -#include -#include - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -#define NCC 8 -struct termio { - unsigned short c_iflag; /* input mode flags */ - unsigned short c_oflag; /* output mode flags */ - unsigned short c_cflag; /* control mode flags */ - unsigned short c_lflag; /* local mode flags */ - unsigned char c_line; /* line discipline */ - unsigned char c_cc[NCC]; /* control characters */ -}; - -#ifdef __KERNEL__ -/* intr=^C quit=^| erase=del kill=^U - eof=^D vtime=\0 vmin=\1 sxtc=\0 - start=^Q stop=^S susp=^Z eol=\0 - reprint=^R discard=^U werase=^W lnext=^V - eol2=\0 -*/ -#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0" -#endif - -/* modem lines */ -#define TIOCM_LE 0x001 -#define TIOCM_DTR 0x002 -#define TIOCM_RTS 0x004 -#define TIOCM_ST 0x008 -#define TIOCM_SR 0x010 -#define TIOCM_CTS 0x020 -#define TIOCM_CAR 0x040 -#define TIOCM_RNG 0x080 -#define TIOCM_DSR 0x100 -#define TIOCM_CD TIOCM_CAR -#define TIOCM_RI TIOCM_RNG -#define TIOCM_OUT1 0x2000 -#define TIOCM_OUT2 0x4000 -#define TIOCM_LOOP 0x8000 - -/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ - -#ifdef __KERNEL__ - -/* - * Translate a "termio" structure into a "termios". Ugh. - */ -#define SET_LOW_TERMIOS_BITS(termios, termio, x) { \ - unsigned short __tmp; \ - get_user(__tmp,&(termio)->x); \ - *(unsigned short *) &(termios)->x = __tmp; \ -} - -#define user_termio_to_kernel_termios(termios, termio) \ -({ \ - SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); \ - SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); \ - SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); \ - SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); \ - copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \ -}) - -/* - * Translate a "termios" structure into a "termio". Ugh. - */ -#define kernel_termios_to_user_termio(termio, termios) \ -({ \ - put_user((termios)->c_iflag, &(termio)->c_iflag); \ - put_user((termios)->c_oflag, &(termio)->c_oflag); \ - put_user((termios)->c_cflag, &(termio)->c_cflag); \ - put_user((termios)->c_lflag, &(termio)->c_lflag); \ - put_user((termios)->c_line, &(termio)->c_line); \ - copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ -}) - -#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) -#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) -#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) -#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) - -#endif /* __KERNEL__ */ - -#endif /* __ASM_ARM_TERMIOS_H */ diff --git a/trunk/arch/arm/include/asm/thread_info.h b/trunk/arch/arm/include/asm/thread_info.h index af7b0bda3355..f71cdab18b87 100644 --- a/trunk/arch/arm/include/asm/thread_info.h +++ b/trunk/arch/arm/include/asm/thread_info.h @@ -59,7 +59,9 @@ struct thread_info { __u32 syscall; /* syscall number */ __u8 used_cp[16]; /* thread used copro */ unsigned long tp_value; +#ifdef CONFIG_CRUNCH struct crunch_state crunchstate; +#endif union fp_state fpstate __attribute__((aligned(8))); union vfp_state vfpstate; #ifdef CONFIG_ARM_THUMBEE @@ -148,6 +150,7 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, #define TIF_NOTIFY_RESUME 2 /* callback before returning to user */ #define TIF_SYSCALL_TRACE 8 #define TIF_SYSCALL_AUDIT 9 +#define TIF_SYSCALL_TRACEPOINT 10 #define TIF_POLLING_NRFLAG 16 #define TIF_USING_IWMMXT 17 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ @@ -160,12 +163,13 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT) +#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) #define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG) #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT) #define _TIF_SECCOMP (1 << TIF_SECCOMP) /* Checks for any syscall work in entry-common.S */ -#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT) +#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT) /* * Change these and you break ASM code in entry-common.S diff --git a/trunk/arch/arm/include/asm/timex.h b/trunk/arch/arm/include/asm/timex.h index 963342acebb7..83f2aa83899c 100644 --- a/trunk/arch/arm/include/asm/timex.h +++ b/trunk/arch/arm/include/asm/timex.h @@ -12,7 +12,6 @@ #ifndef _ASMARM_TIMEX_H #define _ASMARM_TIMEX_H -#include #ifdef CONFIG_ARCH_MULTIPLATFORM #define CLOCK_TICK_RATE 1000000 #else @@ -20,11 +19,6 @@ #endif typedef unsigned long cycles_t; - -#ifdef ARCH_HAS_READ_CURRENT_TIMER #define get_cycles() ({ cycles_t c; read_current_timer(&c) ? 0 : c; }) -#else -#define get_cycles() (0) -#endif #endif diff --git a/trunk/arch/arm/include/asm/types.h b/trunk/arch/arm/include/asm/types.h deleted file mode 100644 index 28beab917ffc..000000000000 --- a/trunk/arch/arm/include/asm/types.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __ASM_ARM_TYPES_H -#define __ASM_ARM_TYPES_H - -#include - -/* - * These aren't exported outside the kernel to avoid name space clashes - */ -#ifdef __KERNEL__ - -#define BITS_PER_LONG 32 - -#endif /* __KERNEL__ */ - -#endif - diff --git a/trunk/arch/arm/include/asm/unaligned.h b/trunk/arch/arm/include/asm/unaligned.h deleted file mode 100644 index 44593a894903..000000000000 --- a/trunk/arch/arm/include/asm/unaligned.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _ASM_ARM_UNALIGNED_H -#define _ASM_ARM_UNALIGNED_H - -#include -#include -#include - -/* - * Select endianness - */ -#ifndef __ARMEB__ -#define get_unaligned __get_unaligned_le -#define put_unaligned __put_unaligned_le -#else -#define get_unaligned __get_unaligned_be -#define put_unaligned __put_unaligned_be -#endif - -#endif /* _ASM_ARM_UNALIGNED_H */ diff --git a/trunk/arch/arm/include/asm/unistd.h b/trunk/arch/arm/include/asm/unistd.h index 2fde5fd1acce..d9ff5cc3a506 100644 --- a/trunk/arch/arm/include/asm/unistd.h +++ b/trunk/arch/arm/include/asm/unistd.h @@ -406,6 +406,14 @@ #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) /* 378 for kcmp */ +/* + * This may need to be greater than __NR_last_syscall+1 in order to + * account for the padding in the syscall table + */ +#ifdef __KERNEL__ +#define __NR_syscalls (380) +#endif /* __KERNEL__ */ + /* * The following SWIs are ARM private. */ diff --git a/trunk/arch/arm/include/asm/xen/events.h b/trunk/arch/arm/include/asm/xen/events.h new file mode 100644 index 000000000000..94b4e9020b02 --- /dev/null +++ b/trunk/arch/arm/include/asm/xen/events.h @@ -0,0 +1,18 @@ +#ifndef _ASM_ARM_XEN_EVENTS_H +#define _ASM_ARM_XEN_EVENTS_H + +#include + +enum ipi_vector { + XEN_PLACEHOLDER_VECTOR, + + /* Xen IPIs go here */ + XEN_NR_IPIS, +}; + +static inline int xen_irqs_disabled(struct pt_regs *regs) +{ + return raw_irqs_disabled_flags(regs->ARM_cpsr); +} + +#endif /* _ASM_ARM_XEN_EVENTS_H */ diff --git a/trunk/arch/arm/include/asm/xen/hypercall.h b/trunk/arch/arm/include/asm/xen/hypercall.h new file mode 100644 index 000000000000..8a823253d775 --- /dev/null +++ b/trunk/arch/arm/include/asm/xen/hypercall.h @@ -0,0 +1,69 @@ +/****************************************************************************** + * hypercall.h + * + * Linux-specific hypervisor handling. + * + * Stefano Stabellini , Citrix, 2012 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation; or, when distributed + * separately from the Linux kernel or incorporated into other + * software packages, subject to the following license: + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this source file (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, modify, + * merge, publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef _ASM_ARM_XEN_HYPERCALL_H +#define _ASM_ARM_XEN_HYPERCALL_H + +#include + +long privcmd_call(unsigned call, unsigned long a1, + unsigned long a2, unsigned long a3, + unsigned long a4, unsigned long a5); +int HYPERVISOR_xen_version(int cmd, void *arg); +int HYPERVISOR_console_io(int cmd, int count, char *str); +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count); +int HYPERVISOR_sched_op(int cmd, void *arg); +int HYPERVISOR_event_channel_op(int cmd, void *arg); +unsigned long HYPERVISOR_hvm_op(int op, void *arg); +int HYPERVISOR_memory_op(unsigned int cmd, void *arg); +int HYPERVISOR_physdev_op(int cmd, void *arg); + +static inline void +MULTI_update_va_mapping(struct multicall_entry *mcl, unsigned long va, + unsigned int new_val, unsigned long flags) +{ + BUG(); +} + +static inline void +MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req, + int count, int *success_count, domid_t domid) +{ + BUG(); +} + +static inline int +HYPERVISOR_multicall(void *call_list, int nr_calls) +{ + BUG(); +} +#endif /* _ASM_ARM_XEN_HYPERCALL_H */ diff --git a/trunk/arch/arm/include/asm/xen/hypervisor.h b/trunk/arch/arm/include/asm/xen/hypervisor.h new file mode 100644 index 000000000000..d7ab99a0c9eb --- /dev/null +++ b/trunk/arch/arm/include/asm/xen/hypervisor.h @@ -0,0 +1,19 @@ +#ifndef _ASM_ARM_XEN_HYPERVISOR_H +#define _ASM_ARM_XEN_HYPERVISOR_H + +extern struct shared_info *HYPERVISOR_shared_info; +extern struct start_info *xen_start_info; + +/* Lazy mode for batching updates / context switch */ +enum paravirt_lazy_mode { + PARAVIRT_LAZY_NONE, + PARAVIRT_LAZY_MMU, + PARAVIRT_LAZY_CPU, +}; + +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void) +{ + return PARAVIRT_LAZY_NONE; +} + +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */ diff --git a/trunk/arch/arm/include/asm/xen/interface.h b/trunk/arch/arm/include/asm/xen/interface.h new file mode 100644 index 000000000000..ae05e56dd17d --- /dev/null +++ b/trunk/arch/arm/include/asm/xen/interface.h @@ -0,0 +1,73 @@ +/****************************************************************************** + * Guest OS interface to ARM Xen. + * + * Stefano Stabellini , Citrix, 2012 + */ + +#ifndef _ASM_ARM_XEN_INTERFACE_H +#define _ASM_ARM_XEN_INTERFACE_H + +#include + +#define uint64_aligned_t uint64_t __attribute__((aligned(8))) + +#define __DEFINE_GUEST_HANDLE(name, type) \ + typedef struct { union { type *p; uint64_aligned_t q; }; } \ + __guest_handle_ ## name + +#define DEFINE_GUEST_HANDLE_STRUCT(name) \ + __DEFINE_GUEST_HANDLE(name, struct name) +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name) +#define GUEST_HANDLE(name) __guest_handle_ ## name + +#define set_xen_guest_handle(hnd, val) \ + do { \ + if (sizeof(hnd) == 8) \ + *(uint64_t *)&(hnd) = 0; \ + (hnd).p = val; \ + } while (0) + +#ifndef __ASSEMBLY__ +/* Explicitly size integers that represent pfns in the interface with + * Xen so that we can have one ABI that works for 32 and 64 bit guests. */ +typedef uint64_t xen_pfn_t; +typedef uint64_t xen_ulong_t; +/* Guest handles for primitive C types. */ +__DEFINE_GUEST_HANDLE(uchar, unsigned char); +__DEFINE_GUEST_HANDLE(uint, unsigned int); +__DEFINE_GUEST_HANDLE(ulong, unsigned long); +DEFINE_GUEST_HANDLE(char); +DEFINE_GUEST_HANDLE(int); +DEFINE_GUEST_HANDLE(long); +DEFINE_GUEST_HANDLE(void); +DEFINE_GUEST_HANDLE(uint64_t); +DEFINE_GUEST_HANDLE(uint32_t); +DEFINE_GUEST_HANDLE(xen_pfn_t); + +/* Maximum number of virtual CPUs in multi-processor guests. */ +#define MAX_VIRT_CPUS 1 + +struct arch_vcpu_info { }; +struct arch_shared_info { }; + +/* TODO: Move pvclock definitions some place arch independent */ +struct pvclock_vcpu_time_info { + u32 version; + u32 pad0; + u64 tsc_timestamp; + u64 system_time; + u32 tsc_to_system_mul; + s8 tsc_shift; + u8 flags; + u8 pad[2]; +} __attribute__((__packed__)); /* 32 bytes */ + +/* It is OK to have a 12 bytes struct with no padding because it is packed */ +struct pvclock_wall_clock { + u32 version; + u32 sec; + u32 nsec; +} __attribute__((__packed__)); +#endif + +#endif /* _ASM_ARM_XEN_INTERFACE_H */ diff --git a/trunk/arch/arm/include/asm/xen/page.h b/trunk/arch/arm/include/asm/xen/page.h new file mode 100644 index 000000000000..174202318dff --- /dev/null +++ b/trunk/arch/arm/include/asm/xen/page.h @@ -0,0 +1,82 @@ +#ifndef _ASM_ARM_XEN_PAGE_H +#define _ASM_ARM_XEN_PAGE_H + +#include +#include + +#include +#include + +#include + +#define pfn_to_mfn(pfn) (pfn) +#define phys_to_machine_mapping_valid (1) +#define mfn_to_pfn(mfn) (mfn) +#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT)) + +#define pte_mfn pte_pfn +#define mfn_pte pfn_pte + +/* Xen machine address */ +typedef struct xmaddr { + phys_addr_t maddr; +} xmaddr_t; + +/* Xen pseudo-physical address */ +typedef struct xpaddr { + phys_addr_t paddr; +} xpaddr_t; + +#define XMADDR(x) ((xmaddr_t) { .maddr = (x) }) +#define XPADDR(x) ((xpaddr_t) { .paddr = (x) }) + +static inline xmaddr_t phys_to_machine(xpaddr_t phys) +{ + unsigned offset = phys.paddr & ~PAGE_MASK; + return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset); +} + +static inline xpaddr_t machine_to_phys(xmaddr_t machine) +{ + unsigned offset = machine.maddr & ~PAGE_MASK; + return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset); +} +/* VIRT <-> MACHINE conversion */ +#define virt_to_machine(v) (phys_to_machine(XPADDR(__pa(v)))) +#define virt_to_pfn(v) (PFN_DOWN(__pa(v))) +#define virt_to_mfn(v) (pfn_to_mfn(virt_to_pfn(v))) +#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT)) + +static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr) +{ + /* TODO: assuming it is mapped in the kernel 1:1 */ + return virt_to_machine(vaddr); +} + +/* TODO: this shouldn't be here but it is because the frontend drivers + * are using it (its rolled in headers) even though we won't hit the code path. + * So for right now just punt with this. + */ +static inline pte_t *lookup_address(unsigned long address, unsigned int *level) +{ + BUG(); + return NULL; +} + +static inline int m2p_add_override(unsigned long mfn, struct page *page, + struct gnttab_map_grant_ref *kmap_op) +{ + return 0; +} + +static inline int m2p_remove_override(struct page *page, bool clear_pte) +{ + return 0; +} + +static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn) +{ + BUG(); + return false; +} +#endif /* _ASM_ARM_XEN_PAGE_H */ diff --git a/trunk/arch/arm/kernel/Makefile b/trunk/arch/arm/kernel/Makefile index d81f3a6d9ad8..5dfef9d97ed9 100644 --- a/trunk/arch/arm/kernel/Makefile +++ b/trunk/arch/arm/kernel/Makefile @@ -19,7 +19,9 @@ obj-y := elf.o entry-armv.o entry-common.o irq.o opcodes.o \ process.o ptrace.o return_address.o sched_clock.o \ setup.o signal.o stacktrace.o sys_arm.o time.o traps.o -obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += compat.o +obj-$(CONFIG_ATAGS) += atags_parse.o +obj-$(CONFIG_ATAGS_PROC) += atags_proc.o +obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o obj-$(CONFIG_OC_ETM) += etm.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o @@ -51,7 +53,6 @@ test-kprobes-objs += kprobes-test-thumb.o else test-kprobes-objs += kprobes-test-arm.o endif -obj-$(CONFIG_ATAGS_PROC) += atags.o obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o obj-$(CONFIG_ARM_THUMBEE) += thumbee.o obj-$(CONFIG_KGDB) += kgdb.o diff --git a/trunk/arch/arm/kernel/arch_timer.c b/trunk/arch/arm/kernel/arch_timer.c index cf258807160d..c8ef20747ee7 100644 --- a/trunk/arch/arm/kernel/arch_timer.c +++ b/trunk/arch/arm/kernel/arch_timer.c @@ -21,18 +21,28 @@ #include #include +#include #include #include #include #include static unsigned long arch_timer_rate; -static int arch_timer_ppi; -static int arch_timer_ppi2; + +enum ppi_nr { + PHYS_SECURE_PPI, + PHYS_NONSECURE_PPI, + VIRT_PPI, + HYP_PPI, + MAX_TIMER_PPI +}; + +static int arch_timer_ppi[MAX_TIMER_PPI]; static struct clock_event_device __percpu **arch_timer_evt; +static struct delay_timer arch_delay_timer; -extern void init_current_timer_delay(unsigned long freq); +static bool arch_timer_use_virtual = true; /* * Architected system timer support. @@ -46,50 +56,104 @@ extern void init_current_timer_delay(unsigned long freq); #define ARCH_TIMER_REG_FREQ 1 #define ARCH_TIMER_REG_TVAL 2 -static void arch_timer_reg_write(int reg, u32 val) +#define ARCH_TIMER_PHYS_ACCESS 0 +#define ARCH_TIMER_VIRT_ACCESS 1 + +/* + * These register accessors are marked inline so the compiler can + * nicely work out which register we want, and chuck away the rest of + * the code. At least it does so with a recent GCC (4.6.3). + */ +static inline void arch_timer_reg_write(const int access, const int reg, u32 val) { - switch (reg) { - case ARCH_TIMER_REG_CTRL: - asm volatile("mcr p15, 0, %0, c14, c2, 1" : : "r" (val)); - break; - case ARCH_TIMER_REG_TVAL: - asm volatile("mcr p15, 0, %0, c14, c2, 0" : : "r" (val)); - break; + if (access == ARCH_TIMER_PHYS_ACCESS) { + switch (reg) { + case ARCH_TIMER_REG_CTRL: + asm volatile("mcr p15, 0, %0, c14, c2, 1" : : "r" (val)); + break; + case ARCH_TIMER_REG_TVAL: + asm volatile("mcr p15, 0, %0, c14, c2, 0" : : "r" (val)); + break; + } + } + + if (access == ARCH_TIMER_VIRT_ACCESS) { + switch (reg) { + case ARCH_TIMER_REG_CTRL: + asm volatile("mcr p15, 0, %0, c14, c3, 1" : : "r" (val)); + break; + case ARCH_TIMER_REG_TVAL: + asm volatile("mcr p15, 0, %0, c14, c3, 0" : : "r" (val)); + break; + } } isb(); } -static u32 arch_timer_reg_read(int reg) +static inline u32 arch_timer_reg_read(const int access, const int reg) { - u32 val; + u32 val = 0; + + if (access == ARCH_TIMER_PHYS_ACCESS) { + switch (reg) { + case ARCH_TIMER_REG_CTRL: + asm volatile("mrc p15, 0, %0, c14, c2, 1" : "=r" (val)); + break; + case ARCH_TIMER_REG_TVAL: + asm volatile("mrc p15, 0, %0, c14, c2, 0" : "=r" (val)); + break; + case ARCH_TIMER_REG_FREQ: + asm volatile("mrc p15, 0, %0, c14, c0, 0" : "=r" (val)); + break; + } + } - switch (reg) { - case ARCH_TIMER_REG_CTRL: - asm volatile("mrc p15, 0, %0, c14, c2, 1" : "=r" (val)); - break; - case ARCH_TIMER_REG_FREQ: - asm volatile("mrc p15, 0, %0, c14, c0, 0" : "=r" (val)); - break; - case ARCH_TIMER_REG_TVAL: - asm volatile("mrc p15, 0, %0, c14, c2, 0" : "=r" (val)); - break; - default: - BUG(); + if (access == ARCH_TIMER_VIRT_ACCESS) { + switch (reg) { + case ARCH_TIMER_REG_CTRL: + asm volatile("mrc p15, 0, %0, c14, c3, 1" : "=r" (val)); + break; + case ARCH_TIMER_REG_TVAL: + asm volatile("mrc p15, 0, %0, c14, c3, 0" : "=r" (val)); + break; + } } return val; } -static irqreturn_t arch_timer_handler(int irq, void *dev_id) +static inline cycle_t arch_timer_counter_read(const int access) { - struct clock_event_device *evt = *(struct clock_event_device **)dev_id; - unsigned long ctrl; + cycle_t cval = 0; + + if (access == ARCH_TIMER_PHYS_ACCESS) + asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (cval)); + + if (access == ARCH_TIMER_VIRT_ACCESS) + asm volatile("mrrc p15, 1, %Q0, %R0, c14" : "=r" (cval)); + + return cval; +} + +static inline cycle_t arch_counter_get_cntpct(void) +{ + return arch_timer_counter_read(ARCH_TIMER_PHYS_ACCESS); +} - ctrl = arch_timer_reg_read(ARCH_TIMER_REG_CTRL); +static inline cycle_t arch_counter_get_cntvct(void) +{ + return arch_timer_counter_read(ARCH_TIMER_VIRT_ACCESS); +} + +static irqreturn_t inline timer_handler(const int access, + struct clock_event_device *evt) +{ + unsigned long ctrl; + ctrl = arch_timer_reg_read(access, ARCH_TIMER_REG_CTRL); if (ctrl & ARCH_TIMER_CTRL_IT_STAT) { ctrl |= ARCH_TIMER_CTRL_IT_MASK; - arch_timer_reg_write(ARCH_TIMER_REG_CTRL, ctrl); + arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl); evt->event_handler(evt); return IRQ_HANDLED; } @@ -97,63 +161,100 @@ static irqreturn_t arch_timer_handler(int irq, void *dev_id) return IRQ_NONE; } -static void arch_timer_disable(void) +static irqreturn_t arch_timer_handler_virt(int irq, void *dev_id) { - unsigned long ctrl; + struct clock_event_device *evt = *(struct clock_event_device **)dev_id; - ctrl = arch_timer_reg_read(ARCH_TIMER_REG_CTRL); - ctrl &= ~ARCH_TIMER_CTRL_ENABLE; - arch_timer_reg_write(ARCH_TIMER_REG_CTRL, ctrl); + return timer_handler(ARCH_TIMER_VIRT_ACCESS, evt); } -static void arch_timer_set_mode(enum clock_event_mode mode, - struct clock_event_device *clk) +static irqreturn_t arch_timer_handler_phys(int irq, void *dev_id) { + struct clock_event_device *evt = *(struct clock_event_device **)dev_id; + + return timer_handler(ARCH_TIMER_PHYS_ACCESS, evt); +} + +static inline void timer_set_mode(const int access, int mode) +{ + unsigned long ctrl; switch (mode) { case CLOCK_EVT_MODE_UNUSED: case CLOCK_EVT_MODE_SHUTDOWN: - arch_timer_disable(); + ctrl = arch_timer_reg_read(access, ARCH_TIMER_REG_CTRL); + ctrl &= ~ARCH_TIMER_CTRL_ENABLE; + arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl); break; default: break; } } -static int arch_timer_set_next_event(unsigned long evt, - struct clock_event_device *unused) +static void arch_timer_set_mode_virt(enum clock_event_mode mode, + struct clock_event_device *clk) { - unsigned long ctrl; + timer_set_mode(ARCH_TIMER_VIRT_ACCESS, mode); +} - ctrl = arch_timer_reg_read(ARCH_TIMER_REG_CTRL); +static void arch_timer_set_mode_phys(enum clock_event_mode mode, + struct clock_event_device *clk) +{ + timer_set_mode(ARCH_TIMER_PHYS_ACCESS, mode); +} + +static inline void set_next_event(const int access, unsigned long evt) +{ + unsigned long ctrl; + ctrl = arch_timer_reg_read(access, ARCH_TIMER_REG_CTRL); ctrl |= ARCH_TIMER_CTRL_ENABLE; ctrl &= ~ARCH_TIMER_CTRL_IT_MASK; + arch_timer_reg_write(access, ARCH_TIMER_REG_TVAL, evt); + arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl); +} - arch_timer_reg_write(ARCH_TIMER_REG_TVAL, evt); - arch_timer_reg_write(ARCH_TIMER_REG_CTRL, ctrl); +static int arch_timer_set_next_event_virt(unsigned long evt, + struct clock_event_device *unused) +{ + set_next_event(ARCH_TIMER_VIRT_ACCESS, evt); + return 0; +} +static int arch_timer_set_next_event_phys(unsigned long evt, + struct clock_event_device *unused) +{ + set_next_event(ARCH_TIMER_PHYS_ACCESS, evt); return 0; } static int __cpuinit arch_timer_setup(struct clock_event_device *clk) { - /* Be safe... */ - arch_timer_disable(); - clk->features = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_C3STOP; clk->name = "arch_sys_timer"; clk->rating = 450; - clk->set_mode = arch_timer_set_mode; - clk->set_next_event = arch_timer_set_next_event; - clk->irq = arch_timer_ppi; + if (arch_timer_use_virtual) { + clk->irq = arch_timer_ppi[VIRT_PPI]; + clk->set_mode = arch_timer_set_mode_virt; + clk->set_next_event = arch_timer_set_next_event_virt; + } else { + clk->irq = arch_timer_ppi[PHYS_SECURE_PPI]; + clk->set_mode = arch_timer_set_mode_phys; + clk->set_next_event = arch_timer_set_next_event_phys; + } + + clk->set_mode(CLOCK_EVT_MODE_SHUTDOWN, NULL); clockevents_config_and_register(clk, arch_timer_rate, 0xf, 0x7fffffff); *__this_cpu_ptr(arch_timer_evt) = clk; - enable_percpu_irq(clk->irq, 0); - if (arch_timer_ppi2) - enable_percpu_irq(arch_timer_ppi2, 0); + if (arch_timer_use_virtual) + enable_percpu_irq(arch_timer_ppi[VIRT_PPI], 0); + else { + enable_percpu_irq(arch_timer_ppi[PHYS_SECURE_PPI], 0); + if (arch_timer_ppi[PHYS_NONSECURE_PPI]) + enable_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI], 0); + } return 0; } @@ -173,8 +274,8 @@ static int arch_timer_available(void) return -ENXIO; if (arch_timer_rate == 0) { - arch_timer_reg_write(ARCH_TIMER_REG_CTRL, 0); - freq = arch_timer_reg_read(ARCH_TIMER_REG_FREQ); + freq = arch_timer_reg_read(ARCH_TIMER_PHYS_ACCESS, + ARCH_TIMER_REG_FREQ); /* Check the timer frequency. */ if (freq == 0) { @@ -185,52 +286,57 @@ static int arch_timer_available(void) arch_timer_rate = freq; } - pr_info_once("Architected local timer running at %lu.%02luMHz.\n", - arch_timer_rate / 1000000, (arch_timer_rate / 10000) % 100); + pr_info_once("Architected local timer running at %lu.%02luMHz (%s).\n", + arch_timer_rate / 1000000, (arch_timer_rate / 10000) % 100, + arch_timer_use_virtual ? "virt" : "phys"); return 0; } -static inline cycle_t arch_counter_get_cntpct(void) +static u32 notrace arch_counter_get_cntpct32(void) { - u32 cvall, cvalh; - - asm volatile("mrrc p15, 0, %0, %1, c14" : "=r" (cvall), "=r" (cvalh)); + cycle_t cnt = arch_counter_get_cntpct(); - return ((cycle_t) cvalh << 32) | cvall; -} - -static inline cycle_t arch_counter_get_cntvct(void) -{ - u32 cvall, cvalh; - - asm volatile("mrrc p15, 1, %0, %1, c14" : "=r" (cvall), "=r" (cvalh)); - - return ((cycle_t) cvalh << 32) | cvall; + /* + * The sched_clock infrastructure only knows about counters + * with at most 32bits. Forget about the upper 24 bits for the + * time being... + */ + return (u32)cnt; } static u32 notrace arch_counter_get_cntvct32(void) { - cycle_t cntvct = arch_counter_get_cntvct(); + cycle_t cnt = arch_counter_get_cntvct(); /* * The sched_clock infrastructure only knows about counters * with at most 32bits. Forget about the upper 24 bits for the * time being... */ - return (u32)(cntvct & (u32)~0); + return (u32)cnt; } static cycle_t arch_counter_read(struct clocksource *cs) { + /* + * Always use the physical counter for the clocksource. + * CNTHCTL.PL1PCTEN must be set to 1. + */ return arch_counter_get_cntpct(); } -int read_current_timer(unsigned long *timer_val) +static unsigned long arch_timer_read_current_timer(void) { - if (!arch_timer_rate) - return -ENXIO; - *timer_val = arch_counter_get_cntpct(); - return 0; + return arch_counter_get_cntpct(); +} + +static cycle_t arch_counter_read_cc(const struct cyclecounter *cc) +{ + /* + * Always use the physical counter for the clocksource. + * CNTHCTL.PL1PCTEN must be set to 1. + */ + return arch_counter_get_cntpct(); } static struct clocksource clocksource_counter = { @@ -241,14 +347,32 @@ static struct clocksource clocksource_counter = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; +static struct cyclecounter cyclecounter = { + .read = arch_counter_read_cc, + .mask = CLOCKSOURCE_MASK(56), +}; + +static struct timecounter timecounter; + +struct timecounter *arch_timer_get_timecounter(void) +{ + return &timecounter; +} + static void __cpuinit arch_timer_stop(struct clock_event_device *clk) { pr_debug("arch_timer_teardown disable IRQ%d cpu #%d\n", clk->irq, smp_processor_id()); - disable_percpu_irq(clk->irq); - if (arch_timer_ppi2) - disable_percpu_irq(arch_timer_ppi2); - arch_timer_set_mode(CLOCK_EVT_MODE_UNUSED, clk); + + if (arch_timer_use_virtual) + disable_percpu_irq(arch_timer_ppi[VIRT_PPI]); + else { + disable_percpu_irq(arch_timer_ppi[PHYS_SECURE_PPI]); + if (arch_timer_ppi[PHYS_NONSECURE_PPI]) + disable_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI]); + } + + clk->set_mode(CLOCK_EVT_MODE_UNUSED, clk); } static struct local_timer_ops arch_timer_ops __cpuinitdata = { @@ -261,36 +385,48 @@ static struct clock_event_device arch_timer_global_evt; static int __init arch_timer_register(void) { int err; + int ppi; err = arch_timer_available(); if (err) - return err; + goto out; arch_timer_evt = alloc_percpu(struct clock_event_device *); - if (!arch_timer_evt) - return -ENOMEM; + if (!arch_timer_evt) { + err = -ENOMEM; + goto out; + } clocksource_register_hz(&clocksource_counter, arch_timer_rate); + cyclecounter.mult = clocksource_counter.mult; + cyclecounter.shift = clocksource_counter.shift; + timecounter_init(&timecounter, &cyclecounter, + arch_counter_get_cntpct()); + + if (arch_timer_use_virtual) { + ppi = arch_timer_ppi[VIRT_PPI]; + err = request_percpu_irq(ppi, arch_timer_handler_virt, + "arch_timer", arch_timer_evt); + } else { + ppi = arch_timer_ppi[PHYS_SECURE_PPI]; + err = request_percpu_irq(ppi, arch_timer_handler_phys, + "arch_timer", arch_timer_evt); + if (!err && arch_timer_ppi[PHYS_NONSECURE_PPI]) { + ppi = arch_timer_ppi[PHYS_NONSECURE_PPI]; + err = request_percpu_irq(ppi, arch_timer_handler_phys, + "arch_timer", arch_timer_evt); + if (err) + free_percpu_irq(arch_timer_ppi[PHYS_SECURE_PPI], + arch_timer_evt); + } + } - err = request_percpu_irq(arch_timer_ppi, arch_timer_handler, - "arch_timer", arch_timer_evt); if (err) { pr_err("arch_timer: can't register interrupt %d (%d)\n", - arch_timer_ppi, err); + ppi, err); goto out_free; } - if (arch_timer_ppi2) { - err = request_percpu_irq(arch_timer_ppi2, arch_timer_handler, - "arch_timer", arch_timer_evt); - if (err) { - pr_err("arch_timer: can't register interrupt %d (%d)\n", - arch_timer_ppi2, err); - arch_timer_ppi2 = 0; - goto out_free_irq; - } - } - err = local_timer_register(&arch_timer_ops); if (err) { /* @@ -302,21 +438,29 @@ static int __init arch_timer_register(void) arch_timer_global_evt.cpumask = cpumask_of(0); err = arch_timer_setup(&arch_timer_global_evt); } - if (err) goto out_free_irq; - init_current_timer_delay(arch_timer_rate); + /* Use the architected timer for the delay loop. */ + arch_delay_timer.read_current_timer = &arch_timer_read_current_timer; + arch_delay_timer.freq = arch_timer_rate; + register_current_timer_delay(&arch_delay_timer); return 0; out_free_irq: - free_percpu_irq(arch_timer_ppi, arch_timer_evt); - if (arch_timer_ppi2) - free_percpu_irq(arch_timer_ppi2, arch_timer_evt); + if (arch_timer_use_virtual) + free_percpu_irq(arch_timer_ppi[VIRT_PPI], arch_timer_evt); + else { + free_percpu_irq(arch_timer_ppi[PHYS_SECURE_PPI], + arch_timer_evt); + if (arch_timer_ppi[PHYS_NONSECURE_PPI]) + free_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI], + arch_timer_evt); + } out_free: free_percpu(arch_timer_evt); - +out: return err; } @@ -329,6 +473,7 @@ int __init arch_timer_of_register(void) { struct device_node *np; u32 freq; + int i; np = of_find_matching_node(NULL, arch_timer_of_match); if (!np) { @@ -340,22 +485,40 @@ int __init arch_timer_of_register(void) if (!of_property_read_u32(np, "clock-frequency", &freq)) arch_timer_rate = freq; - arch_timer_ppi = irq_of_parse_and_map(np, 0); - arch_timer_ppi2 = irq_of_parse_and_map(np, 1); - pr_info("arch_timer: found %s irqs %d %d\n", - np->name, arch_timer_ppi, arch_timer_ppi2); + for (i = PHYS_SECURE_PPI; i < MAX_TIMER_PPI; i++) + arch_timer_ppi[i] = irq_of_parse_and_map(np, i); + + /* + * If no interrupt provided for virtual timer, we'll have to + * stick to the physical timer. It'd better be accessible... + */ + if (!arch_timer_ppi[VIRT_PPI]) { + arch_timer_use_virtual = false; + + if (!arch_timer_ppi[PHYS_SECURE_PPI] || + !arch_timer_ppi[PHYS_NONSECURE_PPI]) { + pr_warn("arch_timer: No interrupt available, giving up\n"); + return -EINVAL; + } + } return arch_timer_register(); } int __init arch_timer_sched_clock_init(void) { + u32 (*cnt32)(void); int err; err = arch_timer_available(); if (err) return err; - setup_sched_clock(arch_counter_get_cntvct32, 32, arch_timer_rate); + if (arch_timer_use_virtual) + cnt32 = arch_counter_get_cntvct32; + else + cnt32 = arch_counter_get_cntpct32; + + setup_sched_clock(cnt32, 32, arch_timer_rate); return 0; } diff --git a/trunk/arch/arm/kernel/asm-offsets.c b/trunk/arch/arm/kernel/asm-offsets.c index 1429d8989fb9..c985b481192c 100644 --- a/trunk/arch/arm/kernel/asm-offsets.c +++ b/trunk/arch/arm/kernel/asm-offsets.c @@ -59,10 +59,12 @@ int main(void) DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp)); DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); +#ifdef CONFIG_VFP DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); #ifdef CONFIG_SMP DEFINE(VFP_CPU, offsetof(union vfp_state, hard.cpu)); #endif +#endif #ifdef CONFIG_ARM_THUMBEE DEFINE(TI_THUMBEE_STATE, offsetof(struct thread_info, thumbee_state)); #endif diff --git a/trunk/arch/arm/kernel/atags.h b/trunk/arch/arm/kernel/atags.h index e5f028d214a1..9edc9692332d 100644 --- a/trunk/arch/arm/kernel/atags.h +++ b/trunk/arch/arm/kernel/atags.h @@ -3,3 +3,17 @@ extern void save_atags(struct tag *tags); #else static inline void save_atags(struct tag *tags) { } #endif + +void convert_to_tag_list(struct tag *tags); + +#ifdef CONFIG_ATAGS +struct machine_desc *setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr); +#else +static inline struct machine_desc * +setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr) +{ + early_print("no ATAGS support: can't continue\n"); + while (true); + unreachable(); +} +#endif diff --git a/trunk/arch/arm/kernel/compat.c b/trunk/arch/arm/kernel/atags_compat.c similarity index 99% rename from trunk/arch/arm/kernel/compat.c rename to trunk/arch/arm/kernel/atags_compat.c index 925652318b8b..5236ad38f417 100644 --- a/trunk/arch/arm/kernel/compat.c +++ b/trunk/arch/arm/kernel/atags_compat.c @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/compat.c + * linux/arch/arm/kernel/atags_compat.c * * Copyright (C) 2001 Russell King * @@ -26,7 +26,7 @@ #include -#include "compat.h" +#include "atags.h" /* * Usage: diff --git a/trunk/arch/arm/kernel/atags_parse.c b/trunk/arch/arm/kernel/atags_parse.c new file mode 100644 index 000000000000..14512e6931d8 --- /dev/null +++ b/trunk/arch/arm/kernel/atags_parse.c @@ -0,0 +1,238 @@ +/* + * Tag parsing. + * + * Copyright (C) 1995-2001 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/* + * This is the traditional way of passing data to the kernel at boot time. Rather + * than passing a fixed inflexible structure to the kernel, we pass a list + * of variable-sized tags to the kernel. The first tag must be a ATAG_CORE + * tag for the list to be recognised (to distinguish the tagged list from + * a param_struct). The list is terminated with a zero-length tag (this tag + * is not parsed in any way). + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "atags.h" + +static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE; + +#ifndef MEM_SIZE +#define MEM_SIZE (16*1024*1024) +#endif + +static struct { + struct tag_header hdr1; + struct tag_core core; + struct tag_header hdr2; + struct tag_mem32 mem; + struct tag_header hdr3; +} default_tags __initdata = { + { tag_size(tag_core), ATAG_CORE }, + { 1, PAGE_SIZE, 0xff }, + { tag_size(tag_mem32), ATAG_MEM }, + { MEM_SIZE }, + { 0, ATAG_NONE } +}; + +static int __init parse_tag_core(const struct tag *tag) +{ + if (tag->hdr.size > 2) { + if ((tag->u.core.flags & 1) == 0) + root_mountflags &= ~MS_RDONLY; + ROOT_DEV = old_decode_dev(tag->u.core.rootdev); + } + return 0; +} + +__tagtable(ATAG_CORE, parse_tag_core); + +static int __init parse_tag_mem32(const struct tag *tag) +{ + return arm_add_memory(tag->u.mem.start, tag->u.mem.size); +} + +__tagtable(ATAG_MEM, parse_tag_mem32); + +#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) +static int __init parse_tag_videotext(const struct tag *tag) +{ + screen_info.orig_x = tag->u.videotext.x; + screen_info.orig_y = tag->u.videotext.y; + screen_info.orig_video_page = tag->u.videotext.video_page; + screen_info.orig_video_mode = tag->u.videotext.video_mode; + screen_info.orig_video_cols = tag->u.videotext.video_cols; + screen_info.orig_video_ega_bx = tag->u.videotext.video_ega_bx; + screen_info.orig_video_lines = tag->u.videotext.video_lines; + screen_info.orig_video_isVGA = tag->u.videotext.video_isvga; + screen_info.orig_video_points = tag->u.videotext.video_points; + return 0; +} + +__tagtable(ATAG_VIDEOTEXT, parse_tag_videotext); +#endif + +#ifdef CONFIG_BLK_DEV_RAM +static int __init parse_tag_ramdisk(const struct tag *tag) +{ + extern int rd_size, rd_image_start, rd_prompt, rd_doload; + + rd_image_start = tag->u.ramdisk.start; + rd_doload = (tag->u.ramdisk.flags & 1) == 0; + rd_prompt = (tag->u.ramdisk.flags & 2) == 0; + + if (tag->u.ramdisk.size) + rd_size = tag->u.ramdisk.size; + + return 0; +} + +__tagtable(ATAG_RAMDISK, parse_tag_ramdisk); +#endif + +static int __init parse_tag_serialnr(const struct tag *tag) +{ + system_serial_low = tag->u.serialnr.low; + system_serial_high = tag->u.serialnr.high; + return 0; +} + +__tagtable(ATAG_SERIAL, parse_tag_serialnr); + +static int __init parse_tag_revision(const struct tag *tag) +{ + system_rev = tag->u.revision.rev; + return 0; +} + +__tagtable(ATAG_REVISION, parse_tag_revision); + +static int __init parse_tag_cmdline(const struct tag *tag) +{ +#if defined(CONFIG_CMDLINE_EXTEND) + strlcat(default_command_line, " ", COMMAND_LINE_SIZE); + strlcat(default_command_line, tag->u.cmdline.cmdline, + COMMAND_LINE_SIZE); +#elif defined(CONFIG_CMDLINE_FORCE) + pr_warning("Ignoring tag cmdline (using the default kernel command line)\n"); +#else + strlcpy(default_command_line, tag->u.cmdline.cmdline, + COMMAND_LINE_SIZE); +#endif + return 0; +} + +__tagtable(ATAG_CMDLINE, parse_tag_cmdline); + +/* + * Scan the tag table for this tag, and call its parse function. + * The tag table is built by the linker from all the __tagtable + * declarations. + */ +static int __init parse_tag(const struct tag *tag) +{ + extern struct tagtable __tagtable_begin, __tagtable_end; + struct tagtable *t; + + for (t = &__tagtable_begin; t < &__tagtable_end; t++) + if (tag->hdr.tag == t->tag) { + t->parse(tag); + break; + } + + return t < &__tagtable_end; +} + +/* + * Parse all tags in the list, checking both the global and architecture + * specific tag tables. + */ +static void __init parse_tags(const struct tag *t) +{ + for (; t->hdr.size; t = tag_next(t)) + if (!parse_tag(t)) + printk(KERN_WARNING + "Ignoring unrecognised tag 0x%08x\n", + t->hdr.tag); +} + +static void __init squash_mem_tags(struct tag *tag) +{ + for (; tag->hdr.size; tag = tag_next(tag)) + if (tag->hdr.tag == ATAG_MEM) + tag->hdr.tag = ATAG_NONE; +} + +struct machine_desc * __init setup_machine_tags(phys_addr_t __atags_pointer, + unsigned int machine_nr) +{ + struct tag *tags = (struct tag *)&default_tags; + struct machine_desc *mdesc = NULL, *p; + char *from = default_command_line; + + default_tags.mem.start = PHYS_OFFSET; + + /* + * locate machine in the list of supported machines. + */ + for_each_machine_desc(p) + if (machine_nr == p->nr) { + printk("Machine: %s\n", p->name); + mdesc = p; + break; + } + + if (!mdesc) { + early_print("\nError: unrecognized/unsupported machine ID" + " (r1 = 0x%08x).\n\n", machine_nr); + dump_machine_table(); /* does not return */ + } + + if (__atags_pointer) + tags = phys_to_virt(__atags_pointer); + else if (mdesc->atag_offset) + tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); + +#if defined(CONFIG_DEPRECATED_PARAM_STRUCT) + /* + * If we have the old style parameters, convert them to + * a tag list. + */ + if (tags->hdr.tag != ATAG_CORE) + convert_to_tag_list(tags); +#endif + if (tags->hdr.tag != ATAG_CORE) { + early_print("Warning: Neither atags nor dtb found\n"); + tags = (struct tag *)&default_tags; + } + + if (mdesc->fixup) + mdesc->fixup(tags, &from, &meminfo); + + if (tags->hdr.tag == ATAG_CORE) { + if (meminfo.nr_banks != 0) + squash_mem_tags(tags); + save_atags(tags); + parse_tags(tags); + } + + /* parse_early_param needs a boot_command_line */ + strlcpy(boot_command_line, from, COMMAND_LINE_SIZE); + + return mdesc; +} diff --git a/trunk/arch/arm/kernel/atags.c b/trunk/arch/arm/kernel/atags_proc.c similarity index 100% rename from trunk/arch/arm/kernel/atags.c rename to trunk/arch/arm/kernel/atags_proc.c diff --git a/trunk/arch/arm/kernel/compat.h b/trunk/arch/arm/kernel/compat.h deleted file mode 100644 index 39264ab1b9c6..000000000000 --- a/trunk/arch/arm/kernel/compat.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * linux/arch/arm/kernel/compat.h - * - * Copyright (C) 2001 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -extern void convert_to_tag_list(struct tag *tags); diff --git a/trunk/arch/arm/kernel/entry-common.S b/trunk/arch/arm/kernel/entry-common.S index 978eac57e04a..f45987037bf1 100644 --- a/trunk/arch/arm/kernel/entry-common.S +++ b/trunk/arch/arm/kernel/entry-common.S @@ -94,6 +94,15 @@ ENDPROC(ret_from_fork) .equ NR_syscalls,0 #define CALL(x) .equ NR_syscalls,NR_syscalls+1 #include "calls.S" + +/* + * Ensure that the system call table is equal to __NR_syscalls, + * which is the value the rest of the system sees + */ +.ifne NR_syscalls - __NR_syscalls +.error "__NR_syscalls is not equal to the size of the syscall table" +.endif + #undef CALL #define CALL(x) .long x diff --git a/trunk/arch/arm/kernel/machine_kexec.c b/trunk/arch/arm/kernel/machine_kexec.c index dfcdb9f7c126..e29c3337ca81 100644 --- a/trunk/arch/arm/kernel/machine_kexec.c +++ b/trunk/arch/arm/kernel/machine_kexec.c @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -32,6 +34,29 @@ static atomic_t waiting_for_crash_ipi; int machine_kexec_prepare(struct kimage *image) { + struct kexec_segment *current_segment; + __be32 header; + int i, err; + + /* + * No segment at default ATAGs address. try to locate + * a dtb using magic. + */ + for (i = 0; i < image->nr_segments; i++) { + current_segment = &image->segment[i]; + + err = memblock_is_region_memory(current_segment->mem, + current_segment->memsz); + if (err) + return - EINVAL; + + err = get_user(header, (__be32*)current_segment->buf); + if (err) + return err; + + if (be32_to_cpu(header) == OF_DT_HEADER) + kexec_boot_atags = current_segment->mem; + } return 0; } @@ -122,7 +147,9 @@ void machine_kexec(struct kimage *image) kexec_start_address = image->start; kexec_indirection_page = page_list; kexec_mach_type = machine_arch_type; - kexec_boot_atags = image->start - KEXEC_ARM_ZIMAGE_OFFSET + KEXEC_ARM_ATAGS_OFFSET; + if (!kexec_boot_atags) + kexec_boot_atags = image->start - KEXEC_ARM_ZIMAGE_OFFSET + KEXEC_ARM_ATAGS_OFFSET; + /* copy our kernel relocation code to the control code page */ memcpy(reboot_code_buffer, diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index 3e0fc5f7ed4b..739db3a1b2d2 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -30,6 +30,9 @@ #include #include +#define CREATE_TRACE_POINTS +#include + #define REG_PC 15 #define REG_PSR 16 /* @@ -918,11 +921,11 @@ static int ptrace_syscall_trace(struct pt_regs *regs, int scno, { unsigned long ip; + current_thread_info()->syscall = scno; + if (!test_thread_flag(TIF_SYSCALL_TRACE)) return scno; - current_thread_info()->syscall = scno; - /* * IP is used to denote syscall entry/exit: * IP = 0 -> entry, =1 -> exit @@ -941,15 +944,19 @@ static int ptrace_syscall_trace(struct pt_regs *regs, int scno, asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno) { - int ret = ptrace_syscall_trace(regs, scno, PTRACE_SYSCALL_ENTER); + scno = ptrace_syscall_trace(regs, scno, PTRACE_SYSCALL_ENTER); + if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) + trace_sys_enter(regs, scno); audit_syscall_entry(AUDIT_ARCH_ARM, scno, regs->ARM_r0, regs->ARM_r1, regs->ARM_r2, regs->ARM_r3); - return ret; + return scno; } asmlinkage int syscall_trace_exit(struct pt_regs *regs, int scno) { - int ret = ptrace_syscall_trace(regs, scno, PTRACE_SYSCALL_EXIT); + scno = ptrace_syscall_trace(regs, scno, PTRACE_SYSCALL_EXIT); + if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) + trace_sys_exit(regs, scno); audit_syscall_exit(regs); - return ret; + return scno; } diff --git a/trunk/arch/arm/kernel/sched_clock.c b/trunk/arch/arm/kernel/sched_clock.c index f4515393248d..e21bac20d90d 100644 --- a/trunk/arch/arm/kernel/sched_clock.c +++ b/trunk/arch/arm/kernel/sched_clock.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -27,6 +28,9 @@ struct clock_data { static void sched_clock_poll(unsigned long wrap_ticks); static DEFINE_TIMER(sched_clock_timer, sched_clock_poll, 0, 0); +static int irqtime = -1; + +core_param(irqtime, irqtime, int, 0400); static struct clock_data cd = { .mult = NSEC_PER_SEC / HZ, @@ -157,6 +161,10 @@ void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate) */ cd.epoch_ns = 0; + /* Enable IRQ time accounting if we have a fast enough sched_clock */ + if (irqtime > 0 || (irqtime == -1 && rate >= 1000000)) + enable_sched_clock_irqtime(); + pr_debug("Registered %pF as sched_clock source\n", read); } diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 725f9f2a9541..febafa0f552d 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -21,11 +21,9 @@ #include #include #include -#include #include #include #include -#include #include #include #include @@ -56,15 +54,9 @@ #include #include -#if defined(CONFIG_DEPRECATED_PARAM_STRUCT) -#include "compat.h" -#endif #include "atags.h" #include "tcm.h" -#ifndef MEM_SIZE -#define MEM_SIZE (16*1024*1024) -#endif #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE) char fpe_type[8]; @@ -145,7 +137,6 @@ static const char *machine_name; static char __initdata cmd_line[COMMAND_LINE_SIZE]; struct machine_desc *machine_desc __initdata; -static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE; static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } }; #define ENDIANNESS ((char)endian_test.l) @@ -583,21 +574,6 @@ static int __init early_mem(char *p) } early_param("mem", early_mem); -static void __init -setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz) -{ -#ifdef CONFIG_BLK_DEV_RAM - extern int rd_size, rd_image_start, rd_prompt, rd_doload; - - rd_image_start = image_start; - rd_prompt = prompt; - rd_doload = doload; - - if (rd_sz) - rd_size = rd_sz; -#endif -} - static void __init request_standard_resources(struct machine_desc *mdesc) { struct memblock_region *region; @@ -643,35 +619,6 @@ static void __init request_standard_resources(struct machine_desc *mdesc) request_resource(&ioport_resource, &lp2); } -/* - * Tag parsing. - * - * This is the new way of passing data to the kernel at boot time. Rather - * than passing a fixed inflexible structure to the kernel, we pass a list - * of variable-sized tags to the kernel. The first tag must be a ATAG_CORE - * tag for the list to be recognised (to distinguish the tagged list from - * a param_struct). The list is terminated with a zero-length tag (this tag - * is not parsed in any way). - */ -static int __init parse_tag_core(const struct tag *tag) -{ - if (tag->hdr.size > 2) { - if ((tag->u.core.flags & 1) == 0) - root_mountflags &= ~MS_RDONLY; - ROOT_DEV = old_decode_dev(tag->u.core.rootdev); - } - return 0; -} - -__tagtable(ATAG_CORE, parse_tag_core); - -static int __init parse_tag_mem32(const struct tag *tag) -{ - return arm_add_memory(tag->u.mem.start, tag->u.mem.size); -} - -__tagtable(ATAG_MEM, parse_tag_mem32); - #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) struct screen_info screen_info = { .orig_video_lines = 30, @@ -681,117 +628,8 @@ struct screen_info screen_info = { .orig_video_isVGA = 1, .orig_video_points = 8 }; - -static int __init parse_tag_videotext(const struct tag *tag) -{ - screen_info.orig_x = tag->u.videotext.x; - screen_info.orig_y = tag->u.videotext.y; - screen_info.orig_video_page = tag->u.videotext.video_page; - screen_info.orig_video_mode = tag->u.videotext.video_mode; - screen_info.orig_video_cols = tag->u.videotext.video_cols; - screen_info.orig_video_ega_bx = tag->u.videotext.video_ega_bx; - screen_info.orig_video_lines = tag->u.videotext.video_lines; - screen_info.orig_video_isVGA = tag->u.videotext.video_isvga; - screen_info.orig_video_points = tag->u.videotext.video_points; - return 0; -} - -__tagtable(ATAG_VIDEOTEXT, parse_tag_videotext); #endif -static int __init parse_tag_ramdisk(const struct tag *tag) -{ - setup_ramdisk((tag->u.ramdisk.flags & 1) == 0, - (tag->u.ramdisk.flags & 2) == 0, - tag->u.ramdisk.start, tag->u.ramdisk.size); - return 0; -} - -__tagtable(ATAG_RAMDISK, parse_tag_ramdisk); - -static int __init parse_tag_serialnr(const struct tag *tag) -{ - system_serial_low = tag->u.serialnr.low; - system_serial_high = tag->u.serialnr.high; - return 0; -} - -__tagtable(ATAG_SERIAL, parse_tag_serialnr); - -static int __init parse_tag_revision(const struct tag *tag) -{ - system_rev = tag->u.revision.rev; - return 0; -} - -__tagtable(ATAG_REVISION, parse_tag_revision); - -static int __init parse_tag_cmdline(const struct tag *tag) -{ -#if defined(CONFIG_CMDLINE_EXTEND) - strlcat(default_command_line, " ", COMMAND_LINE_SIZE); - strlcat(default_command_line, tag->u.cmdline.cmdline, - COMMAND_LINE_SIZE); -#elif defined(CONFIG_CMDLINE_FORCE) - pr_warning("Ignoring tag cmdline (using the default kernel command line)\n"); -#else - strlcpy(default_command_line, tag->u.cmdline.cmdline, - COMMAND_LINE_SIZE); -#endif - return 0; -} - -__tagtable(ATAG_CMDLINE, parse_tag_cmdline); - -/* - * Scan the tag table for this tag, and call its parse function. - * The tag table is built by the linker from all the __tagtable - * declarations. - */ -static int __init parse_tag(const struct tag *tag) -{ - extern struct tagtable __tagtable_begin, __tagtable_end; - struct tagtable *t; - - for (t = &__tagtable_begin; t < &__tagtable_end; t++) - if (tag->hdr.tag == t->tag) { - t->parse(tag); - break; - } - - return t < &__tagtable_end; -} - -/* - * Parse all tags in the list, checking both the global and architecture - * specific tag tables. - */ -static void __init parse_tags(const struct tag *t) -{ - for (; t->hdr.size; t = tag_next(t)) - if (!parse_tag(t)) - printk(KERN_WARNING - "Ignoring unrecognised tag 0x%08x\n", - t->hdr.tag); -} - -/* - * This holds our defaults. - */ -static struct init_tags { - struct tag_header hdr1; - struct tag_core core; - struct tag_header hdr2; - struct tag_mem32 mem; - struct tag_header hdr3; -} init_tags __initdata = { - { tag_size(tag_core), ATAG_CORE }, - { 1, PAGE_SIZE, 0xff }, - { tag_size(tag_mem32), ATAG_MEM }, - { MEM_SIZE }, - { 0, ATAG_NONE } -}; - static int __init customize_machine(void) { /* customizes platform devices, or adds new ones */ @@ -858,78 +696,6 @@ static void __init reserve_crashkernel(void) static inline void reserve_crashkernel(void) {} #endif /* CONFIG_KEXEC */ -static void __init squash_mem_tags(struct tag *tag) -{ - for (; tag->hdr.size; tag = tag_next(tag)) - if (tag->hdr.tag == ATAG_MEM) - tag->hdr.tag = ATAG_NONE; -} - -static struct machine_desc * __init setup_machine_tags(unsigned int nr) -{ - struct tag *tags = (struct tag *)&init_tags; - struct machine_desc *mdesc = NULL, *p; - char *from = default_command_line; - - init_tags.mem.start = PHYS_OFFSET; - - /* - * locate machine in the list of supported machines. - */ - for_each_machine_desc(p) - if (nr == p->nr) { - printk("Machine: %s\n", p->name); - mdesc = p; - break; - } - - if (!mdesc) { - early_print("\nError: unrecognized/unsupported machine ID" - " (r1 = 0x%08x).\n\n", nr); - dump_machine_table(); /* does not return */ - } - - if (__atags_pointer) - tags = phys_to_virt(__atags_pointer); - else if (mdesc->atag_offset) - tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); - -#if defined(CONFIG_DEPRECATED_PARAM_STRUCT) - /* - * If we have the old style parameters, convert them to - * a tag list. - */ - if (tags->hdr.tag != ATAG_CORE) - convert_to_tag_list(tags); -#endif - - if (tags->hdr.tag != ATAG_CORE) { -#if defined(CONFIG_OF) - /* - * If CONFIG_OF is set, then assume this is a reasonably - * modern system that should pass boot parameters - */ - early_print("Warning: Neither atags nor dtb found\n"); -#endif - tags = (struct tag *)&init_tags; - } - - if (mdesc->fixup) - mdesc->fixup(tags, &from, &meminfo); - - if (tags->hdr.tag == ATAG_CORE) { - if (meminfo.nr_banks != 0) - squash_mem_tags(tags); - save_atags(tags); - parse_tags(tags); - } - - /* parse_early_param needs a boot_command_line */ - strlcpy(boot_command_line, from, COMMAND_LINE_SIZE); - - return mdesc; -} - static int __init meminfo_cmp(const void *_a, const void *_b) { const struct membank *a = _a, *b = _b; @@ -944,7 +710,7 @@ void __init setup_arch(char **cmdline_p) setup_processor(); mdesc = setup_machine_fdt(__atags_pointer); if (!mdesc) - mdesc = setup_machine_tags(machine_arch_type); + mdesc = setup_machine_tags(__atags_pointer, machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index dea7a925c7e2..d100eacdb798 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -59,7 +59,8 @@ struct secondary_data secondary_data; volatile int __cpuinitdata pen_release = -1; enum ipi_msg_type { - IPI_TIMER = 2, + IPI_WAKEUP, + IPI_TIMER, IPI_RESCHEDULE, IPI_CALL_FUNC, IPI_CALL_FUNC_SINGLE, @@ -414,7 +415,8 @@ void arch_send_call_function_single_ipi(int cpu) } static const char *ipi_types[NR_IPI] = { -#define S(x,s) [x - IPI_TIMER] = s +#define S(x,s) [x] = s + S(IPI_WAKEUP, "CPU wakeup interrupts"), S(IPI_TIMER, "Timer broadcast interrupts"), S(IPI_RESCHEDULE, "Rescheduling interrupts"), S(IPI_CALL_FUNC, "Function call interrupts"), @@ -567,10 +569,13 @@ void handle_IPI(int ipinr, struct pt_regs *regs) unsigned int cpu = smp_processor_id(); struct pt_regs *old_regs = set_irq_regs(regs); - if (ipinr >= IPI_TIMER && ipinr < IPI_TIMER + NR_IPI) - __inc_irq_stat(cpu, ipi_irqs[ipinr - IPI_TIMER]); + if (ipinr < NR_IPI) + __inc_irq_stat(cpu, ipi_irqs[ipinr]); switch (ipinr) { + case IPI_WAKEUP: + break; + case IPI_TIMER: irq_enter(); ipi_timer(); diff --git a/trunk/arch/arm/lib/delay.c b/trunk/arch/arm/lib/delay.c index 395d5fbb8fa2..9d0a30032d7f 100644 --- a/trunk/arch/arm/lib/delay.c +++ b/trunk/arch/arm/lib/delay.c @@ -34,7 +34,18 @@ struct arm_delay_ops arm_delay_ops = { .udelay = __loop_udelay, }; -#ifdef ARCH_HAS_READ_CURRENT_TIMER +static const struct delay_timer *delay_timer; +static bool delay_calibrated; + +int read_current_timer(unsigned long *timer_val) +{ + if (!delay_timer) + return -ENXIO; + + *timer_val = delay_timer->read_current_timer(); + return 0; +} + static void __timer_delay(unsigned long cycles) { cycles_t start = get_cycles(); @@ -55,18 +66,24 @@ static void __timer_udelay(unsigned long usecs) __timer_const_udelay(usecs * UDELAY_MULT); } -void __init init_current_timer_delay(unsigned long freq) +void __init register_current_timer_delay(const struct delay_timer *timer) { - pr_info("Switching to timer-based delay loop\n"); - lpj_fine = freq / HZ; - loops_per_jiffy = lpj_fine; - arm_delay_ops.delay = __timer_delay; - arm_delay_ops.const_udelay = __timer_const_udelay; - arm_delay_ops.udelay = __timer_udelay; + if (!delay_calibrated) { + pr_info("Switching to timer-based delay loop\n"); + delay_timer = timer; + lpj_fine = timer->freq / HZ; + loops_per_jiffy = lpj_fine; + arm_delay_ops.delay = __timer_delay; + arm_delay_ops.const_udelay = __timer_const_udelay; + arm_delay_ops.udelay = __timer_udelay; + delay_calibrated = true; + } else { + pr_info("Ignoring duplicate/late registration of read_current_timer delay\n"); + } } unsigned long __cpuinit calibrate_delay_is_known(void) { + delay_calibrated = true; return lpj_fine; } -#endif diff --git a/trunk/arch/arm/mach-dove/Kconfig b/trunk/arch/arm/mach-dove/Kconfig index dd937c526a45..00154e74ce6b 100644 --- a/trunk/arch/arm/mach-dove/Kconfig +++ b/trunk/arch/arm/mach-dove/Kconfig @@ -15,6 +15,13 @@ config MACH_CM_A510 Say 'Y' here if you want your kernel to support the CompuLab CM-A510 Board. +config MACH_DOVE_DT + bool "Marvell Dove Flattened Device Tree" + select USE_OF + help + Say 'Y' here if you want your kernel to support the + Marvell Dove using flattened device tree. + endmenu endif diff --git a/trunk/arch/arm/mach-dove/Makefile b/trunk/arch/arm/mach-dove/Makefile index fa0f01856060..5e683baf96cf 100644 --- a/trunk/arch/arm/mach-dove/Makefile +++ b/trunk/arch/arm/mach-dove/Makefile @@ -1,4 +1,4 @@ -obj-y += common.o addr-map.o irq.o pcie.o mpp.o - +obj-y += common.o addr-map.o irq.o mpp.o +obj-$(CONFIG_PCI) += pcie.o obj-$(CONFIG_MACH_DOVE_DB) += dove-db-setup.o obj-$(CONFIG_MACH_CM_A510) += cm-a510.o diff --git a/trunk/arch/arm/mach-dove/common.c b/trunk/arch/arm/mach-dove/common.c index 950ad9533d19..b37bef1d5ffa 100644 --- a/trunk/arch/arm/mach-dove/common.c +++ b/trunk/arch/arm/mach-dove/common.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include #include #include @@ -24,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -33,19 +36,17 @@ #include #include "common.h" -static int get_tclk(void); - /***************************************************************************** * I/O Address Mapping ****************************************************************************/ static struct map_desc dove_io_desc[] __initdata = { { - .virtual = DOVE_SB_REGS_VIRT_BASE, + .virtual = (unsigned long) DOVE_SB_REGS_VIRT_BASE, .pfn = __phys_to_pfn(DOVE_SB_REGS_PHYS_BASE), .length = DOVE_SB_REGS_SIZE, .type = MT_DEVICE, }, { - .virtual = DOVE_NB_REGS_VIRT_BASE, + .virtual = (unsigned long) DOVE_NB_REGS_VIRT_BASE, .pfn = __phys_to_pfn(DOVE_NB_REGS_PHYS_BASE), .length = DOVE_NB_REGS_SIZE, .type = MT_DEVICE, @@ -60,14 +61,69 @@ void __init dove_map_io(void) /***************************************************************************** * CLK tree ****************************************************************************/ +static int dove_tclk; + +static DEFINE_SPINLOCK(gating_lock); static struct clk *tclk; -static void __init clk_init(void) +static struct clk __init *dove_register_gate(const char *name, + const char *parent, u8 bit_idx) { - tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, - get_tclk()); + return clk_register_gate(NULL, name, parent, 0, + (void __iomem *)CLOCK_GATING_CONTROL, + bit_idx, 0, &gating_lock); +} + +static void __init dove_clk_init(void) +{ + struct clk *usb0, *usb1, *sata, *pex0, *pex1, *sdio0, *sdio1; + struct clk *nand, *camera, *i2s0, *i2s1, *crypto, *ac97, *pdma; + struct clk *xor0, *xor1, *ge, *gephy; - orion_clkdev_init(tclk); + tclk = clk_register_fixed_rate(NULL, "tclk", NULL, CLK_IS_ROOT, + dove_tclk); + + usb0 = dove_register_gate("usb0", "tclk", CLOCK_GATING_BIT_USB0); + usb1 = dove_register_gate("usb1", "tclk", CLOCK_GATING_BIT_USB1); + sata = dove_register_gate("sata", "tclk", CLOCK_GATING_BIT_SATA); + pex0 = dove_register_gate("pex0", "tclk", CLOCK_GATING_BIT_PCIE0); + pex1 = dove_register_gate("pex1", "tclk", CLOCK_GATING_BIT_PCIE1); + sdio0 = dove_register_gate("sdio0", "tclk", CLOCK_GATING_BIT_SDIO0); + sdio1 = dove_register_gate("sdio1", "tclk", CLOCK_GATING_BIT_SDIO1); + nand = dove_register_gate("nand", "tclk", CLOCK_GATING_BIT_NAND); + camera = dove_register_gate("camera", "tclk", CLOCK_GATING_BIT_CAMERA); + i2s0 = dove_register_gate("i2s0", "tclk", CLOCK_GATING_BIT_I2S0); + i2s1 = dove_register_gate("i2s1", "tclk", CLOCK_GATING_BIT_I2S1); + crypto = dove_register_gate("crypto", "tclk", CLOCK_GATING_BIT_CRYPTO); + ac97 = dove_register_gate("ac97", "tclk", CLOCK_GATING_BIT_AC97); + pdma = dove_register_gate("pdma", "tclk", CLOCK_GATING_BIT_PDMA); + xor0 = dove_register_gate("xor0", "tclk", CLOCK_GATING_BIT_XOR0); + xor1 = dove_register_gate("xor1", "tclk", CLOCK_GATING_BIT_XOR1); + gephy = dove_register_gate("gephy", "tclk", CLOCK_GATING_BIT_GIGA_PHY); + ge = dove_register_gate("ge", "gephy", CLOCK_GATING_BIT_GBE); + + orion_clkdev_add(NULL, "orion_spi.0", tclk); + orion_clkdev_add(NULL, "orion_spi.1", tclk); + orion_clkdev_add(NULL, "orion_wdt", tclk); + orion_clkdev_add(NULL, "mv64xxx_i2c.0", tclk); + + orion_clkdev_add(NULL, "orion-ehci.0", usb0); + orion_clkdev_add(NULL, "orion-ehci.1", usb1); + orion_clkdev_add(NULL, "mv643xx_eth.0", ge); + orion_clkdev_add("0", "sata_mv.0", sata); + orion_clkdev_add("0", "pcie", pex0); + orion_clkdev_add("1", "pcie", pex1); + orion_clkdev_add(NULL, "sdhci-dove.0", sdio0); + orion_clkdev_add(NULL, "sdhci-dove.1", sdio1); + orion_clkdev_add(NULL, "orion_nand", nand); + orion_clkdev_add(NULL, "cafe1000-ccic.0", camera); + orion_clkdev_add(NULL, "kirkwood-i2s.0", i2s0); + orion_clkdev_add(NULL, "kirkwood-i2s.1", i2s1); + orion_clkdev_add(NULL, "mv_crypto", crypto); + orion_clkdev_add(NULL, "dove-ac97", ac97); + orion_clkdev_add(NULL, "dove-pdma", pdma); + orion_clkdev_add(NULL, "mv_xor_shared.0", xor0); + orion_clkdev_add(NULL, "mv_xor_shared.1", xor1); } /***************************************************************************** @@ -178,22 +234,31 @@ void __init dove_init_early(void) orion_time_set_base(TIMER_VIRT_BASE); } -static int get_tclk(void) +static int __init dove_find_tclk(void) { - /* use DOVE_RESET_SAMPLE_HI/LO to detect tclk */ return 166666667; } static void __init dove_timer_init(void) { + dove_tclk = dove_find_tclk(); orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR, - IRQ_DOVE_BRIDGE, get_tclk()); + IRQ_DOVE_BRIDGE, dove_tclk); } struct sys_timer dove_timer = { .init = dove_timer_init, }; +/***************************************************************************** + * Cryptographic Engines and Security Accelerator (CESA) + ****************************************************************************/ +void __init dove_crypto_init(void) +{ + orion_crypto_init(DOVE_CRYPT_PHYS_BASE, DOVE_CESA_PHYS_BASE, + DOVE_CESA_SIZE, IRQ_DOVE_CRYPTO); +} + /***************************************************************************** * XOR 0 ****************************************************************************/ @@ -275,8 +340,8 @@ void __init dove_sdio1_init(void) void __init dove_init(void) { - printk(KERN_INFO "Dove 88AP510 SoC, "); - printk(KERN_INFO "TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000); + pr_info("Dove 88AP510 SoC, TCLK = %d MHz.\n", + (dove_tclk + 499999) / 1000000); #ifdef CONFIG_CACHE_TAUROS2 tauros2_init(0); @@ -284,7 +349,7 @@ void __init dove_init(void) dove_setup_cpu_mbus(); /* Setup root of clk tree */ - clk_init(); + dove_clk_init(); /* internal devices that every board has */ dove_rtc_init(); @@ -307,3 +372,67 @@ void dove_restart(char mode, const char *cmd) while (1) ; } + +#if defined(CONFIG_MACH_DOVE_DT) +/* + * Auxdata required until real OF clock provider + */ +struct of_dev_auxdata dove_auxdata_lookup[] __initdata = { + OF_DEV_AUXDATA("marvell,orion-spi", 0xf1010600, "orion_spi.0", NULL), + OF_DEV_AUXDATA("marvell,orion-spi", 0xf1014600, "orion_spi.1", NULL), + OF_DEV_AUXDATA("marvell,orion-wdt", 0xf1020300, "orion_wdt", NULL), + OF_DEV_AUXDATA("marvell,mv64xxx-i2c", 0xf1011000, "mv64xxx_i2c.0", + NULL), + OF_DEV_AUXDATA("marvell,orion-sata", 0xf10a0000, "sata_mv.0", NULL), + OF_DEV_AUXDATA("marvell,dove-sdhci", 0xf1092000, "sdhci-dove.0", NULL), + OF_DEV_AUXDATA("marvell,dove-sdhci", 0xf1090000, "sdhci-dove.1", NULL), + {}, +}; + +static struct mv643xx_eth_platform_data dove_dt_ge00_data = { + .phy_addr = MV643XX_ETH_PHY_ADDR_DEFAULT, +}; + +static void __init dove_dt_init(void) +{ + pr_info("Dove 88AP510 SoC, TCLK = %d MHz.\n", + (dove_tclk + 499999) / 1000000); + +#ifdef CONFIG_CACHE_TAUROS2 + tauros2_init(); +#endif + dove_setup_cpu_mbus(); + + /* Setup root of clk tree */ + dove_clk_init(); + + /* Internal devices not ported to DT yet */ + dove_rtc_init(); + dove_xor0_init(); + dove_xor1_init(); + + dove_ge00_init(&dove_dt_ge00_data); + dove_ehci0_init(); + dove_ehci1_init(); + dove_pcie_init(1, 1); + dove_crypto_init(); + + of_platform_populate(NULL, of_default_bus_match_table, + dove_auxdata_lookup, NULL); +} + +static const char * const dove_dt_board_compat[] = { + "marvell,dove", + NULL +}; + +DT_MACHINE_START(DOVE_DT, "Marvell Dove (Flattened Device Tree)") + .map_io = dove_map_io, + .init_early = dove_init_early, + .init_irq = orion_dt_init_irq, + .timer = &dove_timer, + .init_machine = dove_dt_init, + .restart = dove_restart, + .dt_compat = dove_dt_board_compat, +MACHINE_END +#endif diff --git a/trunk/arch/arm/mach-dove/common.h b/trunk/arch/arm/mach-dove/common.h index 6432a3ba864b..1a233404b735 100644 --- a/trunk/arch/arm/mach-dove/common.h +++ b/trunk/arch/arm/mach-dove/common.h @@ -26,7 +26,11 @@ void dove_init_irq(void); void dove_setup_cpu_mbus(void); void dove_ge00_init(struct mv643xx_eth_platform_data *eth_data); void dove_sata_init(struct mv_sata_platform_data *sata_data); +#ifdef CONFIG_PCI void dove_pcie_init(int init_port0, int init_port1); +#else +static inline void dove_pcie_init(int init_port0, int init_port1) { } +#endif void dove_ehci0_init(void); void dove_ehci1_init(void); void dove_uart0_init(void); diff --git a/trunk/arch/arm/mach-dove/include/mach/bridge-regs.h b/trunk/arch/arm/mach-dove/include/mach/bridge-regs.h index f953bb54aa9d..99f259e8cf33 100644 --- a/trunk/arch/arm/mach-dove/include/mach/bridge-regs.h +++ b/trunk/arch/arm/mach-dove/include/mach/bridge-regs.h @@ -13,22 +13,22 @@ #include -#define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0000) +#define CPU_CONFIG (BRIDGE_VIRT_BASE + 0x0000) -#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) +#define CPU_CONTROL (BRIDGE_VIRT_BASE + 0x0104) #define CPU_CTRL_PCIE0_LINK 0x00000001 #define CPU_RESET 0x00000002 #define CPU_CTRL_PCIE1_LINK 0x00000008 -#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) +#define RSTOUTn_MASK (BRIDGE_VIRT_BASE + 0x0108) #define SOFT_RESET_OUT_EN 0x00000004 -#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) +#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE + 0x010c) #define SOFT_RESET 0x00000001 #define BRIDGE_INT_TIMER1_CLR (~0x0004) -#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200) +#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0200) #define IRQ_CAUSE_LOW_OFF 0x0000 #define IRQ_MASK_LOW_OFF 0x0004 #define FIQ_MASK_LOW_OFF 0x0008 @@ -47,9 +47,9 @@ #define ENDPOINT_MASK_HIGH (IRQ_VIRT_BASE + ENDPOINT_MASK_HIGH_OFF) #define PCIE_INTERRUPT_MASK (IRQ_VIRT_BASE + PCIE_INTERRUPT_MASK_OFF) -#define POWER_MANAGEMENT (BRIDGE_VIRT_BASE | 0x011c) +#define POWER_MANAGEMENT (BRIDGE_VIRT_BASE + 0x011c) -#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300) -#define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE | 0x0300) +#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE + 0x0300) +#define TIMER_PHYS_BASE (BRIDGE_PHYS_BASE + 0x0300) #endif diff --git a/trunk/arch/arm/mach-dove/include/mach/dove.h b/trunk/arch/arm/mach-dove/include/mach/dove.h index c91e3004a47b..661725e3115a 100644 --- a/trunk/arch/arm/mach-dove/include/mach/dove.h +++ b/trunk/arch/arm/mach-dove/include/mach/dove.h @@ -25,7 +25,7 @@ */ #define DOVE_CESA_PHYS_BASE 0xc8000000 -#define DOVE_CESA_VIRT_BASE 0xfdb00000 +#define DOVE_CESA_VIRT_BASE IOMEM(0xfdb00000) #define DOVE_CESA_SIZE SZ_1M #define DOVE_PCIE0_MEM_PHYS_BASE 0xe0000000 @@ -38,15 +38,15 @@ #define DOVE_BOOTROM_SIZE SZ_128M #define DOVE_SCRATCHPAD_PHYS_BASE 0xf0000000 -#define DOVE_SCRATCHPAD_VIRT_BASE 0xfdd00000 +#define DOVE_SCRATCHPAD_VIRT_BASE IOMEM(0xfdd00000) #define DOVE_SCRATCHPAD_SIZE SZ_1M #define DOVE_SB_REGS_PHYS_BASE 0xf1000000 -#define DOVE_SB_REGS_VIRT_BASE 0xfde00000 +#define DOVE_SB_REGS_VIRT_BASE IOMEM(0xfde00000) #define DOVE_SB_REGS_SIZE SZ_8M #define DOVE_NB_REGS_PHYS_BASE 0xf1800000 -#define DOVE_NB_REGS_VIRT_BASE 0xfe600000 +#define DOVE_NB_REGS_VIRT_BASE IOMEM(0xfe600000) #define DOVE_NB_REGS_SIZE SZ_8M #define DOVE_PCIE0_IO_PHYS_BASE 0xf2000000 @@ -62,75 +62,75 @@ */ /* SPI, I2C, UART */ -#define DOVE_I2C_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x11000) -#define DOVE_UART0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12000) -#define DOVE_UART0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12000) -#define DOVE_UART1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12100) -#define DOVE_UART1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12100) -#define DOVE_UART2_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12200) -#define DOVE_UART2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12200) -#define DOVE_UART3_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12300) -#define DOVE_UART3_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12300) -#define DOVE_SPI0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x10600) -#define DOVE_SPI1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x14600) +#define DOVE_I2C_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x11000) +#define DOVE_UART0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x12000) +#define DOVE_UART0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x12000) +#define DOVE_UART1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x12100) +#define DOVE_UART1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x12100) +#define DOVE_UART2_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x12200) +#define DOVE_UART2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x12200) +#define DOVE_UART3_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x12300) +#define DOVE_UART3_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x12300) +#define DOVE_SPI0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x10600) +#define DOVE_SPI1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x14600) /* North-South Bridge */ -#define BRIDGE_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x20000) -#define BRIDGE_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x20000) +#define BRIDGE_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x20000) +#define BRIDGE_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x20000) /* Cryptographic Engine */ -#define DOVE_CRYPT_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x30000) +#define DOVE_CRYPT_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x30000) /* PCIe 0 */ -#define DOVE_PCIE0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x40000) +#define DOVE_PCIE0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x40000) /* USB */ -#define DOVE_USB0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x50000) -#define DOVE_USB1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x51000) +#define DOVE_USB0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x50000) +#define DOVE_USB1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x51000) /* XOR 0 Engine */ -#define DOVE_XOR0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60800) -#define DOVE_XOR0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60800) -#define DOVE_XOR0_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60A00) -#define DOVE_XOR0_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60A00) +#define DOVE_XOR0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x60800) +#define DOVE_XOR0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x60800) +#define DOVE_XOR0_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x60A00) +#define DOVE_XOR0_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x60A00) /* XOR 1 Engine */ -#define DOVE_XOR1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60900) -#define DOVE_XOR1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60900) -#define DOVE_XOR1_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60B00) -#define DOVE_XOR1_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60B00) +#define DOVE_XOR1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x60900) +#define DOVE_XOR1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x60900) +#define DOVE_XOR1_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x60B00) +#define DOVE_XOR1_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x60B00) /* Gigabit Ethernet */ -#define DOVE_GE00_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x70000) +#define DOVE_GE00_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x70000) /* PCIe 1 */ -#define DOVE_PCIE1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x80000) +#define DOVE_PCIE1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0x80000) /* CAFE */ -#define DOVE_SDIO0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x92000) -#define DOVE_SDIO1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x90000) -#define DOVE_CAM_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x94000) -#define DOVE_CAFE_WIN_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x98000) +#define DOVE_SDIO0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x92000) +#define DOVE_SDIO1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x90000) +#define DOVE_CAM_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x94000) +#define DOVE_CAFE_WIN_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0x98000) /* SATA */ -#define DOVE_SATA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xa0000) +#define DOVE_SATA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xa0000) /* I2S/SPDIF */ -#define DOVE_AUD0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb0000) -#define DOVE_AUD1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb4000) +#define DOVE_AUD0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xb0000) +#define DOVE_AUD1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xb4000) /* NAND Flash Controller */ -#define DOVE_NFC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xc0000) +#define DOVE_NFC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xc0000) /* MPP, GPIO, Reset Sampling */ -#define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0200) +#define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0200) #define DOVE_PMU_MPP_GENERAL_CTRL (DOVE_MPP_VIRT_BASE + 0x10) -#define DOVE_RESET_SAMPLE_LO (DOVE_MPP_VIRT_BASE | 0x014) -#define DOVE_RESET_SAMPLE_HI (DOVE_MPP_VIRT_BASE | 0x018) -#define DOVE_GPIO_LO_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0400) -#define DOVE_GPIO_HI_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0420) -#define DOVE_GPIO2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe8400) -#define DOVE_MPP_GENERAL_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe803c) +#define DOVE_RESET_SAMPLE_LO (DOVE_MPP_VIRT_BASE + 0x014) +#define DOVE_RESET_SAMPLE_HI (DOVE_MPP_VIRT_BASE + 0x018) +#define DOVE_GPIO_LO_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0400) +#define DOVE_GPIO_HI_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0420) +#define DOVE_GPIO2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xe8400) +#define DOVE_MPP_GENERAL_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xe803c) #define DOVE_AU1_SPDIFO_GPIO_EN (1 << 1) #define DOVE_NAND_GPIO_EN (1 << 0) #define DOVE_MPP_CTRL4_VIRT_BASE (DOVE_GPIO_LO_VIRT_BASE + 0x40) @@ -142,44 +142,44 @@ #define DOVE_SD0_GPIO_SEL (1 << 0) /* Power Management */ -#define DOVE_PMU_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0000) +#define DOVE_PMU_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xd0000) #define DOVE_PMU_SIG_CTRL (DOVE_PMU_VIRT_BASE + 0x802c) /* Real Time Clock */ -#define DOVE_RTC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xd8500) +#define DOVE_RTC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xd8500) /* AC97 */ -#define DOVE_AC97_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe0000) -#define DOVE_AC97_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe0000) +#define DOVE_AC97_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xe0000) +#define DOVE_AC97_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xe0000) /* Peripheral DMA */ -#define DOVE_PDMA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe4000) -#define DOVE_PDMA_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe4000) +#define DOVE_PDMA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xe4000) +#define DOVE_PDMA_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE + 0xe4000) -#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE | 0xe802C) +#define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE + 0xe802C) #define DOVE_TWSI_ENABLE_OPTION1 (1 << 7) -#define DOVE_GLOBAL_CONFIG_2 (DOVE_SB_REGS_VIRT_BASE | 0xe8030) +#define DOVE_GLOBAL_CONFIG_2 (DOVE_SB_REGS_VIRT_BASE + 0xe8030) #define DOVE_TWSI_ENABLE_OPTION2 (1 << 20) #define DOVE_TWSI_ENABLE_OPTION3 (1 << 21) #define DOVE_TWSI_OPTION3_GPIO (1 << 22) -#define DOVE_SSP_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xec000) -#define DOVE_SSP_CTRL_STATUS_1 (DOVE_SB_REGS_VIRT_BASE | 0xe8034) +#define DOVE_SSP_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE + 0xec000) +#define DOVE_SSP_CTRL_STATUS_1 (DOVE_SB_REGS_VIRT_BASE + 0xe8034) #define DOVE_SSP_ON_AU1 (1 << 0) #define DOVE_SSP_CLOCK_ENABLE (1 << 1) #define DOVE_SSP_BPB_CLOCK_SRC_SSP (1 << 11) /* Memory Controller */ -#define DOVE_MC_VIRT_BASE (DOVE_NB_REGS_VIRT_BASE | 0x00000) +#define DOVE_MC_VIRT_BASE (DOVE_NB_REGS_VIRT_BASE + 0x00000) /* LCD Controller */ -#define DOVE_LCD_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000) -#define DOVE_LCD1_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x20000) -#define DOVE_LCD2_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000) -#define DOVE_LCD_DCON_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x30000) +#define DOVE_LCD_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x10000) +#define DOVE_LCD1_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x20000) +#define DOVE_LCD2_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x10000) +#define DOVE_LCD_DCON_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x30000) /* Graphic Engine */ -#define DOVE_GPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x40000) +#define DOVE_GPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x40000) /* Video Engine */ -#define DOVE_VPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x400000) +#define DOVE_VPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE + 0x400000) #endif diff --git a/trunk/arch/arm/mach-dove/include/mach/pm.h b/trunk/arch/arm/mach-dove/include/mach/pm.h index 3ad9f946a9e8..7bcd0dfce4b1 100644 --- a/trunk/arch/arm/mach-dove/include/mach/pm.h +++ b/trunk/arch/arm/mach-dove/include/mach/pm.h @@ -13,24 +13,42 @@ #include #define CLOCK_GATING_CONTROL (DOVE_PMU_VIRT_BASE + 0x38) -#define CLOCK_GATING_USB0_MASK (1 << 0) -#define CLOCK_GATING_USB1_MASK (1 << 1) -#define CLOCK_GATING_GBE_MASK (1 << 2) -#define CLOCK_GATING_SATA_MASK (1 << 3) -#define CLOCK_GATING_PCIE0_MASK (1 << 4) -#define CLOCK_GATING_PCIE1_MASK (1 << 5) -#define CLOCK_GATING_SDIO0_MASK (1 << 8) -#define CLOCK_GATING_SDIO1_MASK (1 << 9) -#define CLOCK_GATING_NAND_MASK (1 << 10) -#define CLOCK_GATING_CAMERA_MASK (1 << 11) -#define CLOCK_GATING_I2S0_MASK (1 << 12) -#define CLOCK_GATING_I2S1_MASK (1 << 13) -#define CLOCK_GATING_CRYPTO_MASK (1 << 15) -#define CLOCK_GATING_AC97_MASK (1 << 21) -#define CLOCK_GATING_PDMA_MASK (1 << 22) -#define CLOCK_GATING_XOR0_MASK (1 << 23) -#define CLOCK_GATING_XOR1_MASK (1 << 24) -#define CLOCK_GATING_GIGA_PHY_MASK (1 << 30) +#define CLOCK_GATING_BIT_USB0 0 +#define CLOCK_GATING_BIT_USB1 1 +#define CLOCK_GATING_BIT_GBE 2 +#define CLOCK_GATING_BIT_SATA 3 +#define CLOCK_GATING_BIT_PCIE0 4 +#define CLOCK_GATING_BIT_PCIE1 5 +#define CLOCK_GATING_BIT_SDIO0 8 +#define CLOCK_GATING_BIT_SDIO1 9 +#define CLOCK_GATING_BIT_NAND 10 +#define CLOCK_GATING_BIT_CAMERA 11 +#define CLOCK_GATING_BIT_I2S0 12 +#define CLOCK_GATING_BIT_I2S1 13 +#define CLOCK_GATING_BIT_CRYPTO 15 +#define CLOCK_GATING_BIT_AC97 21 +#define CLOCK_GATING_BIT_PDMA 22 +#define CLOCK_GATING_BIT_XOR0 23 +#define CLOCK_GATING_BIT_XOR1 24 +#define CLOCK_GATING_BIT_GIGA_PHY 30 +#define CLOCK_GATING_USB0_MASK (1 << CLOCK_GATING_BIT_USB0) +#define CLOCK_GATING_USB1_MASK (1 << CLOCK_GATING_BIT_USB1) +#define CLOCK_GATING_GBE_MASK (1 << CLOCK_GATING_BIT_GBE) +#define CLOCK_GATING_SATA_MASK (1 << CLOCK_GATING_BIT_SATA) +#define CLOCK_GATING_PCIE0_MASK (1 << CLOCK_GATING_BIT_PCIE0) +#define CLOCK_GATING_PCIE1_MASK (1 << CLOCK_GATING_BIT_PCIE1) +#define CLOCK_GATING_SDIO0_MASK (1 << CLOCK_GATING_BIT_SDIO0) +#define CLOCK_GATING_SDIO1_MASK (1 << CLOCK_GATING_BIT_SDIO1) +#define CLOCK_GATING_NAND_MASK (1 << CLOCK_GATING_BIT_NAND) +#define CLOCK_GATING_CAMERA_MASK (1 << CLOCK_GATING_BIT_CAMERA) +#define CLOCK_GATING_I2S0_MASK (1 << CLOCK_GATING_BIT_I2S0) +#define CLOCK_GATING_I2S1_MASK (1 << CLOCK_GATING_BIT_I2S1) +#define CLOCK_GATING_CRYPTO_MASK (1 << CLOCK_GATING_BIT_CRYPTO) +#define CLOCK_GATING_AC97_MASK (1 << CLOCK_GATING_BIT_AC97) +#define CLOCK_GATING_PDMA_MASK (1 << CLOCK_GATING_BIT_PDMA) +#define CLOCK_GATING_XOR0_MASK (1 << CLOCK_GATING_BIT_XOR0) +#define CLOCK_GATING_XOR1_MASK (1 << CLOCK_GATING_BIT_XOR1) +#define CLOCK_GATING_GIGA_PHY_MASK (1 << CLOCK_GATING_BIT_GIGA_PHY) #define PMU_INTERRUPT_CAUSE (DOVE_PMU_VIRT_BASE + 0x50) #define PMU_INTERRUPT_MASK (DOVE_PMU_VIRT_BASE + 0x54) diff --git a/trunk/arch/arm/mach-dove/irq.c b/trunk/arch/arm/mach-dove/irq.c index 186357f3b4db..087711524e8a 100644 --- a/trunk/arch/arm/mach-dove/irq.c +++ b/trunk/arch/arm/mach-dove/irq.c @@ -100,19 +100,19 @@ void __init dove_init_irq(void) { int i; - orion_irq_init(0, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF)); - orion_irq_init(32, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF)); + orion_irq_init(0, IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF); + orion_irq_init(32, IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF); /* * Initialize gpiolib for GPIOs 0-71. */ - orion_gpio_init(NULL, 0, 32, (void __iomem *)DOVE_GPIO_LO_VIRT_BASE, 0, + orion_gpio_init(NULL, 0, 32, DOVE_GPIO_LO_VIRT_BASE, 0, IRQ_DOVE_GPIO_START, gpio0_irqs); - orion_gpio_init(NULL, 32, 32, (void __iomem *)DOVE_GPIO_HI_VIRT_BASE, 0, + orion_gpio_init(NULL, 32, 32, DOVE_GPIO_HI_VIRT_BASE, 0, IRQ_DOVE_GPIO_START + 32, gpio1_irqs); - orion_gpio_init(NULL, 64, 8, (void __iomem *)DOVE_GPIO2_VIRT_BASE, 0, + orion_gpio_init(NULL, 64, 8, DOVE_GPIO2_VIRT_BASE, 0, IRQ_DOVE_GPIO_START + 64, gpio2_irqs); /* diff --git a/trunk/arch/arm/mach-dove/pcie.c b/trunk/arch/arm/mach-dove/pcie.c index 355332d502cb..bb15b26041cb 100644 --- a/trunk/arch/arm/mach-dove/pcie.c +++ b/trunk/arch/arm/mach-dove/pcie.c @@ -182,18 +182,18 @@ static struct hw_pci dove_pci __initdata = { .map_irq = dove_pcie_map_irq, }; -static void __init add_pcie_port(int index, unsigned long base) +static void __init add_pcie_port(int index, void __iomem *base) { printk(KERN_INFO "Dove PCIe port %d: ", index); - if (orion_pcie_link_up((void __iomem *)base)) { + if (orion_pcie_link_up(base)) { struct pcie_port *pp = &pcie_port[num_pcie_ports++]; printk(KERN_INFO "link up\n"); pp->index = index; pp->root_bus_nr = -1; - pp->base = (void __iomem *)base; + pp->base = base; spin_lock_init(&pp->conf_lock); memset(&pp->res, 0, sizeof(pp->res)); } else { diff --git a/trunk/arch/arm/mach-exynos/platsmp.c b/trunk/arch/arm/mach-exynos/platsmp.c index 8d57e4223bdb..f93d820ecab5 100644 --- a/trunk/arch/arm/mach-exynos/platsmp.c +++ b/trunk/arch/arm/mach-exynos/platsmp.c @@ -134,7 +134,7 @@ static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct __raw_writel(virt_to_phys(exynos4_secondary_startup), CPU1_BOOT_REG); - gic_raise_softirq(cpumask_of(cpu), 1); + gic_raise_softirq(cpumask_of(cpu), 0); if (pen_release == -1) break; diff --git a/trunk/arch/arm/mach-imx/clk-imx27.c b/trunk/arch/arm/mach-imx/clk-imx27.c index f69ca4680049..3b6b640eed24 100644 --- a/trunk/arch/arm/mach-imx/clk-imx27.c +++ b/trunk/arch/arm/mach-imx/clk-imx27.c @@ -239,8 +239,8 @@ int __init mx27_clocks_init(unsigned long fref) clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); clk_register_clkdev(clk[nfc_baud_gate], NULL, "mxc_nand.0"); - clk_register_clkdev(clk[vpu_baud_gate], "per", "imx-vpu"); - clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "imx-vpu"); + clk_register_clkdev(clk[vpu_baud_gate], "per", "coda-imx27.0"); + clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "coda-imx27.0"); clk_register_clkdev(clk[dma_ahb_gate], "ahb", "imx-dma"); clk_register_clkdev(clk[dma_ipg_gate], "ipg", "imx-dma"); clk_register_clkdev(clk[fec_ipg_gate], "ipg", "imx27-fec.0"); diff --git a/trunk/arch/arm/mach-imx/devices-imx27.h b/trunk/arch/arm/mach-imx/devices-imx27.h index 436c5720fe6a..04822932cdd1 100644 --- a/trunk/arch/arm/mach-imx/devices-imx27.h +++ b/trunk/arch/arm/mach-imx/devices-imx27.h @@ -17,6 +17,10 @@ extern const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data; #define imx27_add_fsl_usb2_udc(pdata) \ imx_add_fsl_usb2_udc(&imx27_fsl_usb2_udc_data, pdata) +extern const struct imx_imx27_coda_data imx27_coda_data; +#define imx27_add_coda() \ + imx_add_imx27_coda(&imx27_coda_data) + extern const struct imx_imx2_wdt_data imx27_imx2_wdt_data; #define imx27_add_imx2_wdt() \ imx_add_imx2_wdt(&imx27_imx2_wdt_data) diff --git a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index f264ddddd47c..821d6aac411c 100644 --- a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c @@ -32,13 +32,13 @@ #include #include #include -#include #include #include #include #include #include #include +#include #include #include #include @@ -233,10 +233,8 @@ static void __init visstrim_camera_init(void) static void __init visstrim_reserve(void) { /* reserve 4 MiB for mx2-camera */ - mx2_camera_base = memblock_alloc(MX2_CAMERA_BUF_SIZE, + mx2_camera_base = arm_memblock_steal(3 * MX2_CAMERA_BUF_SIZE, MX2_CAMERA_BUF_SIZE); - memblock_free(mx2_camera_base, MX2_CAMERA_BUF_SIZE); - memblock_remove(mx2_camera_base, MX2_CAMERA_BUF_SIZE); } /* GPIOs used as events for applications */ @@ -405,6 +403,47 @@ static const struct imx_ssi_platform_data visstrim_m10_ssi_pdata __initconst = { .flags = IMX_SSI_DMA | IMX_SSI_SYN, }; +/* coda */ + +static void __init visstrim_coda_init(void) +{ + struct platform_device *pdev; + int dma; + + pdev = imx27_add_coda(); + dma = dma_declare_coherent_memory(&pdev->dev, + mx2_camera_base + MX2_CAMERA_BUF_SIZE, + mx2_camera_base + MX2_CAMERA_BUF_SIZE, + MX2_CAMERA_BUF_SIZE, + DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); + if (!(dma & DMA_MEMORY_MAP)) + return; +} + +/* DMA deinterlace */ +static struct platform_device visstrim_deinterlace = { + .name = "m2m-deinterlace", + .id = 0, +}; + +static void __init visstrim_deinterlace_init(void) +{ + int ret = -ENOMEM; + struct platform_device *pdev = &visstrim_deinterlace; + int dma; + + ret = platform_device_register(pdev); + + dma = dma_declare_coherent_memory(&pdev->dev, + mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, + mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, + MX2_CAMERA_BUF_SIZE, + DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); + if (!(dma & DMA_MEMORY_MAP)) + return; +} + + static void __init visstrim_m10_revision(void) { int exp_version = 0; @@ -467,7 +506,9 @@ static void __init visstrim_m10_board_init(void) platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0, &iclink_tvp5150, sizeof(iclink_tvp5150)); gpio_led_register_device(0, &visstrim_m10_led_data); + visstrim_deinterlace_init(); visstrim_camera_init(); + visstrim_coda_init(); } static void __init visstrim_m10_timer_init(void) diff --git a/trunk/arch/arm/mach-integrator/common.h b/trunk/arch/arm/mach-integrator/common.h index 899561d8db28..c3ff21b5ea24 100644 --- a/trunk/arch/arm/mach-integrator/common.h +++ b/trunk/arch/arm/mach-integrator/common.h @@ -1,3 +1,6 @@ +#include +extern struct amba_pl010_data integrator_uart_data; void integrator_init_early(void); +int integrator_init(bool is_cp); void integrator_reserve(void); void integrator_restart(char, const char *); diff --git a/trunk/arch/arm/mach-integrator/core.c b/trunk/arch/arm/mach-integrator/core.c index dad3cb74ed31..ea22a17246d7 100644 --- a/trunk/arch/arm/mach-integrator/core.c +++ b/trunk/arch/arm/mach-integrator/core.c @@ -32,7 +32,9 @@ #include #include -static struct amba_pl010_data integrator_uart_data; +#include "common.h" + +#ifdef CONFIG_ATAGS #define INTEGRATOR_RTC_IRQ { IRQ_RTCINT } #define INTEGRATOR_UART0_IRQ { IRQ_UARTINT0 } @@ -60,7 +62,7 @@ static struct amba_device *amba_devs[] __initdata = { &kmi1_device, }; -static int __init integrator_init(void) +int __init integrator_init(bool is_cp) { int i; @@ -69,7 +71,7 @@ static int __init integrator_init(void) * hard-code them. The Integator/CP and forward have proper cell IDs. * Else we leave them undefined to the bus driver can autoprobe them. */ - if (machine_is_integrator()) { + if (!is_cp) { rtc_device.periphid = 0x00041030; uart0_device.periphid = 0x00041010; uart1_device.periphid = 0x00041010; @@ -85,7 +87,7 @@ static int __init integrator_init(void) return 0; } -arch_initcall(integrator_init); +#endif /* * On the Integrator platform, the port RTS and DTR are provided by @@ -100,11 +102,14 @@ arch_initcall(integrator_init); static void integrator_uart_set_mctrl(struct amba_device *dev, void __iomem *base, unsigned int mctrl) { unsigned int ctrls = 0, ctrlc = 0, rts_mask, dtr_mask; + u32 phybase = dev->res.start; - if (dev == &uart0_device) { + if (phybase == INTEGRATOR_UART0_BASE) { + /* UART0 */ rts_mask = 1 << 4; dtr_mask = 1 << 5; } else { + /* UART1 */ rts_mask = 1 << 6; dtr_mask = 1 << 7; } @@ -123,7 +128,7 @@ static void integrator_uart_set_mctrl(struct amba_device *dev, void __iomem *bas __raw_writel(ctrlc, SC_CTRLC); } -static struct amba_pl010_data integrator_uart_data = { +struct amba_pl010_data integrator_uart_data = { .set_mctrl = integrator_uart_set_mctrl, }; diff --git a/trunk/arch/arm/mach-integrator/integrator_ap.c b/trunk/arch/arm/mach-integrator/integrator_ap.c index 2215d96cd735..d5b5435a09ae 100644 --- a/trunk/arch/arm/mach-integrator/integrator_ap.c +++ b/trunk/arch/arm/mach-integrator/integrator_ap.c @@ -34,6 +34,9 @@ #include #include #include +#include +#include +#include #include