Re: [RFCv2 API PATCH 25/28] Set vfl_dir for all display or m2m drivers.

2012-09-13 Thread Hans Verkuil
On Thu 13 September 2012 04:37:27 Laurent Pinchart wrote:
> Hi Hans,
> 
> Thanks for the patch.
> 
> On Friday 07 September 2012 15:29:25 Hans Verkuil wrote:
> > From: Hans Verkuil 
> > 
> > Signed-off-by: Hans Verkuil 
> > ---
> >  drivers/media/pci/ivtv/ivtv-streams.c |3 +++
> >  drivers/media/pci/zoran/zoran_card.c  |4 
> >  drivers/media/platform/coda.c |1 +
> >  drivers/media/platform/davinci/vpbe_display.c |1 +
> >  drivers/media/platform/davinci/vpif_display.c |1 +
> >  drivers/media/platform/m2m-deinterlace.c  |1 +
> >  drivers/media/platform/mem2mem_testdev.c  |1 +
> >  drivers/media/platform/mx2_emmaprp.c  |1 +
> >  drivers/media/platform/omap/omap_vout.c   |1 +
> >  drivers/media/platform/omap3isp/ispvideo.c|1 +
> >  drivers/media/platform/s5p-fimc/fimc-m2m.c|1 +
> >  drivers/media/platform/s5p-g2d/g2d.c  |1 +
> >  drivers/media/platform/s5p-jpeg/jpeg-core.c   |1 +
> >  drivers/media/platform/s5p-mfc/s5p_mfc.c  |1 +
> >  drivers/media/platform/s5p-tv/mixer_video.c   |1 +
> >  drivers/media/platform/sh_vou.c   |1 +
> >  drivers/media/usb/uvc/uvc_driver.c|2 ++
> >  17 files changed, 23 insertions(+)
> > 
> > diff --git a/drivers/media/pci/ivtv/ivtv-streams.c
> > b/drivers/media/pci/ivtv/ivtv-streams.c index f08ec17..1d0e04a 100644
> > --- a/drivers/media/pci/ivtv/ivtv-streams.c
> > +++ b/drivers/media/pci/ivtv/ivtv-streams.c
> > @@ -223,6 +223,9 @@ static int ivtv_prep_dev(struct ivtv *itv, int type)
> > 
> > s->vdev->num = num;
> > s->vdev->v4l2_dev = &itv->v4l2_dev;
> > +   if (ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VIDEO_OUTPUT ||
> > +   ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VBI_OUTPUT)
> > +   s->vdev->vfl_dir = VFL_DIR_TX;
> 
> I think drivers should set VFL_DIR_RX explicitly instead of relying on it 
> being equal to 0. If we change the value later for any reason this 
> implementation would break.

I can do that for those drivers like ivtv where you have output and input
devices, but I'm not going to change this for all drivers, because that would
be a substantial amount of work for little gain.

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFCv2 API PATCH 25/28] Set vfl_dir for all display or m2m drivers.

2012-09-13 Thread Laurent Pinchart
Hi Hans,

Thanks for the patch.

