aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/tm6000/tm6000-video.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/tm6000/tm6000-video.c')
-rw-r--r--drivers/staging/tm6000/tm6000-video.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/staging/tm6000/tm6000-video.c b/drivers/staging/tm6000/tm6000-video.c
index b5503409ca5..c80a316d9d8 100644
--- a/drivers/staging/tm6000/tm6000-video.c
+++ b/drivers/staging/tm6000/tm6000-video.c
@@ -1080,18 +1080,27 @@ static int vidioc_s_std (struct file *file, void *priv, v4l2_std_id *norm)
static int vidioc_enum_input(struct file *file, void *priv,
struct v4l2_input *inp)
{
+ struct tm6000_fh *fh = priv;
+ struct tm6000_core *dev = fh->dev;
+
switch (inp->index) {
case TM6000_INPUT_TV:
inp->type = V4L2_INPUT_TYPE_TUNER;
strcpy(inp->name, "Television");
break;
case TM6000_INPUT_COMPOSITE:
- inp->type = V4L2_INPUT_TYPE_CAMERA;
- strcpy(inp->name, "Composite");
+ if (dev->caps.has_input_comp) {
+ inp->type = V4L2_INPUT_TYPE_CAMERA;
+ strcpy(inp->name, "Composite");
+ } else
+ return -EINVAL;
break;
case TM6000_INPUT_SVIDEO:
- inp->type = V4L2_INPUT_TYPE_CAMERA;
- strcpy(inp->name, "S-Video");
+ if (dev->caps.has_input_svid) {
+ inp->type = V4L2_INPUT_TYPE_CAMERA;
+ strcpy(inp->name, "S-Video");
+ } else
+ return -EINVAL;
break;
default:
return -EINVAL;