Lines Matching refs:sd
39 int stv06xx_write_bridge(struct sd *sd, u16 address, u16 i2c_data) in stv06xx_write_bridge() argument
42 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_write_bridge()
43 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_write_bridge()
60 int stv06xx_read_bridge(struct sd *sd, u16 address, u8 *i2c_data) in stv06xx_read_bridge() argument
63 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_read_bridge()
64 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_read_bridge()
80 int stv06xx_write_sensor(struct sd *sd, u8 address, u16 value) in stv06xx_write_sensor() argument
82 if (sd->sensor->i2c_len == 2) { in stv06xx_write_sensor()
84 return stv06xx_write_sensor_words(sd, data, 1); in stv06xx_write_sensor()
87 return stv06xx_write_sensor_bytes(sd, data, 1); in stv06xx_write_sensor()
91 static int stv06xx_write_sensor_finish(struct sd *sd) in stv06xx_write_sensor_finish() argument
95 if (IS_850(sd)) { in stv06xx_write_sensor_finish()
96 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_write_sensor_finish()
97 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_write_sensor_finish()
109 int stv06xx_write_sensor_bytes(struct sd *sd, const u8 *data, u8 len) in stv06xx_write_sensor_bytes() argument
112 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_write_sensor_bytes()
113 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_write_sensor_bytes()
125 buf[0x20] = sd->sensor->i2c_addr; in stv06xx_write_sensor_bytes()
135 return stv06xx_write_sensor_finish(sd); in stv06xx_write_sensor_bytes()
138 int stv06xx_write_sensor_words(struct sd *sd, const u16 *data, u8 len) in stv06xx_write_sensor_words() argument
141 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_write_sensor_words()
142 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_write_sensor_words()
156 buf[0x20] = sd->sensor->i2c_addr; in stv06xx_write_sensor_words()
166 return stv06xx_write_sensor_finish(sd); in stv06xx_write_sensor_words()
169 int stv06xx_read_sensor(struct sd *sd, const u8 address, u16 *value) in stv06xx_read_sensor() argument
172 struct usb_device *udev = sd->gspca_dev.dev; in stv06xx_read_sensor()
173 __u8 *buf = sd->gspca_dev.usb_buf; in stv06xx_read_sensor()
175 err = stv06xx_write_bridge(sd, STV_I2C_FLUSH, sd->sensor->i2c_flush); in stv06xx_read_sensor()
183 buf[0x20] = sd->sensor->i2c_addr; in stv06xx_read_sensor()
198 0x04, 0xc0, 0x1410, 0, buf, sd->sensor->i2c_len, in stv06xx_read_sensor()
200 if (sd->sensor->i2c_len == 2) in stv06xx_read_sensor()
212 static void stv06xx_dump_bridge(struct sd *sd) in stv06xx_dump_bridge() argument
219 stv06xx_read_bridge(sd, i, &data); in stv06xx_dump_bridge()
225 stv06xx_read_bridge(sd, i, &data); in stv06xx_dump_bridge()
228 stv06xx_write_bridge(sd, i, 0xff); in stv06xx_dump_bridge()
229 stv06xx_read_bridge(sd, i, &data); in stv06xx_dump_bridge()
238 stv06xx_write_bridge(sd, i, buf); in stv06xx_dump_bridge()
245 struct sd *sd = (struct sd *) gspca_dev; in stv06xx_init() local
254 err = sd->sensor->init(sd); in stv06xx_init()
257 sd->sensor->dump(sd); in stv06xx_init()
265 struct sd *sd = (struct sd *) gspca_dev; in stv06xx_start() local
269 err = sd->sensor->start(sd); in stv06xx_start()
274 err = stv06xx_write_bridge(sd, STV_ISO_ENABLE, 1); in stv06xx_start()
288 struct sd *sd = (struct sd *) gspca_dev; in stv06xx_stopN() local
291 err = stv06xx_write_bridge(sd, STV_ISO_ENABLE, 0); in stv06xx_stopN()
295 err = sd->sensor->stop(sd); in stv06xx_stopN()
426 struct sd *sd = (struct sd *) gspca_dev; in stv06xx_config() local
433 sd->desc = sd_desc; in stv06xx_config()
434 gspca_dev->sd_desc = &sd->desc; in stv06xx_config()
437 stv06xx_dump_bridge(sd); in stv06xx_config()
439 sd->sensor = &stv06xx_sensor_vv6410; in stv06xx_config()
440 if (!sd->sensor->probe(sd)) in stv06xx_config()
443 sd->sensor = &stv06xx_sensor_hdcs1x00; in stv06xx_config()
444 if (!sd->sensor->probe(sd)) in stv06xx_config()
447 sd->sensor = &stv06xx_sensor_hdcs1020; in stv06xx_config()
448 if (!sd->sensor->probe(sd)) in stv06xx_config()
451 sd->sensor = &stv06xx_sensor_pb0100; in stv06xx_config()
452 if (!sd->sensor->probe(sd)) in stv06xx_config()
455 sd->sensor = NULL; in stv06xx_config()
475 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), in sd_probe()
482 struct sd *sd = (struct sd *) gspca_dev; in sd_disconnect() local
485 if (sd->sensor->disconnect) in sd_disconnect()
486 sd->sensor->disconnect(sd); in sd_disconnect()