Hi everybody, This (too big) patch set adds support for the media controller and the V4L2 subdev pad-level APIs to the MeeGo kernel.
The first 28 patches have been backported from upstream (2.6.36 or 2.6.37-rc). They are required by the rest of the code. I'm aware that they don't pass checkpatch.pl but there's not much I can do about that (fixing the warnings would make later merges from upstream more difficult). The next 31 patches contain V4L2 subdev device node support, the media controller API and the V4L2 subdev pad-level API. They have all been posted to the linux-media mailing list and went through several rounds of review. The stream of comments eventually died with all developers happy with the result (or at least too tired to complain). Taking review to the next step I've posted the media controller patches (36 to 47) to linux-omap and LKML minutes ago. All the patches are available in the media-2.6.35-0003-subdev-pad branch of the http://git.linuxtv.org/pinchartl/media.git git tree. The patches conflict with the OMAP3 ISP support for the N900 and should replace it. A new version of the OMAP3 ISP driver based on those patches is available in the media-2.6.35-0006-rx51 branch of the above git tree. I will arrange its submission to meego-kernel with Ilkka Koskinen. Antti Koskipaa (1): v4l: v4l2_subdev userspace crop API Guennadi Liakhovetski (2): V4L/DVB: mediabus: fix ambiguous pixel code names V4L/DVB: V4L2: mediabus: add 12-bit Bayer and YUV420 pixel formats Hans Verkuil (6): V4L/DVB: v4l: add new YUV mediabus formats V4L/DVB: v4l: add RGB444 mediabus formats V4L/DVB: v4l2: Add new control handling framework V4L/DVB: v4l2-ctrls: reorder 'case' statements to match order in header V4L/DVB: Documentation: add v4l2-controls.txt documenting the new controls API V4L/DVB: v4l2: hook up the new control framework into the core framework Laurent Pinchart (43): v4l: Load I2C modules based on modalias v4l: Remove hardcoded module names passed to v4l2_i2c_new_subdev* go7007: Add MODULE_DEVICE_TABLE to the go7007 I2C modules go7007: Fix the TW2804 I2C type name go7007: Don't use module names to load I2C modules zoran: Don't use module names to load I2C modules pvrusb2: Don't use module names to load I2C modules sh_vou: Don't use module names to load I2C modules radio-si4713: Don't use module names to load I2C modules soc_camera: Don't use module names to load I2C modules vpfe_capture: Don't use module names to load I2C modules vpif_display: Don't use module names to load I2C modules vpif_capture: Don't use module names to load I2C modules ivtv: Don't use module names to load I2C modules cx18: Don't use module names to load I2C modules V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv V4L/DVB: v4l: Add a v4l2_subdev host private data field v4l: Share code between video_usercopy and video_ioctl2 v4l: subdev: Don't require core operations v4l: subdev: Merge v4l2_i2c_new_subdev_cfg and v4l2_i2c_new_subdev v4l: subdev: Add device node support v4l: subdev: Uninline the v4l2_subdev_init function v4l: subdev: Control ioctls support media: Media device node support media: Media device media: Entities, pads and links media: Media device information query media: Entities, pads and links enumeration media: Links setup media: Entity locking and pipeline management v4l: Add a media_device pointer to the v4l2_device structure v4l: Make video_device inherit from media_entity v4l: Make v4l2_subdev inherit from media_entity v4l: Move the media/v4l2-mediabus.h header to include/linux v4l: Replace enums with fixed-sized fields in public structure v4l: Rename V4L2_MBUS_FMT_GREY8_1X8 to V4L2_MBUS_FMT_Y8_1X8 v4l: Group media bus pixel codes by types and sort them alphabetically v4l: Add 8-bit YUYV on 16-bit bus and SGRBG10 media bus pixel codes v4l: Add remaining RAW10 patterns w DPCM pixel code variants v4l: v4l2_subdev pad-level operations v4l: v4l2_subdev userspace format API - documentation binary files v4l: v4l2_subdev userspace format API v4l: v4l2_subdev userspace frame interval API Mauro Carvalho Chehab (1): V4L/DVB: v4l2-ctrls: Whitespace cleanups Randy Dunlap (1): V4L/DVB: v4l2-ctrls.c: needs to include slab.h Sakari Ailus (3): v4l: subdev: Events support media: Entity graph traversal media: Reference count and power handling Sascha Hauer (1): v4l2-mediabus: Add pixelcodes for BGR565 formats Stanimir Varbanov (1): v4l: Create v4l2 subdev file handle structure Documentation/DocBook/Makefile | 5 +- Documentation/DocBook/media-entities.tmpl | 50 + Documentation/DocBook/media.tmpl | 3 + Documentation/DocBook/v4l/bayer.pdf | Bin 0 -> 12116 bytes Documentation/DocBook/v4l/bayer.png | Bin 0 -> 9725 bytes Documentation/DocBook/v4l/dev-subdev.xml | 307 +++ Documentation/DocBook/v4l/media-controller.xml | 89 + Documentation/DocBook/v4l/media-func-close.xml | 59 + Documentation/DocBook/v4l/media-func-ioctl.xml | 116 + Documentation/DocBook/v4l/media-func-open.xml | 94 + .../DocBook/v4l/media-ioc-device-info.xml | 133 ++ .../DocBook/v4l/media-ioc-enum-entities.xml | 287 +++ Documentation/DocBook/v4l/media-ioc-enum-links.xml | 202 ++ Documentation/DocBook/v4l/media-ioc-setup-link.xml | 90 + Documentation/DocBook/v4l/pipeline.pdf | Bin 0 -> 20276 bytes Documentation/DocBook/v4l/pipeline.png | Bin 0 -> 12130 bytes Documentation/DocBook/v4l/subdev-formats.xml | 2410 ++++++++++++++++++++ Documentation/DocBook/v4l/v4l2.xml | 7 + Documentation/DocBook/v4l/vidioc-streamon.xml | 9 + .../v4l/vidioc-subdev-enum-frame-interval.xml | 146 ++ .../DocBook/v4l/vidioc-subdev-enum-frame-size.xml | 148 ++ .../DocBook/v4l/vidioc-subdev-enum-mbus-code.xml | 113 + Documentation/DocBook/v4l/vidioc-subdev-g-crop.xml | 143 ++ Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml | 168 ++ .../DocBook/v4l/vidioc-subdev-g-frame-interval.xml | 135 ++ Documentation/media-framework.txt | 380 +++ Documentation/video4linux/v4l2-controls.txt | 648 ++++++ Documentation/video4linux/v4l2-framework.txt | 129 +- arch/arm/mach-mx3/mach-pcm037.c | 2 - arch/arm/mach-mx3/mx31moboard-marxbot.c | 1 - arch/arm/mach-mx3/mx31moboard-smartbot.c | 1 - arch/arm/mach-pxa/em-x270.c | 1 - arch/arm/mach-pxa/ezx.c | 2 - arch/arm/mach-pxa/mioa701.c | 1 - arch/arm/mach-pxa/pcm990-baseboard.c | 2 - arch/sh/boards/mach-ap325rxa/setup.c | 3 +- arch/sh/boards/mach-ecovec24/setup.c | 4 - arch/sh/boards/mach-kfr2r09/setup.c | 1 - arch/sh/boards/mach-migor/setup.c | 2 - arch/sh/boards/mach-se/7724/setup.c | 1 - drivers/media/Kconfig | 22 + drivers/media/Makefile | 10 +- drivers/media/media-device.c | 379 +++ drivers/media/media-devnode.c | 321 +++ drivers/media/media-entity.c | 680 ++++++ drivers/media/radio/radio-si4713.c | 4 +- drivers/media/video/Makefile | 2 +- drivers/media/video/ak881x.c | 6 +- drivers/media/video/au0828/au0828-cards.c | 4 +- drivers/media/video/bt8xx/bttv-cards.c | 22 +- drivers/media/video/cafe_ccic.c | 2 +- drivers/media/video/cx18/cx18-i2c.c | 23 +- drivers/media/video/cx231xx/cx231xx-cards.c | 4 +- drivers/media/video/cx23885/cx23885-cards.c | 2 +- drivers/media/video/cx23885/cx23885-video.c | 6 +- drivers/media/video/cx88/cx88-cards.c | 8 +- drivers/media/video/cx88/cx88-video.c | 4 +- drivers/media/video/davinci/vpfe_capture.c | 4 +- drivers/media/video/davinci/vpif_capture.c | 4 +- drivers/media/video/davinci/vpif_display.c | 4 +- drivers/media/video/em28xx/em28xx-cards.c | 18 +- drivers/media/video/ivtv/ivtv-i2c.c | 39 +- drivers/media/video/mt9m001.c | 28 +- drivers/media/video/mt9m111.c | 36 +- drivers/media/video/mt9t031.c | 24 +- drivers/media/video/mt9t112.c | 26 +- drivers/media/video/mt9v022.c | 30 +- drivers/media/video/mxb.c | 14 +- drivers/media/video/ov772x.c | 26 +- drivers/media/video/ov9640.c | 26 +- drivers/media/video/pvrusb2/pvrusb2-hdw.c | 11 +- drivers/media/video/pxa_camera.c | 8 +- drivers/media/video/rj54n1cb0c.c | 34 +- drivers/media/video/saa7134/saa7134-cards.c | 8 +- drivers/media/video/saa7134/saa7134-core.c | 4 +- drivers/media/video/sh_mobile_ceu_camera.c | 16 +- drivers/media/video/sh_vou.c | 10 +- drivers/media/video/soc_camera.c | 4 +- drivers/media/video/soc_mediabus.c | 10 +- drivers/media/video/tw9910.c | 28 +- drivers/media/video/usbvision/usbvision-i2c.c | 6 +- drivers/media/video/v4l2-common.c | 503 +---- drivers/media/video/v4l2-ctrls.c | 1852 +++++++++++++++ drivers/media/video/v4l2-dev.c | 82 +- drivers/media/video/v4l2-device.c | 73 +- drivers/media/video/v4l2-ioctl.c | 262 +-- drivers/media/video/v4l2-subdev.c | 337 +++ drivers/media/video/vino.c | 4 +- drivers/media/video/w9968cf.c | 2 +- drivers/media/video/zoran/zoran.h | 2 - drivers/media/video/zoran/zoran_card.c | 23 +- drivers/staging/go7007/go7007-driver.c | 43 +- drivers/staging/go7007/go7007-usb.c | 2 +- drivers/staging/go7007/wis-ov7640.c | 1 + drivers/staging/go7007/wis-saa7113.c | 1 + drivers/staging/go7007/wis-saa7115.c | 1 + drivers/staging/go7007/wis-sony-tuner.c | 1 + drivers/staging/go7007/wis-tw2804.c | 1 + drivers/staging/go7007/wis-tw9903.c | 1 + drivers/staging/go7007/wis-uda1342.c | 1 + drivers/staging/tm6000/tm6000-cards.c | 4 +- include/linux/Kbuild | 3 + include/linux/media.h | 127 + include/linux/v4l2-mediabus.h | 104 + include/linux/v4l2-subdev.h | 141 ++ include/media/media-device.h | 92 + include/media/media-devnode.h | 97 + include/media/media-entity.h | 144 ++ include/media/sh_vou.h | 1 - include/media/soc_mediabus.h | 3 +- include/media/v4l2-common.h | 21 +- include/media/v4l2-ctrls.h | 460 ++++ include/media/v4l2-dev.h | 29 +- include/media/v4l2-device.h | 8 + include/media/v4l2-ioctl.h | 3 + include/media/v4l2-mediabus.h | 48 +- include/media/v4l2-subdev.h | 121 +- 117 files changed, 11277 insertions(+), 1130 deletions(-) create mode 100644 Documentation/DocBook/v4l/bayer.pdf create mode 100644 Documentation/DocBook/v4l/bayer.png create mode 100644 Documentation/DocBook/v4l/dev-subdev.xml create mode 100644 Documentation/DocBook/v4l/media-controller.xml create mode 100644 Documentation/DocBook/v4l/media-func-close.xml create mode 100644 Documentation/DocBook/v4l/media-func-ioctl.xml create mode 100644 Documentation/DocBook/v4l/media-func-open.xml create mode 100644 Documentation/DocBook/v4l/media-ioc-device-info.xml create mode 100644 Documentation/DocBook/v4l/media-ioc-enum-entities.xml create mode 100644 Documentation/DocBook/v4l/media-ioc-enum-links.xml create mode 100644 Documentation/DocBook/v4l/media-ioc-setup-link.xml create mode 100644 Documentation/DocBook/v4l/pipeline.pdf create mode 100644 Documentation/DocBook/v4l/pipeline.png create mode 100644 Documentation/DocBook/v4l/subdev-formats.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-enum-frame-interval.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-enum-frame-size.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-enum-mbus-code.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-g-crop.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-g-fmt.xml create mode 100644 Documentation/DocBook/v4l/vidioc-subdev-g-frame-interval.xml create mode 100644 Documentation/media-framework.txt create mode 100644 Documentation/video4linux/v4l2-controls.txt create mode 100644 drivers/media/media-device.c create mode 100644 drivers/media/media-devnode.c create mode 100644 drivers/media/media-entity.c create mode 100644 drivers/media/video/v4l2-ctrls.c create mode 100644 drivers/media/video/v4l2-subdev.c create mode 100644 include/linux/media.h create mode 100644 include/linux/v4l2-mediabus.h create mode 100644 include/linux/v4l2-subdev.h create mode 100644 include/media/media-device.h create mode 100644 include/media/media-devnode.h create mode 100644 include/media/media-entity.h create mode 100644 include/media/v4l2-ctrls.h -- Regards, Laurent Pinchart _______________________________________________ MeeGo-kernel mailing list [email protected] http://lists.meego.com/listinfo/meego-kernel
