Hello,

This patch set adds alpha support to the Renesas VSP1 driver. The feature is
split in two parts, support for the alpha component in capture and output
buffers, and support for premultiplied colors. Each part requires extensions
to the V4L API.

The first two patches add new pixel formats for alpha and non-alpha RGB, and
extend usage of the ALPHA_COMPONENT control to output devices. They have
already been posted separately, for the rationale please see
https://www.mail-archive.com/linux-media@vger.kernel.org/msg75449.html.

The next two patches add a premultiplied alpha flag to the V4L format API.
This requires extending the v4l2_pix_format structure first (patch 03/18).

Patch 05/23 fixes a stream condition in videobuf2. It could be merged
separately.

Patches 06/23 to 16/23 perform general cleanups and fixes to the VSP1 driver.
Please see individual patches for details. Patch 06/23, in particular, fixes
a bug introduced in v3.16-rc1, so I'll resubmit it separately for v3.16.

Patch 17/23 switches from the old RGB formats to the new XRGB formats. Patch
18/23 then adds support for ARGB formats, and patch 19/23 support for the
alpha component control. Patch 20/23 and 21/23 add support for premultiplied
colors, and patch 22/23 makes the blending unit background color configurable.

Patch 23/23 finally fixes scaler (UDS) configuration when the alpha layer
needs to be scaled.

I While I'd of course like to see the VSP1 patches getting reviewed, I expect
most of the discussions to concentrate on the first four patches. Several
rounds will likely be needed, and I'd like to get the series in v3.17, so
let's get started.

Changes since v1:

- Fixed a typo in 15/23
- Added 05/23 to 07/23 and 23/23

Laurent Pinchart (23):
  v4l: Add ARGB and XRGB pixel formats
  DocBook: media: Document ALPHA_COMPONENT control usage on output
    devices
  v4l: Support extending the v4l2_pix_format structure
  v4l: Add premultiplied alpha flag for pixel formats
  v4l: vb2: Fix stream start and buffer completion race
  v4l: vsp1: Fix routing cleanup when stopping the stream
  v4l: vsp1: Release buffers at stream stop
  v4l: vsp1: Fix pipeline stop timeout
  v4l: vsp1: Fix typos
  v4l: vsp1: Cleanup video nodes at removal time
  v4l: vsp1: Propagate vsp1_device_get errors to the callers
  v4l: vsp1: Setup control handler automatically at stream on time
  v4l: vsp1: sru: Fix the intensity control default value
  v4l: vsp1: sru: Make the intensity controllable during streaming
  v4l: vsp1: wpf: Simplify cast to pipeline structure
  v4l: vsp1: wpf: Clear RPF to WPF association at stream off time
  v4l: vsp1: Switch to XRGB formats
  v4l: vsp1: Add alpha channel support to the memory ports
  v4l: vsp1: Add V4L2_CID_ALPHA_COMPONENT control support
  v4l: vsp1: bru: Support premultiplied alpha at the BRU inputs
  v4l: vsp1: bru: Support non-premultiplied colors at the BRU output
  v4l: vsp1: bru: Make the background color configurable
  v4l: vsp1: uds: Fix scaling of alpha layer

 Documentation/DocBook/media/Makefile               |   2 +-
 Documentation/DocBook/media/v4l/controls.xml       |  17 +-
 .../DocBook/media/v4l/pixfmt-packed-rgb.xml        | 415 ++++++++++++++++++++-
 Documentation/DocBook/media/v4l/pixfmt.xml         |  53 ++-
 Documentation/DocBook/media/v4l/v4l2.xml           |   8 +
 .../DocBook/media/v4l/vidioc-querycap.xml          |   6 +
 drivers/media/parport/bw-qcam.c                    |   2 -
 drivers/media/pci/cx18/cx18-ioctl.c                |   1 -
 drivers/media/pci/cx25821/cx25821-video.c          |   3 -
 drivers/media/pci/ivtv/ivtv-ioctl.c                |   3 -
 drivers/media/pci/meye/meye.c                      |   2 -
 drivers/media/pci/saa7134/saa7134-empress.c        |   3 -
 drivers/media/pci/saa7134/saa7134-video.c          |   2 -
 drivers/media/pci/sta2x11/sta2x11_vip.c            |   1 -
 drivers/media/platform/coda.c                      |   2 -
 drivers/media/platform/davinci/vpif_display.c      |   1 -
 drivers/media/platform/mem2mem_testdev.c           |   1 -
 drivers/media/platform/omap/omap_vout.c            |   2 -
 drivers/media/platform/sh_veu.c                    |   2 -
 drivers/media/platform/vino.c                      |   5 -
 drivers/media/platform/vivi.c                      |   1 -
 drivers/media/platform/vsp1/vsp1.h                 |  14 +-
 drivers/media/platform/vsp1/vsp1_bru.c             |  85 ++++-
 drivers/media/platform/vsp1/vsp1_bru.h             |   9 +-
 drivers/media/platform/vsp1/vsp1_drv.c             |  22 +-
 drivers/media/platform/vsp1/vsp1_entity.c          |  42 +++
 drivers/media/platform/vsp1/vsp1_entity.h          |  10 +
 drivers/media/platform/vsp1/vsp1_regs.h            |   2 +
 drivers/media/platform/vsp1/vsp1_rpf.c             |  72 +++-
 drivers/media/platform/vsp1/vsp1_rwpf.h            |   2 +
 drivers/media/platform/vsp1/vsp1_sru.c             | 107 ++++--
 drivers/media/platform/vsp1/vsp1_sru.h             |   1 -
 drivers/media/platform/vsp1/vsp1_uds.c             |  65 ++--
 drivers/media/platform/vsp1/vsp1_uds.h             |   6 +-
 drivers/media/platform/vsp1/vsp1_video.c           | 217 ++++++++---
 drivers/media/platform/vsp1/vsp1_video.h           |  10 +-
 drivers/media/platform/vsp1/vsp1_wpf.c             |  72 +++-
 drivers/media/usb/cx231xx/cx231xx-417.c            |   2 -
 drivers/media/usb/cx231xx/cx231xx-video.c          |   2 -
 drivers/media/usb/gspca/gspca.c                    |   8 +-
 drivers/media/usb/hdpvr/hdpvr-video.c              |   1 -
 drivers/media/usb/stkwebcam/stk-webcam.c           |   2 -
 drivers/media/usb/tlg2300/pd-video.c               |   1 -
 drivers/media/usb/tm6000/tm6000-video.c            |   2 -
 drivers/media/usb/zr364xx/zr364xx.c                |   3 -
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c      |  19 +-
 drivers/media/v4l2-core/v4l2-ioctl.c               |  66 +++-
 drivers/media/v4l2-core/videobuf2-core.c           |   4 +-
 include/uapi/linux/videodev2.h                     |  31 +-
 49 files changed, 1139 insertions(+), 270 deletions(-)

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to