[PATCH/RFC v2 00/56] Request API and proof-of-concept implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

This patch series is an update to the first V4L2 request API RFC series for
the VSP1 driver.

The main change compared to v1 is the refactoring of the pipeline in patches
51 to 56. The patch that implements support for the request API in the VSP1
driver itself is missing from this RFC as it hasn't been properly tested yet
after being rebased on top of v2. I'll fix it ASAP.

The series isn't ready for merge yet. In particular it needs to be rebased on
top of v4.5-rc1. This will likely cause issues due to the media controller
framework rework that got merged in mainline. I can't estimate at this time
how long an acceptable solution will take to be developed.

Hans Verkuil (3):
  videodev2.h: Add request field to v4l2_buffer
  vb2: Add allow_requests flag
  vb2: Add helper function to queue request-specific buffer.

Laurent Pinchart (50):
  v4l: vsp1: Use pipeline display list to decide how to write to modules
  v4l: vsp1: Always setup the display list
  v4l: vsp1: Simplify frame end processing
  v4l: vsp1: Split display list manager from display list
  v4l: vsp1: Store the display list manager in the WPF
  v4l: vsp1: bru: Don't program background color in control set handler
  v4l: vsp1: rwpf: Don't program alpha value in control set handler
  v4l: vsp1: sru: Don't program intensity in control set handler
  v4l: vsp1: Don't setup control handler when starting streaming
  v4l: vsp1: Enable display list support for the HS[IT], LUT, SRU and
    UDS
  v4l: vsp1: Don't configure RPF memory buffers before calculating
    offsets
  v4l: vsp1: Remove unneeded entity streaming flag
  v4l: vsp1: Document calling context of vsp1_pipeline_propagate_alpha()
  v4l: vsp1: Fix 80 characters per line violations
  v4l: vsp1: Add header display list support
  v4l: vsp1: Use display lists with the userspace API
  v4l: vsp1: Move subdev initialization code to vsp1_entity_init()
  v4l: vsp1: Consolidate entity ops in a struct vsp1_entity_operations
  v4l: vsp1: Fix BRU try compose rectangle storage
  v4l: vsp1: Add race condition FIXME comment
  media: Move media_device link_notify operation to an ops structure
  media: Add per-file-handle data support
  media: Add request API
  media: Add per-entity request data support
  videodev2.h: Add request field to v4l2_pix_format_mplane
  v4l2-subdev.h: Add request field to format and selection structures
  v4l: Support the request API in format operations
  v4l: subdev: Add pad config allocator and init
  v4l: subdev: Call pad init_cfg operation when opening subdevs
  v4l: subdev: Support the request API in format and selection
    operations
  vb2: Add helper function to check for request buffers
  DocBook: media: Document the media request API
  DocBook: media: Document the V4L2 request API
  DocBook: media: Document the subdev selection API
  DocBook: media: Document the V4L2 subdev request API
  v4l: vsp1: Implement and use the subdev pad::init_cfg configuration
  v4l: vsp1: Store active formats in a pad config structure
  v4l: vsp1: Store active selection rectangles in a pad config structure
  v4l: vsp1: Create a new configure operation to setup modules
  v4l: vsp1: Merge RPF and WPF pad ops structures
  v4l: vsp1: Pass a media request to the module configure operations
  v4l: vsp1: Use __vsp1_video_try_format to initialize format at init
    time
  v4l: vsp1: Support video device formats stored in requests
  v4l: vsp1: Pass display list explicitly to configure functions
  v4l: vsp1: Rename pipeline validate functions to pipeline build
  v4l: vsp1: Pass pipe pointer to entity configure functions
  v4l: vsp1: Store pipeline pointer in rwpf
  v4l: vsp1: Store pipeline-related state in pipeline structure
  v4l: vsp1: video: Reorder functions
  v4l: vsp1: Allocate pipelines on demand

