mbox series

[v3,00/10] media: staging: rkisp1: add support to V4L2_CAP_IO_MC

Message ID 20200723132014.4597-1-dafna.hirschfeld@collabora.com (mailing list archive)
Headers show
Series media: staging: rkisp1: add support to V4L2_CAP_IO_MC | expand

Message

Dafna Hirschfeld July 23, 2020, 1:20 p.m. UTC
This patch is a v3 of the patchset

"media: staging: rkisp1: various fixes to capture formats"

https://patchwork.kernel.org/cover/11551791/

The patchset solves several problems in the rkisp1 driver:

1. Currently the resizers always return media code MEDIA_BUS_FMT_YUYV8_2X8.
The patchset adds support to other media codes on the resizer according to
the chroma subsampling.
Setting the correct media code on the source pad that matches the
chroma subsampling reflects userspace  that the resizer has downsampling
ability and also the resizer entity does not have to check the capture entity's
configuration to get the scaling ratio, the information of how to scale can be
obtained from the source media code of the resizer.

2. Add support for the V4L2_CAP_IO_MC capability on
the mainpath and selfpath captures. This helps userspace to know the
right configuration for streaming. This is especially helpful for the
RGB and Grey formats that expect media bus MEDIA_BUS_FMT_YUYV8_2X8
which is not something userspace can guess. Adding a mapping of the
expected mbus code for each pixelformat also makes the link_validation
code much simpler, it just has to check if the configuration matches the mapping.

3. Removes unsupported packed yuv formats - this patch was already part of a pull request
and was dropped due to merge conflicts.

4. Remove bayer formats on the selfpath resizer since they are not
supported on the selfpath capture.

5. Remove support to YUV444 pixel format, I was not able to find a configuration
that supports this format. I kept getting bad looking frames and
this format is not that important to support. Also the TRM says:
"
In sensor mode the MRSZ block supports only down-scaling. This is because the sensor
cannot be stopped from delivering data during one frame.
"
So it seems that the format cannot be supported.

6. Fix the configuration to support Grey format - the 'write_format' field should
be 'planar'

Dafna Hirschfeld (10):
  media: staging: rkisp1: cap: change RGB24 format to XBGR32
  media: staging: rkisp1: cap: remove unsupported formats
  media: staging: rkisp1: cap: remove unsupported format YUV444
  media: staging: rkisp1: don't support bayer format on selfpath resizer
  media: staging: rkisp1: add capability V4L2_CAP_IO_MC to capture
    devices
  media: staging: rkisp1: add a helper function to enumerate supported
    mbus formats on capture
  media: staging: rkisp1: rsz: enumerate the formats on the src pad
    according to the capture
  media: staging: rkisp1: rsz: Add support to more YUV encoded mbus
    codes on src pad
  media: rkisp1: cap: simplify the link validation by comparing the
    media bus code
  media: staging: rkisp1: fix configuration for GREY pixelformat

 drivers/staging/media/rkisp1/rkisp1-capture.c | 185 ++++++++++--------
 drivers/staging/media/rkisp1/rkisp1-common.h  |   8 +
 drivers/staging/media/rkisp1/rkisp1-resizer.c | 108 +++++++---
 3 files changed, 195 insertions(+), 106 deletions(-)