Lines Matching refs:cmd

144 	struct cpia2_command cmd;
147 cmd.command = command;
148 cmd.reg_count = 2; /* default */
149 cmd.direction = direction;
156 cmd.req_mode =
158 cmd.start = CPIA2_SYSTEM_DEVICE_HI;
161 cmd.req_mode =
163 cmd.reg_count = 8;
164 cmd.start = CPIA2_SYSTEM_DESCRIP_VID_HI;
167 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
168 cmd.start = CPIA2_VC_ASIC_ID;
171 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
172 cmd.start = CPIA2_VP_SENSOR_FLAGS;
175 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
176 cmd.start = CPIA2_VP_DEVICEH;
179 cmd.buffer.block_data[0] = param; /* Then fall through */
181 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
182 cmd.reg_count = 1;
184 cmd.start = CPIA2_VP4_EXPOSURE_TARGET;
186 cmd.start = CPIA2_VP5_EXPOSURE_TARGET;
189 cmd.buffer.block_data[0] = param; /* Then fall through */
191 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
192 cmd.reg_count = 1;
193 cmd.start = CPIA2_VP_YRANGE;
196 cmd.buffer.block_data[0] = param; /* Then fall through */
198 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
199 cmd.reg_count = 1;
201 cmd.start = CPIA2_VP_SATURATION;
203 cmd.start = CPIA2_VP5_MCUVSATURATION;
206 cmd.buffer.block_data[0] = param; /* Then fall through */
208 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
209 cmd.reg_count = 1;
210 cmd.start = CPIA2_VP_GPIO_DATA;
213 cmd.buffer.block_data[0] = param; /* Then fall through */
215 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
216 cmd.reg_count = 1;
217 cmd.start = CPIA2_VP_GPIO_DIRECTION;
220 cmd.buffer.block_data[0] = param; /* Then fall through */
222 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
223 cmd.reg_count = 1;
224 cmd.start = CPIA2_VC_MP_DATA;
227 cmd.buffer.block_data[0] = param; /* Then fall through */
229 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
230 cmd.reg_count = 1;
231 cmd.start = CPIA2_VC_MP_DIR;
234 cmd.req_mode =
236 cmd.start = CPIA2_SYSTEM_INT_PACKET_CTRL;
237 cmd.reg_count = 1;
238 cmd.buffer.block_data[0] = param;
241 cmd.buffer.block_data[0] = param; /* Then fall through */
243 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
244 cmd.reg_count = 1;
245 cmd.start = CPIA2_VP_FLICKER_MODES;
248 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
249 cmd.reg_count = 2;
250 cmd.start = 0;
251 cmd.buffer.registers[0].index = CPIA2_VC_ST_CTRL;
252 cmd.buffer.registers[0].value = CPIA2_VC_ST_CTRL_SRC_VC |
254 cmd.buffer.registers[1].index = CPIA2_VC_ST_CTRL;
255 cmd.buffer.registers[1].value = CPIA2_VC_ST_CTRL_SRC_VC |
261 cmd.req_mode =
263 cmd.reg_count = 2;
264 cmd.buffer.registers[0].index =
266 cmd.buffer.registers[1].index =
268 cmd.buffer.registers[0].value = CPIA2_SYSTEM_CONTROL_CLEAR_ERR;
269 cmd.buffer.registers[1].value =
273 cmd.req_mode =
275 cmd.reg_count = 1;
276 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL;
277 cmd.buffer.block_data[0] = 0;
280 cmd.req_mode =
282 cmd.reg_count = 1;
283 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL;
284 cmd.buffer.block_data[0] = CPIA2_SYSTEM_CONTROL_CLEAR_ERR;
287 cmd.buffer.block_data[0] = param;
289 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
290 cmd.reg_count = 1;
292 cmd.start = CPIA2_VP4_USER_MODE;
294 cmd.start = CPIA2_VP5_USER_MODE;
297 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
298 cmd.reg_count = 1;
300 cmd.start = CPIA2_VP4_FRAMERATE_REQUEST;
302 cmd.start = CPIA2_VP5_FRAMERATE_REQUEST;
303 cmd.buffer.block_data[0] = param;
306 cmd.buffer.block_data[0] = param; /* Then fall through */
308 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
309 cmd.reg_count = 1;
310 cmd.start = CPIA2_VC_WAKEUP;
313 cmd.buffer.block_data[0] = param; /* Then fall through */
315 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
316 cmd.reg_count = 1;
317 cmd.start = CPIA2_VC_PW_CTRL;
320 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
321 cmd.reg_count = 1;
322 cmd.start = CPIA2_VP_SYSTEMSTATE;
325 cmd.buffer.block_data[0] = param; /* Then fall through */
327 cmd.req_mode =
329 cmd.reg_count = 1;
330 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL;
333 cmd.buffer.block_data[0] = param; /* Then fall through */
335 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
336 cmd.reg_count = 1;
337 cmd.start = CPIA2_VP_SYSTEMCTRL;
340 cmd.buffer.block_data[0] = param; /* Then fall through */
342 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
343 cmd.reg_count = 1;
344 cmd.start = CPIA2_VP_EXPOSURE_MODES;
347 cmd.buffer.block_data[0] = param; /* Then fall through */
349 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
350 cmd.reg_count = 1;
351 cmd.start = CPIA2_VP_DEVICE_CONFIG;
354 cmd.buffer.block_data[0] = param;
355 cmd.req_mode =
357 cmd.reg_count = 1;
358 cmd.start = CPIA2_SYSTEM_VP_SERIAL_ADDR;
361 cmd.buffer.block_data[0] = param;
362 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
363 cmd.reg_count = 1;
364 cmd.start = CPIA2_SENSOR_CR1;
367 cmd.buffer.block_data[0] = param; /* Then fall through */
369 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
370 cmd.reg_count = 1;
371 cmd.start = CPIA2_VC_VC_CTRL;
374 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
375 cmd.reg_count = 1;
376 cmd.buffer.registers[0].index = CPIA2_VC_VC_TARGET_KB;
377 cmd.buffer.registers[0].value = param;
380 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
381 cmd.reg_count = 4;
382 cmd.buffer.registers[0].index = CPIA2_VC_VC_JPEG_OPT;
383 cmd.buffer.registers[0].value =
385 cmd.buffer.registers[1].index = CPIA2_VC_VC_USER_SQUEEZE;
386 cmd.buffer.registers[1].value = 20;
387 cmd.buffer.registers[2].index = CPIA2_VC_VC_CREEP_PERIOD;
388 cmd.buffer.registers[2].value = 2;
389 cmd.buffer.registers[3].index = CPIA2_VC_VC_JPEG_OPT;
390 cmd.buffer.registers[3].value = CPIA2_VC_VC_JPEG_OPT_DEFAULT;
393 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
394 cmd.reg_count = 1;
395 cmd.start = CPIA2_VP_REHASH_VALUES;
396 cmd.buffer.block_data[0] = param;
401 cmd.buffer.block_data[0] = param; /* Then fall through */
403 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
404 cmd.reg_count = 1;
406 cmd.start = CPIA2_VP4_USER_EFFECTS;
408 cmd.start = CPIA2_VP5_USER_EFFECTS;
415 retval = cpia2_send_command(cam, &cmd);
426 cmd.buffer.block_data[0];
428 cmd.buffer.block_data[1];
431 cam->params.pnp_id.vendor = (cmd.buffer.block_data[0] << 8) |
432 cmd.buffer.block_data[1];
433 cam->params.pnp_id.product = (cmd.buffer.block_data[2] << 8) |
434 cmd.buffer.block_data[3];
436 (cmd.buffer.block_data[4] << 8) |
437 cmd.buffer.block_data[5];
448 cam->params.version.asic_id = cmd.buffer.block_data[0];
449 cam->params.version.asic_rev = cmd.buffer.block_data[1];
452 cam->params.version.sensor_flags = cmd.buffer.block_data[0];
453 cam->params.version.sensor_rev = cmd.buffer.block_data[1];
456 cam->params.version.vp_device_hi = cmd.buffer.block_data[0];
457 cam->params.version.vp_device_lo = cmd.buffer.block_data[1];
460 cam->params.vp_params.gpio_data = cmd.buffer.block_data[0];
463 cam->params.vp_params.gpio_direction = cmd.buffer.block_data[0];
466 cam->params.vc_params.vc_mp_direction =cmd.buffer.block_data[0];
469 cam->params.vc_params.vc_mp_data = cmd.buffer.block_data[0];
473 cmd.buffer.block_data[0];
476 cam->params.vc_params.wakeup = cmd.buffer.block_data[0];
479 cam->params.vc_params.pw_control = cmd.buffer.block_data[0];
482 cam->params.camera_state.system_ctrl = cmd.buffer.block_data[0];
485 cam->params.vp_params.system_state = cmd.buffer.block_data[0];
488 cam->params.vp_params.system_ctrl = cmd.buffer.block_data[0];
491 cam->params.vp_params.exposure_modes = cmd.buffer.block_data[0];
494 cam->params.vp_params.device_config = cmd.buffer.block_data[0];
497 cam->params.vc_params.vc_control = cmd.buffer.block_data[0];
500 cam->params.vp_params.video_mode = cmd.buffer.block_data[0];
503 cam->params.vp_params.user_effects = cmd.buffer.block_data[0];
517 #define DIR(cmd) ((cmd->direction == TRANSFER_WRITE) ? "Write" : "Read")
518 #define BINDEX(cmd) (cmd->req_mode & 0x03)
520 int cpia2_send_command(struct camera_data *cam, struct cpia2_command *cmd)
527 switch (cmd->req_mode & 0x0c) {
529 count = cmd->reg_count * sizeof(struct cpia2_register);
531 buffer = (u8 *) & cmd->buffer;
533 DBG("%s Random: Register block %s\n", DIR(cmd),
534 block_name[BINDEX(cmd)]);
537 count = cmd->reg_count;
538 start = cmd->start;
539 buffer = cmd->buffer.block_data;
541 DBG("%s Block: Register block %s\n", DIR(cmd),
542 block_name[BINDEX(cmd)]);
545 count = cmd->reg_count * sizeof(struct cpia2_reg_mask);
547 buffer = (u8 *) & cmd->buffer;
549 DBG("%s Mask: Register block %s\n", DIR(cmd),
550 block_name[BINDEX(cmd)]);
553 count = cmd->reg_count;
554 start = cmd->start;
555 buffer = cmd->buffer.block_data;
557 DBG("%s Repeat: Register block %s\n", DIR(cmd),
558 block_name[BINDEX(cmd)]);
567 cmd->req_mode,
568 start, count, cmd->direction);
572 for (i = 0; i < cmd->reg_count; i++) {
573 if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_BLOCK)
575 DIR(cmd), start + i, buffer[i]);
576 if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_RANDOM)
578 DIR(cmd), cmd->buffer.registers[i].index,
579 cmd->buffer.registers[i].value);
616 struct cpia2_command cmd;
630 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
631 cmd.direction = TRANSFER_WRITE;
632 cmd.reg_count = 2;
633 cmd.buffer.registers[0].index = CPIA2_VC_ST_CTRL;
634 cmd.buffer.registers[0].value = CPIA2_VC_ST_CTRL_SRC_VC |
636 cmd.buffer.registers[1].index = CPIA2_VC_ST_CTRL;
637 cmd.buffer.registers[1].value = CPIA2_VC_ST_CTRL_SRC_VC |
641 cpia2_send_command(cam, &cmd);
647 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_SYSTEM;
648 cmd.buffer.registers[0].index = CPIA2_SYSTEM_INT_PACKET_CTRL;
649 cmd.buffer.registers[0].value =
651 cmd.reg_count = 1;
652 cpia2_send_command(cam, &cmd);
667 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP;
670 cmd.buffer.registers[0].index = CPIA2_VP5_MYBLACK_LEVEL;
671 cmd.buffer.registers[0].value = 0; /* reduce from the default
673 cmd.buffer.registers[1].index = CPIA2_VP5_MCYRANGE;
674 cmd.buffer.registers[1].value = 0x92; /* increase from 100% to
677 cmd.buffer.registers[2].index = CPIA2_VP5_MYCEILING;
678 cmd.buffer.registers[2].value = 0xFF; /* Increase from the
681 cmd.buffer.registers[3].index = CPIA2_VP5_MCUVSATURATION;
682 cmd.buffer.registers[3].value = 0xFF; /* Increase from the rec
685 cmd.buffer.registers[4].index = CPIA2_VP5_ANTIFLKRSETUP;
686 cmd.buffer.registers[4].value = 0x80; /* Inhibit the
690 cmd.buffer.registers[5].index = CPIA2_VP_RAM_ADDR_H;
691 cmd.buffer.registers[5].value = 0x01;
692 cmd.buffer.registers[6].index = CPIA2_VP_RAM_ADDR_L;
693 cmd.buffer.registers[6].value = 0xE3;
694 cmd.buffer.registers[7].index = CPIA2_VP_RAM_DATA;
695 cmd.buffer.registers[7].value = 0x02;
696 cmd.buffer.registers[8].index = CPIA2_VP_RAM_DATA;
697 cmd.buffer.registers[8].value = 0xFC;
699 cmd.direction = TRANSFER_WRITE;
700 cmd.reg_count = 9;
702 cpia2_send_command(cam, &cmd);
726 cmd.buffer.registers[0].value = tmp_reg &
730 cmd.buffer.registers[1].value = cam->params.vp_params.device_config |
732 cmd.buffer.registers[0].index = CPIA2_VP_SYSTEMCTRL;
733 cmd.buffer.registers[1].index = CPIA2_VP_DEVICE_CONFIG;
734 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP;
735 cmd.reg_count = 2;
736 cmd.direction = TRANSFER_WRITE;
737 cmd.start = 0;
738 cpia2_send_command(cam, &cmd);
772 cmd.buffer.registers[0].value = cam->params.vp_params.device_config &
776 cmd.buffer.registers[1].value =
779 cmd.buffer.registers[0].index = CPIA2_VP_DEVICE_CONFIG;
780 cmd.buffer.registers[1].index = CPIA2_VP_SYSTEMCTRL;
781 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP;
782 cmd.reg_count = 2;
783 cmd.direction = TRANSFER_WRITE;
785 cpia2_send_command(cam, &cmd);
893 struct cpia2_command *cmd,
896 cmd->buffer.block_data[0] = datum;
897 cmd->start = start;
898 cmd->reg_count = 1;
899 return cpia2_send_command(cam, cmd);
907 struct cpia2_command cmd;
916 cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP;
917 cmd.direction = TRANSFER_WRITE;
920 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
921 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
925 cmd.start = 0x0C; /* Data */
926 cmd.reg_count = min_t(int, 64, fw->size - i);
927 memcpy(cmd.buffer.block_data, &fw->data[i], cmd.reg_count);
928 cpia2_send_command(cam, &cmd);
932 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */
933 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */
936 cpia2_send_onebyte_command(cam, &cmd, 0x0D, 1);
1146 struct cpia2_command cmd;
1189 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
1190 cmd.direction = TRANSFER_WRITE;
1193 cmd.buffer.registers[i].index = CPIA2_VC_VC_FORMAT;
1195 cmd.buffer.registers[i++].value =
1199 cmd.buffer.registers[i++].value =
1204 cmd.buffer.registers[i].index = CPIA2_VC_VC_CLOCKS;
1207 cmd.buffer.registers[i++].value=
1214 cmd.buffer.registers[i++].value=
1220 cmd.buffer.registers[i++].value =
1225 cmd.buffer.registers[i++].value =
1231 DBG("VC_Clocks (0xc4) = 0x%0X\n", cmd.buffer.registers[i-1].value);
1234 cmd.buffer.registers[i].index = CPIA2_VC_VC_IHSIZE_LO;
1236 cmd.buffer.registers[i++].value =
1239 cmd.buffer.registers[i++].value =
1243 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_HI;
1245 cmd.buffer.registers[i++].value = (u8) 0;
1247 cmd.buffer.registers[i++].value = (u8) 1;
1249 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_LO;
1251 cmd.buffer.registers[i++].value = (u8) 208;
1253 cmd.buffer.registers[i++].value = (u8) 160;
1255 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_HI;
1257 cmd.buffer.registers[i++].value = (u8) 0;
1259 cmd.buffer.registers[i++].value = (u8) 1;
1261 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_LO;
1263 cmd.buffer.registers[i++].value = (u8) 160;
1265 cmd.buffer.registers[i++].value = (u8) 64;
1268 cmd.buffer.registers[i].index = CPIA2_VC_VC_OHSIZE;
1269 cmd.buffer.registers[i++].value = cam->params.roi.width / 4;
1271 cmd.buffer.registers[i].index = CPIA2_VC_VC_OVSIZE;
1272 cmd.buffer.registers[i++].value = cam->params.roi.height / 4;
1275 cmd.buffer.registers[i].index = CPIA2_VC_VC_HCROP;
1277 cmd.buffer.registers[i++].value =
1280 cmd.buffer.registers[i++].value =
1283 cmd.buffer.registers[i].index = CPIA2_VC_VC_VCROP;
1285 cmd.buffer.registers[i++].value =
1288 cmd.buffer.registers[i++].value =
1292 cmd.buffer.registers[i].index = CPIA2_VC_VC_HPHASE;
1293 cmd.buffer.registers[i++].value = (u8) 0;
1295 cmd.buffer.registers[i].index = CPIA2_VC_VC_VPHASE;
1296 cmd.buffer.registers[i++].value = (u8) 0;
1298 cmd.buffer.registers[i].index = CPIA2_VC_VC_HISPAN;
1299 cmd.buffer.registers[i++].value = (u8) 31;
1301 cmd.buffer.registers[i].index = CPIA2_VC_VC_VISPAN;
1302 cmd.buffer.registers[i++].value = (u8) 31;
1304 cmd.buffer.registers[i].index = CPIA2_VC_VC_HICROP;
1305 cmd.buffer.registers[i++].value = (u8) 0;
1307 cmd.buffer.registers[i].index = CPIA2_VC_VC_VICROP;
1308 cmd.buffer.registers[i++].value = (u8) 0;
1310 cmd.buffer.registers[i].index = CPIA2_VC_VC_HFRACT;
1311 cmd.buffer.registers[i++].value = (u8) 0x81; /* = 8/1 = 8 (HIBYTE/LOBYTE) */
1313 cmd.buffer.registers[i].index = CPIA2_VC_VC_VFRACT;
1314 cmd.buffer.registers[i++].value = (u8) 0x81; /* = 8/1 = 8 (HIBYTE/LOBYTE) */
1316 cmd.reg_count = i;
1318 cpia2_send_command(cam, &cmd);
1332 struct cpia2_command cmd;
1363 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC;
1364 cmd.direction = TRANSFER_WRITE;
1368 cmd.buffer.registers[i].index = CPIA2_VC_VC_FORMAT;
1369 cmd.buffer.registers[i].value = (u8) CPIA2_VC_VC_FORMAT_UFIRST;
1371 cmd.buffer.registers[i].value |= (u8) CPIA2_VC_VC_FORMAT_DECIMATING;
1375 cmd.buffer.registers[i].index = CPIA2_VC_VC_CLOCKS;
1378 cmd.buffer.registers[i].value =
1381 cmd.buffer.registers[i].value =
1386 cmd.buffer.registers[i].value =
1389 cmd.buffer.registers[i].value =
1395 DBG("VC_CLOCKS = 0x%X\n", cmd.buffer.registers[i-1].value);
1398 cmd.buffer.registers[i].index = CPIA2_VC_VC_IHSIZE_LO;
1400 cmd.buffer.registers[i].value =
1403 cmd.buffer.registers[i].value =
1406 DBG("Input width = %d\n", cmd.buffer.registers[i-1].value);
1409 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_HI;
1411 cmd.buffer.registers[i++].value = (u8) 2;
1413 cmd.buffer.registers[i++].value = (u8) 1;
1415 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_LO;
1417 cmd.buffer.registers[i++].value = (u8) 250;
1419 cmd.buffer.registers[i++].value = (u8) 125;
1421 cmd.buffer.registers[i++].value = (u8) 160;
1423 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_HI;
1425 cmd.buffer.registers[i++].value = (u8) 2;
1427 cmd.buffer.registers[i++].value = (u8) 1;
1429 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_LO;
1431 cmd.buffer.registers[i++].value = (u8) 12;
1433 cmd.buffer.registers[i++].value = (u8) 64;
1435 cmd.buffer.registers[i++].value = (u8) 6;
1438 cmd.buffer.registers[i].index = CPIA2_VC_VC_OHSIZE;
1440 cmd.buffer.registers[i++].value = STV_IMAGE_CIF_COLS / 4;
1442 cmd.buffer.registers[i++].value = width / 4;
1444 cmd.buffer.registers[i].index = CPIA2_VC_VC_OVSIZE;
1446 cmd.buffer.registers[i++].value = STV_IMAGE_CIF_ROWS / 4;
1448 cmd.buffer.registers[i++].value = height / 4;
1451 cmd.buffer.registers[i].index = CPIA2_VC_VC_HCROP;
1453 cmd.buffer.registers[i++].value =
1456 cmd.buffer.registers[i++].value =
1459 cmd.buffer.registers[i++].value =
1462 cmd.buffer.registers[i++].value =
1465 cmd.buffer.registers[i].index = CPIA2_VC_VC_VCROP;
1467 cmd.buffer.registers[i++].value =
1470 cmd.buffer.registers[i++].value =
1473 cmd.buffer.registers[i++].value =
1476 cmd.buffer.registers[i++].value =
1480 cmd.buffer.registers[i].index = CPIA2_VC_VC_HPHASE;
1482 cmd.buffer.registers[i++].value = (u8) 36;
1484 cmd.buffer.registers[i++].value = (u8) 0;
1486 cmd.buffer.registers[i].index = CPIA2_VC_VC_VPHASE;
1488 cmd.buffer.registers[i++].value = (u8) 32;
1490 cmd.buffer.registers[i++].value = (u8) 0;
1492 cmd.buffer.registers[i].index = CPIA2_VC_VC_HISPAN;
1494 cmd.buffer.registers[i++].value = (u8) 26;
1496 cmd.buffer.registers[i++].value = (u8) 31;
1498 cmd.buffer.registers[i].index = CPIA2_VC_VC_VISPAN;
1500 cmd.buffer.registers[i++].value = (u8) 21;
1502 cmd.buffer.registers[i++].value = (u8) 31;
1504 cmd.buffer.registers[i].index = CPIA2_VC_VC_HICROP;
1505 cmd.buffer.registers[i++].value = (u8) 0;
1507 cmd.buffer.registers[i].index = CPIA2_VC_VC_VICROP;
1508 cmd.buffer.registers[i++].value = (u8) 0;
1510 cmd.buffer.registers[i].index = CPIA2_VC_VC_HFRACT;
1512 cmd.buffer.registers[i++].value = (u8) 0x2B; /* 2/11 */
1514 cmd.buffer.registers[i++].value = (u8) 0x81; /* 8/1 */
1516 cmd.buffer.registers[i].index = CPIA2_VC_VC_VFRACT;
1518 cmd.buffer.registers[i++].value = (u8) 0x13; /* 1/3 */
1520 cmd.buffer.registers[i++].value = (u8) 0x81; /* 8/1 */
1522 cmd.reg_count = i;
1524 cpia2_send_command(cam, &cmd);
1831 struct cpia2_command cmd;
1837 cmd.direction = TRANSFER_WRITE;
1838 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
1839 cmd.reg_count = 3;
1840 cmd.start = CPIA2_VP_RAM_ADDR_H;
1842 cmd.buffer.block_data[0] = 0; /* High byte of address to write to */
1843 cmd.buffer.block_data[1] = 0x59; /* Low byte of address to write to */
1844 cmd.buffer.block_data[2] = 0; /* High byte of data to write */
1846 cpia2_send_command(cam, &cmd);
1849 cmd.buffer.block_data[0] = 0x02; /* Low byte data to write */
1851 cmd.buffer.block_data[0] = 0x06;
1853 cmd.start = CPIA2_VP_RAM_DATA;
1854 cmd.reg_count = 1;
1855 cpia2_send_command(cam, &cmd);
1891 struct cpia2_command cmd;
1896 cmd.direction = TRANSFER_READ;
1899 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_SYSTEM;
1900 cmd.reg_count = 3;
1901 cmd.start = 0;
1902 cpia2_send_command(cam, &cmd);
1904 cmd.buffer.block_data[0]);
1906 cmd.buffer.block_data[1]);
1908 cmd.buffer.block_data[2]);
1911 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC;
1912 cmd.reg_count = 4;
1913 cmd.start = 0x80;
1914 cpia2_send_command(cam, &cmd);
1916 cmd.buffer.block_data[0]);
1918 cmd.buffer.block_data[1]);
1920 cmd.buffer.block_data[2]);
1922 cmd.buffer.block_data[3]);
1924 cmd.start = 0xA0; /* ST_CTRL */
1925 cmd.reg_count = 1;
1926 cpia2_send_command(cam, &cmd);
1928 cmd.buffer.block_data[0]);
1930 cmd.start = 0xA4; /* Stream status */
1931 cpia2_send_command(cam, &cmd);
1933 cmd.buffer.block_data[0]);
1935 cmd.start = 0xA8; /* USB status */
1936 cmd.reg_count = 3;
1937 cpia2_send_command(cam, &cmd);
1939 cmd.buffer.block_data[0]);
1941 cmd.buffer.block_data[1]);
1943 cmd.buffer.block_data[2]);
1945 cmd.start = 0xAF; /* USB settings */
1946 cmd.reg_count = 1;
1947 cpia2_send_command(cam, &cmd);
1949 cmd.buffer.block_data[0]);
1951 cmd.start = 0xC0; /* VC stuff */
1952 cmd.reg_count = 26;
1953 cpia2_send_command(cam, &cmd);
1955 cmd.buffer.block_data[0]);
1957 cmd.buffer.block_data[3]);
1959 cmd.buffer.block_data[4]);
1961 cmd.buffer.block_data[5]);
1963 cmd.buffer.block_data[6]);
1965 cmd.buffer.block_data[7]);
1967 cmd.buffer.block_data[8]);
1969 cmd.buffer.block_data[9]);
1971 cmd.buffer.block_data[10]);
1973 cmd.buffer.block_data[11]);
1975 cmd.buffer.block_data[12]);
1977 cmd.buffer.block_data[13]);
1979 cmd.buffer.block_data[14]);
1981 cmd.buffer.block_data[15]);
1983 cmd.buffer.block_data[16]);
1985 cmd.buffer.block_data[17]);
1987 cmd.buffer.block_data[18]);
1989 cmd.buffer.block_data[19]);
1991 cmd.buffer.block_data[20]);
1993 cmd.buffer.block_data[21]);
1995 cmd.buffer.block_data[22]);
1997 cmd.buffer.block_data[23]);
1999 cmd.buffer.block_data[24]);
2001 cmd.buffer.block_data[25]);
2004 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP;
2005 cmd.reg_count = 14;
2006 cmd.start = 0;
2007 cpia2_send_command(cam, &cmd);
2010 cmd.buffer.block_data[0]);
2012 cmd.buffer.block_data[1]);
2014 cmd.buffer.block_data[2]);
2016 cmd.buffer.block_data[3]);
2018 cmd.buffer.block_data[5]);
2020 cmd.buffer.block_data[6]);
2022 cmd.buffer.block_data[7]);
2024 cmd.buffer.block_data[8]);
2026 cmd.buffer.block_data[9]);
2028 cmd.buffer.block_data[10]);
2030 cmd.buffer.block_data[11]);
2032 cmd.buffer.block_data[12]);
2034 cmd.buffer.block_data[13]);
2037 cmd.reg_count = 9;
2038 cmd.start = 0x0E;
2039 cpia2_send_command(cam, &cmd);
2041 cmd.buffer.block_data[0]);
2043 cmd.buffer.block_data[1]);
2045 cmd.buffer.block_data[2]);
2047 cmd.buffer.block_data[3]);
2049 cmd.buffer.block_data[4]);
2051 cmd.buffer.block_data[5]);
2053 cmd.buffer.block_data[6]);
2055 cmd.buffer.block_data[7]);
2057 cmd.buffer.block_data[8]);
2059 cmd.reg_count = 1;
2060 cmd.start = 0x1B;
2061 cpia2_send_command(cam, &cmd);
2063 cmd.buffer.block_data[0]);
2065 cmd.reg_count = 8 ;
2066 cmd.start = 0x0E;
2067 cpia2_send_command(cam, &cmd);
2069 cmd.buffer.block_data[0]);
2071 cmd.buffer.block_data[1]);
2073 cmd.buffer.block_data[5]);
2075 cmd.buffer.block_data[6]);
2077 cmd.buffer.block_data[7]);
2079 cmd.reg_count = 1;
2080 cmd.start = CPIA2_VP5_EXPOSURE_TARGET;
2081 cpia2_send_command(cam, &cmd);
2083 cmd.buffer.block_data[0]);
2085 cmd.reg_count = 4;
2086 cmd.start = 0x3A;
2087 cpia2_send_command(cam, &cmd);
2089 cmd.buffer.block_data[0]);
2091 cmd.buffer.block_data[1]);
2093 cmd.buffer.block_data[2]);
2095 cmd.buffer.block_data[3]);