On Friday 07 September 2012 15:29:25 Hans Verkuil wrote:
> From: Hans Verkuil 
> 
> Signed-off-by: Hans Verkuil 
> ---
>  drivers/media/pci/ivtv/ivtv-streams.c |3 +++
>  drivers/media/pci/zoran/zoran_card.c  |4 
>  drivers/media/platform/coda.c |1 +
>  drivers/media/platform/davinci/vpbe_display.c |1 +
>  drivers/media/platform/davinci/vpif_display.c |1 +
>  drivers/media/platform/m2m-deinterlace.c  |1 +
>  drivers/media/platform/mem2mem_testdev.c  |1 +
>  drivers/media/platform/mx2_emmaprp.c  |1 +
>  drivers/media/platform/omap/omap_vout.c   |1 +
>  drivers/media/platform/omap3isp/ispvideo.c|1 +
>  drivers/media/platform/s5p-fimc/fimc-m2m.c|1 +
>  drivers/media/platform/s5p-g2d/g2d.c  |1 +
>  drivers/media/platform/s5p-jpeg/jpeg-core.c   |1 +
>  drivers/media/platform/s5p-mfc/s5p_mfc.c  |1 +
>  drivers/media/platform/s5p-tv/mixer_video.c   |1 +
>  drivers/media/platform/sh_vou.c   |1 +
>  drivers/media/usb/uvc/uvc_driver.c|2 ++
>  17 files changed, 23 insertions(+)
> 
> diff --git a/drivers/media/pci/ivtv/ivtv-streams.c
> b/drivers/media/pci/ivtv/ivtv-streams.c index f08ec17..1d0e04a 100644
> --- a/drivers/media/pci/ivtv/ivtv-streams.c
> +++ b/drivers/media/pci/ivtv/ivtv-streams.c
> @@ -223,6 +223,9 @@ static int ivtv_prep_dev(struct ivtv *itv, int type)
> 
>   s->vdev->num = num;
>   s->vdev->v4l2_dev = &itv->v4l2_dev;
> + if (ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VIDEO_OUTPUT ||
> + ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VBI_OUTPUT)
> + s->vdev->vfl_dir = VFL_DIR_TX;

I think drivers should set VFL_DIR_RX explicitly instead of relying on it 
being equal to 0. If we change the value later for any reason this 
implementation would break.

>   s->vdev->fops = ivtv_stream_info[type].fops;
>   s->vdev->ctrl_handler = itv->v4l2_dev.ctrl_handler;
>   s->vdev->release = video_device_release;

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFCv2 API PATCH 25/28] Set vfl_dir for all display or m2m drivers.

2012-09-07 Thread Hans Verkuil
From: Hans Verkuil 

Signed-off-by: Hans Verkuil 
---
 drivers/media/pci/ivtv/ivtv-streams.c |3 +++
 drivers/media/pci/zoran/zoran_card.c  |4 
 drivers/media/platform/coda.c |1 +
 drivers/media/platform/davinci/vpbe_display.c |1 +
 drivers/media/platform/davinci/vpif_display.c |1 +
 drivers/media/platform/m2m-deinterlace.c  |1 +
 drivers/media/platform/mem2mem_testdev.c  |1 +
 drivers/media/platform/mx2_emmaprp.c  |1 +
 drivers/media/platform/omap/omap_vout.c   |1 +
 drivers/media/platform/omap3isp/ispvideo.c|1 +
 drivers/media/platform/s5p-fimc/fimc-m2m.c|1 +
 drivers/media/platform/s5p-g2d/g2d.c  |1 +
 drivers/media/platform/s5p-jpeg/jpeg-core.c   |1 +
 drivers/media/platform/s5p-mfc/s5p_mfc.c  |1 +
 drivers/media/platform/s5p-tv/mixer_video.c   |1 +
 drivers/media/platform/sh_vou.c   |1 +
 drivers/media/usb/uvc/uvc_driver.c|2 ++
 17 files changed, 23 insertions(+)

diff --git a/drivers/media/pci/ivtv/ivtv-streams.c 
b/drivers/media/pci/ivtv/ivtv-streams.c
index f08ec17..1d0e04a 100644
--- a/drivers/media/pci/ivtv/ivtv-streams.c
+++ b/drivers/media/pci/ivtv/ivtv-streams.c
@@ -223,6 +223,9 @@ static int ivtv_prep_dev(struct ivtv *itv, int type)
 
