[PATCH] media: davinci: vpif: set device capabilities
Subsystems:
media input infrastructure (v4l/dvb) , the rest
STALE5135d
9 messages,
3 authors,
2012-09-25 · open the first message on its own page
From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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 ));
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 )); --
1.7.4.1
On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted hunk From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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.
quoted hunk 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
Hi Hans,
Thanks for the review.
On Tue, Sep 25, 2012 at 5:13 PM, Hans Verkuil [off-list ref] wrote: On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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.
quoted 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.
quoted 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
quoted strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));
Ditto: "platform:vpif_driver".
quoted strlcpy(cap->card, config->card_name, sizeof(cap->card)); Ok, I'll respin v2 with all the changes.
Regards,
--Prabhakar Lad
Regards,
Hans
Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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.
quoted 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
quoted strlcpy(cap->bus_info, "Platform", sizeof(cap->bus_info));
Ditto: "platform:vpif_driver".
quoted strlcpy(cap->card, config->card_name, sizeof(cap->card));
--
Regards,
Laurent Pinchart
On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote: Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: quoted On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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
Hi Hans/Laurent
On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil [off-list ref] wrote: On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote: quoted Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: quoted On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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
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 [off-list ref] wrote: quoted On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote: quoted Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: quoted On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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
quoted Regards,
Hans
On Tuesday 25 September 2012 15:48:10 Hans Verkuil wrote: On Tue 25 September 2012 15:26:11 Prabhakar Lad wrote: quoted On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil [off-list ref] wrote: quoted On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote: quoted Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: quoted On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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.
--
Regards,
Laurent Pinchart
On Tue, Sep 25, 2012 at 7:20 PM, Laurent Pinchart
[off-list ref] wrote: On Tuesday 25 September 2012 15:48:10 Hans Verkuil wrote: quoted On Tue 25 September 2012 15:26:11 Prabhakar Lad wrote: quoted On Tue, Sep 25, 2012 at 5:24 PM, Hans Verkuil [off-list ref] wrote: quoted On Tue 25 September 2012 13:49:16 Laurent Pinchart wrote: quoted Hi Hans,
On Tuesday 25 September 2012 13:43:36 Hans Verkuil wrote: quoted On Tue 25 September 2012 13:16:24 Prabhakar wrote: quoted From: Lad, Prabhakar <redacted>
Signed-off-by: Lad, Prabhakar <redacted>
Signed-off-by: Manjunath Hadli <redacted>
Cc: Hans Verkuil <redacted>
---
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'.
quoted 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
quoted It makes no sense to use cap->driver.
--
Regards,
Laurent Pinchart