static int dm04_lme2510_tuner(struct dvb_usb_adapter *adap) { struct dvb_usb_device *d = adap_to_d(adap); struct lme2510_state *st = adap_to_priv(adap); static const char * const tun_msg[] = {"", "TDA8263", "IX2505V", "DVB_PLL_OPERA", "RS2000"}; int ret = 0; switch (st->tuner_config) { case TUNER_LG: if (dvb_attach(tda826x_attach, adap->fe[0], 0x60, &d->i2c_adap, 1)) ret = st->tuner_config; break; case TUNER_S7395: if (dvb_attach(ix2505v_attach , adap->fe[0], &lme_tuner, &d->i2c_adap)) ret = st->tuner_config; break; case TUNER_S0194: if (dvb_attach(dvb_pll_attach , adap->fe[0], 0x60, &d->i2c_adap, DVB_PLL_OPERA1)) ret = st->tuner_config; break; case TUNER_RS2000: if (dvb_attach(ts2020_attach, adap->fe[0], &ts2020_config, &d->i2c_adap)) ret = st->tuner_config; break; default: break; } if (ret) { info("TUN Found %s tuner", tun_msg[ret]); } else { info("TUN No tuner found"); return -ENODEV; } /* Start the Interrupt*/ ret = lme2510_int_read(adap); if (ret < 0) { info("INT Unable to start Interrupt Service"); return -ENODEV; } return ret; }
static int dm04_lme2510_tuner(struct dvb_usb_adapter *adap) { struct lme2510_state *st = adap->dev->priv; char *tun_msg[] = {"", "TDA8263", "IX2505V", "DVB_PLL_OPERA", "RS2000"}; int ret = 0; switch (st->tuner_config) { case TUNER_LG: if (dvb_attach(tda826x_attach, adap->fe_adap[0].fe, 0xc0, &adap->dev->i2c_adap, 1)) ret = st->tuner_config; break; case TUNER_S7395: if (dvb_attach(ix2505v_attach , adap->fe_adap[0].fe, &lme_tuner, &adap->dev->i2c_adap)) ret = st->tuner_config; break; case TUNER_S0194: if (dvb_attach(dvb_pll_attach , adap->fe_adap[0].fe, 0xc0, &adap->dev->i2c_adap, DVB_PLL_OPERA1)) ret = st->tuner_config; break; case TUNER_RS2000: ret = st->tuner_config; break; default: break; } if (ret) info("TUN Found %s tuner", tun_msg[ret]); else { info("TUN No tuner found --- resetting device"); lme_coldreset(adap->dev->udev); return -ENODEV; } ret = lme2510_int_read(adap); if (ret < 0) { info("INT Unable to start Interrupt Service"); return -ENODEV; } return ret; }
static int lme2510_int_service(struct dvb_usb_adapter *adap) { struct dvb_usb_device *d = adap->dev; struct rc_dev *rc; int ret; info("STA Configuring Remote"); rc = rc_allocate_device(); if (!rc) return -ENOMEM; usb_make_path(d->udev, d->rc_phys, sizeof(d->rc_phys)); strlcat(d->rc_phys, "/ir0", sizeof(d->rc_phys)); rc->input_name = "LME2510 Remote Control"; rc->input_phys = d->rc_phys; rc->map_name = RC_MAP_LME2510; rc->driver_name = "LME 2510"; usb_to_input_id(d->udev, &rc->input_id); ret = rc_register_device(rc); if (ret) { rc_free_device(rc); return ret; } d->rc_dev = rc; /* Start the Interupt */ ret = lme2510_int_read(adap); if (ret < 0) { rc_unregister_device(rc); info("INT Unable to start Interupt Service"); return -ENODEV; } return 0; }