Lines Matching +full:1 +full:d
41 #define DW210X_WRITE_MSG 1
79 MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer 4=rc(or-able))."
83 static int demod_probe = 1;
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()
131 if (msg[0].len < 1) { in dw2102_i2c_transfer()
137 for (i = 0; i < msg[1].len; i++) { in dw2102_i2c_transfer()
138 dw210x_op_rw(d->udev, 0xb5, value + i, 0, in dw2102_i2c_transfer()
140 msg[1].buf[i] = buf6[0]; in dw2102_i2c_transfer()
143 case 1: in dw2102_i2c_transfer()
152 buf6[1] = msg[0].buf[0]; 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()
165 buf6[1] = 5; in dw2102_i2c_transfer()
168 buf6[4] = msg[0].buf[1]; in dw2102_i2c_transfer()
171 dw210x_op_rw(d->udev, 0xb2, 0, 0, in dw2102_i2c_transfer()
174 if (msg[0].len < 1) { in dw2102_i2c_transfer()
179 dw210x_op_rw(d->udev, 0xb5, 0, 0, in dw2102_i2c_transfer()
180 buf6, 1, DW210X_READ_MSG); in dw2102_i2c_transfer()
189 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_i2c_transfer()
192 msg[0].buf[1] = buf6[1]; in dw2102_i2c_transfer()
195 if (msg[0].len < 1) { in dw2102_i2c_transfer()
200 buf6[1] = msg[0].buf[0]; in dw2102_i2c_transfer()
201 dw210x_op_rw(d->udev, 0xb2, 0, 0, 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()
226 if (msg[0].len != 1) { 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()
235 msg[1].len); in dw2102_serit_i2c_transfer()
241 buf6[0] = msg[0].addr << 1; in dw2102_serit_i2c_transfer()
242 buf6[1] = msg[0].len; in dw2102_serit_i2c_transfer()
244 dw210x_op_rw(d->udev, 0xc2, 0, 0, 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()
252 case 1: in dw2102_serit_i2c_transfer()
256 warn("i2c wr: len=%d is too big!\n", in dw2102_serit_i2c_transfer()
263 buf6[0] = msg[0].addr << 1; in dw2102_serit_i2c_transfer()
264 buf6[1] = msg[0].len; in dw2102_serit_i2c_transfer()
266 dw210x_op_rw(d->udev, 0xc2, 0, 0, buf6, in dw2102_serit_i2c_transfer()
270 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_serit_i2c_transfer()
273 msg[0].buf[1] = buf6[1]; in dw2102_serit_i2c_transfer()
277 buf6[1] = msg[0].buf[0]; in dw2102_serit_i2c_transfer()
278 dw210x_op_rw(d->udev, 0xb2, 0, 0, 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()
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()
314 msg[1].len); in dw2102_earda_i2c_transfer()
319 obuf[0] = msg[0].addr << 1; in dw2102_earda_i2c_transfer()
320 obuf[1] = msg[0].len; in dw2102_earda_i2c_transfer()
322 dw210x_op_rw(d->udev, 0xc2, 0, 0, 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()
331 case 1: in dw2102_earda_i2c_transfer()
338 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
339 msg[1].len); in dw2102_earda_i2c_transfer()
344 obuf[0] = msg[0].addr << 1; in dw2102_earda_i2c_transfer()
345 obuf[1] = msg[0].len; in dw2102_earda_i2c_transfer()
347 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
356 warn("i2c wr: len=%d is too big!\n", in dw2102_earda_i2c_transfer()
357 msg[1].len); in dw2102_earda_i2c_transfer()
362 obuf[0] = msg[0].addr << 1; in dw2102_earda_i2c_transfer()
363 obuf[1] = msg[0].len; in dw2102_earda_i2c_transfer()
365 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2102_earda_i2c_transfer()
371 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2102_earda_i2c_transfer()
379 obuf[1] = msg[0].buf[0]; in dw2102_earda_i2c_transfer()
380 dw210x_op_rw(d->udev, 0xb2, 0, 0, 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()
409 dw210x_op_rw(d->udev, 0xb8, 0, 0, in dw2104_i2c_transfer()
417 obuf[1] = msg[j].buf[0]; in dw2104_i2c_transfer()
418 dw210x_op_rw(d->udev, 0xb2, 0, 0, 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()
439 (msg[j].addr << 1) + 1, 0, in dw2104_i2c_transfer()
450 obuf[0] = msg[j].addr << 1; in dw2104_i2c_transfer()
451 obuf[1] = (msg[j].len > 15 ? 17 : msg[j].len); in dw2104_i2c_transfer()
453 len = msg[j].len - 1; in dw2104_i2c_transfer()
454 i = 1; in dw2104_i2c_transfer()
458 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw2104_i2c_transfer()
469 warn("i2c wr: len=%d is too big!\n", in dw2104_i2c_transfer()
475 obuf[0] = msg[j].addr << 1; in dw2104_i2c_transfer()
476 obuf[1] = msg[j].len; in dw2104_i2c_transfer()
478 dw210x_op_rw(d->udev, 0xc2, 0, 0, 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()
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()
520 msg[1].len); in dw3101_i2c_transfer()
524 obuf[0] = msg[0].addr << 1; in dw3101_i2c_transfer()
525 obuf[1] = msg[0].len; in dw3101_i2c_transfer()
527 dw210x_op_rw(d->udev, 0xc2, 0, 0, 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()
536 case 1: in dw3101_i2c_transfer()
544 warn("i2c wr: len=%d is too big!\n", in dw3101_i2c_transfer()
549 obuf[0] = msg[0].addr << 1; in dw3101_i2c_transfer()
550 obuf[1] = msg[0].len; in dw3101_i2c_transfer()
552 dw210x_op_rw(d->udev, 0xc2, 0, 0, in dw3101_i2c_transfer()
558 dw210x_op_rw(d->udev, 0xb8, 0, 0, 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()
605 obuf[0] = 1; in s6x0_i2c_transfer()
606 obuf[1] = msg[j].buf[1];/* off-on */ in s6x0_i2c_transfer()
607 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
610 obuf[1] = msg[j].buf[0];/* 13v-18v */ in s6x0_i2c_transfer()
611 dw210x_op_rw(d->udev, 0x8a, 0, 0, in s6x0_i2c_transfer()
619 obuf[1] = msg[j].buf[0]; in s6x0_i2c_transfer()
620 dw210x_op_rw(d->udev, 0x8a, 0, 0, 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()
651 18 : msg[j].len + 1); in s6x0_i2c_transfer()
652 obuf[1] = msg[j].addr << 1; in s6x0_i2c_transfer()
654 len = msg[j].len - 1; in s6x0_i2c_transfer()
655 i = 1; in s6x0_i2c_transfer()
659 dw210x_op_rw(d->udev, 0x80, 0, 0, in s6x0_i2c_transfer()
665 } else if (j < (num - 1)) { in s6x0_i2c_transfer()
670 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
676 obuf[0] = msg[j + 1].len; in s6x0_i2c_transfer()
677 obuf[1] = (msg[j].addr << 1); in s6x0_i2c_transfer()
679 dw210x_op_rw(d->udev, in s6x0_i2c_transfer()
690 warn("i2c wr: len=%d is too big!\n", in s6x0_i2c_transfer()
695 obuf[0] = msg[j].len + 1; in s6x0_i2c_transfer()
696 obuf[1] = (msg[j].addr << 1); in s6x0_i2c_transfer()
698 dw210x_op_rw(d->udev, 0x80, 0, 0, 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()
733 case 1: in su3000_i2c_transfer()
737 state->data[1] = 3; 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()
748 msg[0].buf[1] = state->data[0]; in su3000_i2c_transfer()
749 msg[0].buf[0] = state->data[1]; in su3000_i2c_transfer()
753 warn("i2c wr: len=%d is too big!\n", in su3000_i2c_transfer()
761 state->data[1] = msg[0].addr; in su3000_i2c_transfer()
766 if (dvb_usb_generic_rw(d, state->data, msg[0].len + 3, in su3000_i2c_transfer()
767 state->data, 1, 0) < 0) in su3000_i2c_transfer()
775 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
780 if (1 + msg[1].len > sizeof(state->data)) { in su3000_i2c_transfer()
781 warn("i2c rd: len=%d is too big!\n", in su3000_i2c_transfer()
782 msg[1].len); in su3000_i2c_transfer()
788 state->data[1] = msg[0].len; 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()
794 state->data, msg[1].len + 1, 0) < 0) in su3000_i2c_transfer()
797 memcpy(msg[1].buf, &state->data[1], msg[1].len); 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
879 .addr = 0xa0 >> 1, in s6x0_read_mac_address()
882 .len = 1, in s6x0_read_mac_address()
884 .addr = 0xa0 >> 1, in s6x0_read_mac_address()
887 .len = 1, in s6x0_read_mac_address()
893 ret = s6x0_i2c_transfer(&d->i2c_adap, msg, 2); in s6x0_read_mac_address()
920 .len = 1 in su3000_streaming_ctrl()
923 i2c_transfer(&adap->dev->i2c_adap, &msg, 1); in su3000_streaming_ctrl()
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()
939 state->data[1] = 0; in su3000_power_ctrl()
941 state->initialized = 1; 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
965 .len = 1, in su3000_read_mac_address()
971 obuf[1] = 0xf0 + i; in su3000_read_mac_address()
972 if (i2c_transfer(&d->i2c_adap, msg, 2) != 2) in su3000_read_mac_address()
1011 i2c_transfer(&udev_adap->dev->i2c_adap, &msg, 1); 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()
1032 static u8 led_on[] = { 1 }; in dw210x_led_ctrl()
1037 .len = 1 in dw210x_led_ctrl()
1043 i2c_transfer(&udev_adap->dev->i2c_adap, &msg, 1); in dw210x_led_ctrl()
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()
1059 st->last_lock = (*status & FE_HAS_LOCK) ? 1 : 0; in tt_s2_4600_read_status()
1067 .invert = 1,
1088 .invert = 1,
1101 .clk_out_div = 1,
1107 .ci_mode = 1,
1113 .clk_out_div = 1,
1140 .tun1_adc = 1,/* 1 Vpp */
1147 .clk_div = 1,
1165 .ci_mode = 1,
1170 .i2c_address = 0x6c, /* (0xd8 >> 1) */
1172 .ts_clock_inv = 1,
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()
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()
1240 if (demod_probe & 1) { 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
1335 u8 obuf[] = {7, 1}; in stv0288_frontend_attach()
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()
1359 u8 obuf[] = {7, 1}; 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
1382 u8 obuf[] = {7, 1}; in prof_7500_frontend_attach()
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()
1406 state->data[1] = 0x80; in su3000_frontend_attach()
1409 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1413 state->data[1] = 0x02; 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()
1421 state->data[1] = 0x83; in su3000_frontend_attach()
1424 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in su3000_frontend_attach()
1428 state->data[1] = 0x83; 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()
1465 state->data[1] = 0x87; in t220_frontend_attach()
1468 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1472 state->data[1] = 0x86; 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()
1479 state->data[1] = 0x80; in t220_frontend_attach()
1482 if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) in t220_frontend_attach()
1488 state->data[1] = 0x80; 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()
1553 state->data[1] = 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()
1567 return 1; 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()
1584 state->data[1] = 0x80; 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()
1591 state->data[1] = 0x02; 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()
1599 state->data[1] = 0x83; 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()
1606 state->data[1] = 0x83; 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()
1618 demod_addr = -1; 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()
1644 m88ds3103_pdata.lnb_hv_pol = 1; 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
1726 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in dw2102_rc_query()
1729 __func__, key[0], key[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
1747 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in prof_rc_query()
1750 __func__, key[0], key[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
1769 if (d->props.i2c_algo->master_xfer(&d->i2c_adap, &msg, 1) == 1) { in su3000_rc_query()
1772 __func__, key[0], key[1]); in su3000_rc_query()
1773 rc_keydown(d->rc_dev, RC_PROTO_RC5, in su3000_rc_query()
1774 RC_SCANCODE_RC5(key[1], key[0]), 0); in su3000_rc_query()
1873 reset = 1; in dw2102_load_firmware()
1875 dw210x_op_rw(dev, 0xa0, 0x7f92, 0, &reset, 1, DW210X_WRITE_MSG); in dw2102_load_firmware()
1876 dw210x_op_rw(dev, 0xa0, 0xe600, 0, &reset, 1, DW210X_WRITE_MSG); in dw2102_load_firmware()
1891 if (ret || dw210x_op_rw(dev, 0xa0, 0x7f92, 0, &reset, 1, in dw2102_load_firmware()
1892 DW210X_WRITE_MSG) != 1) { in dw2102_load_firmware()
1896 if (ret || dw210x_op_rw(dev, 0xa0, 0xe600, 0, &reset, 1, in dw2102_load_firmware()
1897 DW210X_WRITE_MSG) != 1) { in dw2102_load_firmware()
1907 reset = 1; in dw2102_load_firmware()
1908 dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1, in dw2102_load_firmware()
1932 reset16[1] = 1; in dw2102_load_firmware()
1969 .no_reconnect = 1,
1983 .num_adapters = 1,
1988 .num_frontends = 1,
2025 .no_reconnect = 1,
2038 .num_adapters = 1,
2043 .num_frontends = 1,
2076 .no_reconnect = 1,
2089 .num_adapters = 1,
2094 .num_frontends = 1,
2111 .num_device_descs = 1,
2125 .no_reconnect = 1,
2137 .num_adapters = 1,
2142 .num_frontends = 1,
2158 .num_device_descs = 1,
2172 .no_reconnect = 1,
2184 .num_adapters = 1,
2189 .num_frontends = 1,
2205 .num_device_descs = 1,
2219 .no_reconnect = 1,
2231 .num_adapters = 1,
2236 .num_frontends = 1,
2258 {"TeVii S480.1 USB",
2274 .no_reconnect = 1,
2286 .num_adapters = 1,
2291 .num_frontends = 1,
2307 .num_device_descs = 1,
2321 .num_adapters = 1,
2339 .num_frontends = 1,
2382 { "Terratec Cinergy S2 PCIe Dual Port 1",
2402 .num_adapters = 1,
2420 .num_frontends = 1,
2455 .num_adapters = 1,
2473 .num_frontends = 1,
2490 .num_device_descs = 1,
2504 .num_adapters = 1,
2522 .num_frontends = 1,
2545 { "TeVii S482 (tuner 1)",
2598 struct dvb_usb_device *d = usb_get_intfdata(intf); in dw2102_disconnect() local
2599 struct dw2102_state *st = d->priv; in dw2102_disconnect()