Re: [PATCH] media: i2c: tvp514x: add support for asynchronous probing

From: Hans Verkuil
Date: Mon Jun 24 2013 - 04:56:14 EST


On Mon June 24 2013 10:53:37 Prabhakar Lad wrote:
> Hi Hans,
>
> On Mon, Jun 24, 2013 at 2:09 PM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote:
> > On Mon June 24 2013 10:24:02 Prabhakar Lad wrote:
> >> Hi Hans,
> >>
> >> On Mon, Jun 24, 2013 at 12:41 PM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote:
> >> > On Sun June 23 2013 17:48:20 Prabhakar Lad wrote:
> >> >> Hi Guennadi,
> >> >>
> >> >> Thanks for the review.
> >> >>
> >> >> On Sun, Jun 23, 2013 at 8:49 PM, Guennadi Liakhovetski
> >> >> <g.liakhovetski@xxxxxx> wrote:
> >> >> > On Sat, 22 Jun 2013, Prabhakar Lad wrote:
> >> >> >
> >> >> >> From: "Lad, Prabhakar" <prabhakar.csengg@xxxxxxxxx>
> >> >> >>
> >> >> >> Both synchronous and asynchronous tvp514x subdevice probing is supported by
> >> >> >> this patch.
> >> >> >>
> >> >> >> Signed-off-by: Prabhakar Lad <prabhakar.csengg@xxxxxxxxx>
> >> >> >> Cc: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> >> >> >> Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> >> >> >> Cc: Hans Verkuil <hverkuil@xxxxxxxxx>
> >> >> >> Cc: Sakari Ailus <sakari.ailus@xxxxxx>
> >> >> >> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
> >> >> >> ---
> >> >> >> drivers/media/i2c/tvp514x.c | 22 +++++++++++++++-------
> >> >> >> 1 file changed, 15 insertions(+), 7 deletions(-)
> >> >> >>
> >> >> >> diff --git a/drivers/media/i2c/tvp514x.c b/drivers/media/i2c/tvp514x.c
> >> >> >> index 864eb14..d090caf 100644
> >> >> >> --- a/drivers/media/i2c/tvp514x.c
> >> >> >> +++ b/drivers/media/i2c/tvp514x.c
> >> >> >> @@ -36,6 +36,7 @@
> >> >> >> #include <linux/module.h>
> >> >> >> #include <linux/v4l2-mediabus.h>
> >> >> >>
> >> >> >> +#include <media/v4l2-async.h>
> >> >> >> #include <media/v4l2-device.h>
> >> >> >> #include <media/v4l2-common.h>
> >> >> >> #include <media/v4l2-mediabus.h>
> >> >> >
> >> >> > Ok, but this one really does too many things in one patch:
> >> >> >
> >> >> >> @@ -1148,9 +1149,9 @@ tvp514x_probe(struct i2c_client *client, const struct i2c_device_id *id)
> >> >> >> /* Register with V4L2 layer as slave device */
> >> >> >> sd = &decoder->sd;
> >> >> >> v4l2_i2c_subdev_init(sd, client, &tvp514x_ops);
> >> >> >> - strlcpy(sd->name, TVP514X_MODULE_NAME, sizeof(sd->name));
> >> >> >>
> >> >> >> #if defined(CONFIG_MEDIA_CONTROLLER)
> >> >> >> + strlcpy(sd->name, TVP514X_MODULE_NAME, sizeof(sd->name));
> >> >> >
> >> >> > This is unrelated
> >> >> >
> >> >> OK I'll split the patch or may be a line in a commit message can do ?
> >> >
> >> > Please split it up in two patches.
> >> >
> >> > Why is sd->name set anyway? And why is it moved under CONFIG_MEDIA_CONTROLLER?
> >> > It's not obvious to me.
> >> >
> >> while using tvp514x subdev with media controller based drivers, when we
> >> enumerate entities (MEDIA_IOC_ENUM_ENTITIES) to get the index id
> >> of the entity we compare the entity name with "tvp514x", So I moved it
> >> under CONFIG_MEDIA_CONTROLLER config. I hope you are OK with
> >> moving this in a separate patch.
> >
> > Sorry, but this approach is wrong. sd->name must be a unique name, so manually
> > setting sd->name will fail if you have two tvp514x devices.
> >
> > There is no reason to override sd->name here, and it is actually a bug. I see
> > that tvp7002 has the same problem (and a bunch of others as well).
> >
> > When trying to find a tvp514x you can just use strstr() in your application.
> > That will work all the time as long as there is only one tvp514x.
>
> OK, then I will send out a cleanup patch removing sd->name from this driver
> and others too.

Thanks. I see that it is in tvp7002 as well. Also ov9650 and some Samsung devices,
but I will deal with those.

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/