Sakari Ailus (3):
  media: Move graph mutex locking into media_device_setup_link()
  media: Add request field to struct media_link_desc
  media: Gather link configuration into media request

 Documentation/DocBook/media/v4l/common.xml         |   2 +
 Documentation/DocBook/media/v4l/io.xml             |  12 +-
 .../DocBook/media/v4l/media-controller.xml         |   1 +
 .../DocBook/media/v4l/media-ioc-request-cmd.xml    | 194 +++++++++
 Documentation/DocBook/media/v4l/request-api.xml    |  90 ++++
 .../DocBook/media/v4l/vidioc-prepare-buf.xml       |   9 +
 Documentation/DocBook/media/v4l/vidioc-qbuf.xml    |   6 +
 .../DocBook/media/v4l/vidioc-subdev-g-fmt.xml      |  33 +-
 .../media/v4l/vidioc-subdev-g-selection.xml        |  65 ++-
 drivers/media/media-device.c                       | 346 ++++++++++++++-
 drivers/media/media-devnode.c                      |  19 +-
 drivers/media/media-entity.c                       |  11 +-
 drivers/media/platform/exynos4-is/media-dev.c      |   6 +-
 drivers/media/platform/omap3isp/isp.c              |   6 +-
 drivers/media/platform/vsp1/vsp1.h                 |  13 -
 drivers/media/platform/vsp1/vsp1_bru.c             | 356 +++++++--------
 drivers/media/platform/vsp1/vsp1_bru.h             |   5 +-
 drivers/media/platform/vsp1/vsp1_dl.c              | 341 +++++++++------
 drivers/media/platform/vsp1/vsp1_dl.h              |  41 +-
 drivers/media/platform/vsp1/vsp1_drm.c             |  89 ++--
 drivers/media/platform/vsp1/vsp1_drm.h             |   5 +-
 drivers/media/platform/vsp1/vsp1_drv.c             |  24 +-
 drivers/media/platform/vsp1/vsp1_entity.c          | 199 +++++----
 drivers/media/platform/vsp1/vsp1_entity.h          |  54 ++-
 drivers/media/platform/vsp1/vsp1_hsit.c            | 106 +++--
 drivers/media/platform/vsp1/vsp1_lif.c             | 149 ++++---
 drivers/media/platform/vsp1/vsp1_lut.c             | 115 ++---
 drivers/media/platform/vsp1/vsp1_pipe.c            |  74 +---
 drivers/media/platform/vsp1/vsp1_pipe.h            |  30 +-
 drivers/media/platform/vsp1/vsp1_rpf.c             | 230 ++++------
 drivers/media/platform/vsp1/vsp1_rwpf.c            | 189 ++++++--
 drivers/media/platform/vsp1/vsp1_rwpf.h            |  68 +--
 drivers/media/platform/vsp1/vsp1_sru.c             | 207 +++++----
 drivers/media/platform/vsp1/vsp1_sru.h             |   2 +
 drivers/media/platform/vsp1/vsp1_uds.c             | 211 ++++-----
 drivers/media/platform/vsp1/vsp1_uds.h             |   3 +-
 drivers/media/platform/vsp1/vsp1_video.c           | 483 ++++++++++++---------
 drivers/media/platform/vsp1/vsp1_video.h           |   2 -
 drivers/media/platform/vsp1/vsp1_wpf.c             | 269 +++++-------
 drivers/media/usb/cpia2/cpia2_v4l.c                |   1 +
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c      |   4 +-
 drivers/media/v4l2-core/v4l2-ioctl.c               | 125 +++++-
 drivers/media/v4l2-core/v4l2-subdev.c              | 246 ++++++++---
 drivers/media/v4l2-core/videobuf2-v4l2.c           |  55 +++
 drivers/staging/media/omap4iss/iss.c               |   6 +-
 include/media/media-device.h                       |  65 ++-
 include/media/media-devnode.h                      |  18 +-
 include/media/media-entity.h                       |  24 +
 include/media/v4l2-dev.h                           |  13 +
 include/media/v4l2-subdev.h                        |  22 +
 include/media/videobuf2-core.h                     |   2 +
 include/media/videobuf2-v4l2.h                     |   6 +
 include/uapi/linux/media.h                         |  15 +-
 include/uapi/linux/v4l2-subdev.h                   |  11 +-
 include/uapi/linux/videodev2.h                     |   8 +-
 55 files changed, 3021 insertions(+), 1665 deletions(-)
 create mode 100644 Documentation/DocBook/media/v4l/media-ioc-request-cmd.xml
 create mode 100644 Documentation/DocBook/media/v4l/request-api.xml

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux