Lines Matching refs:sd
69 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()
1541 struct sd *sd = (struct sd *) gspca_dev; in set_quality() local
1543 jpeg_set_qual(sd->jpeg_hdr, val); in set_quality()
1545 reg_w1(gspca_dev, 0x10e0, sd->fmt | 0x20); /* write QTAB */ in set_quality()
1546 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in set_quality()
1547 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in set_quality()
1549 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1550 sd->fmt ^= 0x0c; /* invert QTAB use + write */ in set_quality()
1551 reg_w1(gspca_dev, 0x10e0, sd->fmt); in set_quality()
1558 struct sd *sd = (struct sd *) gspca_dev; in sd_dbg_g_register() local
1569 if (sd->sensor >= SENSOR_MT9V011 && in sd_dbg_g_register()
1570 sd->sensor <= SENSOR_MT9M112) { in sd_dbg_g_register()
1584 struct sd *sd = (struct sd *) gspca_dev; in sd_dbg_s_register() local
1593 if (sd->sensor >= SENSOR_MT9V011 && in sd_dbg_s_register()
1594 sd->sensor <= SENSOR_MT9M112) { in sd_dbg_s_register()
1618 struct sd *sd = (struct sd *) gspca_dev; in sd_config() local
1624 sd->sensor = id->driver_info >> 8; in sd_config()
1625 sd->i2c_addr = id->driver_info; in sd_config()
1626 sd->flags = id->driver_info >> 16; in sd_config()
1627 sd->i2c_intf = 0x80; /* i2c 100 Kb/s */ in sd_config()
1629 switch (sd->sensor) { in sd_config()
1642 sd->i2c_intf = 0x81; /* i2c 400 Kb/s */ in sd_config()
1650 sd->old_step = 0; in sd_config()
1651 sd->older_step = 0; in sd_config()
1652 sd->exposure_step = 16; in sd_config()
1654 INIT_WORK(&sd->work, qual_upd); in sd_config()
1663 struct sd *sd = (struct sd *)gspca_dev; in sd_s_ctrl() local
1673 set_cmatrix(gspca_dev, sd->brightness->val, in sd_s_ctrl()
1674 sd->contrast->val, sd->saturation->val, sd->hue->val); in sd_s_ctrl()
1681 set_redblue(gspca_dev, sd->blue->val, sd->red->val); in sd_s_ctrl()
1685 set_hvflip(gspca_dev, sd->hflip->val, sd->vflip->val); in sd_s_ctrl()
1697 if (sd->sensor == SENSOR_SOI968) in sd_s_ctrl()
1698 set_gain(gspca_dev, sd->gain->val); in sd_s_ctrl()
1700 set_exposure(gspca_dev, sd->exposure->val); in sd_s_ctrl()
1715 struct sd *sd = (struct sd *) gspca_dev; in sd_init_controls() local
1721 sd->brightness = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1723 sd->contrast = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1725 sd->saturation = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1727 sd->hue = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1730 sd->gamma = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1733 sd->blue = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1735 sd->red = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1738 if (sd->sensor != SENSOR_OV9655 && sd->sensor != SENSOR_SOI968 && in sd_init_controls()
1739 sd->sensor != SENSOR_OV7670 && sd->sensor != SENSOR_MT9M001 && in sd_init_controls()
1740 sd->sensor != SENSOR_MT9VPRB) { in sd_init_controls()
1741 sd->hflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1743 sd->vflip = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1747 if (sd->sensor != SENSOR_SOI968 && sd->sensor != SENSOR_MT9VPRB && in sd_init_controls()
1748 sd->sensor != SENSOR_MT9M112 && sd->sensor != SENSOR_MT9M111 && in sd_init_controls()
1749 sd->sensor != SENSOR_MT9V111) in sd_init_controls()
1750 sd->exposure = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1753 if (sd->sensor != SENSOR_MT9VPRB && sd->sensor != SENSOR_MT9M112 && in sd_init_controls()
1754 sd->sensor != SENSOR_MT9M111 && sd->sensor != SENSOR_MT9V111) { in sd_init_controls()
1755 sd->gain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1757 sd->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1761 sd->jpegqual = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops, in sd_init_controls()
1768 v4l2_ctrl_cluster(4, &sd->brightness); in sd_init_controls()
1769 v4l2_ctrl_cluster(2, &sd->blue); in sd_init_controls()
1770 if (sd->hflip) in sd_init_controls()
1771 v4l2_ctrl_cluster(2, &sd->hflip); in sd_init_controls()
1772 if (sd->autogain) { in sd_init_controls()
1773 if (sd->sensor == SENSOR_SOI968) in sd_init_controls()
1777 v4l2_ctrl_auto_cluster(3, &sd->autogain, 0, false); in sd_init_controls()
1780 v4l2_ctrl_auto_cluster(2, &sd->autogain, 0, false); in sd_init_controls()
1787 struct sd *sd = (struct sd *) gspca_dev; in sd_init() local
1791 0x80, sd->i2c_addr, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 in sd_init()
1803 if (sd->flags & LED_REVERSE) in sd_init()
1814 switch (sd->sensor) { in sd_init()
1883 struct sd *sd = (struct sd *) gspca_dev; in configure_sensor_output() local
1886 switch (sd->sensor) { in configure_sensor_output()
1894 sd->hstart = 140; in configure_sensor_output()
1895 sd->vstart = 19; in configure_sensor_output()
1902 sd->hstart = 60; in configure_sensor_output()
1903 sd->vstart = 11; in configure_sensor_output()
1987 struct sd *sd = (struct sd *) gspca_dev; in sd_start() local
1993 jpeg_define(sd->jpeg_hdr, height, width, in sd_start()
1995 jpeg_set_qual(sd->jpeg_hdr, v4l2_ctrl_g_ctrl(sd->jpegqual)); in sd_start()
2003 sd->fmt = fmt; in sd_start()
2025 reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); in sd_start()
2026 reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); in sd_start()
2028 reg_w(gspca_dev, 0x1180, HW_WIN(mode, sd->hstart, sd->vstart), 6); in sd_start()
2032 set_cmatrix(gspca_dev, v4l2_ctrl_g_ctrl(sd->brightness), in sd_start()
2033 v4l2_ctrl_g_ctrl(sd->contrast), in sd_start()
2034 v4l2_ctrl_g_ctrl(sd->saturation), in sd_start()
2035 v4l2_ctrl_g_ctrl(sd->hue)); in sd_start()
2036 set_gamma(gspca_dev, v4l2_ctrl_g_ctrl(sd->gamma)); in sd_start()
2037 set_redblue(gspca_dev, v4l2_ctrl_g_ctrl(sd->blue), in sd_start()
2038 v4l2_ctrl_g_ctrl(sd->red)); in sd_start()
2039 if (sd->gain) in sd_start()
2040 set_gain(gspca_dev, v4l2_ctrl_g_ctrl(sd->gain)); in sd_start()
2041 if (sd->exposure) in sd_start()
2042 set_exposure(gspca_dev, v4l2_ctrl_g_ctrl(sd->exposure)); in sd_start()
2043 if (sd->hflip) in sd_start()
2044 set_hvflip(gspca_dev, v4l2_ctrl_g_ctrl(sd->hflip), in sd_start()
2045 v4l2_ctrl_g_ctrl(sd->vflip)); in sd_start()
2052 sd->pktsz = sd->npkt = 0; in sd_start()
2053 sd->nchg = 0; in sd_start()
2054 sd->work_thread = in sd_start()
2071 struct sd *sd = (struct sd *) gspca_dev; in sd_stop0() local
2073 if (sd->work_thread != NULL) { in sd_stop0()
2075 destroy_workqueue(sd->work_thread); in sd_stop0()
2077 sd->work_thread = NULL; in sd_stop0()
2083 struct sd *sd = (struct sd *) gspca_dev; in do_autoexposure() local
2084 s32 cur_exp = v4l2_ctrl_g_ctrl(sd->exposure); in do_autoexposure()
2085 s32 max = sd->exposure->maximum - sd->exposure_step; in do_autoexposure()
2086 s32 min = sd->exposure->minimum + sd->exposure_step; in do_autoexposure()
2098 new_exp = cur_exp + sd->exposure_step; in do_autoexposure()
2103 v4l2_ctrl_s_ctrl(sd->exposure, new_exp); in do_autoexposure()
2105 sd->older_step = sd->old_step; in do_autoexposure()
2106 sd->old_step = 1; in do_autoexposure()
2108 if (sd->old_step ^ sd->older_step) in do_autoexposure()
2109 sd->exposure_step /= 2; in do_autoexposure()
2111 sd->exposure_step += 2; in do_autoexposure()
2116 new_exp = cur_exp - sd->exposure_step; in do_autoexposure()
2121 v4l2_ctrl_s_ctrl(sd->exposure, new_exp); in do_autoexposure()
2122 sd->older_step = sd->old_step; in do_autoexposure()
2123 sd->old_step = 0; in do_autoexposure()
2125 if (sd->old_step ^ sd->older_step) in do_autoexposure()
2126 sd->exposure_step /= 2; in do_autoexposure()
2128 sd->exposure_step += 2; in do_autoexposure()
2134 struct sd *sd = (struct sd *) gspca_dev; in do_autogain() local
2135 s32 cur_gain = v4l2_ctrl_g_ctrl(sd->gain); in do_autogain()
2137 if (avg_lum < MIN_AVG_LUM && cur_gain < sd->gain->maximum) in do_autogain()
2138 v4l2_ctrl_s_ctrl(sd->gain, cur_gain + 1); in do_autogain()
2139 if (avg_lum > MAX_AVG_LUM && cur_gain > sd->gain->minimum) in do_autogain()
2140 v4l2_ctrl_s_ctrl(sd->gain, cur_gain - 1); in do_autogain()
2145 struct sd *sd = (struct sd *) gspca_dev; in sd_dqcallback() local
2148 if (sd->autogain == NULL || !v4l2_ctrl_g_ctrl(sd->autogain)) in sd_dqcallback()
2151 avg_lum = atomic_read(&sd->avg_lum); in sd_dqcallback()
2152 if (sd->sensor == SENSOR_SOI968) in sd_dqcallback()
2162 struct sd *sd = container_of(work, struct sd, work); in qual_upd() local
2163 struct gspca_dev *gspca_dev = &sd->gspca_dev; in qual_upd()
2164 s32 qual = v4l2_ctrl_g_ctrl(sd->jpegqual); in qual_upd()
2179 struct sd *sd = (struct sd *) gspca_dev; in sd_int_pkt_scan() local
2181 if (!(sd->flags & HAS_NO_BUTTON) && len == 1) { in sd_int_pkt_scan()
2196 struct sd *sd = (struct sd *) gspca_dev; in transfer_check() local
2208 r = (sd->pktsz * 100) / in transfer_check()
2209 (sd->npkt * in transfer_check()
2217 sd->nchg += new_qual; in transfer_check()
2218 if (sd->nchg < -6 || sd->nchg >= 12) { in transfer_check()
2222 s32 curqual = sd->jpegqual->cur.val; in transfer_check()
2223 sd->nchg = 0; in transfer_check()
2225 if (new_qual < sd->jpegqual->minimum) in transfer_check()
2226 new_qual = sd->jpegqual->minimum; in transfer_check()
2227 else if (new_qual > sd->jpegqual->maximum) in transfer_check()
2228 new_qual = sd->jpegqual->maximum; in transfer_check()
2230 sd->jpegqual->cur.val = new_qual; in transfer_check()
2231 queue_work(sd->work_thread, &sd->work); in transfer_check()
2235 sd->nchg = 0; in transfer_check()
2237 sd->pktsz = sd->npkt = 0; in transfer_check()
2244 struct sd *sd = (struct sd *) gspca_dev; in sd_pkt_scan() local
2250 is_jpeg = (sd->fmt & 0x03) == 0; in sd_pkt_scan()
2277 atomic_set(&sd->avg_lum, avg_lum); in sd_pkt_scan()
2291 sd->jpeg_hdr, JPEG_HDR_SZ); in sd_pkt_scan()
2301 sd->npkt++; in sd_pkt_scan()
2302 sd->pktsz += len; in sd_pkt_scan()
2382 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), in sd_probe()