Lines Matching refs:sd

41 int m5602_read_bridge(struct sd *sd, const u8 address, u8 *i2c_data)
44 struct gspca_dev *gspca_dev = (struct gspca_dev *) sd;
45 struct usb_device *udev = sd->gspca_dev.dev;
46 __u8 *buf = sd->gspca_dev.usb_buf;
63 int m5602_write_bridge(struct sd *sd, const u8 address, const u8 i2c_data)
66 struct gspca_dev *gspca_dev = (struct gspca_dev *) sd;
67 struct usb_device *udev = sd->gspca_dev.dev;
68 __u8 *buf = sd->gspca_dev.usb_buf;
88 static int m5602_wait_for_i2c(struct sd *sd)
94 err = m5602_read_bridge(sd, M5602_XB_I2C_STATUS, &data);
99 int m5602_read_sensor(struct sd *sd, const u8 address,
103 struct gspca_dev *gspca_dev = (struct gspca_dev *) sd;
105 if (!len || len > sd->sensor->i2c_regW)
108 err = m5602_wait_for_i2c(sd);
112 err = m5602_write_bridge(sd, M5602_XB_I2C_DEV_ADDR,
113 sd->sensor->i2c_slave_id);
117 err = m5602_write_bridge(sd, M5602_XB_I2C_REG_ADDR, address);
125 if (sd->sensor->i2c_regW == 1) {
126 err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, 1);
130 err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, 0x08);
132 err = m5602_write_bridge(sd, M5602_XB_I2C_CTRL, 0x18 + len);
136 err = m5602_wait_for_i2c(sd);
140 err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
148 int m5602_write_sensor(struct sd *sd, const u8 address,
153 struct gspca_dev *gspca_dev = (struct gspca_dev *) sd;
154 struct usb_device *udev = sd->gspca_dev.dev;
155 __u8 *buf = sd->gspca_dev.usb_buf;
158 if (len > sd->sensor->i2c_regW || !len)
164 buf[11] = sd->sensor->i2c_slave_id;
195 static void m5602_dump_bridge(struct sd *sd)
200 m5602_read_bridge(sd, i, &val);
206 static int m5602_probe_sensor(struct sd *sd)
209 sd->sensor = &po1030;
210 if (!sd->sensor->probe(sd))
214 sd->sensor = &mt9m111;
215 if (!sd->sensor->probe(sd))
219 sd->sensor = &s5k4aa;
220 if (!sd->sensor->probe(sd))
224 sd->sensor = &ov9650;
225 if (!sd->sensor->probe(sd))
229 sd->sensor = &ov7660;
230 if (!sd->sensor->probe(sd))
234 sd->sensor = &s5k83a;
235 if (!sd->sensor->probe(sd))
240 sd->sensor = NULL;
249 struct sd *sd = (struct sd *) gspca_dev;
254 err = sd->sensor->init(sd);
261 struct sd *sd = (struct sd *) gspca_dev;
263 if (!sd->sensor->init_controls)
266 return sd->sensor->init_controls(sd);
271 struct sd *sd = (struct sd *) gspca_dev;
272 __u8 *buf = sd->gspca_dev.usb_buf;
278 if (sd->sensor->start)
279 sd->sensor->start(sd);
294 struct sd *sd = (struct sd *) gspca_dev;
303 data[2] != sd->frame_id) {
305 sd->frame_id = data[2];
314 sd->frame_count++;
320 sd->frame_count);
332 sd->frame_count, len);
346 struct sd *sd = (struct sd *) gspca_dev;
349 if (sd->sensor->stop)
350 sd->sensor->stop(sd);
368 struct sd *sd = (struct sd *) gspca_dev;
375 m5602_dump_bridge(sd);
378 err = m5602_probe_sensor(sd);
395 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),
402 struct sd *sd = (struct sd *) gspca_dev;
404 if (sd->sensor->disconnect)
405 sd->sensor->disconnect(sd);