Lines Matching refs:gspca_dev
36 struct gspca_dev gspca_dev; /* !! must be the first item */ member
1155 static void reg_r(struct gspca_dev *gspca_dev, in reg_r() argument
1160 if (gspca_dev->usb_err < 0) in reg_r()
1167 ret = usb_control_msg(gspca_dev->dev, in reg_r()
1168 usb_rcvctrlpipe(gspca_dev->dev, 0), in reg_r()
1172 gspca_dev->usb_buf, len, in reg_r()
1174 PDEBUG(D_USBI, "reg_r [%02x] -> %02x", value, gspca_dev->usb_buf[0]); in reg_r()
1177 gspca_dev->usb_err = ret; in reg_r()
1181 static void reg_w1(struct gspca_dev *gspca_dev, in reg_w1() argument
1187 if (gspca_dev->usb_err < 0) in reg_w1()
1190 gspca_dev->usb_buf[0] = data; in reg_w1()
1191 ret = usb_control_msg(gspca_dev->dev, in reg_w1()
1192 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w1()
1197 gspca_dev->usb_buf, 1, in reg_w1()
1201 gspca_dev->usb_err = ret; in reg_w1()
1204 static void reg_w(struct gspca_dev *gspca_dev, in reg_w() argument
1211 if (gspca_dev->usb_err < 0) in reg_w()
1221 memcpy(gspca_dev->usb_buf, buffer, len); in reg_w()
1222 ret = usb_control_msg(gspca_dev->dev, in reg_w()
1223 usb_sndctrlpipe(gspca_dev->dev, 0), in reg_w()
1227 gspca_dev->usb_buf, len, in reg_w()
1231 gspca_dev->usb_err = ret; in reg_w()
1236 static void i2c_w1(struct gspca_dev *gspca_dev, u8 reg, u8 val) in i2c_w1() argument
1238 struct sd *sd = (struct sd *) gspca_dev; in i2c_w1()
1241 if (gspca_dev->usb_err < 0) in i2c_w1()
1248 gspca_dev->usb_buf[0] = 0x80 | (2 << 4); in i2c_w1()
1251 gspca_dev->usb_buf[0] = 0x81 | (2 << 4); in i2c_w1()
1254 gspca_dev->usb_buf[1] = sd->i2c_addr; in i2c_w1()
1255 gspca_dev->usb_buf[2] = reg; in i2c_w1()
1256 gspca_dev->usb_buf[3] = val; in i2c_w1()
1257 gspca_dev->usb_buf[4] = 0; in i2c_w1()
1258 gspca_dev->usb_buf[5] = 0; in i2c_w1()
1259 gspca_dev->usb_buf[6] = 0; in i2c_w1()
1260 gspca_dev->usb_buf[7] = 0x10; in i2c_w1()
1261 ret = usb_control_msg(gspca_dev->dev, in i2c_w1()
1262 usb_sndctrlpipe(gspca_dev->dev, 0), in i2c_w1()
1267 gspca_dev->usb_buf, 8, in i2c_w1()
1272 gspca_dev->usb_err = ret; in i2c_w1()
1277 static void i2c_w8(struct gspca_dev *gspca_dev, in i2c_w8() argument
1282 if (gspca_dev->usb_err < 0) in i2c_w8()
1286 memcpy(gspca_dev->usb_buf, buffer, 8); in i2c_w8()
1287 ret = usb_control_msg(gspca_dev->dev, in i2c_w8()
1288 usb_sndctrlpipe(gspca_dev->dev, 0), in i2c_w8()
1292 gspca_dev->usb_buf, 8, in i2c_w8()
1297 gspca_dev->usb_err = ret; in i2c_w8()
1302 static void i2c_r(struct gspca_dev *gspca_dev, u8 reg, int len) in i2c_r() argument
1304 struct sd *sd = (struct sd *) gspca_dev; in i2c_r()
1324 i2c_w8(gspca_dev, mode); in i2c_r()
1328 i2c_w8(gspca_dev, mode); in i2c_r()
1330 reg_r(gspca_dev, 0x0a, 5); in i2c_r()
1333 static void i2c_w_seq(struct gspca_dev *gspca_dev, in i2c_w_seq() argument
1338 i2c_w8(gspca_dev, *data); in i2c_w_seq()
1347 static void hv7131r_probe(struct gspca_dev *gspca_dev) in hv7131r_probe() argument
1349 i2c_w1(gspca_dev, 0x02, 0); /* sensor wakeup */ in hv7131r_probe()
1351 reg_w1(gspca_dev, 0x02, 0x66); /* Gpio on */ in hv7131r_probe()
1353 i2c_r(gspca_dev, 0, 5); /* read sensor id */ in hv7131r_probe()
1354 if (gspca_dev->usb_buf[0] == 0x02 /* chip ID (02 is R) */ in hv7131r_probe()
1355 && gspca_dev->usb_buf[1] == 0x09 in hv7131r_probe()
1356 && gspca_dev->usb_buf[2] == 0x01) { in hv7131r_probe()
1361 gspca_dev->usb_buf[0], gspca_dev->usb_buf[1], in hv7131r_probe()
1362 gspca_dev->usb_buf[2]); in hv7131r_probe()
1365 static void mi0360_probe(struct gspca_dev *gspca_dev) in mi0360_probe() argument
1367 struct sd *sd = (struct sd *) gspca_dev; in mi0360_probe()
1386 reg_w1(gspca_dev, 0x17, 0x62); in mi0360_probe()
1387 reg_w1(gspca_dev, 0x01, 0x08); in mi0360_probe()
1389 i2c_w8(gspca_dev, probe_tb[i][j]); in mi0360_probe()
1391 reg_r(gspca_dev, 0x0a, 5); in mi0360_probe()
1392 val = (gspca_dev->usb_buf[3] << 8) | gspca_dev->usb_buf[4]; in mi0360_probe()
1394 i2c_w8(gspca_dev, probe_tb[i][3]); in mi0360_probe()
1395 reg_w1(gspca_dev, 0x01, 0x29); in mi0360_probe()
1396 reg_w1(gspca_dev, 0x17, 0x42); in mi0360_probe()
1400 if (gspca_dev->usb_err < 0) in mi0360_probe()
1420 static void ov7630_probe(struct gspca_dev *gspca_dev) in ov7630_probe() argument
1422 struct sd *sd = (struct sd *) gspca_dev; in ov7630_probe()
1426 reg_w1(gspca_dev, 0x17, 0x62); in ov7630_probe()
1427 reg_w1(gspca_dev, 0x01, 0x08); in ov7630_probe()
1429 i2c_r(gspca_dev, 0x0a, 2); in ov7630_probe()
1430 val = (gspca_dev->usb_buf[3] << 8) | gspca_dev->usb_buf[4]; in ov7630_probe()
1431 reg_w1(gspca_dev, 0x01, 0x29); in ov7630_probe()
1432 reg_w1(gspca_dev, 0x17, 0x42); in ov7630_probe()
1433 if (gspca_dev->usb_err < 0) in ov7630_probe()
1438 gspca_dev->cam.input_flags = in ov7630_probe()
1446 static void ov7648_probe(struct gspca_dev *gspca_dev) in ov7648_probe() argument
1448 struct sd *sd = (struct sd *) gspca_dev; in ov7648_probe()
1452 reg_w1(gspca_dev, 0x17, 0x62); in ov7648_probe()
1453 reg_w1(gspca_dev, 0x01, 0x08); in ov7648_probe()
1455 i2c_r(gspca_dev, 0x0a, 2); in ov7648_probe()
1456 val = (gspca_dev->usb_buf[3] << 8) | gspca_dev->usb_buf[4]; in ov7648_probe()
1457 reg_w1(gspca_dev, 0x01, 0x29); in ov7648_probe()
1458 reg_w1(gspca_dev, 0x17, 0x42); in ov7648_probe()
1465 reg_w1(gspca_dev, 0x17, 0x62); in ov7648_probe()
1466 reg_w1(gspca_dev, 0x01, 0x08); in ov7648_probe()
1468 i2c_r(gspca_dev, 0x00, 2); in ov7648_probe()
1469 val = (gspca_dev->usb_buf[3] << 8) | gspca_dev->usb_buf[4]; in ov7648_probe()
1470 reg_w1(gspca_dev, 0x01, 0x29); in ov7648_probe()
1471 reg_w1(gspca_dev, 0x17, 0x42); in ov7648_probe()
1472 if (gspca_dev->usb_err < 0) in ov7648_probe()
1483 static void po2030n_probe(struct gspca_dev *gspca_dev) in po2030n_probe() argument
1485 struct sd *sd = (struct sd *) gspca_dev; in po2030n_probe()
1489 reg_w1(gspca_dev, 0x17, 0x62); in po2030n_probe()
1490 reg_w1(gspca_dev, 0x01, 0x08); in po2030n_probe()
1491 reg_w1(gspca_dev, 0x02, 0x22); in po2030n_probe()
1493 i2c_r(gspca_dev, 0x00, 1); in po2030n_probe()
1494 val = gspca_dev->usb_buf[4]; in po2030n_probe()
1495 reg_w1(gspca_dev, 0x01, 0x29); /* reset */ in po2030n_probe()
1496 reg_w1(gspca_dev, 0x17, 0x42); in po2030n_probe()
1504 reg_w1(gspca_dev, 0x17, 0x62); in po2030n_probe()
1505 reg_w1(gspca_dev, 0x01, 0x0a); in po2030n_probe()
1507 i2c_r(gspca_dev, 0x00, 2); in po2030n_probe()
1508 val = (gspca_dev->usb_buf[3] << 8) | gspca_dev->usb_buf[4]; in po2030n_probe()
1509 reg_w1(gspca_dev, 0x01, 0x29); in po2030n_probe()
1510 reg_w1(gspca_dev, 0x17, 0x42); in po2030n_probe()
1511 if (gspca_dev->usb_err < 0) in po2030n_probe()
1522 static int sd_config(struct gspca_dev *gspca_dev, in sd_config() argument
1525 struct sd *sd = (struct sd *) gspca_dev; in sd_config()
1532 cam = &gspca_dev->cam; in sd_config()
1551 static int sd_init(struct gspca_dev *gspca_dev) in sd_init() argument
1553 struct sd *sd = (struct sd *) gspca_dev; in sd_init()
1559 reg_w1(gspca_dev, 0xf1, 0x01); in sd_init()
1560 reg_r(gspca_dev, 0x00, 1); in sd_init()
1561 reg_w1(gspca_dev, 0xf1, 0x00); in sd_init()
1562 reg_r(gspca_dev, 0x00, 1); /* get sonix chip id */ in sd_init()
1563 regF1 = gspca_dev->usb_buf[0]; in sd_init()
1564 if (gspca_dev->usb_err < 0) in sd_init()
1565 return gspca_dev->usb_err; in sd_init()
1567 if (gspca_dev->audio) in sd_init()
1584 mi0360_probe(gspca_dev); in sd_init()
1587 ov7630_probe(gspca_dev); in sd_init()
1590 ov7648_probe(gspca_dev); in sd_init()
1593 po2030n_probe(gspca_dev); in sd_init()
1599 reg_w1(gspca_dev, 0x02, regGpio[1]); in sd_init()
1602 reg_w(gspca_dev, 0x01, regGpio, 2); in sd_init()
1608 reg_w1(gspca_dev, 0xf1, 0x00); in sd_init()
1614 return gspca_dev->usb_err; in sd_init()
1624 static int sd_init_controls(struct gspca_dev *gspca_dev) in sd_init_controls() argument
1626 struct sd *sd = (struct sd *) gspca_dev; in sd_init_controls()
1627 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler; in sd_init_controls()
1629 gspca_dev->vdev.ctrl_handler = hdl; in sd_init_controls()
1660 gspca_dev->exposure = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1662 gspca_dev->gain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1671 gspca_dev->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1694 v4l2_ctrl_auto_cluster(3, &gspca_dev->autogain, 0, false); in sd_init_controls()
1700 static u32 expo_adjust(struct gspca_dev *gspca_dev, in expo_adjust() argument
1703 struct sd *sd = (struct sd *) gspca_dev; in expo_adjust()
1711 i2c_w1(gspca_dev, 0x68, a); in expo_adjust()
1714 i2c_w1(gspca_dev, 0x03, b >> 8); in expo_adjust()
1715 i2c_w1(gspca_dev, 0x04, b); in expo_adjust()
1725 i2c_w8(gspca_dev, Expodoit); in expo_adjust()
1743 i2c_w8(gspca_dev, expoMi); in expo_adjust()
1744 i2c_w8(gspca_dev, doit); in expo_adjust()
1745 i2c_w8(gspca_dev, sensorgo); in expo_adjust()
1761 i2c_w8(gspca_dev, expoMof); in expo_adjust()
1764 i2c_w8(gspca_dev, expoMo10); in expo_adjust()
1765 i2c_w8(gspca_dev, gainMo); in expo_adjust()
1782 i2c_w8(gspca_dev, expo_c1); in expo_adjust()
1795 i2c_w8(gspca_dev, gainOm); in expo_adjust()
1796 reg_w1(gspca_dev, 0x96, expo >> 5); in expo_adjust()
1804 static void setbrightness(struct gspca_dev *gspca_dev) in setbrightness() argument
1806 struct sd *sd = (struct sd *) gspca_dev; in setbrightness()
1823 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1828 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1832 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1836 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1840 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1844 sd->exposure = expo_adjust(gspca_dev, expo); in setbrightness()
1848 reg_w1(gspca_dev, 0x96, k2); /* color matrix Y offset */ in setbrightness()
1851 static void setcontrast(struct gspca_dev *gspca_dev) in setcontrast() argument
1853 struct sd *sd = (struct sd *) gspca_dev; in setcontrast()
1865 reg_w(gspca_dev, 0x84, contrast, sizeof contrast); in setcontrast()
1868 static void setcolors(struct gspca_dev *gspca_dev) in setcolors() argument
1870 struct sd *sd = (struct sd *) gspca_dev; in setcolors()
1893 reg_w(gspca_dev, 0x8a, reg8a, sizeof reg8a); in setcolors()
1896 static void setredblue(struct gspca_dev *gspca_dev) in setredblue() argument
1898 struct sd *sd = (struct sd *) gspca_dev; in setredblue()
1907 i2c_w8(gspca_dev, rg1b); in setredblue()
1910 reg_w1(gspca_dev, 0x05, sd->red_bal->val); in setredblue()
1912 reg_w1(gspca_dev, 0x06, sd->blue_bal->val); in setredblue()
1915 static void setgamma(struct gspca_dev *gspca_dev) in setgamma() argument
1917 struct sd *sd = (struct sd *) gspca_dev; in setgamma()
1950 reg_w(gspca_dev, 0x20, gamma, sizeof gamma); in setgamma()
1953 static void setexposure(struct gspca_dev *gspca_dev) in setexposure() argument
1955 struct sd *sd = (struct sd *) gspca_dev; in setexposure()
1961 rexpo[3] = gspca_dev->exposure->val >> 8; in setexposure()
1962 i2c_w8(gspca_dev, rexpo); in setexposure()
1965 rexpo[3] = gspca_dev->exposure->val; in setexposure()
1966 i2c_w8(gspca_dev, rexpo); in setexposure()
1970 static void setautogain(struct gspca_dev *gspca_dev) in setautogain() argument
1972 struct sd *sd = (struct sd *) gspca_dev; in setautogain()
1983 if (gspca_dev->autogain->val) in setautogain()
1985 i2c_w1(&sd->gspca_dev, 0x13, comb); in setautogain()
1989 if (gspca_dev->autogain->val) in setautogain()
1995 static void setgain(struct gspca_dev *gspca_dev) in setgain() argument
1997 struct sd *sd = (struct sd *) gspca_dev; in setgain()
2003 rgain[3] = gspca_dev->gain->val; in setgain()
2004 i2c_w8(gspca_dev, rgain); in setgain()
2008 static void sethvflip(struct gspca_dev *gspca_dev) in sethvflip() argument
2010 struct sd *sd = (struct sd *) gspca_dev; in sethvflip()
2018 i2c_w1(gspca_dev, 0x01, comn); /* sctra */ in sethvflip()
2024 i2c_w1(gspca_dev, 0x75, comn); in sethvflip()
2030 i2c_w1(gspca_dev, 0x75, comn); in sethvflip()
2046 i2c_w1(&sd->gspca_dev, 0x1e, comn); in sethvflip()
2051 static void setsharpness(struct gspca_dev *gspca_dev) in setsharpness() argument
2053 struct sd *sd = (struct sd *) gspca_dev; in setsharpness()
2055 reg_w1(gspca_dev, 0x99, sd->sharpness->val); in setsharpness()
2058 static void setillum(struct gspca_dev *gspca_dev) in setillum() argument
2060 struct sd *sd = (struct sd *) gspca_dev; in setillum()
2064 reg_w1(gspca_dev, 0x02, /* gpio */ in setillum()
2068 reg_w1(gspca_dev, 0x02, in setillum()
2077 static void setfreq(struct gspca_dev *gspca_dev) in setfreq() argument
2079 struct sd *sd = (struct sd *) gspca_dev; in setfreq()
2087 i2c_w1(gspca_dev, 0x13, com8 | 0x20); in setfreq()
2090 i2c_w1(gspca_dev, 0x13, com8); in setfreq()
2091 i2c_w1(gspca_dev, 0x3b, 0x0a); in setfreq()
2094 i2c_w1(gspca_dev, 0x13, com8); in setfreq()
2095 i2c_w1(gspca_dev, 0x3b, 0x02); in setfreq()
2126 i2c_w1(gspca_dev, 0x2a, reg2a); in setfreq()
2127 i2c_w1(gspca_dev, 0x2b, reg2b); in setfreq()
2128 i2c_w1(gspca_dev, 0x2d, reg2d); in setfreq()
2132 static void setjpegqual(struct gspca_dev *gspca_dev) in setjpegqual() argument
2134 struct sd *sd = (struct sd *) gspca_dev; in setjpegqual()
2140 memcpy(gspca_dev->usb_buf, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in setjpegqual()
2141 usb_control_msg(gspca_dev->dev, in setjpegqual()
2142 usb_sndctrlpipe(gspca_dev->dev, 0), in setjpegqual()
2146 gspca_dev->usb_buf, 64, in setjpegqual()
2148 memcpy(gspca_dev->usb_buf, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in setjpegqual()
2149 usb_control_msg(gspca_dev->dev, in setjpegqual()
2150 usb_sndctrlpipe(gspca_dev->dev, 0), in setjpegqual()
2154 gspca_dev->usb_buf, 64, in setjpegqual()
2158 reg_w1(gspca_dev, 0x18, sd->reg18); in setjpegqual()
2166 struct gspca_dev *gspca_dev = &sd->gspca_dev; in qual_upd() local
2169 mutex_lock(&gspca_dev->usb_lock); in qual_upd()
2171 gspca_dev->usb_err = 0; in qual_upd()
2172 setjpegqual(gspca_dev); in qual_upd()
2173 mutex_unlock(&gspca_dev->usb_lock); in qual_upd()
2177 static int sd_start(struct gspca_dev *gspca_dev) in sd_start() argument
2179 struct sd *sd = (struct sd *) gspca_dev; in sd_start()
2207 jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, in sd_start()
2208 gspca_dev->pixfmt.width, in sd_start()
2219 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2224 if (gspca_dev->audio) in sd_start()
2226 reg_w(gspca_dev, 0x01, reg0102, 2); in sd_start()
2227 reg_w(gspca_dev, 0x08, &sn9c1xx[8], 2); in sd_start()
2228 reg_w(gspca_dev, 0x17, &sn9c1xx[0x17], 5); in sd_start()
2242 reg_w(gspca_dev, 0x9a, reg9a, 6); in sd_start()
2244 reg_w(gspca_dev, 0xd4, regd4, sizeof regd4); in sd_start()
2246 reg_w(gspca_dev, 0x03, &sn9c1xx[3], 0x0f); in sd_start()
2255 reg_w1(gspca_dev, 0x02, 0x73); in sd_start()
2257 reg_w1(gspca_dev, 0x17, reg17); in sd_start()
2258 reg_w1(gspca_dev, 0x01, 0x22); in sd_start()
2266 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2268 reg_w1(gspca_dev, 0x17, reg17); in sd_start()
2270 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2272 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2276 hv7131r_probe(gspca_dev); /*fixme: is it useful? */ in sd_start()
2280 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2281 i2c_w8(gspca_dev, om6802_init0[0]); in sd_start()
2282 i2c_w8(gspca_dev, om6802_init0[1]); in sd_start()
2284 reg_w1(gspca_dev, 0x02, 0x71); in sd_start()
2289 reg_w1(gspca_dev, 0x02, 0x62); in sd_start()
2294 i2c_w_seq(gspca_dev, sensor_init[sd->sensor]); in sd_start()
2296 reg_w1(gspca_dev, 0x15, sn9c1xx[0x15]); in sd_start()
2297 reg_w1(gspca_dev, 0x16, sn9c1xx[0x16]); in sd_start()
2298 reg_w1(gspca_dev, 0x12, sn9c1xx[0x12]); in sd_start()
2299 reg_w1(gspca_dev, 0x13, sn9c1xx[0x13]); in sd_start()
2300 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]); in sd_start()
2302 reg_w1(gspca_dev, 0xd2, 0x3a); /* AE_H_SIZE = 116 */ in sd_start()
2303 reg_w1(gspca_dev, 0xd3, 0x30); /* AE_V_SIZE = 96 */ in sd_start()
2305 reg_w1(gspca_dev, 0xd2, 0x6a); /* AE_H_SIZE = 212 */ in sd_start()
2306 reg_w1(gspca_dev, 0xd3, 0x50); /* AE_V_SIZE = 160 */ in sd_start()
2308 reg_w1(gspca_dev, 0xc6, 0x00); in sd_start()
2309 reg_w1(gspca_dev, 0xc7, 0x00); in sd_start()
2311 reg_w1(gspca_dev, 0xc8, 0x2c); /* AW_H_STOP = 352 */ in sd_start()
2312 reg_w1(gspca_dev, 0xc9, 0x24); /* AW_V_STOP = 288 */ in sd_start()
2314 reg_w1(gspca_dev, 0xc8, 0x50); /* AW_H_STOP = 640 */ in sd_start()
2315 reg_w1(gspca_dev, 0xc9, 0x3c); /* AW_V_STOP = 480 */ in sd_start()
2317 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]); in sd_start()
2326 reg_w1(gspca_dev, 0x17, reg17); in sd_start()
2328 reg_w1(gspca_dev, 0x05, 0x00); /* red */ in sd_start()
2329 reg_w1(gspca_dev, 0x07, 0x00); /* green */ in sd_start()
2330 reg_w1(gspca_dev, 0x06, 0x00); /* blue */ in sd_start()
2331 reg_w1(gspca_dev, 0x14, sn9c1xx[0x14]); in sd_start()
2333 setgamma(gspca_dev); in sd_start()
2337 reg_w(gspca_dev, 0x84, reg84, sizeof reg84); in sd_start()
2342 reg_w1(gspca_dev, 0x9a, 0x05); in sd_start()
2347 reg_w1(gspca_dev, 0x9a, 0x07); in sd_start()
2351 reg_w1(gspca_dev, 0x9a, 0x0a); in sd_start()
2355 reg_w1(gspca_dev, 0x9a, 0x06); in sd_start()
2358 reg_w1(gspca_dev, 0x9a, 0x08); in sd_start()
2361 setsharpness(gspca_dev); in sd_start()
2363 reg_w(gspca_dev, 0x84, reg84, sizeof reg84); in sd_start()
2364 reg_w1(gspca_dev, 0x05, 0x20); /* red */ in sd_start()
2365 reg_w1(gspca_dev, 0x07, 0x20); /* green */ in sd_start()
2366 reg_w1(gspca_dev, 0x06, 0x20); /* blue */ in sd_start()
2369 mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; in sd_start()
2438 i2c_w_seq(gspca_dev, init); in sd_start()
2442 reg_w(gspca_dev, 0xc0, C0, 6); in sd_start()
2447 reg_w(gspca_dev, 0xca, CA_adcm1700, 4); in sd_start()
2450 reg_w(gspca_dev, 0xca, CA_po2030n, 4); in sd_start()
2453 reg_w(gspca_dev, 0xca, CA, 4); in sd_start()
2462 reg_w(gspca_dev, 0xce, CE_ov76xx, 4); in sd_start()
2465 reg_w(gspca_dev, 0xce, CE_gc0307, 4); in sd_start()
2468 reg_w(gspca_dev, 0xce, CE_po2030n, 4); in sd_start()
2471 reg_w(gspca_dev, 0xce, CE, 4); in sd_start()
2478 reg_w1(gspca_dev, 0x18, sd->reg18); in sd_start()
2479 setjpegqual(gspca_dev); in sd_start()
2481 reg_w1(gspca_dev, 0x17, reg17); in sd_start()
2482 reg_w1(gspca_dev, 0x01, reg01); in sd_start()
2490 return gspca_dev->usb_err; in sd_start()
2493 static void sd_stopN(struct gspca_dev *gspca_dev) in sd_stopN() argument
2495 struct sd *sd = (struct sd *) gspca_dev; in sd_stopN()
2515 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2517 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2522 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2523 i2c_w8(gspca_dev, stophv7131); in sd_stopN()
2528 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2530 i2c_w8(gspca_dev, stopmi0360); in sd_stopN()
2536 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2541 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2542 i2c_w8(gspca_dev, stopov7648); in sd_stopN()
2546 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2549 i2c_w8(gspca_dev, stopsoi768); in sd_stopN()
2554 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2556 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2557 reg_w1(gspca_dev, 0x17, reg17); in sd_stopN()
2559 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2561 reg_w1(gspca_dev, 0x01, reg01); in sd_stopN()
2568 static void sd_stop0(struct gspca_dev *gspca_dev) in sd_stop0() argument
2570 struct sd *sd = (struct sd *) gspca_dev; in sd_stop0()
2573 mutex_unlock(&gspca_dev->usb_lock); in sd_stop0()
2575 mutex_lock(&gspca_dev->usb_lock); in sd_stop0()
2580 static void do_autogain(struct gspca_dev *gspca_dev) in do_autogain() argument
2582 struct sd *sd = (struct sd *) gspca_dev; in do_autogain()
2599 gspca_expo_autogain(gspca_dev, delta, luma_mean, luma_delta, in do_autogain()
2612 sd->exposure = expo_adjust(gspca_dev, in do_autogain()
2620 sd->exposure = expo_adjust(gspca_dev, in do_autogain()
2629 sd->exposure = expo_adjust(gspca_dev, in do_autogain()
2631 setredblue(gspca_dev); in do_autogain()
2641 sd->exposure = expo_adjust(gspca_dev, in do_autogain()
2643 setredblue(gspca_dev); in do_autogain()
2674 static void sd_pkt_scan(struct gspca_dev *gspca_dev, in sd_pkt_scan() argument
2678 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan()
2741 if (gspca_dev->last_packet_type == LAST_PACKET) in sd_pkt_scan()
2742 gspca_frame_add(gspca_dev, FIRST_PACKET, in sd_pkt_scan()
2744 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in sd_pkt_scan()
2753 gspca_dev->last_packet_type = DISCARD_PACKET; in sd_pkt_scan()
2758 gspca_dev->last_packet_type = DISCARD_PACKET; in sd_pkt_scan()
2763 gspca_frame_add(gspca_dev, LAST_PACKET, data, i); in sd_pkt_scan()
2771 gspca_dev->urb[0]->iso_frame_desc[0].length); in sd_pkt_scan()
2810 gspca_frame_add(gspca_dev, FIRST_PACKET, in sd_pkt_scan()
2812 gspca_frame_add(gspca_dev, INTER_PACKET, data, len); in sd_pkt_scan()
2818 struct gspca_dev *gspca_dev = in sd_s_ctrl() local
2819 container_of(ctrl->handler, struct gspca_dev, ctrl_handler); in sd_s_ctrl()
2821 gspca_dev->usb_err = 0; in sd_s_ctrl()
2823 if (!gspca_dev->streaming) in sd_s_ctrl()
2828 setbrightness(gspca_dev); in sd_s_ctrl()
2831 setcontrast(gspca_dev); in sd_s_ctrl()
2834 setcolors(gspca_dev); in sd_s_ctrl()
2837 setredblue(gspca_dev); in sd_s_ctrl()
2840 setgamma(gspca_dev); in sd_s_ctrl()
2843 setautogain(gspca_dev); in sd_s_ctrl()
2844 setexposure(gspca_dev); in sd_s_ctrl()
2845 setgain(gspca_dev); in sd_s_ctrl()
2848 sethvflip(gspca_dev); in sd_s_ctrl()
2851 setsharpness(gspca_dev); in sd_s_ctrl()
2854 setillum(gspca_dev); in sd_s_ctrl()
2857 setfreq(gspca_dev); in sd_s_ctrl()
2862 return gspca_dev->usb_err; in sd_s_ctrl()
2866 static int sd_int_pkt_scan(struct gspca_dev *gspca_dev, in sd_int_pkt_scan() argument
2873 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 1); in sd_int_pkt_scan()
2874 input_sync(gspca_dev->input_dev); in sd_int_pkt_scan()
2875 input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0); in sd_int_pkt_scan()
2876 input_sync(gspca_dev->input_dev); in sd_int_pkt_scan()