s->vdev->num = num;
s->vdev->v4l2_dev = &itv->v4l2_dev;
+   if (ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VIDEO_OUTPUT ||
+   ivtv_stream_info[type].buf_type == V4L2_BUF_TYPE_VBI_OUTPUT)
+   s->vdev->vfl_dir = VFL_DIR_TX;
s->vdev->fops = ivtv_stream_info[type].fops;
s->vdev->ctrl_handler = itv->v4l2_dev.ctrl_handler;
s->vdev->release = video_device_release;
diff --git a/drivers/media/pci/zoran/zoran_card.c 
b/drivers/media/pci/zoran/zoran_card.c
index c3602d6..fffc54b 100644
--- a/drivers/media/pci/zoran/zoran_card.c
+++ b/drivers/media/pci/zoran/zoran_card.c
@@ -1055,6 +1055,10 @@ zr36057_init (struct zoran *zr)
memcpy(zr->video_dev, &zoran_template, sizeof(zoran_template));
zr->video_dev->parent = &zr->pci_dev->dev;
strcpy(zr->video_dev->name, ZR_DEVNAME(zr));
+   /* It's not a mem2mem device, but you can both capture and output from
+  one and the same device. This should really be split up into two
+  device nodes, but that's a job for another day. */
+   zr->video_dev->vfl_dir = VFL_DIR_M2M;
err = video_register_device(zr->video_dev, VFL_TYPE_GRABBER, 
video_nr[zr->id]);
if (err < 0)
goto exit_free;
diff --git a/drivers/media/platform/coda.c b/drivers/media/platform/coda.c
index 6908514..c483a6c 100644
--- a/drivers/media/platform/coda.c
+++ b/drivers/media/platform/coda.c
@@ -1641,6 +1641,7 @@ static void coda_fw_callback(const struct firmware *fw, 
void *context)
dev->vfd.release= video_device_release_empty,
dev->vfd.lock   = &dev->dev_mutex;
dev->vfd.v4l2_dev   = &dev->v4l2_dev;
+   dev->vfd.vfl_dir= VFL_DIR_M2M;
snprintf(dev->vfd.name, sizeof(dev->vfd.name), "%s", CODA_NAME);
video_set_drvdata(&dev->vfd, dev);
 
diff --git a/drivers/media/platform/davinci/vpbe_display.c 
b/drivers/media/platform/davinci/vpbe_display.c
index c7e5fd9..ed30c71 100644
--- a/drivers/media/platform/davinci/vpbe_display.c
+++ b/drivers/media/platform/davinci/vpbe_display.c
@@ -1634,6 +1634,7 @@ static __devinit int init_vpbe_layer(int i, struct 
vpbe_display *disp_dev,
vbd->minor  = -1;
vbd->v4l2_dev   = &disp_dev->vpbe_dev->v4l2_dev;
vbd->lock   = &vpbe_display_layer->opslock;
+   vbd->vfl_dir= VFL_DIR_TX;
 
if (disp_dev->vpbe_dev->current_timings.timings_type &
VPBE_ENC_STD) {
diff --git a/drivers/media/platform/davinci/vpif_display.c 
b/drivers/media/platform/davinci/vpif_display.c
index 4a24848..ff6e432 100644
--- a/drivers/media/platform/davinci/vpif_display.c
+++ b/drivers/media/platform/davinci/vpif_display.c
@@ -1745,6 +1745,7 @@ static __init int vpif_probe(struct platform_device *pdev)
*vfd = vpif_video_template;
vfd->v4l2_dev = &vpif_obj.v4l2_dev;
vfd->release = video_device_release;
+   vfd->vfl_dir = VFL_DIR_TX;
snprintf(vfd->name, sizeof(vfd->name),
 "VPIF_Display_DRIVER_V%s",
 VPIF_DISPLAY_VERSION);
diff --git a/drivers/media/platform/m2m-deinterlace.c 
b/drivers/media/platform/m2m-deinterlace.c
index a38c152..a534a9c 100644
--- a/drivers/media/platform/m2m-deinterlace.c
+++ b/drivers/media/platform/m2m-deinterlace.c
@@ -982,6 +982,7 @@ static struct video_device deinterlace_videodev = {
.ioctl_ops  = &deinterlace_ioctl_ops,
.minor  = -1,
.release= video_device_release,
+   .vfl_dir= VFL_DIR_M2M,
 };
 
 static struct v4l2_m2m_ops m2m_ops =