Re: [PATCH v3 1/3] media: mt9m111: make VIDIOC_SUBDEV_G_FMT ioctl work with V4L2_SUBDEV_FORMAT_TRY

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

 



Hi Mita-san, Marco,

On Sun, Jan 27, 2019 at 09:29:30PM +0900, Akinobu Mita wrote:
> 2019年1月24日(木) 0:17 Marco Felsch <m.felsch@xxxxxxxxxxxxxx>:
> >
> > Hi Akinobu,
> >
> > sorry for the delayed response.
> >
> > On 19-01-15 23:05, Akinobu Mita wrote:
> > > The VIDIOC_SUBDEV_G_FMT ioctl for this driver doesn't recognize
> > > V4L2_SUBDEV_FORMAT_TRY and always works as if V4L2_SUBDEV_FORMAT_ACTIVE
> > > is specified.
> > >
> > > Cc: Enrico Scholz <enrico.scholz@xxxxxxxxxxxxxxxxx>
> > > Cc: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
> > > Cc: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> > > Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
> > > Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
> > > ---
> > > * v3
> > > - Set initial try format with default configuration instead of
> > >   current one.
> > >
> > >  drivers/media/i2c/mt9m111.c | 30 ++++++++++++++++++++++++++++++
> > >  1 file changed, 30 insertions(+)
> > >
> > > diff --git a/drivers/media/i2c/mt9m111.c b/drivers/media/i2c/mt9m111.c
> > > index d639b9b..63a5253 100644
> > > --- a/drivers/media/i2c/mt9m111.c
> > > +++ b/drivers/media/i2c/mt9m111.c
> > > @@ -528,6 +528,16 @@ static int mt9m111_get_fmt(struct v4l2_subdev *sd,
> > >       if (format->pad)
> > >               return -EINVAL;
> > >
> > > +     if (format->which == V4L2_SUBDEV_FORMAT_TRY) {
> > > +#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
> > > +             mf = v4l2_subdev_get_try_format(sd, cfg, format->pad);
> > > +             format->format = *mf;
> > > +             return 0;
> > > +#else
> > > +             return -ENOTTY;
> > > +#endif
> >
> > If've checked this again and found the ov* devices do this too. IMO it's
> > not good for other developers to check the upper layer if the '#else'
> > path is reachable. There are also some code analyzer tools which will
> > report this as issue/warning.
> >
> > As I said, I checked the v4l2_subdev_get_try_format() usage again and
> > found the solution made by the mt9v111.c better. Why do you don't add a
> > dependency in the Kconfig, so we can drop this ifdef?
> 
> I'm ok with adding CONFIG_VIDEO_V4L2_SUBDEV_API dependency to this
> driver, because I always enable it.
> 
> But it may cause an issue on some environments that don't require
> CONFIG_VIDEO_V4L2_SUBDEV_API.
> 
> Sakari, do you have any opinion?

I think the dependency is just fine. There are drivers that do not support
MC (and V4L2 sub-device uAPI) but if a driver does, I don't see why it
couldn't depend on the related Kconfig option.

-- 
Regards,

Sakari Ailus
sakari.ailus@xxxxxxxxxxxxxxx



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux