diff mbox

media: davinci: vpif: set device capabilities

Message ID 1348571784-4237-1-git-send-email-prabhakar.lad@ti.com (mailing list archive)
State Awaiting Upstream
Headers show

Commit Message

Lad, Prabhakar Sept. 25, 2012, 11:16 a.m. UTC
From: Lad, Prabhakar <prabhakar.lad@ti.com>

Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
Cc: Hans Verkuil <hans.verkuil@cisco.com>
---
 drivers/media/platform/davinci/vpif_capture.c |    4 +++-
 drivers/media/platform/davinci/vpif_display.c |    4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Hans Verkuil (hansverk) Sept. 25, 2012, 11:43 a.m. UTC | #1
On Tue 25 September 2012 13:16:24 Prabhakar wrote:
> From: Lad, Prabhakar <prabhakar.lad@ti.com>
> 
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> Cc: Hans Verkuil <hans.verkuil@cisco.com>
> ---
>  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
>  drivers/media/platform/davinci/vpif_display.c |    4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
> index 4828888..faeca98 100644
> --- a/drivers/media/platform/davinci/vpif_capture.c
> +++ b/drivers/media/platform/davinci/vpif_capture.c
> @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void  *priv,
>  {
>  	struct vpif_capture_config *config = vpif_dev->platform_data;
>  
> -	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> +	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> +			V4L2_CAP_READWRITE;
> +	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>  	strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));

This should be the real driver name which is 'vpif_capture'.

>  	strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));

For bus_info I would use: "platform:vpif_capture".

The 'platform:' prefix is going to be the standard for platform drivers.

>  	strlcpy(cap->card, config->card_name, sizeof(cap->card));
> diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
> index d94b8a2..171e449 100644
> --- a/drivers/media/platform/davinci/vpif_display.c
> +++ b/drivers/media/platform/davinci/vpif_display.c
> @@ -827,7 +827,9 @@ static int vpif_querycap(struct file *file, void  *priv,
>  {
>  	struct vpif_display_config *config = vpif_dev->platform_data;
>  
> -	cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
> +	cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING |
> +			    V4L2_CAP_READWRITE;
> +	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>  	strlcpy(cap->driver, "vpif display", sizeof(cap->driver));

vpif_driver

>  	strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));

Ditto: "platform:vpif_driver".

>  	strlcpy(cap->card, config->card_name, sizeof(cap->card));
> 

Regards,

	Hans
Lad, Prabhakar Sept. 25, 2012, 11:47 a.m. UTC | #2
Hi Hans,

Thanks for the review.

