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 hans.verk...@cisco.com
 
 Signed-off-by: Hans Verkuil hans.verk...@cisco.com
 ---
  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


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 hans.verk...@cisco.com
  
  Signed-off-by: Hans Verkuil hans.verk...@cisco.com
  ---
   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


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

2012-09-07 Thread Hans Verkuil
From: Hans Verkuil hans.verk...@cisco.com

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
---
 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 = {
diff --git