aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@skynet.be>2008-09-22 12:14:59 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 07:37:08 -0400
commit5e26d50f4e6b9c42bbfbaa452722797ece929cda (patch)
treeb4ef2afc190910d4cad68eaf2fb296f09fd94005 /drivers
parent4aaec3ea41addf6fe4fe029aa535f3c019ee0e6d (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.c164
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};