Re: [RFCv2 API PATCH 25/28] Set vfl_dir for all display or m2m drivers.
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.
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.
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