Lines Matching +full:2 +full:d

79 MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer 4=rc(or-able))."
85 MODULE_PARM_DESC(demod, "demod to probe (1=cx24116 2=stv0903+stv6110 4=stv0903+stb6100(or-able)).");
119 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2102_i2c_transfer() local
124 if (!d) in dw2102_i2c_transfer()
126 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2102_i2c_transfer()
130 case 2: in dw2102_i2c_transfer()
134 dw210x_op_rw(d->udev, 0xb5, value + i, 0, in dw2102_i2c_transfer()
135 buf6, 2, DW210X_READ_MSG); in dw2102_i2c_transfer()
145 buf6[2] = msg[0].buf[1]; in dw2102_i2c_transfer()
146 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
154 buf6[2] = 0xc0; in dw2102_i2c_transfer()
157 buf6[5] = msg[0].buf[2]; in dw2102_i2c_transfer()
159 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
163 dw210x_op_rw(d->udev, 0xb5, 0, 0, in dw2102_i2c_transfer()
169 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_i2c_transfer()
170 buf6, 2, DW210X_READ_MSG); in dw2102_i2c_transfer()
177 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
178 buf6, 2, DW210X_WRITE_MSG); in dw2102_i2c_transfer()
185 mutex_unlock(&d->i2c_mutex); in dw2102_i2c_transfer()
192 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2102_serit_i2c_transfer() local
195 if (!d) in dw2102_serit_i2c_transfer()
197 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2102_serit_i2c_transfer()
201 case 2: in dw2102_serit_i2c_transfer()
203 warn("i2c rd: len=%d is not 1!\n", in dw2102_serit_i2c_transfer()
209 if (2 + msg[1].len > sizeof(buf6)) { in dw2102_serit_i2c_transfer()
210 warn("i2c rd: len=%d is too big!\n", in dw2102_serit_i2c_transfer()
219 buf6[2] = msg[0].buf[0]; in dw2102_serit_i2c_transfer()
220 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_serit_i2c_transfer()
221 buf6, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
223 dw210x_op_rw(d->udev, 0xc3, 0xd0, 0, in dw2102_serit_i2c_transfer()
224 buf6, msg[1].len + 2, DW210X_READ_MSG); in dw2102_serit_i2c_transfer()
225 memcpy(msg[1].buf, buf6 + 2, msg[1].len); in dw2102_serit_i2c_transfer()
231 if (2 + msg[0].len > sizeof(buf6)) { in dw2102_serit_i2c_transfer()
232 warn("i2c wr: len=%d is too big!\n", in dw2102_serit_i2c_transfer()
241 memcpy(buf6 + 2, msg[0].buf, msg[0].len); in dw2102_serit_i2c_transfer()
242 dw210x_op_rw(d->udev, 0xc2, 0, 0, buf6, in dw2102_serit_i2c_transfer()
243 msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
246 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_serit_i2c_transfer()
247 buf6, 2, DW210X_READ_MSG); in dw2102_serit_i2c_transfer()
254 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_serit_i2c_transfer()
255 buf6, 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
261 mutex_unlock(&d->i2c_mutex); in dw2102_serit_i2c_transfer()
267 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2102_earda_i2c_transfer() local
270 if (!d) in dw2102_earda_i2c_transfer()
272 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2102_earda_i2c_transfer()
276 case 2: { in dw2102_earda_i2c_transfer()
281 if (2 + msg[0].len != sizeof(obuf)) { in dw2102_earda_i2c_transfer()
282 warn("i2c rd: len=%d is not 1!\n", in dw2102_earda_i2c_transfer()
288 if (2 + msg[1].len > sizeof(ibuf)) { in dw2102_earda_i2c_transfer()
289 warn("i2c rd: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
297 obuf[2] = msg[0].buf[0]; in dw2102_earda_i2c_transfer()
298 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
299 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
301 dw210x_op_rw(d->udev, 0xc3, 0xd1 , 0, in dw2102_earda_i2c_transfer()
302 ibuf, msg[1].len + 2, DW210X_READ_MSG); in dw2102_earda_i2c_transfer()
303 memcpy(msg[1].buf, ibuf + 2, msg[1].len); in dw2102_earda_i2c_transfer()
313 if (2 + msg[0].len > sizeof(obuf)) { in dw2102_earda_i2c_transfer()
314 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
322 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw2102_earda_i2c_transfer()
323 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
324 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
331 if (2 + msg[0].len > sizeof(obuf)) { in dw2102_earda_i2c_transfer()
332 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
340 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw2102_earda_i2c_transfer()
341 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
342 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
346 u8 ibuf[2]; in dw2102_earda_i2c_transfer()
347 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_earda_i2c_transfer()
348 ibuf, 2, DW210X_READ_MSG); in dw2102_earda_i2c_transfer()
349 memcpy(msg[0].buf, ibuf , 2); in dw2102_earda_i2c_transfer()
353 u8 obuf[2]; in dw2102_earda_i2c_transfer()
356 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_earda_i2c_transfer()
357 obuf, 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
367 mutex_unlock(&d->i2c_mutex); in dw2102_earda_i2c_transfer()
373 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2104_i2c_transfer() local
376 if (!d) in dw2104_i2c_transfer()
378 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2104_i2c_transfer()
384 u8 ibuf[2]; in dw2104_i2c_transfer()
385 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2104_i2c_transfer()
386 ibuf, 2, DW210X_READ_MSG); in dw2104_i2c_transfer()
387 memcpy(msg[j].buf, ibuf , 2); in dw2104_i2c_transfer()
391 u8 obuf[2]; in dw2104_i2c_transfer()
394 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2104_i2c_transfer()
395 obuf, 2, DW210X_WRITE_MSG); in dw2104_i2c_transfer()
407 if (2 + msg[j].len > sizeof(ibuf)) { in dw2104_i2c_transfer()
408 warn("i2c rd: len=%d is too big!\n", in dw2104_i2c_transfer()
414 dw210x_op_rw(d->udev, 0xc3, in dw2104_i2c_transfer()
416 ibuf, msg[j].len + 2, in dw2104_i2c_transfer()
418 memcpy(msg[j].buf, ibuf + 2, msg[j].len); in dw2104_i2c_transfer()
428 obuf[2] = msg[j].buf[0]; in dw2104_i2c_transfer()
434 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2104_i2c_transfer()
444 if (2 + msg[j].len > sizeof(obuf)) { in dw2104_i2c_transfer()
445 warn("i2c wr: len=%d is too big!\n", in dw2104_i2c_transfer()
453 memcpy(obuf + 2, msg[j].buf, msg[j].len); in dw2104_i2c_transfer()
454 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2104_i2c_transfer()
455 obuf, msg[j].len + 2, in dw2104_i2c_transfer()
466 mutex_unlock(&d->i2c_mutex); in dw2104_i2c_transfer()
473 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw3101_i2c_transfer() local
477 if (!d) in dw3101_i2c_transfer()
479 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw3101_i2c_transfer()
483 case 2: { in dw3101_i2c_transfer()
488 if (2 + msg[0].len != sizeof(obuf)) { in dw3101_i2c_transfer()
489 warn("i2c rd: len=%d is not 1!\n", in dw3101_i2c_transfer()
494 if (2 + msg[1].len > sizeof(ibuf)) { in dw3101_i2c_transfer()
495 warn("i2c rd: len=%d is too big!\n", in dw3101_i2c_transfer()
502 obuf[2] = msg[0].buf[0]; in dw3101_i2c_transfer()
503 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw3101_i2c_transfer()
504 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw3101_i2c_transfer()
506 dw210x_op_rw(d->udev, 0xc3, 0x19 , 0, in dw3101_i2c_transfer()
507 ibuf, msg[1].len + 2, DW210X_READ_MSG); in dw3101_i2c_transfer()
508 memcpy(msg[1].buf, ibuf + 2, msg[1].len); in dw3101_i2c_transfer()
519 if (2 + msg[0].len > sizeof(obuf)) { in dw3101_i2c_transfer()
520 warn("i2c wr: len=%d is too big!\n", in dw3101_i2c_transfer()
527 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw3101_i2c_transfer()
528 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw3101_i2c_transfer()
529 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw3101_i2c_transfer()
533 u8 ibuf[2]; in dw3101_i2c_transfer()
534 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw3101_i2c_transfer()
535 ibuf, 2, DW210X_READ_MSG); in dw3101_i2c_transfer()
536 memcpy(msg[0].buf, ibuf , 2); in dw3101_i2c_transfer()
552 mutex_unlock(&d->i2c_mutex); in dw3101_i2c_transfer()
559 struct dvb_usb_device *d = i2c_get_adapdata(adap); in s6x0_i2c_transfer() local
563 if (!d) in s6x0_i2c_transfer()
565 udev = d->udev; in s6x0_i2c_transfer()
566 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in s6x0_i2c_transfer()
573 dw210x_op_rw(d->udev, 0xb8, 0, 0, in s6x0_i2c_transfer()
575 memcpy(msg[j].buf, ibuf + 3, 2); in s6x0_i2c_transfer()
579 u8 obuf[2]; in s6x0_i2c_transfer()
583 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
584 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
587 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
588 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
592 u8 obuf[2]; in s6x0_i2c_transfer()
596 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
597 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
611 warn("i2c rd: len=%d is too big!\n", in s6x0_i2c_transfer()
617 dw210x_op_rw(d->udev, 0x91, 0, 0, in s6x0_i2c_transfer()
629 obuf[2] = msg[j].buf[0]; in s6x0_i2c_transfer()
635 dw210x_op_rw(d->udev, 0x80, 0, 0, in s6x0_i2c_transfer()
645 if (2 + msg[j].len > sizeof(obuf)) { in s6x0_i2c_transfer()
646 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
654 memcpy(obuf + 2, msg[j].buf, msg[j].len); in s6x0_i2c_transfer()
655 dw210x_op_rw(d->udev, in s6x0_i2c_transfer()
658 obuf, msg[j].len + 2, in s6x0_i2c_transfer()
665 if (2 + msg[j].len > sizeof(obuf)) { in s6x0_i2c_transfer()
666 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
673 memcpy(obuf + 2, msg[j].buf, msg[j].len); in s6x0_i2c_transfer()
674 dw210x_op_rw(d->udev, 0x80, 0, 0, in s6x0_i2c_transfer()
675 obuf, msg[j].len + 2, in s6x0_i2c_transfer()
686 mutex_unlock(&d->i2c_mutex); in s6x0_i2c_transfer()
693 struct dvb_usb_device *d = i2c_get_adapdata(adap); in su3000_i2c_transfer() local
696 if (!d) in su3000_i2c_transfer()
699 state = d->priv; in su3000_i2c_transfer()
701 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in su3000_i2c_transfer()
703 if (mutex_lock_interruptible(&d->data_mutex) < 0) { in su3000_i2c_transfer()
704 mutex_unlock(&d->i2c_mutex); in su3000_i2c_transfer()
714 state->data[2] = 0; in su3000_i2c_transfer()
715 if (dvb_usb_generic_rw(d, state->data, 3, in su3000_i2c_transfer()
721 if (dvb_usb_generic_rw(d, state->data, 1, in su3000_i2c_transfer()
722 state->data, 2, 0) < 0) in su3000_i2c_transfer()
729 warn("i2c wr: len=%d is too big!\n", in su3000_i2c_transfer()
738 state->data[2] = msg[0].len; in su3000_i2c_transfer()
742 if (dvb_usb_generic_rw(d, state->data, msg[0].len + 3, in su3000_i2c_transfer()
748 case 2: in su3000_i2c_transfer()
751 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
757 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
765 state->data[2] = msg[1].len; in su3000_i2c_transfer()
769 if (dvb_usb_generic_rw(d, state->data, msg[0].len + 4, in su3000_i2c_transfer()
776 warn("more than 2 i2c messages at a time is not handled yet."); in su3000_i2c_transfer()
779 mutex_unlock(&d->data_mutex); in su3000_i2c_transfer()
780 mutex_unlock(&d->i2c_mutex); in su3000_i2c_transfer()
824 static int dw210x_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in dw210x_read_mac_address() argument
831 if (dw210x_op_rw(d->udev, 0xb6, 0xa0 , i, ibuf, 2, DW210X_READ_MSG) < 0) { in dw210x_read_mac_address()
848 static int s6x0_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in s6x0_read_mac_address() argument
869 ret = s6x0_i2c_transfer(&d->i2c_adap, msg, 2); in s6x0_read_mac_address()
870 if (ret != 2) { in s6x0_read_mac_address()
904 static int su3000_power_ctrl(struct dvb_usb_device *d, int i) in su3000_power_ctrl() argument
906 struct dw2102_state *state = (struct dw2102_state *)d->priv; in su3000_power_ctrl()
909 info("%s: %d, initialized %d", __func__, i, state->initialized); in su3000_power_ctrl()
912 mutex_lock(&d->data_mutex); in su3000_power_ctrl()
919 ret = dvb_usb_generic_rw(d, state->data, 2, NULL, 0, 0); in su3000_power_ctrl()
920 mutex_unlock(&d->data_mutex); in su3000_power_ctrl()
926 static int su3000_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in su3000_read_mac_address() argument
936 .len = 2, in su3000_read_mac_address()
948 if (i2c_transfer(&d->i2c_adap, msg, 2) != 2) in su3000_read_mac_address()
978 .len = 2, in dw210x_set_voltage()
996 struct dvb_usb_adapter *d = in s660_set_voltage() local
998 struct dw2102_state *st = (struct dw2102_state *)d->dev->priv; in s660_set_voltage()
1028 struct dvb_usb_adapter *d = in tt_s2_4600_read_status() local
1030 struct dw2102_state *st = (struct dw2102_state *)d->dev->priv; in tt_s2_4600_read_status()
1037 su3000_streaming_ctrl(d, 1); in tt_s2_4600_read_status()
1101 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
1102 .diseqc_mode = 2,/* 2/3 PWM */
1104 .tun1_adc = 0,/* 2 Vpp */
1118 .diseqc_mode = 2,
1134 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
1135 .diseqc_mode = 2,/* 2/3 PWM */
1137 .tun1_adc = 0,/* 2 Vpp */
1183 static int dw2104_frontend_attach(struct dvb_usb_adapter *d) in dw2104_frontend_attach() argument
1188 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &dw2104a_stv0900_config, in dw2104_frontend_attach()
1189 &d->dev->i2c_adap, 0); in dw2104_frontend_attach()
1190 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1191 if (dvb_attach(stb6100_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1193 &d->dev->i2c_adap)) { in dw2104_frontend_attach()
1194 tuner_ops = &d->fe_adap[0].fe->ops.tuner_ops; in dw2104_frontend_attach()
1199 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1206 if (demod_probe & 2) { in dw2104_frontend_attach()
1207 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &dw2104_stv0900_config, in dw2104_frontend_attach()
1208 &d->dev->i2c_adap, 0); in dw2104_frontend_attach()
1209 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1210 if (dvb_attach(stv6110_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1212 &d->dev->i2c_adap)) { in dw2104_frontend_attach()
1213 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1221 d->fe_adap[0].fe = dvb_attach(cx24116_attach, &dw2104_config, in dw2104_frontend_attach()
1222 &d->dev->i2c_adap); in dw2104_frontend_attach()
1223 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1224 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1230 d->fe_adap[0].fe = dvb_attach(ds3000_attach, &dw2104_ds3000_config, in dw2104_frontend_attach()
1231 &d->dev->i2c_adap); in dw2104_frontend_attach()
1232 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1233 dvb_attach(ts2020_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1234 &dw2104_ts2020_config, &d->dev->i2c_adap); in dw2104_frontend_attach()
1235 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1247 static int dw2102_frontend_attach(struct dvb_usb_adapter *d) in dw2102_frontend_attach() argument
1251 d->fe_adap[0].fe = dvb_attach(si21xx_attach, &serit_sp1511lhb_config, in dw2102_frontend_attach()
1252 &d->dev->i2c_adap); in dw2102_frontend_attach()
1253 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1254 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1261 d->fe_adap[0].fe = dvb_attach(stv0288_attach, &earda_config, in dw2102_frontend_attach()
1262 &d->dev->i2c_adap); in dw2102_frontend_attach()
1263 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1264 if (dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, in dw2102_frontend_attach()
1265 &d->dev->i2c_adap)) { in dw2102_frontend_attach()
1266 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1275 d->fe_adap[0].fe = dvb_attach(stv0299_attach, &sharp_z0194a_config, in dw2102_frontend_attach()
1276 &d->dev->i2c_adap); in dw2102_frontend_attach()
1277 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1278 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1286 static int dw3101_frontend_attach(struct dvb_usb_adapter *d) in dw3101_frontend_attach() argument
1288 d->fe_adap[0].fe = dvb_attach(tda10023_attach, &dw3101_tda10023_config, in dw3101_frontend_attach()
1289 &d->dev->i2c_adap, 0x48); in dw3101_frontend_attach()
1290 if (d->fe_adap[0].fe != NULL) { in dw3101_frontend_attach()
1297 static int zl100313_frontend_attach(struct dvb_usb_adapter *d) in zl100313_frontend_attach() argument
1299 d->fe_adap[0].fe = dvb_attach(mt312_attach, &zl313_config, in zl100313_frontend_attach()
1300 &d->dev->i2c_adap); in zl100313_frontend_attach()
1301 if (d->fe_adap[0].fe != NULL) { in zl100313_frontend_attach()
1302 if (dvb_attach(zl10039_attach, d->fe_adap[0].fe, 0x60, in zl100313_frontend_attach()
1303 &d->dev->i2c_adap)) { in zl100313_frontend_attach()
1304 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in zl100313_frontend_attach()
1313 static int stv0288_frontend_attach(struct dvb_usb_adapter *d) in stv0288_frontend_attach() argument
1317 d->fe_adap[0].fe = dvb_attach(stv0288_attach, &earda_config, in stv0288_frontend_attach()
1318 &d->dev->i2c_adap); in stv0288_frontend_attach()
1320 if (d->fe_adap[0].fe == NULL) in stv0288_frontend_attach()
1323 if (NULL == dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, &d->dev->i2c_adap)) in stv0288_frontend_attach()
1326 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in stv0288_frontend_attach()
1328 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in stv0288_frontend_attach()
1336 static int ds3000_frontend_attach(struct dvb_usb_adapter *d) in ds3000_frontend_attach() argument
1338 struct dw2102_state *st = d->dev->priv; in ds3000_frontend_attach()
1341 d->fe_adap[0].fe = dvb_attach(ds3000_attach, &s660_ds3000_config, in ds3000_frontend_attach()
1342 &d->dev->i2c_adap); in ds3000_frontend_attach()
1344 if (d->fe_adap[0].fe == NULL) in ds3000_frontend_attach()
1347 dvb_attach(ts2020_attach, d->fe_adap[0].fe, &s660_ts2020_config, in ds3000_frontend_attach()
1348 &d->dev->i2c_adap); in ds3000_frontend_attach()
1350 st->old_set_voltage = d->fe_adap[0].fe->ops.set_voltage; in ds3000_frontend_attach()
1351 d->fe_adap[0].fe->ops.set_voltage = s660_set_voltage; in ds3000_frontend_attach()
1353 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in ds3000_frontend_attach()
1360 static int prof_7500_frontend_attach(struct dvb_usb_adapter *d) in prof_7500_frontend_attach() argument
1364 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &prof_7500_stv0900_config, in prof_7500_frontend_attach()
1365 &d->dev->i2c_adap, 0); in prof_7500_frontend_attach()
1366 if (d->fe_adap[0].fe == NULL) in prof_7500_frontend_attach()
1369 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in prof_7500_frontend_attach()
1371 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in prof_7500_frontend_attach()
1380 struct dvb_usb_device *d = adap->dev; in su3000_frontend_attach() local
1381 struct dw2102_state *state = d->priv; in su3000_frontend_attach()
1383 mutex_lock(&d->data_mutex); in su3000_frontend_attach()
1387 state->data[2] = 0; in su3000_frontend_attach()
1389 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1394 state->data[2] = 1; in su3000_frontend_attach()
1396 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1402 state->data[2] = 0; in su3000_frontend_attach()
1404 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1409 state->data[2] = 1; in su3000_frontend_attach()
1411 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1416 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in su3000_frontend_attach()
1419 mutex_unlock(&d->data_mutex); in su3000_frontend_attach()
1422 &d->i2c_adap); in su3000_frontend_attach()
1428 &d->i2c_adap)) { in su3000_frontend_attach()
1439 struct dvb_usb_device *d = adap->dev; in t220_frontend_attach() local
1440 struct dw2102_state *state = d->priv; in t220_frontend_attach()
1442 mutex_lock(&d->data_mutex); in t220_frontend_attach()
1446 state->data[2] = 0x0; in t220_frontend_attach()
1448 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1453 state->data[2] = 1; in t220_frontend_attach()
1455 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1460 state->data[2] = 0; in t220_frontend_attach()
1462 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1469 state->data[2] = 1; in t220_frontend_attach()
1471 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1476 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in t220_frontend_attach()
1479 mutex_unlock(&d->data_mutex); in t220_frontend_attach()
1482 &d->i2c_adap, NULL); in t220_frontend_attach()
1485 &d->i2c_adap, &tda18271_config)) { in t220_frontend_attach()
1497 struct dvb_usb_device *d = adap->dev; in m88rs2000_frontend_attach() local
1498 struct dw2102_state *state = d->priv; in m88rs2000_frontend_attach()
1500 mutex_lock(&d->data_mutex); in m88rs2000_frontend_attach()
1504 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in m88rs2000_frontend_attach()
1507 mutex_unlock(&d->data_mutex); in m88rs2000_frontend_attach()
1511 &d->i2c_adap); in m88rs2000_frontend_attach()
1518 &d->i2c_adap)) { in m88rs2000_frontend_attach()
1527 static int tt_s2_4600_frontend_attach_probe_demod(struct dvb_usb_device *d, in tt_s2_4600_frontend_attach_probe_demod() argument
1530 struct dw2102_state *state = d->priv; in tt_s2_4600_frontend_attach_probe_demod()
1534 state->data[2] = 0x1; in tt_s2_4600_frontend_attach_probe_demod()
1538 if (dvb_usb_generic_rw(d, state->data, 5, state->data, 2, 0) < 0) { in tt_s2_4600_frontend_attach_probe_demod()
1552 struct dvb_usb_device *d = adap->dev; in tt_s2_4600_frontend_attach() local
1553 struct dw2102_state *state = d->priv; in tt_s2_4600_frontend_attach()
1561 mutex_lock(&d->data_mutex); in tt_s2_4600_frontend_attach()
1565 state->data[2] = 0x0; in tt_s2_4600_frontend_attach()
1567 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1572 state->data[2] = 1; in tt_s2_4600_frontend_attach()
1574 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1580 state->data[2] = 0; in tt_s2_4600_frontend_attach()
1582 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1587 state->data[2] = 1; in tt_s2_4600_frontend_attach()
1589 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1594 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1599 if (tt_s2_4600_frontend_attach_probe_demod(d, 0x68)) in tt_s2_4600_frontend_attach()
1601 else if (tt_s2_4600_frontend_attach_probe_demod(d, 0x69)) in tt_s2_4600_frontend_attach()
1603 else if (tt_s2_4600_frontend_attach_probe_demod(d, 0x6a)) in tt_s2_4600_frontend_attach()
1606 mutex_unlock(&d->data_mutex); in tt_s2_4600_frontend_attach()
1634 client = i2c_new_client_device(&d->i2c_adap, &board_info); in tt_s2_4600_frontend_attach()
1696 static int dw2102_rc_query(struct dvb_usb_device *d) in dw2102_rc_query() argument
1698 u8 key[2]; in dw2102_rc_query()
1703 .len = 2 in dw2102_rc_query()
1706 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in dw2102_rc_query()
1710 rc_keydown(d->rc_dev, RC_PROTO_UNKNOWN, key[0], 0); in dw2102_rc_query()
1717 static int prof_rc_query(struct dvb_usb_device *d) in prof_rc_query() argument
1719 u8 key[2]; in prof_rc_query()
1724 .len = 2 in prof_rc_query()
1727 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in prof_rc_query()
1731 rc_keydown(d->rc_dev, RC_PROTO_UNKNOWN, key[0] ^ 0xff, in prof_rc_query()
1739 static int su3000_rc_query(struct dvb_usb_device *d) in su3000_rc_query() argument
1741 u8 key[2]; in su3000_rc_query()
1746 .len = 2 in su3000_rc_query()
1749 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in su3000_rc_query()
1753 rc_keydown(d->rc_dev, RC_PROTO_RC5, in su3000_rc_query()
1900 dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2, in dw2102_load_firmware()
1903 dw210x_op_rw(dev, 0xb5, 0, 0, &reset16[0], 2, in dw2102_load_firmware()
1913 reset16[2] = 0; in dw2102_load_firmware()
1918 if (reset16[2] == 0x11) { in dw2102_load_firmware()
1925 dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2, in dw2102_load_firmware()
1931 dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2, in dw2102_load_firmware()
2039 .num_device_descs = 2,
2242 {"TeVii S480.2 USB",
2354 { "Terratec Cinergy S2 USB HD Rev.2",
2366 { "Terratec Cinergy S2 PCIe Dual Port 2",
2417 .num_device_descs = 2,
2529 { "TeVii S482 (tuner 2)",
2578 struct dvb_usb_device *d = usb_get_intfdata(intf); in dw2102_disconnect() local
2579 struct dw2102_state *st = (struct dw2102_state *)d->priv; in dw2102_disconnect()