Lines Matching refs:sd

214 #define FIRMWARE_VERSION(x, y) (sd->params.version.firmwareVersion == (x) && \
215 sd->params.version.firmwareRevision == (y))
353 struct sd {
442 struct sd *sd = (struct sd *) gspca_dev;
480 sd->params.version.firmwareVersion = gspca_dev->usb_buf[0];
481 sd->params.version.firmwareRevision = gspca_dev->usb_buf[1];
482 sd->params.version.vcVersion = gspca_dev->usb_buf[2];
483 sd->params.version.vcRevision = gspca_dev->usb_buf[3];
486 sd->params.pnpID.vendor =
488 sd->params.pnpID.product =
490 sd->params.pnpID.deviceRevision =
494 sd->params.status.systemState = gspca_dev->usb_buf[0];
495 sd->params.status.grabState = gspca_dev->usb_buf[1];
496 sd->params.status.streamState = gspca_dev->usb_buf[2];
497 sd->params.status.fatalError = gspca_dev->usb_buf[3];
498 sd->params.status.cmdError = gspca_dev->usb_buf[4];
499 sd->params.status.debugFlags = gspca_dev->usb_buf[5];
500 sd->params.status.vpStatus = gspca_dev->usb_buf[6];
501 sd->params.status.errorCode = gspca_dev->usb_buf[7];
504 sd->params.vpVersion.vpVersion = gspca_dev->usb_buf[0];
505 sd->params.vpVersion.vpRevision = gspca_dev->usb_buf[1];
506 sd->params.vpVersion.cameraHeadID =
510 sd->params.colourParams.brightness = gspca_dev->usb_buf[0];
511 sd->params.colourParams.contrast = gspca_dev->usb_buf[1];
512 sd->params.colourParams.saturation = gspca_dev->usb_buf[2];
515 sd->params.colourBalance.redGain = gspca_dev->usb_buf[0];
516 sd->params.colourBalance.greenGain = gspca_dev->usb_buf[1];
517 sd->params.colourBalance.blueGain = gspca_dev->usb_buf[2];
520 sd->params.exposure.gain = gspca_dev->usb_buf[0];
521 sd->params.exposure.fineExp = gspca_dev->usb_buf[1];
522 sd->params.exposure.coarseExpLo = gspca_dev->usb_buf[2];
523 sd->params.exposure.coarseExpHi = gspca_dev->usb_buf[3];
524 sd->params.exposure.redComp = gspca_dev->usb_buf[4];
525 sd->params.exposure.green1Comp = gspca_dev->usb_buf[5];
526 sd->params.exposure.green2Comp = gspca_dev->usb_buf[6];
527 sd->params.exposure.blueComp = gspca_dev->usb_buf[7];
533 if (a != sd->params.qx3.button) {
538 sd->params.qx3.button = a;
540 if (sd->params.qx3.button) {
553 sd->params.qx3.cradled = ((gspca_dev->usb_buf[2] & 0x40) == 0);
621 struct sd *sd = (struct sd *) gspca_dev;
622 struct cam_params *params = &sd->params;
672 flicker_jumps[sd->mainsFreq]
709 struct sd *sd = (struct sd *) gspca_dev;
720 if (sd->params.status.systemState != LO_POWER_STATE) {
721 if (sd->params.status.systemState != WARM_BOOT_STATE) {
723 sd->params.status.systemState);
724 printstatus(gspca_dev, &sd->params);
735 struct sd *sd = (struct sd *) gspca_dev;
751 if (sd->params.status.systemState != HI_POWER_STATE) {
753 sd->params.status.systemState);
754 printstatus(gspca_dev, &sd->params);
788 struct sd *sd = (struct sd *) gspca_dev;
792 sd->params.format.videoSize,
793 sd->params.format.subSample,
794 sd->params.format.yuvOrder, 0);
799 sd->params.roi.colStart, sd->params.roi.colEnd,
800 sd->params.roi.rowStart, sd->params.roi.rowEnd);
805 struct sd *sd = (struct sd *) gspca_dev;
807 sd->params.colourParams.brightness,
808 sd->params.colourParams.contrast,
809 sd->params.colourParams.saturation, 0);
814 struct sd *sd = (struct sd *) gspca_dev;
816 sd->params.apcor.gain1,
817 sd->params.apcor.gain2,
818 sd->params.apcor.gain4,
819 sd->params.apcor.gain8);
824 struct sd *sd = (struct sd *) gspca_dev;
826 sd->params.vlOffset.gain1,
827 sd->params.vlOffset.gain2,
828 sd->params.vlOffset.gain4,
829 sd->params.vlOffset.gain8);
834 struct sd *sd = (struct sd *) gspca_dev;
838 sd->params.exposure.gainMode,
840 sd->params.exposure.compMode,
841 sd->params.exposure.centreWeight,
842 sd->params.exposure.gain,
843 sd->params.exposure.fineExp,
844 sd->params.exposure.coarseExpLo,
845 sd->params.exposure.coarseExpHi,
846 sd->params.exposure.redComp,
847 sd->params.exposure.green1Comp,
848 sd->params.exposure.green2Comp,
849 sd->params.exposure.blueComp);
853 if (sd->params.exposure.expMode != 1) {
856 sd->params.exposure.expMode,
858 sd->params.exposure.gain,
859 sd->params.exposure.fineExp,
860 sd->params.exposure.coarseExpLo,
861 sd->params.exposure.coarseExpHi,
870 struct sd *sd = (struct sd *) gspca_dev;
872 if (sd->params.colourBalance.balanceMode == 1) {
877 sd->params.colourBalance.redGain,
878 sd->params.colourBalance.greenGain,
879 sd->params.colourBalance.blueGain);
886 if (sd->params.colourBalance.balanceMode == 2) {
890 if (sd->params.colourBalance.balanceMode == 3) {
900 struct sd *sd = (struct sd *) gspca_dev;
903 sd->params.compressionTarget.frTargeting,
904 sd->params.compressionTarget.targetFR,
905 sd->params.compressionTarget.targetQ, 0);
910 struct sd *sd = (struct sd *) gspca_dev;
913 sd->params.yuvThreshold.yThreshold,
914 sd->params.yuvThreshold.uvThreshold, 0, 0);
919 struct sd *sd = (struct sd *) gspca_dev;
924 sd->params.compressionParams.hysteresis,
925 sd->params.compressionParams.threshMax,
926 sd->params.compressionParams.smallStep,
927 sd->params.compressionParams.largeStep,
928 sd->params.compressionParams.decimationHysteresis,
929 sd->params.compressionParams.frDiffStepThresh,
930 sd->params.compressionParams.qDiffStepThresh,
931 sd->params.compressionParams.decimationThreshMod);
936 struct sd *sd = (struct sd *) gspca_dev;
939 sd->params.compression.mode,
940 sd->params.compression.decimation, 0, 0);
945 struct sd *sd = (struct sd *) gspca_dev;
948 sd->params.sensorFps.divisor,
949 sd->params.sensorFps.baserate, 0, 0);
954 struct sd *sd = (struct sd *) gspca_dev;
957 sd->params.flickerControl.flickerMode,
958 sd->params.flickerControl.coarseJump,
959 sd->params.flickerControl.allowableOverExposure,
965 struct sd *sd = (struct sd *) gspca_dev;
968 sd->params.ecpTiming, 0, 0, 0);
978 struct sd *sd = (struct sd *) gspca_dev;
981 0, sd->params.streamStartLine, 0, 0);
986 struct sd *sd = (struct sd *) gspca_dev;
989 p1 = (sd->params.qx3.bottomlight == 0) << 1;
990 p2 = (sd->params.qx3.toplight == 0) << 3;
1019 struct sd *sd = (struct sd *) gspca_dev;
1020 int currentexp = sd->params.exposure.coarseExpLo +
1021 sd->params.exposure.coarseExpHi * 256;
1025 int cj = sd->params.flickerControl.coarseJump;
1026 sd->params.flickerControl.flickerMode = 1;
1027 sd->params.flickerControl.disabled = 0;
1028 if (sd->params.exposure.expMode != 2) {
1029 sd->params.exposure.expMode = 2;
1030 sd->exposure_status = EXPOSURE_NORMAL;
1032 if (sd->params.exposure.gain >= BITS_PER_TYPE(currentexp))
1034 currentexp = currentexp << sd->params.exposure.gain;
1035 sd->params.exposure.gain = 0;
1047 sd->params.exposure.coarseExpLo = startexp & 0xff;
1048 sd->params.exposure.coarseExpHi = startexp >> 8;
1052 sd->params.exposure.redComp =
1054 sd->params.exposure.green1Comp =
1056 sd->params.exposure.green2Comp =
1058 sd->params.exposure.blueComp =
1061 sd->params.exposure.redComp = COMP_RED;
1062 sd->params.exposure.green1Comp = COMP_GREEN1;
1063 sd->params.exposure.green2Comp = COMP_GREEN2;
1064 sd->params.exposure.blueComp = COMP_BLUE;
1067 sd->params.exposure.compMode = 0;
1069 sd->params.exposure.compMode = 1;
1071 sd->params.apcor.gain1 = 0x18;
1072 sd->params.apcor.gain2 = 0x18;
1073 sd->params.apcor.gain4 = 0x16;
1074 sd->params.apcor.gain8 = 0x14;
1076 sd->params.flickerControl.flickerMode = 0;
1077 sd->params.flickerControl.disabled = 1;
1080 sd->params.exposure.redComp, currentexp);
1082 sd->params.exposure.green1Comp, currentexp);
1084 sd->params.exposure.green2Comp, currentexp);
1086 sd->params.exposure.blueComp, currentexp);
1088 while (startexp > MAX_EXP && sd->params.exposure.gain <
1089 sd->params.exposure.gainMode - 1) {
1091 ++sd->params.exposure.gain;
1097 sd->params.exposure.coarseExpLo = startexp & 0xff;
1098 sd->params.exposure.coarseExpHi = startexp >> 8;
1099 sd->params.exposure.redComp = COMP_RED;
1100 sd->params.exposure.green1Comp = COMP_GREEN1;
1101 sd->params.exposure.green2Comp = COMP_GREEN2;
1102 sd->params.exposure.blueComp = COMP_BLUE;
1103 sd->params.exposure.compMode = 1;
1104 sd->params.apcor.gain1 = 0x18;
1105 sd->params.apcor.gain2 = 0x16;
1106 sd->params.apcor.gain4 = 0x24;
1107 sd->params.apcor.gain8 = 0x34;
1109 sd->params.vlOffset.gain1 = 20;
1110 sd->params.vlOffset.gain2 = 24;
1111 sd->params.vlOffset.gain4 = 26;
1112 sd->params.vlOffset.gain8 = 26;
1140 struct sd *sd = (struct sd *) gspca_dev;
1164 light_exp = sd->params.colourParams.brightness +
1168 dark_exp = sd->params.colourParams.brightness +
1174 old_exposure = sd->params.exposure.coarseExpHi * 256 +
1175 sd->params.exposure.coarseExpLo;
1177 if (!sd->params.flickerControl.disabled) {
1186 if (sd->exposure_status == EXPOSURE_VERY_DARK)
1187 ++sd->exposure_count;
1189 sd->exposure_status =
1191 sd->exposure_count = 1;
1195 if (sd->exposure_status == EXPOSURE_DARK)
1196 ++sd->exposure_count;
1198 sd->exposure_status = EXPOSURE_DARK;
1199 sd->exposure_count = 1;
1206 if (sd->exposure_status == EXPOSURE_VERY_LIGHT)
1207 ++sd->exposure_count;
1209 sd->exposure_status =
1211 sd->exposure_count = 1;
1215 if (sd->exposure_status == EXPOSURE_LIGHT)
1216 ++sd->exposure_count;
1218 sd->exposure_status = EXPOSURE_LIGHT;
1219 sd->exposure_count = 1;
1224 sd->exposure_status = EXPOSURE_NORMAL;
1232 if (sd->exposure_status == EXPOSURE_VERY_DARK)
1233 ++sd->exposure_count;
1235 sd->exposure_status =
1237 sd->exposure_count = 1;
1241 if (sd->exposure_status == EXPOSURE_DARK)
1242 ++sd->exposure_count;
1244 sd->exposure_status = EXPOSURE_DARK;
1245 sd->exposure_count = 1;
1252 if (sd->exposure_status == EXPOSURE_VERY_LIGHT)
1253 ++sd->exposure_count;
1255 sd->exposure_status =
1257 sd->exposure_count = 1;
1261 if (sd->exposure_status == EXPOSURE_LIGHT)
1262 ++sd->exposure_count;
1264 sd->exposure_status = EXPOSURE_LIGHT;
1265 sd->exposure_count = 1;
1270 sd->exposure_status = EXPOSURE_NORMAL;
1274 framerate = atomic_read(&sd->fps);
1278 if (!sd->params.flickerControl.disabled) {
1280 if ((sd->exposure_status == EXPOSURE_VERY_DARK ||
1281 sd->exposure_status == EXPOSURE_DARK) &&
1282 sd->exposure_count >= DARK_TIME * framerate &&
1283 sd->params.sensorFps.divisor < 2) {
1286 ++sd->params.sensorFps.divisor;
1289 sd->params.flickerControl.coarseJump =
1290 flicker_jumps[sd->mainsFreq]
1291 [sd->params.sensorFps.baserate]
1292 [sd->params.sensorFps.divisor];
1295 new_exposure = sd->params.flickerControl.coarseJump-1;
1298 sd->params.flickerControl.coarseJump;
1299 sd->params.exposure.coarseExpLo = new_exposure & 0xff;
1300 sd->params.exposure.coarseExpHi = new_exposure >> 8;
1302 sd->exposure_status = EXPOSURE_NORMAL;
1305 } else if ((sd->exposure_status == EXPOSURE_VERY_LIGHT ||
1306 sd->exposure_status == EXPOSURE_LIGHT) &&
1307 sd->exposure_count >= LIGHT_TIME * framerate &&
1308 sd->params.sensorFps.divisor > 0) {
1313 --sd->params.sensorFps.divisor;
1316 sd->params.flickerControl.coarseJump =
1317 flicker_jumps[sd->mainsFreq]
1318 [sd->params.sensorFps.baserate]
1319 [sd->params.sensorFps.divisor];
1322 new_exposure = sd->params.flickerControl.coarseJump-1;
1325 sd->params.flickerControl.coarseJump < max_exp)
1327 sd->params.flickerControl.coarseJump;
1328 sd->params.exposure.coarseExpLo = new_exposure & 0xff;
1329 sd->params.exposure.coarseExpHi = new_exposure >> 8;
1331 sd->exposure_status = EXPOSURE_NORMAL;
1336 if ((sd->exposure_status == EXPOSURE_VERY_DARK ||
1337 sd->exposure_status == EXPOSURE_DARK) &&
1338 sd->exposure_count >= DARK_TIME * framerate &&
1339 sd->params.sensorFps.divisor < 2) {
1342 ++sd->params.sensorFps.divisor;
1345 if (sd->params.exposure.gain > 0) {
1346 --sd->params.exposure.gain;
1349 sd->exposure_status = EXPOSURE_NORMAL;
1352 } else if ((sd->exposure_status == EXPOSURE_VERY_LIGHT ||
1353 sd->exposure_status == EXPOSURE_LIGHT) &&
1354 sd->exposure_count >= LIGHT_TIME * framerate &&
1355 sd->params.sensorFps.divisor > 0) {
1358 --sd->params.sensorFps.divisor;
1361 if (sd->params.exposure.gain <
1362 sd->params.exposure.gainMode - 1) {
1363 ++sd->params.exposure.gain;
1366 sd->exposure_status = EXPOSURE_NORMAL;
1391 struct sd *sd = (struct sd *) gspca_dev;
1397 cam_exposure = atomic_read(&sd->cam_exposure);
1399 if (sd->params.flickerControl.flickerMode == 0 ||
1403 old_exp = sd->params.exposure.coarseExpLo +
1404 sd->params.exposure.coarseExpHi*256;
1409 cam_exposure %= sd->params.flickerControl.coarseJump;
1410 if (!sd->params.flickerControl.disabled &&
1411 cam_exposure <= sd->params.flickerControl.coarseJump - 3) {
1413 sd->params.flickerControl.disabled = 1;
1416 if (sd->params.flickerControl.disabled &&
1417 old_exp > sd->params.flickerControl.coarseJump +
1429 struct sd *sd = (struct sd *) gspca_dev;
1432 sd->mainsFreq = FREQ_DEF == V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
1444 sd->params.version.firmwareVersion = 0;
1446 if (sd->params.version.firmwareVersion != 1) {
1448 sd->params.version.firmwareVersion);
1453 if (sd->params.version.firmwareRevision <= 2 &&
1454 sd->params.exposure.gainMode > 2) {
1455 sd->params.exposure.gainMode = 2;
1459 sd->params.qx3.qx3_detected = (sd->params.pnpID.vendor == 0x0813 &&
1460 sd->params.pnpID.product == 0x0001);
1467 struct sd *sd = (struct sd *) gspca_dev;
1472 if (sd->params.status.systemState != WARM_BOOT_STATE) {
1474 sd->params.status.systemState);
1475 printstatus(gspca_dev, &sd->params);
1497 sd->params.version.firmwareVersion = 0;
1520 if (sd->params.status.fatalError) {
1522 sd->params.status.fatalError,
1523 sd->params.status.vpStatus);
1534 sd->params.streamStartLine = 120;
1538 sd->params.roi.colStart = 2;
1539 sd->params.roi.rowStart = 6;
1541 sd->params.roi.colStart = 0;
1542 sd->params.roi.rowStart = 0;
1546 sd->params.format.videoSize = VIDEOSIZE_QCIF;
1547 sd->params.roi.colStart /= 2;
1548 sd->params.roi.rowStart /= 2;
1549 sd->params.streamStartLine /= 2;
1551 sd->params.format.videoSize = VIDEOSIZE_CIF;
1553 sd->params.roi.colEnd = sd->params.roi.colStart +
1555 sd->params.roi.rowEnd = sd->params.roi.rowStart +
1614 sd->first_frame = 6;
1615 sd->exposure_status = EXPOSURE_NORMAL;
1616 sd->exposure_count = 0;
1617 atomic_set(&sd->cam_exposure, 0);
1618 atomic_set(&sd->fps, 0);
1625 struct sd *sd __maybe_unused = (struct sd *) gspca_dev;
1640 if (sd->params.qx3.button) {
1642 the latch, so we do not reset sd->params.qx3.button now, to
1653 struct sd *sd = (struct sd *) gspca_dev;
1665 if (sd->params.qx3.qx3_detected)
1671 sd->params.version.firmwareVersion,
1672 sd->params.version.firmwareRevision,
1673 sd->params.version.vcVersion,
1674 sd->params.version.vcRevision);
1676 sd->params.pnpID.vendor, sd->params.pnpID.product,
1677 sd->params.pnpID.deviceRevision);
1679 sd->params.vpVersion.vpVersion,
1680 sd->params.vpVersion.vpRevision,
1681 sd->params.vpVersion.cameraHeadID);
1690 struct sd *sd = (struct sd *) gspca_dev;
1695 data[16] == sd->params.format.videoSize &&
1696 data[17] == sd->params.format.subSample &&
1697 data[18] == sd->params.format.yuvOrder &&
1698 data[24] == sd->params.roi.colStart &&
1699 data[25] == sd->params.roi.colEnd &&
1700 data[26] == sd->params.roi.rowStart &&
1701 data[27] == sd->params.roi.rowEnd) {
1704 atomic_set(&sd->cam_exposure, data[39] * 2);
1705 atomic_set(&sd->fps, data[41]);
1727 struct sd *sd = (struct sd *) gspca_dev;
1731 if (sd->first_frame) {
1732 sd->first_frame--;
1733 if (sd->first_frame == 0)
1742 if (sd->params.exposure.expMode == 2)
1754 struct sd *sd = (struct sd *)gspca_dev;
1763 sd->params.colourParams.brightness = ctrl->val;
1764 sd->params.flickerControl.allowableOverExposure =
1765 find_over_exposure(sd->params.colourParams.brightness);
1771 sd->params.colourParams.contrast = ctrl->val;
1775 sd->params.colourParams.saturation = ctrl->val;
1779 sd->mainsFreq = ctrl->val == V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
1780 sd->params.flickerControl.coarseJump =
1781 flicker_jumps[sd->mainsFreq]
1782 [sd->params.sensorFps.baserate]
1783 [sd->params.sensorFps.divisor];
1790 sd->params.qx3.bottomlight = ctrl->val;
1794 sd->params.qx3.toplight = ctrl->val;
1798 sd->params.compressionTarget.frTargeting = ctrl->val;
1811 struct sd *sd = (struct sd *)gspca_dev;
1836 sd->freq = v4l2_ctrl_new_std_menu(hdl, &sd_ctrl_ops,
1840 if (sd->params.qx3.qx3_detected) {
1884 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),