struct af9005_fe_state {
struct dvb_usb_device *d;
- struct dvb_frontend *tuner;
-
fe_status_t stat;
/* retraining parameters */
u8 temp;
int ret;
- if (state->tuner == NULL)
+ if (fe->ops.tuner_ops.release == NULL)
return -ENODEV;
*stat = 0;
static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber)
{
struct af9005_fe_state *state = fe->demodulator_priv;
- if (state->tuner == NULL)
+ if (fe->ops.tuner_ops.release == NULL)
return -ENODEV;
af9005_fe_refresh_state(fe);
*ber = state->ber;
static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
{
struct af9005_fe_state *state = fe->demodulator_priv;
- if (state->tuner == NULL)
+ if (fe->ops.tuner_ops.release == NULL)
return -ENODEV;
af9005_fe_refresh_state(fe);
*unc = state->unc;
int ret;
u8 if_gain, rf_gain;
- if (state->tuner == NULL)
+ if (fe->ops.tuner_ops.release == NULL)
return -ENODEV;
ret =
af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain,
return ret;
/* attach tuner and init */
- if (state->tuner == NULL) {
+ if (fe->ops.tuner_ops.release == NULL) {
/* read tuner and board id from eeprom */
ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2);
if (ret) {
return ret;
}
if1 = (u16) (buf[0] << 8) + buf[1];
- state->tuner =
- dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
- &af9005_mt2060_config, if1);
- if (state->tuner == NULL) {
+ if (dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
+ &af9005_mt2060_config, if1) == NULL) {
deb_info("MT2060 attach failed\n");
return -ENODEV;
}
break;
case 3: /* QT1010 */
case 9: /* QT1010B */
- state->tuner =
- dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
- &af9005_qt1010_config);
- if (state->tuner == NULL) {
+ if (dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
+ &af9005_qt1010_config) ==NULL) {
deb_info("QT1010 attach failed\n");
return -ENODEV;
}
err("Unsupported tuner type %d", buf[0]);
return -ENODEV;
}
- ret = state->tuner->ops.tuner_ops.init(state->tuner);
+ ret = fe->ops.tuner_ops.init(fe);
if (ret)
return ret;
}
deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency,
fep->u.ofdm.bandwidth);
- if (state->tuner == NULL) {
+ if (fe->ops.tuner_ops.release == NULL) {
err("Tuner not attached");
return -ENODEV;
}
return ret;
/* set tuner */
deb_info("set tuner\n");
- ret = state->tuner->ops.tuner_ops.set_params(state->tuner, fep);
+ ret = fe->ops.tuner_ops.set_params(fe, fep);
if (ret)
return ret;
{
struct af9005_fe_state *state =
(struct af9005_fe_state *)fe->demodulator_priv;
- if (state->tuner != NULL && state->tuner->ops.tuner_ops.release != NULL) {
- state->tuner->ops.tuner_ops.release(state->tuner);
-#ifdef CONFIG_DVB_CORE_ATTACH
- symbol_put_addr(state->tuner->ops.tuner_ops.release);
-#endif
- }
kfree(state);
}
deb_info("attaching frontend af9005\n");
state->d = d;
- state->tuner = NULL;
state->opened = 0;
memcpy(&state->frontend.ops, &af9005_fe_ops,