public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/34] V4L2 subdev and sensor control changes, SMIA++ driver and N9 camera board code
@ 2012-03-02 17:32 Sakari Ailus
  2012-03-02 17:30 ` [PATCH v4 01/34] v4l: Introduce integer menu controls Sakari Ailus
                   ` (33 more replies)
  0 siblings, 34 replies; 57+ messages in thread
From: Sakari Ailus @ 2012-03-02 17:32 UTC (permalink / raw)
  To: linux-media@vger.kernel.org
  Cc: Laurent Pinchart, David Cohen, Sylwester Nawrocki, Hans Verkuil,
	Andy Shevchenko, Tomasz Stanislawski, tuukkat76, Kamil Debski,
	Kim HeungJun, teturtia

Hi everyone,

This the fourth version of my patchset that contains:

- Integer menu controls [2],
- Selection IOCTL for subdevs [3],
- Sensor control changes [5,7],
- link_validate() media entity and V4L2 subdev pad ops,
- OMAP 3 ISP driver improvements [4],
- SMIA++ sensor driver,
- rm680/rm696 board code (a.k.a Nokia N9 and N950) and
- Other V4L2 and media improvements (see individual patches)

The Docbook documentation in HTML format can be found in [13] (v3
documentation available in [11]).

Changes to version 3 [12] include:

- OMAP 3 ISP
  - Rework ISP driver patches
  - Remove code from isp_video_pipeline_validate in same patch as the
    functionality is added elsewhere (old patch to remove leftovers
    dropped)
  - isp_video_streamon() error handling cleanups
  - All pipeline validation performed before any s_straem subdev ops
    - Resizer data rate check moved to link validation
    - CCDC rate checked in isp_video_check_external_subdeva()
  - Formats checked during link validation
  - Remove means to set pixel rate (new patch)
  - Don't set link_validate pad ops where the default is sufficient

- Media controller
  - media_entity_pipeline_start() collects information on entities in
    pipeline
  - link validation error handling fix

- V4L2 / V4L2 subdev
  - Less confusing selection example diagrams
  - Selection documentation improvements  (as also suggested by Laurent)

- SMIA++ driver
  - Fixes according to Laurent's suggestions [14]
  - Locking fixes and power handling cleanups

Changes to version 2 [10] include:

- V4L2
  - Image source controls
    - Documentation no longer refers to "pixel clock" in v4l2_mbus_framefmt
      (this should have been the last reference to those!!)
    - Capitalise first letters in control names
  - Selections
    - Use hex numbers for targets
  - Return NULL instead of invalid pointer when accessing non-existend pads
    in v4l2_subdev_get_try_{format,crop,compose} (new patch)
  - Put link validation definitions in v4l2-subdev.h behind
    #ifdef CONFIG_MEDIA_CONTROLLER ... #endif
  - Spelling fixes (selections and 4cc guidelines)
  - Change vdev_to_v4l2_subdev() return type to struct v4l2_subdev * (new
    patch)

- SMIA++ driver
  - Clock tree calculation fixes
  - Control handler setup usage fixes at smiapp_open()
  - Don't access non-existent pads

Changes to version 1 [8] include:

- OMAP 3 ISP driver
  - Swapped order of csi receiver's lane definitions
  - Rewrote omap 3 isp link validation patches almost completely
    - Information on connected external entity collected to isp_pipeline
    - Information collected during link checking and used at streamon

- Media entity link validation
  - Error handling fixes

