RE: [PATCH 6/6] media/platform: fix querycap
Hi Hans, Thanks for this patch. Looks good. Best regards, Kamil From: Hans Verkuil [mailto:hverk...@xs4all.nl] Sent: Monday, November 24, 2014 10:37 AM To: linux-media@vger.kernel.org Cc: Hans Verkuil; Lad, Prabhakar; Kamil Debski; Jacek Anaszewski Subject: [PATCH 6/6] media/platform: fix querycap From: Hans Verkuil hans.verk...@cisco.com Querycap shouldn't set the version field (the core does that for you), but it should set the device_caps field. In addition, remove the CAPTURE and OUTPUT caps for M2M devices. These were already slated for removal, so it's time to do so. Signed-off-by: Hans Verkuil hans.verk...@cisco.com Cc: Lad, Prabhakar prabhakar.cse...@gmail.com Cc: Kamil Debski k.deb...@samsung.com Cc: Jacek Anaszewski j.anaszew...@samsung.com Acked-by: Kamil Debski k.deb...@samsung.com --- drivers/media/platform/davinci/vpbe_display.c | 1 - drivers/media/platform/davinci/vpfe_capture.c | 4 ++-- drivers/media/platform/s5p-g2d/g2d.c | 10 ++ drivers/media/platform/s5p-jpeg/jpeg-core.c | 9 ++--- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 6 ++ drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 6 ++ 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 78b9ffe..21a5a56 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c @@ -639,7 +639,6 @@ static int vpbe_display_querycap(struct file *file, void *priv, struct vpbe_layer *layer = video_drvdata(file); struct vpbe_device *vpbe_dev = layer-disp_dev-vpbe_dev; - cap-version = VPBE_DISPLAY_VERSION_CODE; cap-device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; snprintf(cap-driver, sizeof(cap-driver), %s, diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c index 3d0e3ae..271c460 100644 --- a/drivers/media/platform/davinci/vpfe_capture.c +++ b/drivers/media/platform/davinci/vpfe_capture.c @@ -930,8 +930,8 @@ static int vpfe_querycap(struct file *file, void *priv, v4l2_dbg(1, debug, vpfe_dev-v4l2_dev, vpfe_querycap\n); - cap-version = VPFE_CAPTURE_VERSION_CODE; - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; strlcpy(cap-driver, CAPTURE_DRV_NAME, sizeof(cap-driver)); strlcpy(cap-bus_info, VPFE, sizeof(cap-bus_info)); strlcpy(cap-card, vpfe_dev-cfg-card_name, sizeof(cap-card)); diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c index d79e214..51e4edc 100644 --- a/drivers/media/platform/s5p-g2d/g2d.c +++ b/drivers/media/platform/s5p-g2d/g2d.c @@ -297,14 +297,8 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, G2D_NAME, sizeof(cap-driver) - 1); strncpy(cap-card, G2D_NAME, sizeof(cap-card) - 1); cap-bus_info[0] = 0; - cap-version = KERNEL_VERSION(1, 0, 0); - /* - * This is only a mem-to-mem video device. The capture and output - * device capability flags are left only for backward compatibility - * and are scheduled for removal. - */ - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | - V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 6fcc7f0..d6f75b1 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -1001,13 +1001,8 @@ static int s5p_jpeg_querycap(struct file *file, void *priv, sizeof(cap-card)); } cap-bus_info[0] = 0; - /* - * This is only a mem-to-mem video device. The capture and output - * device capability flags are left only for backward compatibility - * and are scheduled for removal. - */ - cap-capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M | - V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap-device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c index 74bcec8..c6c3452 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c @@ -269,15 +269,13 @@ static int vidioc_querycap(struct file *file, void
Re: [PATCH 6/6] media/platform: fix querycap
Hi Hans, Thanks for the patch. On Mon, Nov 24, 2014 at 9:37 AM, Hans Verkuil hverk...@xs4all.nl wrote: From: Hans Verkuil hans.verk...@cisco.com Querycap shouldn't set the version field (the core does that for you), but it should set the device_caps field. In addition, remove the CAPTURE and OUTPUT caps for M2M devices. These were already slated for removal, so it's time to do so. Signed-off-by: Hans Verkuil hans.verk...@cisco.com Cc: Lad, Prabhakar prabhakar.cse...@gmail.com Cc: Kamil Debski k.deb...@samsung.com Cc: Jacek Anaszewski j.anaszew...@samsung.com --- Acked-by: Lad, Prabhakar prabhakar.cse...@gmail.com Regards, --Prabhakar Lad drivers/media/platform/davinci/vpbe_display.c | 1 - drivers/media/platform/davinci/vpfe_capture.c | 4 ++-- drivers/media/platform/s5p-g2d/g2d.c | 10 ++ drivers/media/platform/s5p-jpeg/jpeg-core.c | 9 ++--- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 6 ++ drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 6 ++ 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 78b9ffe..21a5a56 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c @@ -639,7 +639,6 @@ static int vpbe_display_querycap(struct file *file, void *priv, struct vpbe_layer *layer = video_drvdata(file); struct vpbe_device *vpbe_dev = layer-disp_dev-vpbe_dev; - cap-version = VPBE_DISPLAY_VERSION_CODE; cap-device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; snprintf(cap-driver, sizeof(cap-driver), %s, diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c index 3d0e3ae..271c460 100644 --- a/drivers/media/platform/davinci/vpfe_capture.c +++ b/drivers/media/platform/davinci/vpfe_capture.c @@ -930,8 +930,8 @@ static int vpfe_querycap(struct file *file, void *priv, v4l2_dbg(1, debug, vpfe_dev-v4l2_dev, vpfe_querycap\n); - cap-version = VPFE_CAPTURE_VERSION_CODE; - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; strlcpy(cap-driver, CAPTURE_DRV_NAME, sizeof(cap-driver)); strlcpy(cap-bus_info, VPFE, sizeof(cap-bus_info)); strlcpy(cap-card, vpfe_dev-cfg-card_name, sizeof(cap-card)); diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c index d79e214..51e4edc 100644 --- a/drivers/media/platform/s5p-g2d/g2d.c +++ b/drivers/media/platform/s5p-g2d/g2d.c @@ -297,14 +297,8 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, G2D_NAME, sizeof(cap-driver) - 1); strncpy(cap-card, G2D_NAME, sizeof(cap-card) - 1); cap-bus_info[0] = 0; - cap-version = KERNEL_VERSION(1, 0, 0); - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | - V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 6fcc7f0..d6f75b1 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -1001,13 +1001,8 @@ static int s5p_jpeg_querycap(struct file *file, void *priv, sizeof(cap-card)); } cap-bus_info[0] = 0; - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M | - V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap-device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c index 74bcec8..c6c3452 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c @@ -269,15 +269,13 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, dev-plat_dev-name, sizeof(cap-driver) - 1);
Re: [PATCH 6/6] media/platform: fix querycap
Hi Hans, Thanks for the patch. On 11/24/2014 10:37 AM, Hans Verkuil wrote: From: Hans Verkuil hans.verk...@cisco.com Querycap shouldn't set the version field (the core does that for you), but it should set the device_caps field. In addition, remove the CAPTURE and OUTPUT caps for M2M devices. These were already slated for removal, so it's time to do so. Signed-off-by: Hans Verkuil hans.verk...@cisco.com Cc: Lad, Prabhakar prabhakar.cse...@gmail.com Cc: Kamil Debski k.deb...@samsung.com Cc: Jacek Anaszewski j.anaszew...@samsung.com Acked-by: Jacek Anaszewski j.anaszew...@samsung.com Best Regards, Jacek Anaszewski --- drivers/media/platform/davinci/vpbe_display.c | 1 - drivers/media/platform/davinci/vpfe_capture.c | 4 ++-- drivers/media/platform/s5p-g2d/g2d.c | 10 ++ drivers/media/platform/s5p-jpeg/jpeg-core.c | 9 ++--- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 6 ++ drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 6 ++ 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 78b9ffe..21a5a56 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c @@ -639,7 +639,6 @@ static int vpbe_display_querycap(struct file *file, void *priv, struct vpbe_layer *layer = video_drvdata(file); struct vpbe_device *vpbe_dev = layer-disp_dev-vpbe_dev; - cap-version = VPBE_DISPLAY_VERSION_CODE; cap-device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; snprintf(cap-driver, sizeof(cap-driver), %s, diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c index 3d0e3ae..271c460 100644 --- a/drivers/media/platform/davinci/vpfe_capture.c +++ b/drivers/media/platform/davinci/vpfe_capture.c @@ -930,8 +930,8 @@ static int vpfe_querycap(struct file *file, void *priv, v4l2_dbg(1, debug, vpfe_dev-v4l2_dev, vpfe_querycap\n); - cap-version = VPFE_CAPTURE_VERSION_CODE; - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; strlcpy(cap-driver, CAPTURE_DRV_NAME, sizeof(cap-driver)); strlcpy(cap-bus_info, VPFE, sizeof(cap-bus_info)); strlcpy(cap-card, vpfe_dev-cfg-card_name, sizeof(cap-card)); diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c index d79e214..51e4edc 100644 --- a/drivers/media/platform/s5p-g2d/g2d.c +++ b/drivers/media/platform/s5p-g2d/g2d.c @@ -297,14 +297,8 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, G2D_NAME, sizeof(cap-driver) - 1); strncpy(cap-card, G2D_NAME, sizeof(cap-card) - 1); cap-bus_info[0] = 0; - cap-version = KERNEL_VERSION(1, 0, 0); - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | - V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 6fcc7f0..d6f75b1 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -1001,13 +1001,8 @@ static int s5p_jpeg_querycap(struct file *file, void *priv, sizeof(cap-card)); } cap-bus_info[0] = 0; - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M | - V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap-device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c index 74bcec8..c6c3452 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c @@ -269,15 +269,13 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, dev-plat_dev-name, sizeof(cap-driver) - 1); strncpy(cap-card, dev-plat_dev-name, sizeof(cap-card) - 1); cap-bus_info[0] = 0; -
[PATCH 6/6] media/platform: fix querycap
From: Hans Verkuil hans.verk...@cisco.com Querycap shouldn't set the version field (the core does that for you), but it should set the device_caps field. In addition, remove the CAPTURE and OUTPUT caps for M2M devices. These were already slated for removal, so it's time to do so. Signed-off-by: Hans Verkuil hans.verk...@cisco.com Cc: Lad, Prabhakar prabhakar.cse...@gmail.com Cc: Kamil Debski k.deb...@samsung.com Cc: Jacek Anaszewski j.anaszew...@samsung.com --- drivers/media/platform/davinci/vpbe_display.c | 1 - drivers/media/platform/davinci/vpfe_capture.c | 4 ++-- drivers/media/platform/s5p-g2d/g2d.c | 10 ++ drivers/media/platform/s5p-jpeg/jpeg-core.c | 9 ++--- drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 6 ++ drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 6 ++ 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 78b9ffe..21a5a56 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c @@ -639,7 +639,6 @@ static int vpbe_display_querycap(struct file *file, void *priv, struct vpbe_layer *layer = video_drvdata(file); struct vpbe_device *vpbe_dev = layer-disp_dev-vpbe_dev; - cap-version = VPBE_DISPLAY_VERSION_CODE; cap-device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; snprintf(cap-driver, sizeof(cap-driver), %s, diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c index 3d0e3ae..271c460 100644 --- a/drivers/media/platform/davinci/vpfe_capture.c +++ b/drivers/media/platform/davinci/vpfe_capture.c @@ -930,8 +930,8 @@ static int vpfe_querycap(struct file *file, void *priv, v4l2_dbg(1, debug, vpfe_dev-v4l2_dev, vpfe_querycap\n); - cap-version = VPFE_CAPTURE_VERSION_CODE; - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; strlcpy(cap-driver, CAPTURE_DRV_NAME, sizeof(cap-driver)); strlcpy(cap-bus_info, VPFE, sizeof(cap-bus_info)); strlcpy(cap-card, vpfe_dev-cfg-card_name, sizeof(cap-card)); diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c index d79e214..51e4edc 100644 --- a/drivers/media/platform/s5p-g2d/g2d.c +++ b/drivers/media/platform/s5p-g2d/g2d.c @@ -297,14 +297,8 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, G2D_NAME, sizeof(cap-driver) - 1); strncpy(cap-card, G2D_NAME, sizeof(cap-card) - 1); cap-bus_info[0] = 0; - cap-version = KERNEL_VERSION(1, 0, 0); - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT | - V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 6fcc7f0..d6f75b1 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -1001,13 +1001,8 @@ static int s5p_jpeg_querycap(struct file *file, void *priv, sizeof(cap-card)); } cap-bus_info[0] = 0; - /* -* This is only a mem-to-mem video device. The capture and output -* device capability flags are left only for backward compatibility -* and are scheduled for removal. -*/ - cap-capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M | - V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap-device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M; + cap-capabilities = cap-device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c index 74bcec8..c6c3452 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c @@ -269,15 +269,13 @@ static int vidioc_querycap(struct file *file, void *priv, strncpy(cap-driver, dev-plat_dev-name, sizeof(cap-driver) - 1); strncpy(cap-card, dev-plat_dev-name, sizeof(cap-card) - 1); cap-bus_info[0] = 0; - cap-version = KERNEL_VERSION(1, 0, 0); /* * This is only a mem-to-mem video device. The capture and output * device capability flags are left only for