Lines Matching +full:clip +full:- +full:y +full:- +full:low
1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (C) 2009 Jean-Francois Moine <http://moinejf.free.fr>
58 * Initialization data: this is the first set-up data written to the
67 /* READ {0x0000, 0x8114} -> 0000: 00 */
79 /* --------------------------------------- */
82 /* --------------------------------------- */
91 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
92 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
96 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
97 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
98 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
102 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
103 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
104 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
108 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
109 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
110 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
114 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
115 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
116 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
120 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
121 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
122 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
126 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
127 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
128 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
132 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
133 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
134 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
138 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
139 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
140 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
144 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
145 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
146 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
150 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
151 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
152 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
156 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
157 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
158 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
162 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
163 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
164 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
168 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
169 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
170 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
174 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
175 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
176 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
180 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
181 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
182 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
186 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
187 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
188 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
192 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
193 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
194 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
198 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
199 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
200 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
204 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
205 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
206 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
210 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
211 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
212 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
216 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
217 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
218 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
222 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
223 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
224 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
228 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
229 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
230 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
234 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
235 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
236 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
240 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
241 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
242 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
246 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
247 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
248 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
252 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
253 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
254 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
258 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
259 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
260 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
264 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
265 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
266 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
270 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
271 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
272 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
276 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
277 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
278 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
282 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
283 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
284 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
288 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
289 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
290 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
294 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
295 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
296 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
300 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
301 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
302 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
306 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
307 /* --------------------------------------- */
312 /* --------------------------------------- */
350 * lum filter disable, lum noise clip disable */
352 * gamma look-up disable,
355 {0x0020, 0x8658}, /* Edge gain low thresh */
357 {0x0005, 0x865a}, /* Edge bandwidth low threshold */
358 /* -------------------------------- */
360 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
361 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
366 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
367 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
368 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
372 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
374 /* ----- Read back coefs we wrote earlier. */
375 /* READ { 0x0000, 0x8608 } -> 0000: 15 */
376 /* READ { 0x0000, 0x8609 } -> 0000: 30 */
377 /* READ { 0x0000, 0x860a } -> 0000: fb */
378 /* READ { 0x0000, 0x860b } -> 0000: 3e */
379 /* READ { 0x0000, 0x860c } -> 0000: ce */
380 /* READ { 0x0000, 0x860d } -> 0000: f4 */
381 /* READ { 0x0000, 0x860e } -> 0000: eb */
382 /* READ { 0x0000, 0x860f } -> 0000: dc */
383 /* READ { 0x0000, 0x8610 } -> 0000: 39 */
384 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
385 /* READ { 0x0001, 0x8802 } -> 0000: 08 */
389 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
416 {0x0001, 0x8501}, /* Hardware-dominated snap control */
418 * gamma look-up disable,
421 {0x0008, 0x8618}, /* Window1 start Y (*2) */
423 * gamma look-up disable,
426 {0x0008, 0x861a}, /* Window2 start Y (*2) */
428 {0x0000, 0x8616}, /* Low lum thresh for white balance */
431 /* READ { 0x0000, 0x8656 } -> 0000: 61 */
433 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
434 /* READ { 0x0001, 0x8802 } -> 0000: 28 */
438 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
440 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
441 /* READ { 0x0001, 0x8802 } -> 0000: 28 */
445 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
453 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
454 /* READ { 0x0001, 0x8802 } -> 0000: 28 */
458 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
461 /* READ { 0x0000, 0x8655 } -> 0000: 00 */
494 {0x000a, 0x8805}, /* a - NWG: Dunno what this is about */
599 /* Makes the picture darker - and the
1011 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1012 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1016 {0x0004, 0x8800}, /* DATA1 -> write triggered */
1017 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1019 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1020 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1025 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1027 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1028 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1033 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1035 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1036 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1041 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1043 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1044 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1049 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1051 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1052 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1057 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1059 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1060 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1065 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1067 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1068 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1073 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1075 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1076 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1081 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1083 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1084 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1089 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1091 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1092 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1097 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1099 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1100 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1105 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1107 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1108 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1113 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1115 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1116 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1121 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1123 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1124 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1129 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1131 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1132 /* READ { 0x0001, 0x8802 } -> 0000: 10 */
1137 /* READ { 0x0001, 0x8803 } -> 0000: 00 */
1178 {0x00a1, 0x8656}, /* Size - Window1: 256x256, Window2: 128x128,
1182 {0x0020, 0x8658}, /* Edge gain low threshold */
1184 {0x0005, 0x865a}, /* Edge bandwidth low threshold */
1191 {0x0009, 0x86b3}, /* Y coord for bad pixels compensation (L) */
1219 /* READ { 0x0000, 0x8608 } -> 0000: 13 */
1220 /* READ { 0x0000, 0x8609 } -> 0000: 28 */
1221 /* READ { 0x0000, 0x8610 } -> 0000: 05 */
1222 /* READ { 0x0000, 0x8611 } -> 0000: 25 */
1223 /* READ { 0x0000, 0x8612 } -> 0000: e1 */
1224 /* READ { 0x0000, 0x8613 } -> 0000: fa */
1225 /* READ { 0x0000, 0x8614 } -> 0000: f4 */
1226 /* READ { 0x0000, 0x8615 } -> 0000: e8 */
1227 /* READ { 0x0000, 0x8616 } -> 0000: 25 */
1234 struct usb_device *dev = gspca_dev->dev; in reg_write()
1255 ret = usb_control_msg(gspca_dev->dev, in reg_read()
1256 usb_rcvctrlpipe(gspca_dev->dev, 0), in reg_read()
1261 gspca_dev->usb_buf, 1, in reg_read()
1263 gspca_dbg(gspca_dev, D_USBI, "reg read i:%04x --> %02x\n", in reg_read()
1264 index, gspca_dev->usb_buf[0]); in reg_read()
1269 return gspca_dev->usb_buf[0]; in reg_read()
1300 if (gspca_dev->usb_buf[0] == 0) in ssi_w()
1302 if (--retry <= 0) { in ssi_w()
1304 gspca_dev->usb_buf[0]); in ssi_w()
1305 ret = -1; in ssi_w()
1372 cam = &gspca_dev->cam; in sd_config()
1373 cam->cam_mode = sif_mode; in sd_config()
1374 cam->nmodes = ARRAY_SIZE(sif_mode); in sd_config()
1376 sd->subtype = id->driver_info; in sd_config()
1378 init_data = init_data_tb[sd->subtype]; in sd_config()
1392 mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; in sd_start()
1423 len -= SPCA508_OFFSET_DATA; in sd_pkt_scan()
1430 len -= 1; in sd_pkt_scan()
1448 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
1450 gspca_dev->usb_err = 0; in sd_s_ctrl()
1452 if (!gspca_dev->streaming) in sd_s_ctrl()
1455 switch (ctrl->id) { in sd_s_ctrl()
1457 setbrightness(gspca_dev, ctrl->val); in sd_s_ctrl()
1460 return gspca_dev->usb_err; in sd_s_ctrl()
1469 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
1471 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()
1476 if (hdl->error) { in sd_init_controls()
1478 return hdl->error; in sd_init_controls()
1483 /* sub-driver description */
1494 /* -- module initialisation -- */
1506 /* -- device connect -- */