Lines Matching refs:sd
56 struct sd { struct
982 struct sd *sd = (struct sd *) gspca_dev; in i2c_w1() local
989 row[0] = sd->i2c_intf | (2 << 4); in i2c_w1()
990 row[1] = sd->i2c_addr; in i2c_w1()
1012 struct sd *sd = (struct sd *) gspca_dev; in i2c_w2() local
1019 row[0] = sd->i2c_intf | (3 << 4); in i2c_w2()
1020 row[1] = sd->i2c_addr; in i2c_w2()
1042 struct sd *sd = (struct sd *) gspca_dev; in i2c_r1() local
1045 row[0] = sd->i2c_intf | (1 << 4); in i2c_r1()
1046 row[1] = sd->i2c_addr; in i2c_r1()
1054 row[0] = sd->i2c_intf | (1 << 4) | 0x02; in i2c_r1()
1063 struct sd *sd = (struct sd *) gspca_dev; in i2c_r2() local
1066 row[0] = sd->i2c_intf | (1 << 4); in i2c_r2()
1067 row[1] = sd->i2c_addr; in i2c_r2()
1075 row[0] = sd->i2c_intf | (2 << 4) | 0x02; in i2c_r2()
1085 struct sd *sd = (struct sd *) gspca_dev; in ov9650_init_sensor() local
1102 sd->hstart = 1; in ov9650_init_sensor()
1103 sd->vstart = 7; in ov9650_init_sensor()
1108 struct sd *sd = (struct sd *) gspca_dev; in ov9655_init_sensor() local
1116 sd->hstart = 1; in ov9655_init_sensor()
1117 sd->vstart = 2; in ov9655_init_sensor()
1122 struct sd *sd = (struct sd *) gspca_dev; in soi968_init_sensor() local
1130 sd->hstart = 60; in soi968_init_sensor()
1131 sd->vstart = 11; in soi968_init_sensor()
1136 struct sd *sd = (struct sd *) gspca_dev; in ov7660_init_sensor() local
1143 sd->hstart = 3; in ov7660_init_sensor()
1144 sd->vstart = 3; in ov7660_init_sensor()
1149 struct sd *sd = (struct sd *) gspca_dev; in ov7670_init_sensor() local
1157 sd->hstart = 0; in ov7670_init_sensor()
1158 sd->vstart = 1; in ov7670_init_sensor()
1163 struct sd *sd = (struct sd *) gspca_dev; in mt9v_init_sensor() local
1166 sd->i2c_addr = 0x5d; in mt9v_init_sensor()
1175 sd->hstart = 2; in mt9v_init_sensor()
1176 sd->vstart = 2; in mt9v_init_sensor()
1177 sd->sensor = SENSOR_MT9V011; in mt9v_init_sensor()
1183 sd->i2c_addr = 0x5c; in mt9v_init_sensor()
1193 sd->hstart = 2; in mt9v_init_sensor()
1194 sd->vstart = 2; in mt9v_init_sensor()
1195 sd->sensor = SENSOR_MT9V111; in mt9v_init_sensor()
1201 sd->i2c_addr = 0x5d; in mt9v_init_sensor()
1205 sd->i2c_addr = 0x48; in mt9v_init_sensor()
1216 sd->hstart = 6; in mt9v_init_sensor()
1217 sd->vstart = 2; in mt9v_init_sensor()
1218 sd->sensor = SENSOR_MT9V112; in mt9v_init_sensor()
1228 struct sd *sd = (struct sd *) gspca_dev; in mt9m112_init_sensor() local
1234 sd->hstart = 0; in mt9m112_init_sensor()
1235 sd->vstart = 2; in mt9m112_init_sensor()
1240 struct sd *sd = (struct sd *) gspca_dev; in mt9m111_init_sensor() local
1246 sd->hstart = 0; in mt9m111_init_sensor()
1247 sd->vstart = 2; in mt9m111_init_sensor()
1252 struct sd *sd = (struct sd *) gspca_dev; in mt9m001_init_sensor() local
1278 sd->hstart = 1; in mt9m001_init_sensor()
1279 sd->vstart = 1; in mt9m001_init_sensor()
1284 struct sd *sd = (struct sd *) gspca_dev; in hv7131r_init_sensor() local
1290 sd->hstart = 0; in hv7131r_init_sensor()
1291 sd->vstart = 1; in hv7131r_init_sensor()
1369 struct sd *sd = (struct sd *) gspca_dev; in set_hvflip() local
1371 if ((sd->flags & FLIP_DETECT) && dmi_check_system(flip_dmi_table)) { in set_hvflip()
1376 switch (sd->sensor) { in set_hvflip()
1383 sd->vstart = 2; in set_hvflip()
1385 sd->vstart = 3; in set_hvflip()
1387 reg_w1(gspca_dev, 0x1182, sd->vstart); in set_hvflip()
1438 struct sd *sd = (struct sd *) gspca_dev; in set_exposure() local
1439 u8 exp[8] = {sd->i2c_intf, sd->i2c_addr, in set_exposure()
1446 switch (sd->sensor) { in set_exposure()
1494 struct sd *sd = (struct sd *) gspca_dev; in set_gain() local
1495 u8 gain[8] = {sd->i2c_intf, sd->i2c_addr, in set_gain()
1501 switch (sd->sensor) { in set_gain()
1547 struct sd *sd = (struct sd *) gspca_dev; in set_quality() local
1549 jpeg_set_qual(sd->jpeg_hdr, val); in set_quality()
1551 reg_w1(gspca_dev, 0x10e0, sd->fmt | 0x20); /* write QTAB */ in set_quality()
1552 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in set_quality()
1553 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in set_quality()
1555 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1556 sd->fmt ^= 0x0c; /* invert QTAB use + write */ in set_quality()
1557 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1564 struct sd *sd = (struct sd *) gspca_dev; in sd_dbg_g_register() local
1575 if (sd->sensor >= SENSOR_MT9V011 && in sd_dbg_g_register()
1576 sd->sensor <= SENSOR_MT9M112) { in sd_dbg_g_register()
1590 struct sd *sd = (struct sd *) gspca_dev; in sd_dbg_s_register() local
1599 if (sd->sensor >= SENSOR_MT9V011 && in sd_dbg_s_register()
1600 sd->sensor <= SENSOR_MT9M112) { in sd_dbg_s_register()
1624 struct sd *sd = (struct sd *) gspca_dev; in sd_config() local
1630 sd->sensor = id->driver_info >> 8; in sd_config()
1631 sd->i2c_addr = id->driver_info; in sd_config()
1632 sd->flags = id->driver_info >> 16; in sd_config()
1633 sd->i2c_intf = 0x80; /* i2c 100 Kb/s */ in sd_config()
1635 switch (sd->sensor) { in sd_config()
1648 sd->i2c_intf = 0x81; /* i2c 400 Kb/s */ in sd_config()
1656 sd->old_step = 0; in sd_config()
1657 sd->older_step = 0; in sd_config()
1658 sd->exposure_step = 16; in sd_config()
1660 INIT_WORK(&sd->work, qual_upd); in sd_config()
1669 struct sd *sd = (struct sd *)gspca_dev; in sd_s_ctrl() local
1679 set_cmatrix(gspca_dev, sd->brightness->val, in sd_s_ctrl()
1680 sd->contrast->val, sd->saturation->val, sd->hue->val); in sd_s_ctrl()
1687 set_redblue(gspca_dev, sd->blue->val, sd->red->val); in sd_s_ctrl()
1691 set_hvflip(gspca_dev, sd->hflip->val, sd->vflip->val); in sd_s_ctrl()
1703 if (sd->sensor == SENSOR_SOI968) in sd_s_ctrl()
1704 set_gain(gspca_dev, sd->gain->val); in sd_s_ctrl()
1706 set_exposure(gspca_dev, sd->exposure->val); in sd_s_ctrl()
1724 struct sd *sd = (struct sd *) gspca_dev; in sd_init_controls() local
1730 sd->brightness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1732 sd->contrast = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1734 sd->saturation = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1736 sd->hue = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1739 sd->gamma = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1742 sd->blue = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1744 sd->red = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1747 if (sd->sensor != SENSOR_OV9655 && sd->sensor != SENSOR_SOI968 && in sd_init_controls()
1748 sd->sensor != SENSOR_OV7670 && sd->sensor != SENSOR_MT9M001 && in sd_init_controls()
1749 sd->sensor != SENSOR_MT9VPRB) { in sd_init_controls()
1750 sd->hflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1752 sd->vflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1756 if (sd->sensor != SENSOR_SOI968 && sd->sensor != SENSOR_MT9VPRB && in sd_init_controls()
1757 sd->sensor != SENSOR_MT9M112 && sd->sensor != SENSOR_MT9M111 && in sd_init_controls()
1758 sd->sensor != SENSOR_MT9V111) in sd_init_controls()
1759 sd->exposure = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1762 if (sd->sensor != SENSOR_MT9VPRB && sd->sensor != SENSOR_MT9M112 && in sd_init_controls()
1763 sd->sensor != SENSOR_MT9M111 && sd->sensor != SENSOR_MT9V111) { in sd_init_controls()
1764 sd->gain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1766 sd->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1770 sd->jpegqual = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1773 if (sd->flags & HAS_LED_TORCH) in sd_init_controls()
1774 sd->led_mode = v4l2_ctrl_new_std_menu(hdl, &sd_ctrl_ops, in sd_init_controls()
1783 v4l2_ctrl_cluster(4, &sd->brightness); in sd_init_controls()
1784 v4l2_ctrl_cluster(2, &sd->blue); in sd_init_controls()
1785 if (sd->hflip) in sd_init_controls()
1786 v4l2_ctrl_cluster(2, &sd->hflip); in sd_init_controls()
1787 if (sd->autogain) { in sd_init_controls()
1788 if (sd->sensor == SENSOR_SOI968) in sd_init_controls()
1792 v4l2_ctrl_auto_cluster(3, &sd->autogain, 0, false); in sd_init_controls()
1795 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, false); in sd_init_controls()
1802 struct sd *sd = (struct sd *) gspca_dev; in sd_init() local
1806 0x80, sd->i2c_addr, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 in sd_init()
1818 if (sd->flags & LED_REVERSE) in sd_init()
1829 switch (sd->sensor) { in sd_init()
1898 struct sd *sd = (struct sd *) gspca_dev; in configure_sensor_output() local
1901 switch (sd->sensor) { in configure_sensor_output()
1909 sd->hstart = 140; in configure_sensor_output()
1910 sd->vstart = 19; in configure_sensor_output()
1917 sd->hstart = 60; in configure_sensor_output()
1918 sd->vstart = 11; in configure_sensor_output()
2001 struct sd *sd = (struct sd *) gspca_dev; in sd_start() local
2007 jpeg_define(sd->jpeg_hdr, height, width, in sd_start()
2009 jpeg_set_qual(sd->jpeg_hdr, v4l2_ctrl_g_ctrl(sd->jpegqual)); in sd_start()
2017 sd->fmt = fmt; in sd_start()
2039 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in sd_start()
2040 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in sd_start()
2042 reg_w(gspca_dev, 0x1180, HW_WIN(mode, sd->hstart, sd->vstart), 6); in sd_start()
2046 set_cmatrix(gspca_dev, v4l2_ctrl_g_ctrl(sd->brightness), in sd_start()
2047 v4l2_ctrl_g_ctrl(sd->contrast), in sd_start()
2048 v4l2_ctrl_g_ctrl(sd->saturation), in sd_start()
2049 v4l2_ctrl_g_ctrl(sd->hue)); in sd_start()
2050 set_gamma(gspca_dev, v4l2_ctrl_g_ctrl(sd->gamma)); in sd_start()
2051 set_redblue(gspca_dev, v4l2_ctrl_g_ctrl(sd->blue), in sd_start()
2052 v4l2_ctrl_g_ctrl(sd->red)); in sd_start()
2053 if (sd->gain) in sd_start()
2054 set_gain(gspca_dev, v4l2_ctrl_g_ctrl(sd->gain)); in sd_start()
2055 if (sd->exposure) in sd_start()
2056 set_exposure(gspca_dev, v4l2_ctrl_g_ctrl(sd->exposure)); in sd_start()
2057 if (sd->hflip) in sd_start()
2058 set_hvflip(gspca_dev, v4l2_ctrl_g_ctrl(sd->hflip), in sd_start()
2059 v4l2_ctrl_g_ctrl(sd->vflip)); in sd_start()
2066 sd->pktsz = sd->npkt = 0; in sd_start()
2067 sd->nchg = 0; in sd_start()
2069 if (sd->led_mode) in sd_start()
2070 v4l2_ctrl_s_ctrl(sd->led_mode, 0); in sd_start()
2085 struct sd *sd = (struct sd *) gspca_dev; in sd_stop0() local
2088 flush_work(&sd->work); in sd_stop0()
2094 struct sd *sd = (struct sd *) gspca_dev; in do_autoexposure() local
2095 s32 cur_exp = v4l2_ctrl_g_ctrl(sd->exposure); in do_autoexposure()
2096 s32 max = sd->exposure->maximum - sd->exposure_step; in do_autoexposure()
2097 s32 min = sd->exposure->minimum + sd->exposure_step; in do_autoexposure()
2109 new_exp = cur_exp + sd->exposure_step; in do_autoexposure()
2114 v4l2_ctrl_s_ctrl(sd->exposure, new_exp); in do_autoexposure()
2116 sd->older_step = sd->old_step; in do_autoexposure()
2117 sd->old_step = 1; in do_autoexposure()
2119 if (sd->old_step ^ sd->older_step) in do_autoexposure()
2120 sd->exposure_step /= 2; in do_autoexposure()
2122 sd->exposure_step += 2; in do_autoexposure()
2127 new_exp = cur_exp - sd->exposure_step; in do_autoexposure()
2132 v4l2_ctrl_s_ctrl(sd->exposure, new_exp); in do_autoexposure()
2133 sd->older_step = sd->old_step; in do_autoexposure()
2134 sd->old_step = 0; in do_autoexposure()
2136 if (sd->old_step ^ sd->older_step) in do_autoexposure()
2137 sd->exposure_step /= 2; in do_autoexposure()
2139 sd->exposure_step += 2; in do_autoexposure()
2145 struct sd *sd = (struct sd *) gspca_dev; in do_autogain() local
2146 s32 cur_gain = v4l2_ctrl_g_ctrl(sd->gain); in do_autogain()
2148 if (avg_lum < MIN_AVG_LUM && cur_gain < sd->gain->maximum) in do_autogain()
2149 v4l2_ctrl_s_ctrl(sd->gain, cur_gain + 1); in do_autogain()
2150 if (avg_lum > MAX_AVG_LUM && cur_gain > sd->gain->minimum) in do_autogain()
2151 v4l2_ctrl_s_ctrl(sd->gain, cur_gain - 1); in do_autogain()
2156 struct sd *sd = (struct sd *) gspca_dev; in sd_dqcallback() local
2159 if (sd->autogain == NULL || !v4l2_ctrl_g_ctrl(sd->autogain)) in sd_dqcallback()
2162 avg_lum = atomic_read(&sd->avg_lum); in sd_dqcallback()
2163 if (sd->sensor == SENSOR_SOI968) in sd_dqcallback()
2173 struct sd *sd = container_of(work, struct sd, work); in qual_upd() local
2174 struct gspca_dev *gspca_dev = &sd->gspca_dev; in qual_upd()
2175 s32 qual = v4l2_ctrl_g_ctrl(sd->jpegqual); in qual_upd()
2190 struct sd *sd = (struct sd *) gspca_dev; in sd_int_pkt_scan() local
2192 if (!(sd->flags & HAS_NO_BUTTON) && len == 1) { in sd_int_pkt_scan()
2207 struct sd *sd = (struct sd *) gspca_dev; in transfer_check() local
2219 r = (sd->pktsz * 100) / in transfer_check()
2220 (sd->npkt * in transfer_check()
2228 sd->nchg += new_qual; in transfer_check()
2229 if (sd->nchg < -6 || sd->nchg >= 12) { in transfer_check()
2233 s32 curqual = sd->jpegqual->cur.val; in transfer_check()
2234 sd->nchg = 0; in transfer_check()
2236 if (new_qual < sd->jpegqual->minimum) in transfer_check()
2237 new_qual = sd->jpegqual->minimum; in transfer_check()
2238 else if (new_qual > sd->jpegqual->maximum) in transfer_check()
2239 new_qual = sd->jpegqual->maximum; in transfer_check()
2241 sd->jpegqual->cur.val = new_qual; in transfer_check()
2242 schedule_work(&sd->work); in transfer_check()
2246 sd->nchg = 0; in transfer_check()
2248 sd->pktsz = sd->npkt = 0; in transfer_check()
2255 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan() local
2261 is_jpeg = (sd->fmt & 0x03) == 0; in sd_pkt_scan()
2288 atomic_set(&sd->avg_lum, avg_lum); in sd_pkt_scan()
2302 sd->jpeg_hdr, JPEG_HDR_SZ); in sd_pkt_scan()
2312 sd->npkt++; in sd_pkt_scan()
2313 sd->pktsz += len; in sd_pkt_scan()
2393 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), in sd_probe()