Lines Matching +full:isoc +full:- +full:in
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2010-2014 Michael Krufky ([email protected])
5 * see Documentation/driver-api/media/drivers/dvb-usb.rst for more information
13 #include "mxl111sf-reg.h"
14 #include "mxl111sf-phy.h"
15 #include "mxl111sf-i2c.h"
16 #include "mxl111sf-gpio.h"
18 #include "mxl111sf-demod.h"
19 #include "mxl111sf-tuner.h"
26 MODULE_PARM_DESC(debug, "set debugging level (1=info, 2=xfer, 4=i2c, 8=reg, 16=adv (or-able)).");
29 module_param_named(isoc, dvb_usb_mxl111sf_isoc, int, 0644);
30 MODULE_PARM_DESC(isoc, "enable usb isoc xfer (0=bulk, 1=isoc).");
55 struct dvb_usb_device *d = state->d; in mxl111sf_ctrl_msg()
56 int wo = (rbuf == NULL || rlen == 0); /* write-only */ in mxl111sf_ctrl_msg()
61 return -EOPNOTSUPP; in mxl111sf_ctrl_msg()
66 mutex_lock(&state->msg_lock); in mxl111sf_ctrl_msg()
67 memset(state->sndbuf, 0, 1+wlen); in mxl111sf_ctrl_msg()
68 memset(state->rcvbuf, 0, rlen); in mxl111sf_ctrl_msg()
70 state->sndbuf[0] = cmd; in mxl111sf_ctrl_msg()
71 memcpy(&state->sndbuf[1], wbuf, wlen); in mxl111sf_ctrl_msg()
73 ret = (wo) ? dvb_usbv2_generic_write(d, state->sndbuf, 1+wlen) : in mxl111sf_ctrl_msg()
74 dvb_usbv2_generic_rw(d, state->sndbuf, 1+wlen, state->rcvbuf, in mxl111sf_ctrl_msg()
78 memcpy(rbuf, state->rcvbuf, rlen); in mxl111sf_ctrl_msg()
80 mutex_unlock(&state->msg_lock); in mxl111sf_ctrl_msg()
87 /* ------------------------------------------------------------------------ */
108 ret = -EINVAL; in mxl111sf_read_reg()
129 /* ------------------------------------------------------------------------ */
159 /* ------------------------------------------------------------------------ */
183 /* ------------------------------------------------------------------------ */
191 if ((state->chip_id) && (state->chip_ver)) in mxl1x1sf_get_chip_info()
197 state->chip_id = id; in mxl1x1sf_get_chip_info()
202 state->chip_ver = ver; in mxl1x1sf_get_chip_info()
217 state->chip_rev = MXL111SF_V6; in mxl1x1sf_get_chip_info()
221 state->chip_rev = MXL111SF_V8_100; in mxl1x1sf_get_chip_info()
225 state->chip_rev = MXL111SF_V8_200; in mxl1x1sf_get_chip_info()
229 state->chip_rev = 0; in mxl1x1sf_get_chip_info()
250 "in order to succeed."); \
255 /* ------------------------------------------------------------------------ */
269 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe->id]; in mxl111sf_adap_fe_init()
273 if (!state->chip_id) { in mxl111sf_adap_fe_init()
280 mutex_lock(&state->fe_lock); in mxl111sf_adap_fe_init()
282 state->alt_mode = adap_state->alt_mode; in mxl111sf_adap_fe_init()
284 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_adap_fe_init()
291 err = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_adap_fe_init()
299 if ((MXL111SF_GPIO_MOD_DVBT != adap_state->gpio_mode) && in mxl111sf_adap_fe_init()
300 (state->chip_rev > MXL111SF_V6)) { in mxl111sf_adap_fe_init()
307 state->gpio_mode = adap_state->gpio_mode; in mxl111sf_adap_fe_init()
308 err = mxl111sf_gpio_mode_switch(state, state->gpio_mode); in mxl111sf_adap_fe_init()
311 err = fe->ops.init(fe); in mxl111sf_adap_fe_init()
317 return (adap_state->fe_init) ? adap_state->fe_init(fe) : 0; in mxl111sf_adap_fe_init()
319 return -ENODEV; in mxl111sf_adap_fe_init()
325 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe->id]; in mxl111sf_adap_fe_sleep()
329 if (!state->chip_id) { in mxl111sf_adap_fe_sleep()
336 err = (adap_state->fe_sleep) ? adap_state->fe_sleep(fe) : 0; in mxl111sf_adap_fe_sleep()
338 mutex_unlock(&state->fe_lock); in mxl111sf_adap_fe_sleep()
342 return -ENODEV; in mxl111sf_adap_fe_sleep()
349 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe->id]; in mxl111sf_ep6_streaming_ctrl()
358 adap_state->ep6_clockphase, in mxl111sf_ep6_streaming_ctrl()
390 if (state->chip_rev > MXL111SF_V6) in mxl111sf_ep5_streaming_ctrl()
412 /* ------------------------------------------------------------------------ */
429 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe_id]; in mxl111sf_lgdt3305_frontend_attach()
434 /* save a pointer to the dvb_usb_device in device state */ in mxl111sf_lgdt3305_frontend_attach()
435 state->d = d; in mxl111sf_lgdt3305_frontend_attach()
436 adap_state->alt_mode = (dvb_usb_mxl111sf_isoc) ? 2 : 1; in mxl111sf_lgdt3305_frontend_attach()
437 state->alt_mode = adap_state->alt_mode; in mxl111sf_lgdt3305_frontend_attach()
439 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_lgdt3305_frontend_attach()
442 state->gpio_mode = MXL111SF_GPIO_MOD_ATSC; in mxl111sf_lgdt3305_frontend_attach()
443 adap_state->gpio_mode = state->gpio_mode; in mxl111sf_lgdt3305_frontend_attach()
444 adap_state->device_mode = MXL_TUNER_MODE; in mxl111sf_lgdt3305_frontend_attach()
445 adap_state->ep6_clockphase = 1; in mxl111sf_lgdt3305_frontend_attach()
454 ret = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_lgdt3305_frontend_attach()
468 ret = mxl111sf_gpio_mode_switch(state, state->gpio_mode); in mxl111sf_lgdt3305_frontend_attach()
472 adap->fe[fe_id] = dvb_attach(lgdt3305_attach, in mxl111sf_lgdt3305_frontend_attach()
474 &d->i2c_adap); in mxl111sf_lgdt3305_frontend_attach()
475 if (adap->fe[fe_id]) { in mxl111sf_lgdt3305_frontend_attach()
476 state->num_frontends++; in mxl111sf_lgdt3305_frontend_attach()
477 adap_state->fe_init = adap->fe[fe_id]->ops.init; in mxl111sf_lgdt3305_frontend_attach()
478 adap->fe[fe_id]->ops.init = mxl111sf_adap_fe_init; in mxl111sf_lgdt3305_frontend_attach()
479 adap_state->fe_sleep = adap->fe[fe_id]->ops.sleep; in mxl111sf_lgdt3305_frontend_attach()
480 adap->fe[fe_id]->ops.sleep = mxl111sf_adap_fe_sleep; in mxl111sf_lgdt3305_frontend_attach()
483 ret = -EIO; in mxl111sf_lgdt3305_frontend_attach()
500 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe_id]; in mxl111sf_lg2160_frontend_attach()
505 /* save a pointer to the dvb_usb_device in device state */ in mxl111sf_lg2160_frontend_attach()
506 state->d = d; in mxl111sf_lg2160_frontend_attach()
507 adap_state->alt_mode = (dvb_usb_mxl111sf_isoc) ? 2 : 1; in mxl111sf_lg2160_frontend_attach()
508 state->alt_mode = adap_state->alt_mode; in mxl111sf_lg2160_frontend_attach()
510 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_lg2160_frontend_attach()
513 state->gpio_mode = MXL111SF_GPIO_MOD_MH; in mxl111sf_lg2160_frontend_attach()
514 adap_state->gpio_mode = state->gpio_mode; in mxl111sf_lg2160_frontend_attach()
515 adap_state->device_mode = MXL_TUNER_MODE; in mxl111sf_lg2160_frontend_attach()
516 adap_state->ep6_clockphase = 1; in mxl111sf_lg2160_frontend_attach()
525 ret = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_lg2160_frontend_attach()
539 ret = mxl111sf_gpio_mode_switch(state, state->gpio_mode); in mxl111sf_lg2160_frontend_attach()
547 adap->fe[fe_id] = dvb_attach(lg2160_attach, in mxl111sf_lg2160_frontend_attach()
549 &d->i2c_adap); in mxl111sf_lg2160_frontend_attach()
550 if (adap->fe[fe_id]) { in mxl111sf_lg2160_frontend_attach()
551 state->num_frontends++; in mxl111sf_lg2160_frontend_attach()
552 adap_state->fe_init = adap->fe[fe_id]->ops.init; in mxl111sf_lg2160_frontend_attach()
553 adap->fe[fe_id]->ops.init = mxl111sf_adap_fe_init; in mxl111sf_lg2160_frontend_attach()
554 adap_state->fe_sleep = adap->fe[fe_id]->ops.sleep; in mxl111sf_lg2160_frontend_attach()
555 adap->fe[fe_id]->ops.sleep = mxl111sf_adap_fe_sleep; in mxl111sf_lg2160_frontend_attach()
558 ret = -EIO; in mxl111sf_lg2160_frontend_attach()
585 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe_id]; in mxl111sf_lg2161_frontend_attach()
590 /* save a pointer to the dvb_usb_device in device state */ in mxl111sf_lg2161_frontend_attach()
591 state->d = d; in mxl111sf_lg2161_frontend_attach()
592 adap_state->alt_mode = (dvb_usb_mxl111sf_isoc) ? 2 : 1; in mxl111sf_lg2161_frontend_attach()
593 state->alt_mode = adap_state->alt_mode; in mxl111sf_lg2161_frontend_attach()
595 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_lg2161_frontend_attach()
598 state->gpio_mode = MXL111SF_GPIO_MOD_MH; in mxl111sf_lg2161_frontend_attach()
599 adap_state->gpio_mode = state->gpio_mode; in mxl111sf_lg2161_frontend_attach()
600 adap_state->device_mode = MXL_TUNER_MODE; in mxl111sf_lg2161_frontend_attach()
601 adap_state->ep6_clockphase = 1; in mxl111sf_lg2161_frontend_attach()
610 ret = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_lg2161_frontend_attach()
624 ret = mxl111sf_gpio_mode_switch(state, state->gpio_mode); in mxl111sf_lg2161_frontend_attach()
632 adap->fe[fe_id] = dvb_attach(lg2160_attach, in mxl111sf_lg2161_frontend_attach()
633 (MXL111SF_V8_200 == state->chip_rev) ? in mxl111sf_lg2161_frontend_attach()
636 &d->i2c_adap); in mxl111sf_lg2161_frontend_attach()
637 if (adap->fe[fe_id]) { in mxl111sf_lg2161_frontend_attach()
638 state->num_frontends++; in mxl111sf_lg2161_frontend_attach()
639 adap_state->fe_init = adap->fe[fe_id]->ops.init; in mxl111sf_lg2161_frontend_attach()
640 adap->fe[fe_id]->ops.init = mxl111sf_adap_fe_init; in mxl111sf_lg2161_frontend_attach()
641 adap_state->fe_sleep = adap->fe[fe_id]->ops.sleep; in mxl111sf_lg2161_frontend_attach()
642 adap->fe[fe_id]->ops.sleep = mxl111sf_adap_fe_sleep; in mxl111sf_lg2161_frontend_attach()
645 ret = -EIO; in mxl111sf_lg2161_frontend_attach()
672 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe_id]; in mxl111sf_lg2161_ep6_frontend_attach()
677 /* save a pointer to the dvb_usb_device in device state */ in mxl111sf_lg2161_ep6_frontend_attach()
678 state->d = d; in mxl111sf_lg2161_ep6_frontend_attach()
679 adap_state->alt_mode = (dvb_usb_mxl111sf_isoc) ? 2 : 1; in mxl111sf_lg2161_ep6_frontend_attach()
680 state->alt_mode = adap_state->alt_mode; in mxl111sf_lg2161_ep6_frontend_attach()
682 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_lg2161_ep6_frontend_attach()
685 state->gpio_mode = MXL111SF_GPIO_MOD_MH; in mxl111sf_lg2161_ep6_frontend_attach()
686 adap_state->gpio_mode = state->gpio_mode; in mxl111sf_lg2161_ep6_frontend_attach()
687 adap_state->device_mode = MXL_TUNER_MODE; in mxl111sf_lg2161_ep6_frontend_attach()
688 adap_state->ep6_clockphase = 0; in mxl111sf_lg2161_ep6_frontend_attach()
697 ret = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_lg2161_ep6_frontend_attach()
711 ret = mxl111sf_gpio_mode_switch(state, state->gpio_mode); in mxl111sf_lg2161_ep6_frontend_attach()
719 adap->fe[fe_id] = dvb_attach(lg2160_attach, in mxl111sf_lg2161_ep6_frontend_attach()
720 (MXL111SF_V8_200 == state->chip_rev) ? in mxl111sf_lg2161_ep6_frontend_attach()
723 &d->i2c_adap); in mxl111sf_lg2161_ep6_frontend_attach()
724 if (adap->fe[fe_id]) { in mxl111sf_lg2161_ep6_frontend_attach()
725 state->num_frontends++; in mxl111sf_lg2161_ep6_frontend_attach()
726 adap_state->fe_init = adap->fe[fe_id]->ops.init; in mxl111sf_lg2161_ep6_frontend_attach()
727 adap->fe[fe_id]->ops.init = mxl111sf_adap_fe_init; in mxl111sf_lg2161_ep6_frontend_attach()
728 adap_state->fe_sleep = adap->fe[fe_id]->ops.sleep; in mxl111sf_lg2161_ep6_frontend_attach()
729 adap->fe[fe_id]->ops.sleep = mxl111sf_adap_fe_sleep; in mxl111sf_lg2161_ep6_frontend_attach()
732 ret = -EIO; in mxl111sf_lg2161_ep6_frontend_attach()
747 struct mxl111sf_adap_state *adap_state = &state->adap_state[fe_id]; in mxl111sf_attach_demod()
752 /* save a pointer to the dvb_usb_device in device state */ in mxl111sf_attach_demod()
753 state->d = d; in mxl111sf_attach_demod()
754 adap_state->alt_mode = (dvb_usb_mxl111sf_isoc) ? 1 : 2; in mxl111sf_attach_demod()
755 state->alt_mode = adap_state->alt_mode; in mxl111sf_attach_demod()
757 if (usb_set_interface(d->udev, 0, state->alt_mode) < 0) in mxl111sf_attach_demod()
760 state->gpio_mode = MXL111SF_GPIO_MOD_DVBT; in mxl111sf_attach_demod()
761 adap_state->gpio_mode = state->gpio_mode; in mxl111sf_attach_demod()
762 adap_state->device_mode = MXL_SOC_MODE; in mxl111sf_attach_demod()
763 adap_state->ep6_clockphase = 1; in mxl111sf_attach_demod()
772 ret = mxl1x1sf_set_device_mode(state, adap_state->device_mode); in mxl111sf_attach_demod()
786 adap->fe[fe_id] = dvb_attach(mxl111sf_demod_attach, state, in mxl111sf_attach_demod()
788 if (adap->fe[fe_id]) { in mxl111sf_attach_demod()
789 state->num_frontends++; in mxl111sf_attach_demod()
790 adap_state->fe_init = adap->fe[fe_id]->ops.init; in mxl111sf_attach_demod()
791 adap->fe[fe_id]->ops.init = mxl111sf_adap_fe_init; in mxl111sf_attach_demod()
792 adap_state->fe_sleep = adap->fe[fe_id]->ops.sleep; in mxl111sf_attach_demod()
793 adap->fe[fe_id]->ops.sleep = mxl111sf_adap_fe_sleep; in mxl111sf_attach_demod()
796 ret = -EIO; in mxl111sf_attach_demod()
825 /* FIXME: must force EXTERNAL for QAM - done elsewhere */ in mxl111sf_ant_hunt()
833 fe->ops.tuner_ops.get_rf_strength(fe, &rxPwrA); in mxl111sf_ant_hunt()
837 fe->ops.tuner_ops.get_rf_strength(fe, &rxPwr0); in mxl111sf_ant_hunt()
841 fe->ops.tuner_ops.get_rf_strength(fe, &rxPwr1); in mxl111sf_ant_hunt()
845 fe->ops.tuner_ops.get_rf_strength(fe, &rxPwr2); in mxl111sf_ant_hunt()
875 struct media_device *mdev = dvb_get_media_controller(&adap->dvb_adap); in mxl111sf_attach_tuner()
882 for (i = 0; i < state->num_frontends; i++) { in mxl111sf_attach_tuner()
883 if (dvb_attach(mxl111sf_tuner_attach, adap->fe[i], state, in mxl111sf_attach_tuner()
885 return -EIO; in mxl111sf_attach_tuner()
886 adap->fe[i]->ops.read_signal_strength = adap->fe[i]->ops.tuner_ops.get_rf_strength; in mxl111sf_attach_tuner()
890 state->tuner.function = MEDIA_ENT_F_TUNER; in mxl111sf_attach_tuner()
891 state->tuner.name = "mxl111sf tuner"; in mxl111sf_attach_tuner()
892 state->tuner_pads[MXL111SF_PAD_RF_INPUT].flags = MEDIA_PAD_FL_SINK; in mxl111sf_attach_tuner()
893 state->tuner_pads[MXL111SF_PAD_RF_INPUT].sig_type = PAD_SIGNAL_ANALOG; in mxl111sf_attach_tuner()
894 state->tuner_pads[MXL111SF_PAD_OUTPUT].flags = MEDIA_PAD_FL_SOURCE; in mxl111sf_attach_tuner()
895 state->tuner_pads[MXL111SF_PAD_OUTPUT].sig_type = PAD_SIGNAL_ANALOG; in mxl111sf_attach_tuner()
897 ret = media_entity_pads_init(&state->tuner, in mxl111sf_attach_tuner()
898 MXL111SF_NUM_PADS, state->tuner_pads); in mxl111sf_attach_tuner()
902 ret = media_device_register_entity(mdev, &state->tuner); in mxl111sf_attach_tuner()
938 mutex_init(&state->fe_lock); in mxl111sf_init()
940 if (state->chip_rev > MXL111SF_V6) in mxl111sf_init()
943 ret = i2c_transfer(&d->i2c_adap, msg, 2); in mxl111sf_init()
946 tveeprom_hauppauge_analog(&state->tv, (0x84 == eeprom[0xa0]) ? in mxl111sf_init()
949 switch (state->tv.model) { in mxl111sf_init()
956 __func__, state->tv.model); in mxl111sf_init()
1037 stream->type = USB_BULK; in mxl111sf_stream_config_bulk()
1038 stream->count = 5; in mxl111sf_stream_config_bulk()
1039 stream->endpoint = endpoint; in mxl111sf_stream_config_bulk()
1040 stream->u.bulk.buffersize = 8192; in mxl111sf_stream_config_bulk()
1048 stream->type = USB_ISOC; in mxl111sf_stream_config_isoc()
1049 stream->count = 5; in mxl111sf_stream_config_isoc()
1050 stream->endpoint = endpoint; in mxl111sf_stream_config_isoc()
1051 stream->u.isoc.framesperurb = framesperurb; in mxl111sf_stream_config_isoc()
1052 stream->u.isoc.framesize = framesize; in mxl111sf_stream_config_isoc()
1053 stream->u.isoc.interval = 1; in mxl111sf_stream_config_isoc()
1060 * isoc EP4/ISOC/5/96/564
1065 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_dvbt()
1079 mutex_init(&state->msg_lock); in mxl111sf_probe()
1110 * isoc EP6/ISOC/5/24/3072
1115 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_atsc()
1152 * isoc EP5/ISOC/5/96/200/RAW
1157 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_mh()
1194 * isoc EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
1199 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_atsc_mh()
1201 if (fe->id == 0) { in mxl111sf_get_stream_config_atsc_mh()
1207 } else if (fe->id == 1) { in mxl111sf_get_stream_config_atsc_mh()
1213 } else if (fe->id == 2) { in mxl111sf_get_stream_config_atsc_mh()
1225 pr_debug("%s: fe=%d onoff=%d\n", __func__, fe->id, onoff); in mxl111sf_streaming_ctrl_atsc_mh()
1227 if (fe->id == 0) in mxl111sf_streaming_ctrl_atsc_mh()
1229 else if (fe->id == 1) in mxl111sf_streaming_ctrl_atsc_mh()
1231 else if (fe->id == 2) in mxl111sf_streaming_ctrl_atsc_mh()
1263 * tp isoc EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP6/ISOC/5/24/3072/RAW
1265 * spi isoc EP6/ISOC/5/24/3072 EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
1270 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_mercury()
1272 if (fe->id == 0) { in mxl111sf_get_stream_config_mercury()
1278 } else if (fe->id == 1) { in mxl111sf_get_stream_config_mercury()
1284 } else if (fe->id == 2 && dvb_usb_mxl111sf_spi) { in mxl111sf_get_stream_config_mercury()
1290 } else if (fe->id == 2 && !dvb_usb_mxl111sf_spi) { in mxl111sf_get_stream_config_mercury()
1302 pr_debug("%s: fe=%d onoff=%d\n", __func__, fe->id, onoff); in mxl111sf_streaming_ctrl_mercury()
1304 if (fe->id == 0) in mxl111sf_streaming_ctrl_mercury()
1306 else if (fe->id == 1) in mxl111sf_streaming_ctrl_mercury()
1308 else if (fe->id == 2 && dvb_usb_mxl111sf_spi) in mxl111sf_streaming_ctrl_mercury()
1310 else if (fe->id == 2 && !dvb_usb_mxl111sf_spi) in mxl111sf_streaming_ctrl_mercury()
1342 * tp isoc EP4/ISOC/5/96/564 EP6/ISOC/5/24/3072/RAW
1344 * spi isoc EP4/ISOC/5/96/564 EP5/ISOC/5/96/200/RAW
1349 pr_debug("%s: fe=%d\n", __func__, fe->id); in mxl111sf_get_stream_config_mercury_mh()
1351 if (fe->id == 0) { in mxl111sf_get_stream_config_mercury_mh()
1357 } else if (fe->id == 1 && dvb_usb_mxl111sf_spi) { in mxl111sf_get_stream_config_mercury_mh()
1363 } else if (fe->id == 1 && !dvb_usb_mxl111sf_spi) { in mxl111sf_get_stream_config_mercury_mh()
1375 pr_debug("%s: fe=%d onoff=%d\n", __func__, fe->id, onoff); in mxl111sf_streaming_ctrl_mercury_mh()
1377 if (fe->id == 0) in mxl111sf_streaming_ctrl_mercury_mh()
1379 else if (fe->id == 1 && dvb_usb_mxl111sf_spi) in mxl111sf_streaming_ctrl_mercury_mh()
1381 else if (fe->id == 1 && !dvb_usb_mxl111sf_spi) in mxl111sf_streaming_ctrl_mercury_mh()
1441 …{ DVB_USB_DEVICE(USB_VID_HAUPPAUGE, 0xc613, &mxl111sf_props_mercury, "Hauppauge WinTV-Aero-M", NUL…
1443 …{ DVB_USB_DEVICE(USB_VID_HAUPPAUGE, 0xc61b, &mxl111sf_props_mercury, "Hauppauge WinTV-Aero-M", NUL…