On Tue, Sep 25, 2012 at 5:13 PM, Hans Verkuil <hansverk@cisco.com> wrote:
> On Tue 25 September 2012 13:16:24 Prabhakar wrote:
>> From: Lad, Prabhakar <prabhakar.lad@ti.com>
>>
>> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
>> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
>> Cc: Hans Verkuil <hans.verkuil@cisco.com>
>> ---
>>  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
>>  drivers/media/platform/davinci/vpif_display.c |    4 +++-
>>  2 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
>> index 4828888..faeca98 100644
>> --- a/drivers/media/platform/davinci/vpif_capture.c
>> +++ b/drivers/media/platform/davinci/vpif_capture.c
>> @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void  *priv,
>>  {
>>       struct vpif_capture_config *config = vpif_dev->platform_data;
>>
>> -     cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
>> +     cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
>> +                     V4L2_CAP_READWRITE;
>> +     cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>>       strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
>
> This should be the real driver name which is 'vpif_capture'.
>
Ok.

>>       strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
>
> For bus_info I would use: "platform:vpif_capture".
>
> The 'platform:' prefix is going to be the standard for platform drivers.
>
Ok.

>>       strlcpy(cap->card, config->card_name, sizeof(cap->card));
>> diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
>> index d94b8a2..171e449 100644
>> --- a/drivers/media/platform/davinci/vpif_display.c
>> +++ b/drivers/media/platform/davinci/vpif_display.c
>> @@ -827,7 +827,9 @@ static int vpif_querycap(struct file *file, void  *priv,
>>  {
>>       struct vpif_display_config *config = vpif_dev->platform_data;
>>
>> -     cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
>> +     cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING |
>> +                         V4L2_CAP_READWRITE;
>> +     cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>>       strlcpy(cap->driver, "vpif display", sizeof(cap->driver));
>
> vpif_driver
>
>>       strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));
>
> Ditto: "platform:vpif_driver".
>
>>       strlcpy(cap->card, config->card_name, sizeof(cap->card));
>>
>
Ok, I'll respin v2 with all the changes.

Regards,
--Prabhakar Lad

> Regards,
>
>         Hans
Laurent Pinchart Sept. 25, 2012, 11:49 a.m. UTC | #3
Hi Hans,

On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
> On Tue 25 September 2012 13:16:24 Prabhakar wrote:
> > From: Lad, Prabhakar <prabhakar.lad@ti.com>
> > 
> > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> > Cc: Hans Verkuil <hans.verkuil@cisco.com>
> > ---
> > 
> >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
> >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/media/platform/davinci/vpif_capture.c
> > b/drivers/media/platform/davinci/vpif_capture.c index 4828888..faeca98
> > 100644
> > --- a/drivers/media/platform/davinci/vpif_capture.c
> > +++ b/drivers/media/platform/davinci/vpif_capture.c
> > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void 
> > *priv,> 
> >  {
> >  
> >  	struct vpif_capture_config *config = vpif_dev->platform_data;
> > 
> > -	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> > +	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> > +			V4L2_CAP_READWRITE;
> > +	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
> > 
> >  	strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
> 
> This should be the real driver name which is 'vpif_capture'.
> 
> >  	strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
> 
> For bus_info I would use: "platform:vpif_capture".
> 
> The 'platform:' prefix is going to be the standard for platform drivers.

What about

snprintf(cap->driver, sizeof(cap->driver), "platform:%s", dev_name(vpif_dev));

That would handle cases where multiple platform devices of the same type are 
present.

> >  	strlcpy(cap->card, config->card_name, sizeof(cap->card));
> > 
> > diff --git a/drivers/media/platform/davinci/vpif_display.c
> > b/drivers/media/platform/davinci/vpif_display.c index d94b8a2..171e449
> > 100644
> > --- a/drivers/media/platform/davinci/vpif_display.c
> > +++ b/drivers/media/platform/davinci/vpif_display.c
> > @@ -827,7 +827,9 @@ static int vpif_querycap(struct file *file, void 
> > *priv,> 
> >  {
> >  
> >  	struct vpif_display_config *config = vpif_dev->platform_data;
> > 
> > -	cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
> > +	cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING |
> > +			    V4L2_CAP_READWRITE;
> > +	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
> > 
> >  	strlcpy(cap->driver, "vpif display", sizeof(cap->driver));
> 
> vpif_driver
> 
> >  	strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));
> 
> Ditto: "platform:vpif_driver".
> 
> >  	strlcpy(cap->card, config->card_name, sizeof(cap->card));
Hans Verkuil (hansverk) Sept. 25, 2012, 11:54 a.m. UTC | #4
On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote:
> Hi Hans,
> 
> On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
> > On Tue 25 September 2012 13:16:24 Prabhakar wrote:
> > > From: Lad, Prabhakar <prabhakar.lad@ti.com>
> > > 
> > > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> > > Cc: Hans Verkuil <hans.verkuil@cisco.com>
> > > ---
> > > 
> > >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
> > >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
> > >  2 files changed, 6 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/media/platform/davinci/vpif_capture.c
> > > b/drivers/media/platform/davinci/vpif_capture.c index 4828888..faeca98
> > > 100644
> > > --- a/drivers/media/platform/davinci/vpif_capture.c
> > > +++ b/drivers/media/platform/davinci/vpif_capture.c
> > > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void 
> > > *priv,> 
> > >  {
> > >  
> > >  	struct vpif_capture_config *config = vpif_dev->platform_data;
> > > 
> > > -	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> > > +	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> > > +			V4L2_CAP_READWRITE;
> > > +	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
> > > 
> > >  	strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
> > 
> > This should be the real driver name which is 'vpif_capture'.
> > 
> > >  	strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
> > 
> > For bus_info I would use: "platform:vpif_capture".
> > 
> > The 'platform:' prefix is going to be the standard for platform drivers.
> 
> What about
> 
> snprintf(cap->driver, sizeof(cap->driver), "platform:%s", dev_name(vpif_dev));
> 
> That would handle cases where multiple platform devices of the same type are 
> present.

Sure, that's even better. You do have to check that this gives you what you'd
expect (i.e., that you don't end up with "platform:platform:vpif_capture").

Regards,

	Hans
Lad, Prabhakar Sept. 25, 2012, 1:26 p.m. UTC | #5
Hi Hans/Laurent

On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil <hansverk@cisco.com> wrote:
> On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote:
>> Hi Hans,
>>
>> On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
>> > On Tue 25 September 2012 13:16:24 Prabhakar wrote:
>> > > From: Lad, Prabhakar <prabhakar.lad@ti.com>
>> > >
>> > > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
>> > > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
>> > > Cc: Hans Verkuil <hans.verkuil@cisco.com>
>> > > ---
>> > >
>> > >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
>> > >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
>> > >  2 files changed, 6 insertions(+), 2 deletions(-)
>> > >
>> > > diff --git a/drivers/media/platform/davinci/vpif_capture.c
>> > > b/drivers/media/platform/davinci/vpif_capture.c index 4828888..faeca98
>> > > 100644
>> > > --- a/drivers/media/platform/davinci/vpif_capture.c
>> > > +++ b/drivers/media/platform/davinci/vpif_capture.c
>> > > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void
>> > > *priv,>
>> > >  {
>> > >
>> > >   struct vpif_capture_config *config = vpif_dev->platform_data;
>> > >
>> > > - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
>> > > + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
>> > > +                 V4L2_CAP_READWRITE;
>> > > + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>> > >
>> > >   strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
>> >
>> > This should be the real driver name which is 'vpif_capture'.
>> >
>> > >   strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
>> >
>> > For bus_info I would use: "platform:vpif_capture".
>> >
>> > The 'platform:' prefix is going to be the standard for platform drivers.
>>
>> What about
>>
>> snprintf(cap->driver, sizeof(cap->driver), "platform:%s", dev_name(vpif_dev));
>>
>> That would handle cases where multiple platform devices of the same type are
>> present.
>
> Sure, that's even better. You do have to check that this gives you what you'd
> expect (i.e., that you don't end up with "platform:platform:vpif_capture").
>
But the driver field is max 16, should i extend it to 32 ?

Regards,
--Prabhakar Lad

> Regards,
>
>         Hans
Hans Verkuil (hansverk) Sept. 25, 2012, 1:48 p.m. UTC | #6
On Tue 25 September 2012 15:26:11 Prabhakar Lad wrote:
> Hi Hans/Laurent
> 
> On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil <hansverk@cisco.com> wrote:
> > On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote:
> >> Hi Hans,
> >>
> >> On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
> >> > On Tue 25 September 2012 13:16:24 Prabhakar wrote:
> >> > > From: Lad, Prabhakar <prabhakar.lad@ti.com>
> >> > >
> >> > > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> >> > > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> >> > > Cc: Hans Verkuil <hans.verkuil@cisco.com>
> >> > > ---
> >> > >
> >> > >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
> >> > >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
> >> > >  2 files changed, 6 insertions(+), 2 deletions(-)
> >> > >
> >> > > diff --git a/drivers/media/platform/davinci/vpif_capture.c
> >> > > b/drivers/media/platform/davinci/vpif_capture.c index 4828888..faeca98
> >> > > 100644
> >> > > --- a/drivers/media/platform/davinci/vpif_capture.c
> >> > > +++ b/drivers/media/platform/davinci/vpif_capture.c
> >> > > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file, void
> >> > > *priv,>
> >> > >  {
> >> > >
> >> > >   struct vpif_capture_config *config = vpif_dev->platform_data;
> >> > >
> >> > > - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> >> > > + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> >> > > +                 V4L2_CAP_READWRITE;
> >> > > + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
> >> > >
> >> > >   strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
> >> >
> >> > This should be the real driver name which is 'vpif_capture'.
> >> >
> >> > >   strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
> >> >
> >> > For bus_info I would use: "platform:vpif_capture".
> >> >
> >> > The 'platform:' prefix is going to be the standard for platform drivers.
> >>
> >> What about
> >>
> >> snprintf(cap->driver, sizeof(cap->driver), "platform:%s", dev_name(vpif_dev));
> >>
> >> That would handle cases where multiple platform devices of the same type are
> >> present.
> >
> > Sure, that's even better. You do have to check that this gives you what you'd
> > expect (i.e., that you don't end up with "platform:platform:vpif_capture").
> >
> But the driver field is max 16, should i extend it to 32 ?

I'm certain Laurent meant to say:

snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s", dev_name(vpif_dev));

It makes no sense to use cap->driver.

Regards,

	Hans

> 
> Regards,
> --Prabhakar Lad
> 
> > Regards,
> >
> >         Hans
>
Laurent Pinchart Sept. 25, 2012, 1:50 p.m. UTC | #7
On Tuesday 25 September 2012 15:48:10 Hans Verkuil wrote:
> On Tue 25 September 2012 15:26:11 Prabhakar Lad wrote:
> > On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil <hansverk@cisco.com> wrote:
> > > On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote:
> > >> Hi Hans,
> > >> 
> > >> On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
> > >> > On Tue 25 September 2012 13:16:24 Prabhakar wrote:
> > >> > > From: Lad, Prabhakar <prabhakar.lad@ti.com>
> > >> > > 
> > >> > > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > >> > > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
> > >> > > Cc: Hans Verkuil <hans.verkuil@cisco.com>
> > >> > > ---
> > >> > > 
> > >> > >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
> > >> > >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
> > >> > >  2 files changed, 6 insertions(+), 2 deletions(-)
> > >> > > 
> > >> > > diff --git a/drivers/media/platform/davinci/vpif_capture.c
> > >> > > b/drivers/media/platform/davinci/vpif_capture.c index
> > >> > > 4828888..faeca98
> > >> > > 100644
> > >> > > --- a/drivers/media/platform/davinci/vpif_capture.c
> > >> > > +++ b/drivers/media/platform/davinci/vpif_capture.c
> > >> > > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file,
> > >> > > void
> > >> > > *priv,>
> > >> > > 
> > >> > >  {
> > >> > >  
> > >> > >   struct vpif_capture_config *config = vpif_dev->platform_data;
> > >> > > 
> > >> > > - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
> > >> > > + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
> > >> > > +                 V4L2_CAP_READWRITE;
> > >> > > + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
> > >> > > 
> > >> > >   strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
> > >> > 
> > >> > This should be the real driver name which is 'vpif_capture'.
> > >> > 
> > >> > >   strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
> > >> > 
> > >> > For bus_info I would use: "platform:vpif_capture".
> > >> > 
> > >> > The 'platform:' prefix is going to be the standard for platform
> > >> > drivers.
> > >> 
> > >> What about
> > >> 
> > >> snprintf(cap->driver, sizeof(cap->driver), "platform:%s",
> > >> dev_name(vpif_dev));
> > >> 
> > >> That would handle cases where multiple platform devices of the same
> > >> type are present.
> > > 
> > > Sure, that's even better. You do have to check that this gives you what
> > > you'd expect (i.e., that you don't end up with
> > > "platform:platform:vpif_capture").> 
> > But the driver field is max 16, should i extend it to 32 ?
> 
> I'm certain Laurent meant to say:
> 
> snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
> dev_name(vpif_dev));

Yes that's what I meant, sorry.

> It makes no sense to use cap->driver.
Lad, Prabhakar Sept. 25, 2012, 1:56 p.m. UTC | #8
On Tue, Sep 25, 2012 at 7:20 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
> On Tuesday 25 September 2012 15:48:10 Hans Verkuil wrote:
>> On Tue 25 September 2012 15:26:11 Prabhakar Lad wrote:
>> > On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil <hansverk@cisco.com> wrote:
>> > > On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote:
>> > >> Hi Hans,
>> > >>
>> > >> On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote:
>> > >> > On Tue 25 September 2012 13:16:24 Prabhakar wrote:
>> > >> > > From: Lad, Prabhakar <prabhakar.lad@ti.com>
>> > >> > >
>> > >> > > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
>> > >> > > Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
>> > >> > > Cc: Hans Verkuil <hans.verkuil@cisco.com>
>> > >> > > ---
>> > >> > >
>> > >> > >  drivers/media/platform/davinci/vpif_capture.c |    4 +++-
>> > >> > >  drivers/media/platform/davinci/vpif_display.c |    4 +++-
>> > >> > >  2 files changed, 6 insertions(+), 2 deletions(-)
>> > >> > >
>> > >> > > diff --git a/drivers/media/platform/davinci/vpif_capture.c
>> > >> > > b/drivers/media/platform/davinci/vpif_capture.c index
>> > >> > > 4828888..faeca98
>> > >> > > 100644
>> > >> > > --- a/drivers/media/platform/davinci/vpif_capture.c
>> > >> > > +++ b/drivers/media/platform/davinci/vpif_capture.c
>> > >> > > @@ -1630,7 +1630,9 @@ static int vpif_querycap(struct file *file,
>> > >> > > void
>> > >> > > *priv,>
>> > >> > >
>> > >> > >  {
>> > >> > >
>> > >> > >   struct vpif_capture_config *config = vpif_dev->platform_data;
>> > >> > >
>> > >> > > - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
>> > >> > > + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
>> > >> > > +                 V4L2_CAP_READWRITE;
>> > >> > > + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
>> > >> > >
>> > >> > >   strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
>> > >> >
>> > >> > This should be the real driver name which is 'vpif_capture'.
>> > >> >
>> > >> > >   strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
>> > >> >
>> > >> > For bus_info I would use: "platform:vpif_capture".
>> > >> >
>> > >> > The 'platform:' prefix is going to be the standard for platform
>> > >> > drivers.
>> > >>
>> > >> What about
>> > >>
>> > >> snprintf(cap->driver, sizeof(cap->driver), "platform:%s",
>> > >> dev_name(vpif_dev));
>> > >>
>> > >> That would handle cases where multiple platform devices of the same
>> > >> type are present.
>> > >
>> > > Sure, that's even better. You do have to check that this gives you what
>> > > you'd expect (i.e., that you don't end up with
>> > > "platform:platform:vpif_capture").>
>> > But the driver field is max 16, should i extend it to 32 ?
>>
>> I'm certain Laurent meant to say:
>>
>> snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
>> dev_name(vpif_dev));
>
> Yes that's what I meant, sorry.
>
Ok thanks for clarifying.

Regards,
--Prabhakar Lad

>> It makes no sense to use cap->driver.
>
> --
> Regards,
>
> Laurent Pinchart
>
diff mbox

Patch

diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index 4828888..faeca98 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -1630,7 +1630,9 @@  static int vpif_querycap(struct file *file, void  *priv,
 {
 	struct vpif_capture_config *config = vpif_dev->platform_data;
 
-	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
+	cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
+			V4L2_CAP_READWRITE;
+	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	strlcpy(cap->driver, "vpif capture", sizeof(cap->driver));
 	strlcpy(cap->bus_info, "VPIF Platform", sizeof(cap->bus_info));
 	strlcpy(cap->card, config->card_name, sizeof(cap->card));
diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
index d94b8a2..171e449 100644
--- a/drivers/media/platform/davinci/vpif_display.c
+++ b/drivers/media/platform/davinci/vpif_display.c
@@ -827,7 +827,9 @@  static int vpif_querycap(struct file *file, void  *priv,
 {
 	struct vpif_display_config *config = vpif_dev->platform_data;
 
-	cap->capabilities = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
+	cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING |
+			    V4L2_CAP_READWRITE;
+	cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 	strlcpy(cap->driver, "vpif display", sizeof(cap->driver));
 	strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));
 	strlcpy(cap->card, config->card_name, sizeof(cap->card));