Message ID | 20200310160633.950-8-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: imx: Miscellaneous fixes for i.MX7 | expand |
On 3/10/20 9:06 AM, Laurent Pinchart wrote: > The driver doesn't really support V4L2_PIX_FMT_Y16, as there's no 16-bit > greyscale media bus code defined by the kernel. It (ab)uses the format > to capture 10-bit and 12-bit greyscale formats. Fix it to properly > support MEDIA_BUS_FMT_Y10_1X10 and MEDIA_BUS_FMT_Y12_1X12 instead. I thought this might need a Fixes: e30681bc19bf ("media: imx: add 16-bit grayscale support"), but on closer look, V4L2_PIX_FMT_Y10 and V4L2_PIX_FMT_Y12 were not added until after. In any case, Acked-by: Steve Longerbeam <slongerbeam@gmail.com> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com> > --- > drivers/staging/media/imx/imx-media-csi.c | 3 ++- > drivers/staging/media/imx/imx-media-utils.c | 13 ++++++++----- > 2 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c > index b60ed4f22f6d..f4abac93c0e4 100644 > --- a/drivers/staging/media/imx/imx-media-csi.c > +++ b/drivers/staging/media/imx/imx-media-csi.c > @@ -457,7 +457,8 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) > case V4L2_PIX_FMT_SGBRG16: > case V4L2_PIX_FMT_SGRBG16: > case V4L2_PIX_FMT_SRGGB16: > - case V4L2_PIX_FMT_Y16: > + case V4L2_PIX_FMT_Y10: > + case V4L2_PIX_FMT_Y12: > burst_size = 8; > passthrough_bits = 16; > break; > diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c > index 0788a1874557..bc20fcc88267 100644 > --- a/drivers/staging/media/imx/imx-media-utils.c > +++ b/drivers/staging/media/imx/imx-media-utils.c > @@ -166,11 +166,14 @@ static const struct imx_media_pixfmt rgb_formats[] = { > .bpp = 8, > .bayer = true, > }, { > - .fourcc = V4L2_PIX_FMT_Y16, > - .codes = { > - MEDIA_BUS_FMT_Y10_1X10, > - MEDIA_BUS_FMT_Y12_1X12, > - }, > + .fourcc = V4L2_PIX_FMT_Y10, > + .codes = {MEDIA_BUS_FMT_Y10_1X10}, > + .cs = IPUV3_COLORSPACE_RGB, > + .bpp = 16, > + .bayer = true, > + }, { > + .fourcc = V4L2_PIX_FMT_Y12, > + .codes = {MEDIA_BUS_FMT_Y12_1X12}, > .cs = IPUV3_COLORSPACE_RGB, > .bpp = 16, > .bayer = true,
diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c index b60ed4f22f6d..f4abac93c0e4 100644 --- a/drivers/staging/media/imx/imx-media-csi.c +++ b/drivers/staging/media/imx/imx-media-csi.c @@ -457,7 +457,8 @@ static int csi_idmac_setup_channel(struct csi_priv *priv) case V4L2_PIX_FMT_SGBRG16: case V4L2_PIX_FMT_SGRBG16: case V4L2_PIX_FMT_SRGGB16: - case V4L2_PIX_FMT_Y16: + case V4L2_PIX_FMT_Y10: + case V4L2_PIX_FMT_Y12: burst_size = 8; passthrough_bits = 16; break; diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c index 0788a1874557..bc20fcc88267 100644 --- a/drivers/staging/media/imx/imx-media-utils.c +++ b/drivers/staging/media/imx/imx-media-utils.c @@ -166,11 +166,14 @@ static const struct imx_media_pixfmt rgb_formats[] = { .bpp = 8, .bayer = true, }, { - .fourcc = V4L2_PIX_FMT_Y16, - .codes = { - MEDIA_BUS_FMT_Y10_1X10, - MEDIA_BUS_FMT_Y12_1X12, - }, + .fourcc = V4L2_PIX_FMT_Y10, + .codes = {MEDIA_BUS_FMT_Y10_1X10}, + .cs = IPUV3_COLORSPACE_RGB, + .bpp = 16, + .bayer = true, + }, { + .fourcc = V4L2_PIX_FMT_Y12, + .codes = {MEDIA_BUS_FMT_Y12_1X12}, .cs = IPUV3_COLORSPACE_RGB, .bpp = 16, .bayer = true,