From: Jinhyung Jo Date: Thu, 10 Nov 2016 04:54:56 +0000 (+0900) Subject: tv: add device capability flag X-Git-Tag: submit/tizen/20161219.112149~5^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7db10746c25486a38fc7524b11c10f64bb17c0f0;p=sdk%2Femulator%2Femulator-kernel.git tv: add device capability flag According to the policy of the V4L2, the device drivers MUST fill in the device_caps. If do not, warning messages & back-traces are print to the log. Therefore add flags to the devices that do not have the device_caps. Change-Id: I5d9ce4da56fc55ca81ca362b4f052339fec02f91 Signed-off-by: Jinhyung Jo --- diff --git a/drivers/maru/tv/maru_atv.c b/drivers/maru/tv/maru_atv.c index 3ee2ef99646f..45f2fdffd3e1 100644 --- a/drivers/maru/tv/maru_atv.c +++ b/drivers/maru/tv/maru_atv.c @@ -194,6 +194,11 @@ const struct v4l2_ioctl_ops *get_audio_v4l2_ioctl_ops(void) static int vidioc_querycap_sif(struct file *file, void *priv, struct v4l2_capability *cap) { print_dbg(1, "%s is called", __func__); + strcpy(cap->driver, "maruatv_sif"); + /* TODO: This is W/A. So someone in charge of this module + has to set the correct capability */ + cap->device_caps = V4L2_CAP_AUDIO | V4L2_CAP_STREAMING;; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/maru/tv/maru_component.c b/drivers/maru/tv/maru_component.c index 07c7dde904c4..2bebb4d79f03 100644 --- a/drivers/maru/tv/maru_component.c +++ b/drivers/maru/tv/maru_component.c @@ -101,6 +101,10 @@ static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability { maru_component_dbg(5, "[component]enter\n"); strcpy(cap->driver, MARU_COMPONENT_MODULE_NAME); + /* TODO: This is W/A. So someone in charge of this module + has to set the correct capability */ + cap->device_caps = V4L2_CAP_STREAMING;; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/maru/tv/maru_composite.c b/drivers/maru/tv/maru_composite.c index bc4703c09932..cb27beaf6984 100644 --- a/drivers/maru/tv/maru_composite.c +++ b/drivers/maru/tv/maru_composite.c @@ -104,7 +104,10 @@ static int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability maru_composite_dbg(5, "[composite]enter\n"); strcpy(cap->driver, MARU_COMPOSITE_MODULE_NAME); - + /* TODO: This is W/A. So someone in charge of this module + has to set the correct capability */ + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/maru/tv/maru_dtv_decoder.c b/drivers/maru/tv/maru_dtv_decoder.c index 4f4bd691709a..a113d605a1f0 100644 --- a/drivers/maru/tv/maru_dtv_decoder.c +++ b/drivers/maru/tv/maru_dtv_decoder.c @@ -386,8 +386,9 @@ static int vidioc_querycap(struct file *file, void *priv, strcpy(cap->card, MARU_DTV_DEC_MODULE_NAME); strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info)); cap->version = dev->version; - cap->capabilities = + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_M2M | V4L2_CAP_VIDEO_OUTPUT; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; DEBUG("v4l2_capability capabilities=0x%x\n", cap->capabilities); return ret; diff --git a/drivers/maru/tv/maru_hdmi.c b/drivers/maru/tv/maru_hdmi.c index 970c81d4524b..01a03ecdf787 100644 --- a/drivers/maru/tv/maru_hdmi.c +++ b/drivers/maru/tv/maru_hdmi.c @@ -117,7 +117,8 @@ static int vidioc_querycap(struct file *file, void *priv, maru_hdmi_dbg(5, "[hdmi]enter\n"); strcpy(cap->driver, MARU_HDMI_MODULE_NAME); - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/maru/tv/maru_hdmiswitch.c b/drivers/maru/tv/maru_hdmiswitch.c index 963a4df74067..45f50bd00d3d 100644 --- a/drivers/maru/tv/maru_hdmiswitch.c +++ b/drivers/maru/tv/maru_hdmiswitch.c @@ -255,7 +255,8 @@ static int vidioc_querycap(struct file *file, void *priv, cap->bus_info[0] = 0; cap->version = MARU_EXTINPUT_VERSION; - cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; } diff --git a/drivers/maru/tv/maru_tuner.c b/drivers/maru/tv/maru_tuner.c index f35d85715da4..0b410e5c1457 100644 --- a/drivers/maru/tv/maru_tuner.c +++ b/drivers/maru/tv/maru_tuner.c @@ -243,7 +243,8 @@ static int maruatv_vidioc_querycap(struct file *file, void *priv, struct v4l2_ca print_dbg(1, "\n"); strlcpy(cap->driver, "marutuner_atv", sizeof(cap->driver)); - cap->capabilities = V4L2_CAP_TUNER; + cap->device_caps = V4L2_CAP_TUNER; + cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; return 0; }