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]

 



2019年1月28日(月) 17:34 Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>:
>
> 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.

OK.  I'll prepare a patch that adds the dependency and removes the ifdef.
I made similar change for ov2640, so I'll do for mt9m111 and ov2640,
respectively.




[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