diff options
-rw-r--r-- | drivers/media/video/soc_camera.c | 17 | ||||
-rw-r--r-- | include/media/soc_camera.h | 1 |
2 files changed, 14 insertions, 4 deletions
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c index b12d11f213bd..e86e6bda1b7f 100644 --- a/drivers/media/video/soc_camera.c +++ b/drivers/media/video/soc_camera.c | |||
@@ -125,14 +125,23 @@ static int soc_camera_try_fmt_vid_cap(struct file *file, void *priv, | |||
125 | static int soc_camera_enum_input(struct file *file, void *priv, | 125 | static int soc_camera_enum_input(struct file *file, void *priv, |
126 | struct v4l2_input *inp) | 126 | struct v4l2_input *inp) |
127 | { | 127 | { |
128 | struct soc_camera_file *icf = file->private_data; | ||
129 | struct soc_camera_device *icd = icf->icd; | ||
130 | int ret = 0; | ||
131 | |||
128 | if (inp->index != 0) | 132 | if (inp->index != 0) |
129 | return -EINVAL; | 133 | return -EINVAL; |
130 | 134 | ||
131 | inp->type = V4L2_INPUT_TYPE_CAMERA; | 135 | if (icd->ops->enum_input) |
132 | inp->std = V4L2_STD_UNKNOWN; | 136 | ret = icd->ops->enum_input(icd, inp); |
133 | strcpy(inp->name, "Camera"); | 137 | else { |
138 | /* default is camera */ | ||
139 | inp->type = V4L2_INPUT_TYPE_CAMERA; | ||
140 | inp->std = V4L2_STD_UNKNOWN; | ||
141 | strcpy(inp->name, "Camera"); | ||
142 | } | ||
134 | 143 | ||
135 | return 0; | 144 | return ret; |
136 | } | 145 | } |
137 | 146 | ||
138 | static int soc_camera_g_input(struct file *file, void *priv, unsigned int *i) | 147 | static int soc_camera_g_input(struct file *file, void *priv, unsigned int *i) |
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index 26dede82057c..50f4447566de 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h | |||
@@ -166,6 +166,7 @@ struct soc_camera_ops { | |||
166 | int (*get_chip_id)(struct soc_camera_device *, | 166 | int (*get_chip_id)(struct soc_camera_device *, |
167 | struct v4l2_chip_ident *); | 167 | struct v4l2_chip_ident *); |
168 | int (*set_std)(struct soc_camera_device *, v4l2_std_id *); | 168 | int (*set_std)(struct soc_camera_device *, v4l2_std_id *); |
169 | int (*enum_input)(struct soc_camera_device *, struct v4l2_input *); | ||
169 | #ifdef CONFIG_VIDEO_ADV_DEBUG | 170 | #ifdef CONFIG_VIDEO_ADV_DEBUG |
170 | int (*get_register)(struct soc_camera_device *, struct v4l2_register *); | 171 | int (*get_register)(struct soc_camera_device *, struct v4l2_register *); |
171 | int (*set_register)(struct soc_camera_device *, struct v4l2_register *); | 172 | int (*set_register)(struct soc_camera_device *, struct v4l2_register *); |