Lines Matching refs:sd
214 #define FIRMWARE_VERSION(x, y) (sd->params.version.firmwareVersion == (x) && \
215 sd->params.version.firmwareRevision == (y))
353 struct sd {
441 struct sd *sd = (struct sd *) gspca_dev;
479 sd->params.version.firmwareVersion = gspca_dev->usb_buf[0];
480 sd->params.version.firmwareRevision = gspca_dev->usb_buf[1];
481 sd->params.version.vcVersion = gspca_dev->usb_buf[2];
482 sd->params.version.vcRevision = gspca_dev->usb_buf[3];
485 sd->params.pnpID.vendor =
487 sd->params.pnpID.product =
489 sd->params.pnpID.deviceRevision =
493 sd->params.status.systemState = gspca_dev->usb_buf[0];
494 sd->params.status.grabState = gspca_dev->usb_buf[1];
495 sd->params.status.streamState = gspca_dev->usb_buf[2];
496 sd->params.status.fatalError = gspca_dev->usb_buf[3];
497 sd->params.status.cmdError = gspca_dev->usb_buf[4];
498 sd->params.status.debugFlags = gspca_dev->usb_buf[5];
499 sd->params.status.vpStatus = gspca_dev->usb_buf[6];
500 sd->params.status.errorCode = gspca_dev->usb_buf[7];
503 sd->params.vpVersion.vpVersion = gspca_dev->usb_buf[0];
504 sd->params.vpVersion.vpRevision = gspca_dev->usb_buf[1];
505 sd->params.vpVersion.cameraHeadID =
509 sd->params.colourParams.brightness = gspca_dev->usb_buf[0];
510 sd->params.colourParams.contrast = gspca_dev->usb_buf[1];
511 sd->params.colourParams.saturation = gspca_dev->usb_buf[2];
514 sd->params.colourBalance.redGain = gspca_dev->usb_buf[0];
515 sd->params.colourBalance.greenGain = gspca_dev->usb_buf[1];
516 sd->params.colourBalance.blueGain = gspca_dev->usb_buf[2];
519 sd->params.exposure.gain = gspca_dev->usb_buf[0];
520 sd->params.exposure.fineExp = gspca_dev->usb_buf[1];
521 sd->params.exposure.coarseExpLo = gspca_dev->usb_buf[2];
522 sd->params.exposure.coarseExpHi = gspca_dev->usb_buf[3];
523 sd->params.exposure.redComp = gspca_dev->usb_buf[4];
524 sd->params.exposure.green1Comp = gspca_dev->usb_buf[5];
525 sd->params.exposure.green2Comp = gspca_dev->usb_buf[6];
526 sd->params.exposure.blueComp = gspca_dev->usb_buf[7];
532 if (a != sd->params.qx3.button) {
537 sd->params.qx3.button = a;
539 if (sd->params.qx3.button) {
552 sd->params.qx3.cradled = ((gspca_dev->usb_buf[2] & 0x40) == 0);
620 struct sd *sd = (struct sd *) gspca_dev;
621 struct cam_params *params = &sd->params;
671 flicker_jumps[sd->mainsFreq]
708 struct sd *sd = (struct sd *) gspca_dev;
719 if (sd->params.status.systemState != LO_POWER_STATE) {
720 if (sd->params.status.systemState != WARM_BOOT_STATE) {
722 sd->params.status.systemState);
723 printstatus(gspca_dev, &sd->params);
734 struct sd *sd = (struct sd *) gspca_dev;
750 if (sd->params.status.systemState != HI_POWER_STATE) {
752 sd->params.status.systemState);
753 printstatus(gspca_dev, &sd->params);
787 struct sd *sd = (struct sd *) gspca_dev;
791 sd->params.format.videoSize,
792 sd->params.format.subSample,
793 sd->params.format.yuvOrder, 0);
798 sd->params.roi.colStart, sd->params.roi.colEnd,
799 sd->params.roi.rowStart, sd->params.roi.rowEnd);
804 struct sd *sd = (struct sd *) gspca_dev;
806 sd->params.colourParams.brightness,
807 sd->params.colourParams.contrast,
808 sd->params.colourParams.saturation, 0);
813 struct sd *sd = (struct sd *) gspca_dev;
815 sd->params.apcor.gain1,
816 sd->params.apcor.gain2,
817 sd->params.apcor.gain4,
818 sd->params.apcor.gain8);
823 struct sd *sd = (struct sd *) gspca_dev;
825 sd->params.vlOffset.gain1,
826 sd->params.vlOffset.gain2,
827 sd->params.vlOffset.gain4,
828 sd->params.vlOffset.gain8);
833 struct sd *sd = (struct sd *) gspca_dev;
837 sd->params.exposure.gainMode,
839 sd->params.exposure.compMode,
840 sd->params.exposure.centreWeight,
841 sd->params.exposure.gain,
842 sd->params.exposure.fineExp,
843 sd->params.exposure.coarseExpLo,
844 sd->params.exposure.coarseExpHi,
845 sd->params.exposure.redComp,
846 sd->params.exposure.green1Comp,
847 sd->params.exposure.green2Comp,
848 sd->params.exposure.blueComp);
852 if (sd->params.exposure.expMode != 1) {
855 sd->params.exposure.expMode,
857 sd->params.exposure.gain,
858 sd->params.exposure.fineExp,
859 sd->params.exposure.coarseExpLo,
860 sd->params.exposure.coarseExpHi,
869 struct sd *sd = (struct sd *) gspca_dev;
871 if (sd->params.colourBalance.balanceMode == 1) {
876 sd->params.colourBalance.redGain,
877 sd->params.colourBalance.greenGain,
878 sd->params.colourBalance.blueGain);
885 if (sd->params.colourBalance.balanceMode == 2) {
889 if (sd->params.colourBalance.balanceMode == 3) {
899 struct sd *sd = (struct sd *) gspca_dev;
902 sd->params.compressionTarget.frTargeting,
903 sd->params.compressionTarget.targetFR,
904 sd->params.compressionTarget.targetQ, 0);
909 struct sd *sd = (struct sd *) gspca_dev;
912 sd->params.yuvThreshold.yThreshold,
913 sd->params.yuvThreshold.uvThreshold, 0, 0);
918 struct sd *sd = (struct sd *) gspca_dev;
923 sd->params.compressionParams.hysteresis,
924 sd->params.compressionParams.threshMax,
925 sd->params.compressionParams.smallStep,
926 sd->params.compressionParams.largeStep,
927 sd->params.compressionParams.decimationHysteresis,
928 sd->params.compressionParams.frDiffStepThresh,
929 sd->params.compressionParams.qDiffStepThresh,
930 sd->params.compressionParams.decimationThreshMod);
935 struct sd *sd = (struct sd *) gspca_dev;
938 sd->params.compression.mode,
939 sd->params.compression.decimation, 0, 0);
944 struct sd *sd = (struct sd *) gspca_dev;
947 sd->params.sensorFps.divisor,
948 sd->params.sensorFps.baserate, 0, 0);
953 struct sd *sd = (struct sd *) gspca_dev;
956 sd->params.flickerControl.flickerMode,
957 sd->params.flickerControl.coarseJump,
958 sd->params.flickerControl.allowableOverExposure,
964 struct sd *sd = (struct sd *) gspca_dev;
967 sd->params.ecpTiming, 0, 0, 0);
977 struct sd *sd = (struct sd *) gspca_dev;
980 0, sd->params.streamStartLine, 0, 0);
985 struct sd *sd = (struct sd *) gspca_dev;
988 p1 = (sd->params.qx3.bottomlight == 0) << 1;
989 p2 = (sd->params.qx3.toplight == 0) << 3;
1018 struct sd *sd = (struct sd *) gspca_dev;
1019 int currentexp = sd->params.exposure.coarseExpLo +
1020 sd->params.exposure.coarseExpHi * 256;
1024 int cj = sd->params.flickerControl.coarseJump;
1025 sd->params.flickerControl.flickerMode = 1;
1026 sd->params.flickerControl.disabled = 0;
1027 if (sd->params.exposure.expMode != 2) {
1028 sd->params.exposure.expMode = 2;
1029 sd->exposure_status = EXPOSURE_NORMAL;
1031 if (sd->params.exposure.gain >= BITS_PER_TYPE(currentexp))
1033 currentexp = currentexp << sd->params.exposure.gain;
1034 sd->params.exposure.gain = 0;
1046 sd->params.exposure.coarseExpLo = startexp & 0xff;
1047 sd->params.exposure.coarseExpHi = startexp >> 8;
1051 sd->params.exposure.redComp =
1053 sd->params.exposure.green1Comp =
1055 sd->params.exposure.green2Comp =
1057 sd->params.exposure.blueComp =
1060 sd->params.exposure.redComp = COMP_RED;
1061 sd->params.exposure.green1Comp = COMP_GREEN1;
1062 sd->params.exposure.green2Comp = COMP_GREEN2;
1063 sd->params.exposure.blueComp = COMP_BLUE;
1066 sd->params.exposure.compMode = 0;
1068 sd->params.exposure.compMode = 1;
1070 sd->params.apcor.gain1 = 0x18;
1071 sd->params.apcor.gain2 = 0x18;
1072 sd->params.apcor.gain4 = 0x16;
1073 sd->params.apcor.gain8 = 0x14;
1075 sd->params.flickerControl.flickerMode = 0;
1076 sd->params.flickerControl.disabled = 1;
1079 sd->params.exposure.redComp, currentexp);
1081 sd->params.exposure.green1Comp, currentexp);
1083 sd->params.exposure.green2Comp, currentexp);
1085 sd->params.exposure.blueComp, currentexp);
1087 while (startexp > MAX_EXP && sd->params.exposure.gain <
1088 sd->params.exposure.gainMode - 1) {
1090 ++sd->params.exposure.gain;
1096 sd->params.exposure.coarseExpLo = startexp & 0xff;
1097 sd->params.exposure.coarseExpHi = startexp >> 8;
1098 sd->params.exposure.redComp = COMP_RED;
1099 sd->params.exposure.green1Comp = COMP_GREEN1;
1100 sd->params.exposure.green2Comp = COMP_GREEN2;
1101 sd->params.exposure.blueComp = COMP_BLUE;
1102 sd->params.exposure.compMode = 1;
1103 sd->params.apcor.gain1 = 0x18;
1104 sd->params.apcor.gain2 = 0x16;
1105 sd->params.apcor.gain4 = 0x24;
1106 sd->params.apcor.gain8 = 0x34;
1108 sd->params.vlOffset.gain1 = 20;
1109 sd->params.vlOffset.gain2 = 24;
1110 sd->params.vlOffset.gain4 = 26;
1111 sd->params.vlOffset.gain8 = 26;
1139 struct sd *sd = (struct sd *) gspca_dev;
1163 light_exp = sd->params.colourParams.brightness +
1167 dark_exp = sd->params.colourParams.brightness +
1173 old_exposure = sd->params.exposure.coarseExpHi * 256 +
1174 sd->params.exposure.coarseExpLo;
1176 if (!sd->params.flickerControl.disabled) {
1185 if (sd->exposure_status == EXPOSURE_VERY_DARK)
1186 ++sd->exposure_count;
1188 sd->exposure_status =
1190 sd->exposure_count = 1;
1194 if (sd->exposure_status == EXPOSURE_DARK)
1195 ++sd->exposure_count;
1197 sd->exposure_status = EXPOSURE_DARK;
1198 sd->exposure_count = 1;
1205 if (sd->exposure_status == EXPOSURE_VERY_LIGHT)
1206 ++sd->exposure_count;
1208 sd->exposure_status =
1210 sd->exposure_count = 1;
1214 if (sd->exposure_status == EXPOSURE_LIGHT)
1215 ++sd->exposure_count;
1217 sd->exposure_status = EXPOSURE_LIGHT;
1218 sd->exposure_count = 1;
1223 sd->exposure_status = EXPOSURE_NORMAL;
1231 if (sd->exposure_status == EXPOSURE_VERY_DARK)
1232 ++sd->exposure_count;
1234 sd->exposure_status =
1236 sd->exposure_count = 1;
1240 if (sd->exposure_status == EXPOSURE_DARK)
1241 ++sd->exposure_count;
1243 sd->exposure_status = EXPOSURE_DARK;
1244 sd->exposure_count = 1;
1251 if (sd->exposure_status == EXPOSURE_VERY_LIGHT)
1252 ++sd->exposure_count;
1254 sd->exposure_status =
1256 sd->exposure_count = 1;
1260 if (sd->exposure_status == EXPOSURE_LIGHT)
1261 ++sd->exposure_count;
1263 sd->exposure_status = EXPOSURE_LIGHT;
1264 sd->exposure_count = 1;
1269 sd->exposure_status = EXPOSURE_NORMAL;
1273 framerate = atomic_read(&sd->fps);
1277 if (!sd->params.flickerControl.disabled) {
1279 if ((sd->exposure_status == EXPOSURE_VERY_DARK ||
1280 sd->exposure_status == EXPOSURE_DARK) &&
1281 sd->exposure_count >= DARK_TIME * framerate &&
1282 sd->params.sensorFps.divisor < 2) {
1285 ++sd->params.sensorFps.divisor;
1288 sd->params.flickerControl.coarseJump =
1289 flicker_jumps[sd->mainsFreq]
1290 [sd->params.sensorFps.baserate]
1291 [sd->params.sensorFps.divisor];
1294 new_exposure = sd->params.flickerControl.coarseJump-1;
1297 sd->params.flickerControl.coarseJump;
1298 sd->params.exposure.coarseExpLo = new_exposure & 0xff;
1299 sd->params.exposure.coarseExpHi = new_exposure >> 8;
1301 sd->exposure_status = EXPOSURE_NORMAL;
1304 } else if ((sd->exposure_status == EXPOSURE_VERY_LIGHT ||
1305 sd->exposure_status == EXPOSURE_LIGHT) &&
1306 sd->exposure_count >= LIGHT_TIME * framerate &&
1307 sd->params.sensorFps.divisor > 0) {
1312 --sd->params.sensorFps.divisor;
1315 sd->params.flickerControl.coarseJump =
1316 flicker_jumps[sd->mainsFreq]
1317 [sd->params.sensorFps.baserate]
1318 [sd->params.sensorFps.divisor];
1321 new_exposure = sd->params.flickerControl.coarseJump-1;
1324 sd->params.flickerControl.coarseJump < max_exp)
1326 sd->params.flickerControl.coarseJump;
1327 sd->params.exposure.coarseExpLo = new_exposure & 0xff;
1328 sd->params.exposure.coarseExpHi = new_exposure >> 8;
1330 sd->exposure_status = EXPOSURE_NORMAL;
1335 if ((sd->exposure_status == EXPOSURE_VERY_DARK ||
1336 sd->exposure_status == EXPOSURE_DARK) &&
1337 sd->exposure_count >= DARK_TIME * framerate &&
1338 sd->params.sensorFps.divisor < 2) {
1341 ++sd->params.sensorFps.divisor;
1344 if (sd->params.exposure.gain > 0) {
1345 --sd->params.exposure.gain;
1348 sd->exposure_status = EXPOSURE_NORMAL;
1351 } else if ((sd->exposure_status == EXPOSURE_VERY_LIGHT ||
1352 sd->exposure_status == EXPOSURE_LIGHT) &&
1353 sd->exposure_count >= LIGHT_TIME * framerate &&
1354 sd->params.sensorFps.divisor > 0) {
1357 --sd->params.sensorFps.divisor;
1360 if (sd->params.exposure.gain <
1361 sd->params.exposure.gainMode - 1) {
1362 ++sd->params.exposure.gain;
1365 sd->exposure_status = EXPOSURE_NORMAL;
1390 struct sd *sd = (struct sd *) gspca_dev;
1396 cam_exposure = atomic_read(&sd->cam_exposure);
1398 if (sd->params.flickerControl.flickerMode == 0 ||
1402 old_exp = sd->params.exposure.coarseExpLo +
1403 sd->params.exposure.coarseExpHi*256;
1408 cam_exposure %= sd->params.flickerControl.coarseJump;
1409 if (!sd->params.flickerControl.disabled &&
1410 cam_exposure <= sd->params.flickerControl.coarseJump - 3) {
1412 sd->params.flickerControl.disabled = 1;
1415 if (sd->params.flickerControl.disabled &&
1416 old_exp > sd->params.flickerControl.coarseJump +
1428 struct sd *sd = (struct sd *) gspca_dev;
1431 sd->mainsFreq = FREQ_DEF == V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
1443 sd->params.version.firmwareVersion = 0;
1445 if (sd->params.version.firmwareVersion != 1) {
1447 sd->params.version.firmwareVersion);
1452 if (sd->params.version.firmwareRevision <= 2 &&
1453 sd->params.exposure.gainMode > 2) {
1454 sd->params.exposure.gainMode = 2;
1458 sd->params.qx3.qx3_detected = (sd->params.pnpID.vendor == 0x0813 &&
1459 sd->params.pnpID.product == 0x0001);
1466 struct sd *sd = (struct sd *) gspca_dev;
1471 if (sd->params.status.systemState != WARM_BOOT_STATE) {
1473 sd->params.status.systemState);
1474 printstatus(gspca_dev, &sd->params);
1496 sd->params.version.firmwareVersion = 0;
1519 if (sd->params.status.fatalError) {
1521 sd->params.status.fatalError,
1522 sd->params.status.vpStatus);
1533 sd->params.streamStartLine = 120;
1537 sd->params.roi.colStart = 2;
1538 sd->params.roi.rowStart = 6;
1540 sd->params.roi.colStart = 0;
1541 sd->params.roi.rowStart = 0;
1545 sd->params.format.videoSize = VIDEOSIZE_QCIF;
1546 sd->params.roi.colStart /= 2;
1547 sd->params.roi.rowStart /= 2;
1548 sd->params.streamStartLine /= 2;
1550 sd->params.format.videoSize = VIDEOSIZE_CIF;
1552 sd->params.roi.colEnd = sd->params.roi.colStart +
1554 sd->params.roi.rowEnd = sd->params.roi.rowStart +
1613 sd->first_frame = 6;
1614 sd->exposure_status = EXPOSURE_NORMAL;
1615 sd->exposure_count = 0;
1616 atomic_set(&sd->cam_exposure, 0);
1617 atomic_set(&sd->fps, 0);
1624 struct sd *sd __maybe_unused = (struct sd *) gspca_dev;
1639 if (sd->params.qx3.button) {
1641 the latch, so we do not reset sd->params.qx3.button now, to
1652 struct sd *sd = (struct sd *) gspca_dev;
1664 if (sd->params.qx3.qx3_detected)
1670 sd->params.version.firmwareVersion,
1671 sd->params.version.firmwareRevision,
1672 sd->params.version.vcVersion,
1673 sd->params.version.vcRevision);
1675 sd->params.pnpID.vendor, sd->params.pnpID.product,
1676 sd->params.pnpID.deviceRevision);
1678 sd->params.vpVersion.vpVersion,
1679 sd->params.vpVersion.vpRevision,
1680 sd->params.vpVersion.cameraHeadID);
1689 struct sd *sd = (struct sd *) gspca_dev;
1694 data[16] == sd->params.format.videoSize &&
1695 data[17] == sd->params.format.subSample &&
1696 data[18] == sd->params.format.yuvOrder &&
1697 data[24] == sd->params.roi.colStart &&
1698 data[25] == sd->params.roi.colEnd &&
1699 data[26] == sd->params.roi.rowStart &&
1700 data[27] == sd->params.roi.rowEnd) {
1703 atomic_set(&sd->cam_exposure, data[39] * 2);
1704 atomic_set(&sd->fps, data[41]);
1726 struct sd *sd = (struct sd *) gspca_dev;
1730 if (sd->first_frame) {
1731 sd->first_frame--;
1732 if (sd->first_frame == 0)
1741 if (sd->params.exposure.expMode == 2)
1753 struct sd *sd = (struct sd *)gspca_dev;
1762 sd->params.colourParams.brightness = ctrl->val;
1763 sd->params.flickerControl.allowableOverExposure =
1764 find_over_exposure(sd->params.colourParams.brightness);
1770 sd->params.colourParams.contrast = ctrl->val;
1774 sd->params.colourParams.saturation = ctrl->val;
1778 sd->mainsFreq = ctrl->val == V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
1779 sd->params.flickerControl.coarseJump =
1780 flicker_jumps[sd->mainsFreq]
1781 [sd->params.sensorFps.baserate]
1782 [sd->params.sensorFps.divisor];
1789 sd->params.qx3.bottomlight = ctrl->val;
1793 sd->params.qx3.toplight = ctrl->val;
1797 sd->params.compressionTarget.frTargeting = ctrl->val;
1810 struct sd *sd = (struct sd *)gspca_dev;
1835 sd->freq = v4l2_ctrl_new_std_menu(hdl, &sd_ctrl_ops,
1839 if (sd->params.qx3.qx3_detected) {
1883 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),