- SMIA++ driver
  - Selection API bugfixes
  - Report correct pixel order right from boot
  - Move link rate control to subdev connected to subdev external to the
    sensor (e.g. ISP's CSI-2 receiver)
  - Introduce proper serialisation
  - Deny changing some controls when streaming (flipping and link rate)
  - Control handler setup moved from streamon time to first subdev open
  - There is no source compose target
  - Bugfixes

- Media bus pixel codes
  - Documentation fix for dpcm compressed formats
  - Added patch for 4CC guidelines (raw bayer only for now)

- Selections
  - Improved selections documentation
  - Added more selections examples
  - Compose target is not available on source pads anymore [9]
  - Dropped default targets

- V4L2
  - Add documentation on link_validate()
  - link_validate() and relater functions  depends on
CONFIG_MEDIA_CONTROLLER
  - Skip link validation for links on which stream_count was non-zero
  - Do not validate link if entity's stream count is non-zero
  - Use v4l2_subdev_link_validate_default() if no link_validate pad op
is set
  - Allow changing control handler mutex: this enables a driver to provide
    multiple subdevs but use only one mutex. Default mutex (part of struct
    v4l2_ctrl_handler) is set in v4l2_ctrl_handler_init().
  - Split image source class into two: image source and image processing

Changes to the RFC v1 [6] include:

- Integer controls:
  - Target Linux 3.4 instead of 3.3
  - Proper control type check in querymenu
  - vivi compile fixes

- Subdev selections
  - Pad try fields combined to single struct
  - Correctly set sel.which based on crop->which in crop fall-back

- Subdev selection documentation
  - Better explanation on image processing in subdevs
  - Added a diagram to visualise subdev configuration
  - Fixed DocBook syntax issues
  - Mark VIDIOC_SUBDEV_S_CROP and VIDIOC_SUBDEV_G_CROP obsolete

- Pixel rate
  - Pixel rate is now a 64-bit control, not part of v4l2_mbus_framefmt
  - Unit for pixel rate is pixels / second
  - Pixel rate is read-only

- Link frequency is now in Hz --- documented as such also

- Link validation instead of pipeline validation
  - Each link is validated by calling link_validate op
    - Added link validation op to media_entity_ops
  - Link validation op in pad ops makes this easy for subdev drivers
  - media_entity_pipeline_start() may return an error code now
    - This might affect other drivers, but will warn in compilation.
      No adverse effects are caused if the driver does not use
      link_validate().

- OMAP 3 ISP
  - Make lanecfg as part of the platform data structure, not pointer
  - Document lane configuration structures
  - Link validation moved to respective subdev drivers from ispvideo.c
    - isp_validate_pipeline() removed

- SMIA++ driver
  - Update pixel order based on vflip and hflip
  - Cleanups in the main driver, register definitions and PLL code
  - Depend on V4L2_V4L2_SUBDEV_API and MEDIA_CONTROLLER
  - Use pr_* macros instead of printk
  - Improved error handling for i2c_transfer()
  - Removed useless definitions
  - Don't access try crop / compose directly but use helper functions
  - Add xshutdown to platform data
  - Move driver under smiapp directory

- rm680 board code
  - Use REGULATOR_SUPPLY() where possible
  - Removed printk()'s
  - Don't include private smiapp headers


References:

[1] http://www.spinics.net/lists/linux-omap/msg61295.html

[2] http://www.spinics.net/lists/linux-media/msg40796.html

[3] http://www.spinics.net/lists/linux-media/msg41503.html

[4] http://www.spinics.net/lists/linux-media/msg41542.html

[5] http://www.spinics.net/lists/linux-media/msg40861.html

[6] http://www.spinics.net/lists/linux-media/msg41765.html

[7] http://www.spinics.net/lists/linux-media/msg42848.html

[8] http://www.spinics.net/lists/linux-media/msg42991.html

[9] http://www.spinics.net/lists/linux-media/msg43810.html

[10] http://www.spinics.net/lists/linux-media/msg43888.html

[11] http://www.retiisi.org.uk/v4l2/tmp/media_api/

[12] http://www.spinics.net/lists/linux-media/msg44405.html

[13] http://www.retiisi.org.uk/v4l2/tmp/media_api2/

[14] http://www.spinics.net/lists/linux-media/msg44704.html

Kind regards,

-- 
Sakari Ailus
sakari.ailus@iki.fi

^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2012-03-08 16:10 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-02 17:32 [PATCH v4 0/34] V4L2 subdev and sensor control changes, SMIA++ driver and N9 camera board code Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 01/34] v4l: Introduce integer menu controls Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 02/34] v4l: Document " Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 03/34] vivi: Add an integer menu test control Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 04/34] v4l: VIDIOC_SUBDEV_S_SELECTION and VIDIOC_SUBDEV_G_SELECTION IOCTLs Sakari Ailus
2012-03-05 10:59   ` Laurent Pinchart
2012-03-06 15:50     ` Sakari Ailus
2012-03-06 16:27       ` Laurent Pinchart
2012-03-06 16:40         ` Tomasz Stanislawski
2012-03-06 19:55           ` Sakari Ailus
2012-03-06 19:57             ` Laurent Pinchart
2012-03-06 19:58               ` Sakari Ailus
2012-03-08 16:10                 ` Tomasz Stanislawski
2012-03-02 17:30 ` [PATCH v4 05/34] v4l: vdev_to_v4l2_subdev() should have return type "struct v4l2_subdev *" Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 06/34] v4l: Check pad number in get try pointer functions Sakari Ailus
2012-03-05 11:01   ` Laurent Pinchart
2012-03-02 17:30 ` [PATCH v4 07/34] v4l: Support s_crop and g_crop through s/g_selection Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 08/34] v4l: Add subdev selections documentation: svg and dia files Sakari Ailus
2012-03-05 11:07   ` Laurent Pinchart
2012-03-06 15:09     ` Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 09/34] v4l: Add subdev selections documentation Sakari Ailus
2012-03-05 11:47   ` Laurent Pinchart
2012-03-06 12:08     ` Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 10/34] v4l: Mark VIDIOC_SUBDEV_G_CROP and VIDIOC_SUBDEV_S_CROP obsolete Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 11/34] v4l: Image source control class Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 12/34] v4l: Image processing " Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 13/34] v4l: Document raw bayer 4CC codes Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 14/34] v4l: Add DPCM compressed formats Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 15/34] media: Add link_validate() op to check links to the sink pad Sakari Ailus
2012-03-05 11:10   ` Laurent Pinchart
2012-03-02 17:30 ` [PATCH v4 16/34] media: Collect entities that are part of the pipeline before link validation Sakari Ailus
2012-03-05 11:13   ` Laurent Pinchart
2012-03-06 12:09     ` Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 17/34] v4l: Improve sub-device documentation for pad ops Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 18/34] v4l: Implement v4l2_subdev_link_validate() Sakari Ailus
2012-03-05 11:16   ` Laurent Pinchart
2012-03-02 17:30 ` [PATCH v4 19/34] v4l: Allow changing control handler lock Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 20/34] omap3isp: Support additional in-memory compressed bayer formats Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 21/34] omap3isp: Move definitions required by board code under include/media Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 22/34] omap3: add definition for CONTROL_CAMERA_PHY_CTRL Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 23/34] omap3isp: Move setting constaints above media_entity_pipeline_start Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 24/34] omap3isp: Assume media_entity_pipeline_start may fail Sakari Ailus
2012-03-05 11:26   ` Laurent Pinchart
2012-03-06 10:22     ` Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 25/34] omap3isp: Add lane configuration to platform data Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 26/34] omap3isp: Add information on external subdev to struct isp_pipeline Sakari Ailus
2012-03-05 11:28   ` Laurent Pinchart
2012-03-02 17:30 ` [PATCH v4 27/34] omap3isp: Introduce isp_video_check_external_subdevs() Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 28/34] omap3isp: Use external rate instead of vpcfg Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 29/34] omap3isp: Default link validation for ccp2, csi2, preview and resizer Sakari Ailus
2012-03-05 11:31   ` Laurent Pinchart
2012-03-02 17:30 ` [PATCH v4 30/34] omap3isp: Move CCDC link validation to ccdc_link_validate() Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 31/34] omap3isp: Configure CSI-2 phy based on platform data Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 32/34] omap3isp: Add resizer data rate configuration to resizer_link_validate Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 33/34] smiapp: Add driver Sakari Ailus
2012-03-02 17:30 ` [PATCH v4 34/34] rm680: Add camera init Sakari Ailus
2012-03-05 11:36   ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox