diff options
author | Laurent Pinchart <laurent.pinchart@skynet.be> | 2008-09-22 12:14:59 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:08 -0400 |
commit | 5e26d50f4e6b9c42bbfbaa452722797ece929cda (patch) | |
tree | b4ef2afc190910d4cad68eaf2fb296f09fd94005 /drivers | |
parent | 4aaec3ea41addf6fe4fe029aa535f3c019ee0e6d (diff) |
V4L/DVB (9035): uvcvideo: Declare missing camera and processing unit controls.
This declares all missing UVC camera and processing unit controls. V4L2
mappings are not supported yet for those controls.
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/uvc/uvc_ctrl.c | 164 |
1 files changed, 145 insertions, 19 deletions
diff --git a/drivers/media/video/uvc/uvc_ctrl.c b/drivers/media/video/uvc/uvc_ctrl.c index feab12aa2c7b..088437a5f60c 100644 --- a/drivers/media/video/uvc/uvc_ctrl.c +++ b/drivers/media/video/uvc/uvc_ctrl.c | |||
@@ -83,6 +83,22 @@ static struct uvc_control_info uvc_ctrls[] = { | |||
83 | }, | 83 | }, |
84 | { | 84 | { |
85 | .entity = UVC_GUID_UVC_PROCESSING, | 85 | .entity = UVC_GUID_UVC_PROCESSING, |
86 | .selector = PU_WHITE_BALANCE_TEMPERATURE_CONTROL, | ||
87 | .index = 6, | ||
88 | .size = 2, | ||
89 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
90 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | ||
91 | }, | ||
92 | { | ||
93 | .entity = UVC_GUID_UVC_PROCESSING, | ||
94 | .selector = PU_WHITE_BALANCE_COMPONENT_CONTROL, | ||
95 | .index = 7, | ||
96 | .size = 4, | ||
97 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
98 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | ||
99 | }, | ||
100 | { | ||
101 | .entity = UVC_GUID_UVC_PROCESSING, | ||
86 | .selector = PU_BACKLIGHT_COMPENSATION_CONTROL, | 102 | .selector = PU_BACKLIGHT_COMPENSATION_CONTROL, |
87 | .index = 8, | 103 | .index = 8, |
88 | .size = 2, | 104 | .size = 2, |
@@ -114,6 +130,60 @@ static struct uvc_control_info uvc_ctrls[] = { | |||
114 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | 130 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, |
115 | }, | 131 | }, |
116 | { | 132 | { |
133 | .entity = UVC_GUID_UVC_PROCESSING, | ||
134 | .selector = PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL, | ||
135 | .index = 12, | ||
136 | .size = 1, | ||
137 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | ||
138 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | ||
139 | }, | ||
140 | { | ||
141 | .entity = UVC_GUID_UVC_PROCESSING, | ||
142 | .selector = PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL, | ||
143 | .index = 13, | ||
144 | .size = 1, | ||
145 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | ||
146 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | ||
147 | }, | ||
148 | { | ||
149 | .entity = UVC_GUID_UVC_PROCESSING, | ||
150 | .selector = PU_DIGITAL_MULTIPLIER_CONTROL, | ||
151 | .index = 14, | ||
152 | .size = 2, | ||
153 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
154 | | UVC_CONTROL_RESTORE, | ||
155 | }, | ||
156 | { | ||
157 | .entity = UVC_GUID_UVC_PROCESSING, | ||
158 | .selector = PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL, | ||
159 | .index = 15, | ||
160 | .size = 2, | ||
161 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
162 | | UVC_CONTROL_RESTORE, | ||
163 | }, | ||
164 | { | ||
165 | .entity = UVC_GUID_UVC_PROCESSING, | ||
166 | .selector = PU_ANALOG_VIDEO_STANDARD_CONTROL, | ||
167 | .index = 16, | ||
168 | .size = 1, | ||
169 | .flags = UVC_CONTROL_GET_CUR, | ||
170 | }, | ||
171 | { | ||
172 | .entity = UVC_GUID_UVC_PROCESSING, | ||
173 | .selector = PU_ANALOG_LOCK_STATUS_CONTROL, | ||
174 | .index = 17, | ||
175 | .size = 1, | ||
176 | .flags = UVC_CONTROL_GET_CUR, | ||
177 | }, | ||
178 | { | ||
179 | .entity = UVC_GUID_UVC_CAMERA, | ||
180 | .selector = CT_SCANNING_MODE_CONTROL, | ||
181 | .index = 0, | ||
182 | .size = 1, | ||
183 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | ||
184 | | UVC_CONTROL_RESTORE, | ||
185 | }, | ||
186 | { | ||
117 | .entity = UVC_GUID_UVC_CAMERA, | 187 | .entity = UVC_GUID_UVC_CAMERA, |
118 | .selector = CT_AE_MODE_CONTROL, | 188 | .selector = CT_AE_MODE_CONTROL, |
119 | .index = 1, | 189 | .index = 1, |
@@ -140,6 +210,14 @@ static struct uvc_control_info uvc_ctrls[] = { | |||
140 | }, | 210 | }, |
141 | { | 211 | { |
142 | .entity = UVC_GUID_UVC_CAMERA, | 212 | .entity = UVC_GUID_UVC_CAMERA, |
213 | .selector = CT_EXPOSURE_TIME_RELATIVE_CONTROL, | ||
214 | .index = 4, | ||
215 | .size = 1, | ||
216 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | ||
217 | | UVC_CONTROL_RESTORE, | ||
218 | }, | ||
219 | { | ||
220 | .entity = UVC_GUID_UVC_CAMERA, | ||
143 | .selector = CT_FOCUS_ABSOLUTE_CONTROL, | 221 | .selector = CT_FOCUS_ABSOLUTE_CONTROL, |
144 | .index = 5, | 222 | .index = 5, |
145 | .size = 2, | 223 | .size = 2, |
@@ -148,42 +226,90 @@ static struct uvc_control_info uvc_ctrls[] = { | |||
148 | }, | 226 | }, |
149 | { | 227 | { |
150 | .entity = UVC_GUID_UVC_CAMERA, | 228 | .entity = UVC_GUID_UVC_CAMERA, |
151 | .selector = CT_FOCUS_AUTO_CONTROL, | 229 | .selector = CT_FOCUS_RELATIVE_CONTROL, |
152 | .index = 17, | 230 | .index = 6, |
153 | .size = 1, | 231 | .size = 2, |
154 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | 232 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE |
155 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | 233 | | UVC_CONTROL_AUTO_UPDATE, |
156 | }, | 234 | }, |
157 | { | 235 | { |
158 | .entity = UVC_GUID_UVC_PROCESSING, | 236 | .entity = UVC_GUID_UVC_CAMERA, |
159 | .selector = PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL, | 237 | .selector = CT_IRIS_ABSOLUTE_CONTROL, |
160 | .index = 12, | 238 | .index = 7, |
239 | .size = 2, | ||
240 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
241 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | ||
242 | }, | ||
243 | { | ||
244 | .entity = UVC_GUID_UVC_CAMERA, | ||
245 | .selector = CT_IRIS_RELATIVE_CONTROL, | ||
246 | .index = 8, | ||
161 | .size = 1, | 247 | .size = 1, |
162 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | 248 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |
163 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | 249 | | UVC_CONTROL_AUTO_UPDATE, |
164 | }, | 250 | }, |
165 | { | 251 | { |
166 | .entity = UVC_GUID_UVC_PROCESSING, | 252 | .entity = UVC_GUID_UVC_CAMERA, |
167 | .selector = PU_WHITE_BALANCE_TEMPERATURE_CONTROL, | 253 | .selector = CT_ZOOM_ABSOLUTE_CONTROL, |
168 | .index = 6, | 254 | .index = 9, |
169 | .size = 2, | 255 | .size = 2, |
170 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | 256 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE |
171 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | 257 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, |
172 | }, | 258 | }, |
173 | { | 259 | { |
174 | .entity = UVC_GUID_UVC_PROCESSING, | 260 | .entity = UVC_GUID_UVC_CAMERA, |
175 | .selector = PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL, | 261 | .selector = CT_ZOOM_RELATIVE_CONTROL, |
262 | .index = 10, | ||
263 | .size = 3, | ||
264 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
265 | | UVC_CONTROL_AUTO_UPDATE, | ||
266 | }, | ||
267 | { | ||
268 | .entity = UVC_GUID_UVC_CAMERA, | ||
269 | .selector = CT_PANTILT_ABSOLUTE_CONTROL, | ||
270 | .index = 11, | ||
271 | .size = 8, | ||
272 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
273 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | ||
274 | }, | ||
275 | { | ||
276 | .entity = UVC_GUID_UVC_CAMERA, | ||
277 | .selector = CT_PANTILT_RELATIVE_CONTROL, | ||
278 | .index = 12, | ||
279 | .size = 4, | ||
280 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
281 | | UVC_CONTROL_AUTO_UPDATE, | ||
282 | }, | ||
283 | { | ||
284 | .entity = UVC_GUID_UVC_CAMERA, | ||
285 | .selector = CT_ROLL_ABSOLUTE_CONTROL, | ||
176 | .index = 13, | 286 | .index = 13, |
287 | .size = 2, | ||
288 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
289 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | ||
290 | }, | ||
291 | { | ||
292 | .entity = UVC_GUID_UVC_CAMERA, | ||
293 | .selector = CT_ROLL_RELATIVE_CONTROL, | ||
294 | .index = 14, | ||
295 | .size = 2, | ||
296 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | ||
297 | | UVC_CONTROL_AUTO_UPDATE, | ||
298 | }, | ||
299 | { | ||
300 | .entity = UVC_GUID_UVC_CAMERA, | ||
301 | .selector = CT_FOCUS_AUTO_CONTROL, | ||
302 | .index = 17, | ||
177 | .size = 1, | 303 | .size = 1, |
178 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR | 304 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |
179 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, | 305 | | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE, |
180 | }, | 306 | }, |
181 | { | 307 | { |
182 | .entity = UVC_GUID_UVC_PROCESSING, | 308 | .entity = UVC_GUID_UVC_CAMERA, |
183 | .selector = PU_WHITE_BALANCE_COMPONENT_CONTROL, | 309 | .selector = CT_PRIVACY_CONTROL, |
184 | .index = 7, | 310 | .index = 18, |
185 | .size = 4, | 311 | .size = 1, |
186 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE | 312 | .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR |
187 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, | 313 | | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE, |
188 | }, | 314 | }, |
189 | }; | 315 | }; |