On Wed July 10 2013 16:24:58 Laurent Pinchart wrote:
> Hi Hans,
> 
> Thank you for the very quick review.
> 
> On Wednesday 10 July 2013 14:34:24 Hans Verkuil wrote:
> > On Wed 10 July 2013 12:19:32 Laurent Pinchart wrote:
> > > The VSP1 is a video processing engine that includes a blender, scalers,
> > > filters and statistics computation. Configurable data path routing logic
> > > allows ordering the internal blocks in a flexible way.
> > > 
> > > Due to the configurable nature of the pipeline the driver implements the
> > > media controller API and doesn't use the V4L2 mem-to-mem framework, even
> > > though the device usually operates in memory to memory mode.
> > > 
> > > Only the read pixel formatters, up/down scalers, write pixel formatters
> > > and LCDC interface are supported at this stage.
> > > 
> > > Signed-off-by: Laurent Pinchart
> > > <laurent.pinchart+rene...@ideasonboard.com>
> > > ---
> > > 
> > >  drivers/media/platform/Kconfig            |   10 +
> > >  drivers/media/platform/Makefile           |    2 +
> > >  drivers/media/platform/vsp1/Makefile      |    5 +
> > >  drivers/media/platform/vsp1/vsp1.h        |   73 ++
> > >  drivers/media/platform/vsp1/vsp1_drv.c    |  475 ++++++++++++
> > >  drivers/media/platform/vsp1/vsp1_entity.c |  186 +++++
> > >  drivers/media/platform/vsp1/vsp1_entity.h |   68 ++
> > >  drivers/media/platform/vsp1/vsp1_lif.c    |  237 ++++++
> > >  drivers/media/platform/vsp1/vsp1_lif.h    |   38 +
> > >  drivers/media/platform/vsp1/vsp1_regs.h   |  581 +++++++++++++++
> > >  drivers/media/platform/vsp1/vsp1_rpf.c    |  209 ++++++
> > >  drivers/media/platform/vsp1/vsp1_rwpf.c   |  124 ++++
> > >  drivers/media/platform/vsp1/vsp1_rwpf.h   |   56 ++
> > >  drivers/media/platform/vsp1/vsp1_uds.c    |  346 +++++++++
> > >  drivers/media/platform/vsp1/vsp1_uds.h    |   41 +
> > >  drivers/media/platform/vsp1/vsp1_video.c  | 1154 ++++++++++++++++++++++++
> > >  drivers/media/platform/vsp1/vsp1_video.h  |  144 ++++
> > >  drivers/media/platform/vsp1/vsp1_wpf.c    |  233 ++++++
> > >  include/linux/platform_data/vsp1.h        |   25 +
> > >  19 files changed, 4007 insertions(+)
> > >  create mode 100644 drivers/media/platform/vsp1/Makefile
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_drv.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_entity.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_entity.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_lif.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_lif.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_regs.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_rpf.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_rwpf.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_rwpf.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_uds.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_uds.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_video.c
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_video.h
> > >  create mode 100644 drivers/media/platform/vsp1/vsp1_wpf.c
> > >  create mode 100644 include/linux/platform_data/vsp1.h
> > 
> > Hi Laurent,
> > 
> > It took some effort, but I finally did find some things to complain about
> > :-)
> 
> :-)
> 
> > > diff --git a/drivers/media/platform/vsp1/vsp1_video.c
> > > b/drivers/media/platform/vsp1/vsp1_video.c new file mode 100644
> > > index 0000000..47a739a
> > > --- /dev/null
> > > +++ b/drivers/media/platform/vsp1/vsp1_video.c
> 
> [snip]
> 
> > > +static int __vsp1_video_try_format(struct vsp1_video *video,
> > > +                            struct v4l2_pix_format_mplane *pix,
> > > +                            const struct vsp1_format_info **fmtinfo)
> > > +{
> > > + const struct vsp1_format_info *info;
> > > + unsigned int width = pix->width;
> > > + unsigned int height = pix->height;
> > > + unsigned int i;
> > > +
> > > + /* Retrieve format information and select the default format if the
> > > +  * requested format isn't supported.
> > > +  */
> > > + info = vsp1_get_format_info(pix->pixelformat);
> > > + if (info == NULL)
> > > +         info = vsp1_get_format_info(VSP1_VIDEO_DEF_FORMAT);
> > > +
> > > + pix->pixelformat = info->fourcc;
> > > + pix->colorspace = V4L2_COLORSPACE_SRGB;
> > > + pix->field = V4L2_FIELD_NONE;
> > 
> > pix->priv should be set to 0. v4l2-compliance catches such errors, BTW.
> 
> Isn't this handled by the CLEAR_AFTER_FIELD() macros in v4l2-ioctl2.c ?

For G_FMT, yes, but there is no CLEAR_AFTER_FIELD for S/TRY_FMT. So priv
needs to be zeroed manually.

Regards,

        Hans
--
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