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()
138 dw210x_op_rw(d->udev, 0xb5, value + i, 0, in dw2102_i2c_transfer()
139 buf6, 2, DW210X_READ_MSG); in dw2102_i2c_transfer()
146 if (msg[0].len < 2) { in dw2102_i2c_transfer()
153 buf6[2] = msg[0].buf[1]; in dw2102_i2c_transfer()
154 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
166 buf6[2] = 0xc0; in dw2102_i2c_transfer()
169 buf6[5] = msg[0].buf[2]; in dw2102_i2c_transfer()
171 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
179 dw210x_op_rw(d->udev, 0xb5, 0, 0, in dw2102_i2c_transfer()
185 if (msg[0].len < 2) { in dw2102_i2c_transfer()
189 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_i2c_transfer()
190 buf6, 2, DW210X_READ_MSG); in dw2102_i2c_transfer()
201 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
202 buf6, 2, DW210X_WRITE_MSG); in dw2102_i2c_transfer()
209 mutex_unlock(&d->i2c_mutex); in dw2102_i2c_transfer()
216 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2102_serit_i2c_transfer() local
219 if (!d) in dw2102_serit_i2c_transfer()
221 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2102_serit_i2c_transfer()
225 case 2: in dw2102_serit_i2c_transfer()
227 warn("i2c rd: len=%d is not 1!\n", in dw2102_serit_i2c_transfer()
233 if (2 + msg[1].len > sizeof(buf6)) { in dw2102_serit_i2c_transfer()
234 warn("i2c rd: len=%d is too big!\n", in dw2102_serit_i2c_transfer()
243 buf6[2] = msg[0].buf[0]; in dw2102_serit_i2c_transfer()
244 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_serit_i2c_transfer()
245 buf6, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
247 dw210x_op_rw(d->udev, 0xc3, 0xd0, 0, in dw2102_serit_i2c_transfer()
248 buf6, msg[1].len + 2, DW210X_READ_MSG); in dw2102_serit_i2c_transfer()
249 memcpy(msg[1].buf, buf6 + 2, msg[1].len); in dw2102_serit_i2c_transfer()
255 if (2 + msg[0].len > sizeof(buf6)) { in dw2102_serit_i2c_transfer()
256 warn("i2c wr: len=%d is too big!\n", in dw2102_serit_i2c_transfer()
265 memcpy(buf6 + 2, msg[0].buf, msg[0].len); in dw2102_serit_i2c_transfer()
266 dw210x_op_rw(d->udev, 0xc2, 0, 0, buf6, in dw2102_serit_i2c_transfer()
267 msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
270 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_serit_i2c_transfer()
271 buf6, 2, DW210X_READ_MSG); in dw2102_serit_i2c_transfer()
278 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_serit_i2c_transfer()
279 buf6, 2, DW210X_WRITE_MSG); in dw2102_serit_i2c_transfer()
285 mutex_unlock(&d->i2c_mutex); in dw2102_serit_i2c_transfer()
291 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2102_earda_i2c_transfer() local
294 if (!d) in dw2102_earda_i2c_transfer()
296 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2102_earda_i2c_transfer()
300 case 2: { in dw2102_earda_i2c_transfer()
305 if (2 + msg[0].len != sizeof(obuf)) { in dw2102_earda_i2c_transfer()
306 warn("i2c rd: len=%d is not 1!\n", in dw2102_earda_i2c_transfer()
312 if (2 + msg[1].len > sizeof(ibuf)) { in dw2102_earda_i2c_transfer()
313 warn("i2c rd: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
321 obuf[2] = msg[0].buf[0]; in dw2102_earda_i2c_transfer()
322 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
323 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
325 dw210x_op_rw(d->udev, 0xc3, 0xd1 , 0, in dw2102_earda_i2c_transfer()
326 ibuf, msg[1].len + 2, DW210X_READ_MSG); in dw2102_earda_i2c_transfer()
327 memcpy(msg[1].buf, ibuf + 2, msg[1].len); in dw2102_earda_i2c_transfer()
337 if (2 + msg[0].len > sizeof(obuf)) { in dw2102_earda_i2c_transfer()
338 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
346 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw2102_earda_i2c_transfer()
347 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
348 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
355 if (2 + msg[0].len > sizeof(obuf)) { in dw2102_earda_i2c_transfer()
356 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
364 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw2102_earda_i2c_transfer()
365 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
366 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
370 u8 ibuf[2]; in dw2102_earda_i2c_transfer()
371 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_earda_i2c_transfer()
372 ibuf, 2, DW210X_READ_MSG); in dw2102_earda_i2c_transfer()
373 memcpy(msg[0].buf, ibuf , 2); in dw2102_earda_i2c_transfer()
377 u8 obuf[2]; in dw2102_earda_i2c_transfer()
380 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_earda_i2c_transfer()
381 obuf, 2, DW210X_WRITE_MSG); in dw2102_earda_i2c_transfer()
391 mutex_unlock(&d->i2c_mutex); in dw2102_earda_i2c_transfer()
397 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw2104_i2c_transfer() local
400 if (!d) in dw2104_i2c_transfer()
402 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw2104_i2c_transfer()
408 u8 ibuf[2]; in dw2104_i2c_transfer()
409 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2104_i2c_transfer()
410 ibuf, 2, DW210X_READ_MSG); in dw2104_i2c_transfer()
411 memcpy(msg[j].buf, ibuf , 2); in dw2104_i2c_transfer()
415 u8 obuf[2]; in dw2104_i2c_transfer()
418 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2104_i2c_transfer()
419 obuf, 2, DW210X_WRITE_MSG); in dw2104_i2c_transfer()
431 if (2 + msg[j].len > sizeof(ibuf)) { in dw2104_i2c_transfer()
432 warn("i2c rd: len=%d is too big!\n", in dw2104_i2c_transfer()
438 dw210x_op_rw(d->udev, 0xc3, in dw2104_i2c_transfer()
440 ibuf, msg[j].len + 2, in dw2104_i2c_transfer()
442 memcpy(msg[j].buf, ibuf + 2, msg[j].len); in dw2104_i2c_transfer()
452 obuf[2] = msg[j].buf[0]; in dw2104_i2c_transfer()
458 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2104_i2c_transfer()
468 if (2 + msg[j].len > sizeof(obuf)) { in dw2104_i2c_transfer()
469 warn("i2c wr: len=%d is too big!\n", in dw2104_i2c_transfer()
477 memcpy(obuf + 2, msg[j].buf, msg[j].len); in dw2104_i2c_transfer()
478 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2104_i2c_transfer()
479 obuf, msg[j].len + 2, in dw2104_i2c_transfer()
490 mutex_unlock(&d->i2c_mutex); in dw2104_i2c_transfer()
497 struct dvb_usb_device *d = i2c_get_adapdata(adap); in dw3101_i2c_transfer() local
501 if (!d) in dw3101_i2c_transfer()
503 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in dw3101_i2c_transfer()
507 case 2: { in dw3101_i2c_transfer()
512 if (2 + msg[0].len != sizeof(obuf)) { in dw3101_i2c_transfer()
513 warn("i2c rd: len=%d is not 1!\n", in dw3101_i2c_transfer()
518 if (2 + msg[1].len > sizeof(ibuf)) { in dw3101_i2c_transfer()
519 warn("i2c rd: len=%d is too big!\n", in dw3101_i2c_transfer()
526 obuf[2] = msg[0].buf[0]; in dw3101_i2c_transfer()
527 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw3101_i2c_transfer()
528 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw3101_i2c_transfer()
530 dw210x_op_rw(d->udev, 0xc3, 0x19 , 0, in dw3101_i2c_transfer()
531 ibuf, msg[1].len + 2, DW210X_READ_MSG); in dw3101_i2c_transfer()
532 memcpy(msg[1].buf, ibuf + 2, msg[1].len); in dw3101_i2c_transfer()
543 if (2 + msg[0].len > sizeof(obuf)) { in dw3101_i2c_transfer()
544 warn("i2c wr: len=%d is too big!\n", in dw3101_i2c_transfer()
551 memcpy(obuf + 2, msg[0].buf, msg[0].len); in dw3101_i2c_transfer()
552 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw3101_i2c_transfer()
553 obuf, msg[0].len + 2, DW210X_WRITE_MSG); in dw3101_i2c_transfer()
557 u8 ibuf[2]; in dw3101_i2c_transfer()
558 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw3101_i2c_transfer()
559 ibuf, 2, DW210X_READ_MSG); in dw3101_i2c_transfer()
560 memcpy(msg[0].buf, ibuf , 2); in dw3101_i2c_transfer()
576 mutex_unlock(&d->i2c_mutex); in dw3101_i2c_transfer()
583 struct dvb_usb_device *d = i2c_get_adapdata(adap); in s6x0_i2c_transfer() local
587 if (!d) in s6x0_i2c_transfer()
589 udev = d->udev; in s6x0_i2c_transfer()
590 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in s6x0_i2c_transfer()
597 dw210x_op_rw(d->udev, 0xb8, 0, 0, in s6x0_i2c_transfer()
599 memcpy(msg[j].buf, ibuf + 3, 2); in s6x0_i2c_transfer()
603 u8 obuf[2]; in s6x0_i2c_transfer()
607 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
608 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
611 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
612 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
616 u8 obuf[2]; in s6x0_i2c_transfer()
620 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
621 obuf, 2, DW210X_WRITE_MSG); in s6x0_i2c_transfer()
635 warn("i2c rd: len=%d is too big!\n", in s6x0_i2c_transfer()
641 dw210x_op_rw(d->udev, 0x91, 0, 0, in s6x0_i2c_transfer()
653 obuf[2] = msg[j].buf[0]; in s6x0_i2c_transfer()
659 dw210x_op_rw(d->udev, 0x80, 0, 0, in s6x0_i2c_transfer()
669 if (2 + msg[j].len > sizeof(obuf)) { in s6x0_i2c_transfer()
670 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
678 memcpy(obuf + 2, msg[j].buf, msg[j].len); in s6x0_i2c_transfer()
679 dw210x_op_rw(d->udev, in s6x0_i2c_transfer()
682 obuf, msg[j].len + 2, in s6x0_i2c_transfer()
689 if (2 + msg[j].len > sizeof(obuf)) { in s6x0_i2c_transfer()
690 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
697 memcpy(obuf + 2, msg[j].buf, msg[j].len); in s6x0_i2c_transfer()
698 dw210x_op_rw(d->udev, 0x80, 0, 0, in s6x0_i2c_transfer()
699 obuf, msg[j].len + 2, in s6x0_i2c_transfer()
710 mutex_unlock(&d->i2c_mutex); in s6x0_i2c_transfer()
717 struct dvb_usb_device *d = i2c_get_adapdata(adap); in su3000_i2c_transfer() local
720 if (!d) in su3000_i2c_transfer()
723 state = d->priv; in su3000_i2c_transfer()
725 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) in su3000_i2c_transfer()
727 if (mutex_lock_interruptible(&d->data_mutex) < 0) { in su3000_i2c_transfer()
728 mutex_unlock(&d->i2c_mutex); in su3000_i2c_transfer()
738 state->data[2] = 0; in su3000_i2c_transfer()
739 if (dvb_usb_generic_rw(d, state->data, 3, in su3000_i2c_transfer()
745 if (dvb_usb_generic_rw(d, state->data, 1, in su3000_i2c_transfer()
746 state->data, 2, 0) < 0) in su3000_i2c_transfer()
753 warn("i2c wr: len=%d is too big!\n", in su3000_i2c_transfer()
762 state->data[2] = msg[0].len; in su3000_i2c_transfer()
766 if (dvb_usb_generic_rw(d, state->data, msg[0].len + 3, in su3000_i2c_transfer()
772 case 2: in su3000_i2c_transfer()
775 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
781 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
789 state->data[2] = msg[1].len; in su3000_i2c_transfer()
793 if (dvb_usb_generic_rw(d, state->data, msg[0].len + 4, in su3000_i2c_transfer()
800 warn("more than 2 i2c messages at a time is not handled yet."); in su3000_i2c_transfer()
803 mutex_unlock(&d->data_mutex); in su3000_i2c_transfer()
804 mutex_unlock(&d->i2c_mutex); in su3000_i2c_transfer()
848 static int dw210x_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in dw210x_read_mac_address() argument
855 if (dw210x_op_rw(d->udev, 0xb6, 0xa0 , i, ibuf, 2, DW210X_READ_MSG) < 0) { in dw210x_read_mac_address()
872 static int s6x0_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in s6x0_read_mac_address() argument
893 ret = s6x0_i2c_transfer(&d->i2c_adap, msg, 2); in s6x0_read_mac_address()
894 if (ret != 2) { in s6x0_read_mac_address()
928 static int su3000_power_ctrl(struct dvb_usb_device *d, int i) in su3000_power_ctrl() argument
930 struct dw2102_state *state = d->priv; in su3000_power_ctrl()
933 info("%s: %d, initialized %d", __func__, i, state->initialized); in su3000_power_ctrl()
936 mutex_lock(&d->data_mutex); in su3000_power_ctrl()
943 ret = dvb_usb_generic_rw(d, state->data, 2, NULL, 0, 0); in su3000_power_ctrl()
944 mutex_unlock(&d->data_mutex); in su3000_power_ctrl()
950 static int su3000_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) in su3000_read_mac_address() argument
960 .len = 2, in su3000_read_mac_address()
972 if (i2c_transfer(&d->i2c_adap, msg, 2) != 2) in su3000_read_mac_address()
1002 .len = 2, in dw210x_set_voltage()
1019 struct dvb_usb_adapter *d = fe->dvb->priv; in s660_set_voltage() local
1020 struct dw2102_state *st = d->dev->priv; in s660_set_voltage()
1049 struct dvb_usb_adapter *d = fe->dvb->priv; in tt_s2_4600_read_status() local
1050 struct dw2102_state *st = d->dev->priv; in tt_s2_4600_read_status()
1057 su3000_streaming_ctrl(d, 1); in tt_s2_4600_read_status()
1121 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
1122 .diseqc_mode = 2,/* 2/3 PWM */
1124 .tun1_adc = 0,/* 2 Vpp */
1138 .diseqc_mode = 2,
1154 .clkmode = 3,/* 0-CLKI, 2-XTALI, else AUTO */
1155 .diseqc_mode = 2,/* 2/3 PWM */
1157 .tun1_adc = 0,/* 2 Vpp */
1203 static int dw2104_frontend_attach(struct dvb_usb_adapter *d) in dw2104_frontend_attach() argument
1208 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &dw2104a_stv0900_config, in dw2104_frontend_attach()
1209 &d->dev->i2c_adap, 0); in dw2104_frontend_attach()
1210 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1211 if (dvb_attach(stb6100_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1213 &d->dev->i2c_adap)) { in dw2104_frontend_attach()
1214 tuner_ops = &d->fe_adap[0].fe->ops.tuner_ops; in dw2104_frontend_attach()
1219 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1226 if (demod_probe & 2) { in dw2104_frontend_attach()
1227 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &dw2104_stv0900_config, in dw2104_frontend_attach()
1228 &d->dev->i2c_adap, 0); in dw2104_frontend_attach()
1229 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1230 if (dvb_attach(stv6110_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1232 &d->dev->i2c_adap)) { in dw2104_frontend_attach()
1233 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1241 d->fe_adap[0].fe = dvb_attach(cx24116_attach, &dw2104_config, in dw2104_frontend_attach()
1242 &d->dev->i2c_adap); in dw2104_frontend_attach()
1243 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1244 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1250 d->fe_adap[0].fe = dvb_attach(ds3000_attach, &dw2104_ds3000_config, in dw2104_frontend_attach()
1251 &d->dev->i2c_adap); in dw2104_frontend_attach()
1252 if (d->fe_adap[0].fe != NULL) { in dw2104_frontend_attach()
1253 dvb_attach(ts2020_attach, d->fe_adap[0].fe, in dw2104_frontend_attach()
1254 &dw2104_ts2020_config, &d->dev->i2c_adap); in dw2104_frontend_attach()
1255 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2104_frontend_attach()
1267 static int dw2102_frontend_attach(struct dvb_usb_adapter *d) in dw2102_frontend_attach() argument
1271 d->fe_adap[0].fe = dvb_attach(si21xx_attach, &serit_sp1511lhb_config, in dw2102_frontend_attach()
1272 &d->dev->i2c_adap); in dw2102_frontend_attach()
1273 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1274 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1281 d->fe_adap[0].fe = dvb_attach(stv0288_attach, &earda_config, in dw2102_frontend_attach()
1282 &d->dev->i2c_adap); in dw2102_frontend_attach()
1283 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1284 if (dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, in dw2102_frontend_attach()
1285 &d->dev->i2c_adap)) { in dw2102_frontend_attach()
1286 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1295 d->fe_adap[0].fe = dvb_attach(stv0299_attach, &sharp_z0194a_config, in dw2102_frontend_attach()
1296 &d->dev->i2c_adap); in dw2102_frontend_attach()
1297 if (d->fe_adap[0].fe != NULL) { in dw2102_frontend_attach()
1298 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in dw2102_frontend_attach()
1306 static int dw3101_frontend_attach(struct dvb_usb_adapter *d) in dw3101_frontend_attach() argument
1308 d->fe_adap[0].fe = dvb_attach(tda10023_attach, &dw3101_tda10023_config, in dw3101_frontend_attach()
1309 &d->dev->i2c_adap, 0x48); in dw3101_frontend_attach()
1310 if (d->fe_adap[0].fe != NULL) { in dw3101_frontend_attach()
1317 static int zl100313_frontend_attach(struct dvb_usb_adapter *d) in zl100313_frontend_attach() argument
1319 d->fe_adap[0].fe = dvb_attach(mt312_attach, &zl313_config, in zl100313_frontend_attach()
1320 &d->dev->i2c_adap); in zl100313_frontend_attach()
1321 if (d->fe_adap[0].fe != NULL) { in zl100313_frontend_attach()
1322 if (dvb_attach(zl10039_attach, d->fe_adap[0].fe, 0x60, in zl100313_frontend_attach()
1323 &d->dev->i2c_adap)) { in zl100313_frontend_attach()
1324 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in zl100313_frontend_attach()
1333 static int stv0288_frontend_attach(struct dvb_usb_adapter *d) in stv0288_frontend_attach() argument
1337 d->fe_adap[0].fe = dvb_attach(stv0288_attach, &earda_config, in stv0288_frontend_attach()
1338 &d->dev->i2c_adap); in stv0288_frontend_attach()
1340 if (d->fe_adap[0].fe == NULL) in stv0288_frontend_attach()
1343 if (NULL == dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, &d->dev->i2c_adap)) in stv0288_frontend_attach()
1346 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in stv0288_frontend_attach()
1348 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in stv0288_frontend_attach()
1356 static int ds3000_frontend_attach(struct dvb_usb_adapter *d) in ds3000_frontend_attach() argument
1358 struct dw2102_state *st = d->dev->priv; in ds3000_frontend_attach()
1361 d->fe_adap[0].fe = dvb_attach(ds3000_attach, &s660_ds3000_config, in ds3000_frontend_attach()
1362 &d->dev->i2c_adap); in ds3000_frontend_attach()
1364 if (d->fe_adap[0].fe == NULL) in ds3000_frontend_attach()
1367 dvb_attach(ts2020_attach, d->fe_adap[0].fe, &s660_ts2020_config, in ds3000_frontend_attach()
1368 &d->dev->i2c_adap); in ds3000_frontend_attach()
1370 st->old_set_voltage = d->fe_adap[0].fe->ops.set_voltage; in ds3000_frontend_attach()
1371 d->fe_adap[0].fe->ops.set_voltage = s660_set_voltage; in ds3000_frontend_attach()
1373 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in ds3000_frontend_attach()
1380 static int prof_7500_frontend_attach(struct dvb_usb_adapter *d) in prof_7500_frontend_attach() argument
1384 d->fe_adap[0].fe = dvb_attach(stv0900_attach, &prof_7500_stv0900_config, in prof_7500_frontend_attach()
1385 &d->dev->i2c_adap, 0); in prof_7500_frontend_attach()
1386 if (d->fe_adap[0].fe == NULL) in prof_7500_frontend_attach()
1389 d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; in prof_7500_frontend_attach()
1391 dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); in prof_7500_frontend_attach()
1400 struct dvb_usb_device *d = adap->dev; in su3000_frontend_attach() local
1401 struct dw2102_state *state = d->priv; in su3000_frontend_attach()
1403 mutex_lock(&d->data_mutex); in su3000_frontend_attach()
1407 state->data[2] = 0; in su3000_frontend_attach()
1409 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1414 state->data[2] = 1; in su3000_frontend_attach()
1416 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1422 state->data[2] = 0; in su3000_frontend_attach()
1424 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1429 state->data[2] = 1; in su3000_frontend_attach()
1431 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1436 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in su3000_frontend_attach()
1439 mutex_unlock(&d->data_mutex); in su3000_frontend_attach()
1442 &d->i2c_adap); in su3000_frontend_attach()
1448 &d->i2c_adap)) { in su3000_frontend_attach()
1459 struct dvb_usb_device *d = adap->dev; in t220_frontend_attach() local
1460 struct dw2102_state *state = d->priv; in t220_frontend_attach()
1462 mutex_lock(&d->data_mutex); in t220_frontend_attach()
1466 state->data[2] = 0x0; in t220_frontend_attach()
1468 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1473 state->data[2] = 1; in t220_frontend_attach()
1475 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1480 state->data[2] = 0; in t220_frontend_attach()
1482 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1489 state->data[2] = 1; in t220_frontend_attach()
1491 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1496 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in t220_frontend_attach()
1499 mutex_unlock(&d->data_mutex); in t220_frontend_attach()
1502 &d->i2c_adap, NULL); in t220_frontend_attach()
1505 &d->i2c_adap, &tda18271_config)) { in t220_frontend_attach()
1517 struct dvb_usb_device *d = adap->dev; in m88rs2000_frontend_attach() local
1518 struct dw2102_state *state = d->priv; in m88rs2000_frontend_attach()
1520 mutex_lock(&d->data_mutex); in m88rs2000_frontend_attach()
1524 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in m88rs2000_frontend_attach()
1527 mutex_unlock(&d->data_mutex); in m88rs2000_frontend_attach()
1531 &d->i2c_adap); in m88rs2000_frontend_attach()
1538 &d->i2c_adap)) { in m88rs2000_frontend_attach()
1547 static int tt_s2_4600_frontend_attach_probe_demod(struct dvb_usb_device *d, in tt_s2_4600_frontend_attach_probe_demod() argument
1550 struct dw2102_state *state = d->priv; in tt_s2_4600_frontend_attach_probe_demod()
1554 state->data[2] = 0x1; in tt_s2_4600_frontend_attach_probe_demod()
1558 if (dvb_usb_generic_rw(d, state->data, 5, state->data, 2, 0) < 0) { in tt_s2_4600_frontend_attach_probe_demod()
1572 struct dvb_usb_device *d = adap->dev; in tt_s2_4600_frontend_attach() local
1573 struct dw2102_state *state = d->priv; in tt_s2_4600_frontend_attach()
1581 mutex_lock(&d->data_mutex); in tt_s2_4600_frontend_attach()
1585 state->data[2] = 0x0; in tt_s2_4600_frontend_attach()
1587 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1592 state->data[2] = 1; in tt_s2_4600_frontend_attach()
1594 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1600 state->data[2] = 0; in tt_s2_4600_frontend_attach()
1602 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1607 state->data[2] = 1; in tt_s2_4600_frontend_attach()
1609 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1614 if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) in tt_s2_4600_frontend_attach()
1619 if (tt_s2_4600_frontend_attach_probe_demod(d, 0x68)) in tt_s2_4600_frontend_attach()
1621 else if (tt_s2_4600_frontend_attach_probe_demod(d, 0x69)) in tt_s2_4600_frontend_attach()
1623 else if (tt_s2_4600_frontend_attach_probe_demod(d, 0x6a)) in tt_s2_4600_frontend_attach()
1626 mutex_unlock(&d->data_mutex); in tt_s2_4600_frontend_attach()
1654 client = i2c_new_client_device(&d->i2c_adap, &board_info); in tt_s2_4600_frontend_attach()
1716 static int dw2102_rc_query(struct dvb_usb_device *d) in dw2102_rc_query() argument
1718 u8 key[2]; in dw2102_rc_query()
1723 .len = 2 in dw2102_rc_query()
1726 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in dw2102_rc_query()
1730 rc_keydown(d->rc_dev, RC_PROTO_UNKNOWN, key[0], 0); in dw2102_rc_query()
1737 static int prof_rc_query(struct dvb_usb_device *d) in prof_rc_query() argument
1739 u8 key[2]; in prof_rc_query()
1744 .len = 2 in prof_rc_query()
1747 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in prof_rc_query()
1751 rc_keydown(d->rc_dev, RC_PROTO_UNKNOWN, key[0] ^ 0xff, in prof_rc_query()
1759 static int su3000_rc_query(struct dvb_usb_device *d) in su3000_rc_query() argument
1761 u8 key[2]; in su3000_rc_query()
1766 .len = 2 in su3000_rc_query()
1769 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in su3000_rc_query()
1773 rc_keydown(d->rc_dev, RC_PROTO_RC5, in su3000_rc_query()
1920 dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2, in dw2102_load_firmware()
1923 dw210x_op_rw(dev, 0xb5, 0, 0, &reset16[0], 2, in dw2102_load_firmware()
1933 reset16[2] = 0; in dw2102_load_firmware()
1938 if (reset16[2] == 0x11) { in dw2102_load_firmware()
1945 dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2, in dw2102_load_firmware()
1951 dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2, in dw2102_load_firmware()
2059 .num_device_descs = 2,
2262 {"TeVii S480.2 USB",
2374 { "Terratec Cinergy S2 USB HD Rev.2",
2386 { "Terratec Cinergy S2 PCIe Dual Port 2",
2437 .num_device_descs = 2,
2549 { "TeVii S482 (tuner 2)",
2598 struct dvb_usb_device *d = usb_get_intfdata(intf); in dw2102_disconnect() local
2599 struct dw2102_state *st = d->priv; in dw2102_disconnect()