Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 63191
b: refs/heads/master
c: 1aebb78
h: refs/heads/master
i:
  63189: f1d7c59
  63187: 53eda94
  63183: 1f8ed27
v: v3
  • Loading branch information
Juergen Beisert authored and Greg Kroah-Hartman committed Jul 30, 2007
1 parent 5abd2fc commit def0a81
Show file tree
Hide file tree
Showing 18 changed files with 292 additions and 346 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 970e2dfa672b5b26967b0983e24b8d92f972c907
refs/heads/master: 1aebb781e339b04c64e140860447f2a66c08417f
47 changes: 31 additions & 16 deletions trunk/drivers/media/dvb/dvb-usb/af9005-fe.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@

struct af9005_fe_state {
struct dvb_usb_device *d;
struct dvb_frontend *tuner;

fe_status_t stat;

/* retraining parameters */
Expand Down Expand Up @@ -343,8 +345,8 @@ static int af9005_reset_pre_viterbi(struct dvb_frontend *fe)
1 & 0xff);
if (ret)
return ret;
ret = af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
1 >> 8);
af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
1 >> 8);
if (ret)
return ret;
/* reset pre viterbi error count */
Expand Down Expand Up @@ -445,7 +447,7 @@ static int af9005_fe_read_status(struct dvb_frontend *fe, fe_status_t * stat)
u8 temp;
int ret;

if (fe->ops.tuner_ops.release == NULL)
if (state->tuner == NULL)
return -ENODEV;

*stat = 0;
Expand Down Expand Up @@ -491,7 +493,7 @@ static int af9005_fe_read_status(struct dvb_frontend *fe, fe_status_t * stat)
static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber)
{
struct af9005_fe_state *state = fe->demodulator_priv;
if (fe->ops.tuner_ops.release == NULL)
if (state->tuner == NULL)
return -ENODEV;
af9005_fe_refresh_state(fe);
*ber = state->ber;
Expand All @@ -501,7 +503,7 @@ static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber)
static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
{
struct af9005_fe_state *state = fe->demodulator_priv;
if (fe->ops.tuner_ops.release == NULL)
if (state->tuner == NULL)
return -ENODEV;
af9005_fe_refresh_state(fe);
*unc = state->unc;
Expand All @@ -515,7 +517,7 @@ static int af9005_fe_read_signal_strength(struct dvb_frontend *fe,
int ret;
u8 if_gain, rf_gain;

if (fe->ops.tuner_ops.release == NULL)
if (state->tuner == NULL)
return -ENODEV;
ret =
af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain,
Expand Down Expand Up @@ -879,8 +881,10 @@ static int af9005_fe_init(struct dvb_frontend *fe)
af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
reg_ofdm_rst_pos, reg_ofdm_rst_len, 1)))
return ret;
ret = af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
reg_ofdm_rst_pos, reg_ofdm_rst_len, 0);
if ((ret =
af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
reg_ofdm_rst_pos, reg_ofdm_rst_len, 0)))
return ret;

if (ret)
return ret;
Expand Down Expand Up @@ -1037,7 +1041,7 @@ static int af9005_fe_init(struct dvb_frontend *fe)
return ret;

/* attach tuner and init */
if (fe->ops.tuner_ops.release == NULL) {
if (state->tuner == NULL) {
/* read tuner and board id from eeprom */
ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2);
if (ret) {
Expand All @@ -1054,16 +1058,20 @@ static int af9005_fe_init(struct dvb_frontend *fe)
return ret;
}
if1 = (u16) (buf[0] << 8) + buf[1];
if (dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
&af9005_mt2060_config, if1) == NULL) {
state->tuner =
dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
&af9005_mt2060_config, if1);
if (state->tuner == NULL) {
deb_info("MT2060 attach failed\n");
return -ENODEV;
}
break;
case 3: /* QT1010 */
case 9: /* QT1010B */
if (dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
&af9005_qt1010_config) ==NULL) {
state->tuner =
dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
&af9005_qt1010_config);
if (state->tuner == NULL) {
deb_info("QT1010 attach failed\n");
return -ENODEV;
}
Expand All @@ -1072,7 +1080,7 @@ static int af9005_fe_init(struct dvb_frontend *fe)
err("Unsupported tuner type %d", buf[0]);
return -ENODEV;
}
ret = fe->ops.tuner_ops.init(fe);
ret = state->tuner->ops.tuner_ops.init(state->tuner);
if (ret)
return ret;
}
Expand Down Expand Up @@ -1110,7 +1118,7 @@ static int af9005_fe_set_frontend(struct dvb_frontend *fe,

deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency,
fep->u.ofdm.bandwidth);
if (fe->ops.tuner_ops.release == NULL) {
if (state->tuner == NULL) {
err("Tuner not attached");
return -ENODEV;
}
Expand Down Expand Up @@ -1191,7 +1199,7 @@ static int af9005_fe_set_frontend(struct dvb_frontend *fe,
return ret;
/* set tuner */
deb_info("set tuner\n");
ret = fe->ops.tuner_ops.set_params(fe, fep);
ret = state->tuner->ops.tuner_ops.set_params(state->tuner, fep);
if (ret)
return ret;

Expand Down Expand Up @@ -1427,6 +1435,12 @@ static void af9005_fe_release(struct dvb_frontend *fe)
{
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);
}

Expand All @@ -1444,6 +1458,7 @@ struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d)
deb_info("attaching frontend af9005\n");

state->d = d;
state->tuner = NULL;
state->opened = 0;

memcpy(&state->frontend.ops, &af9005_fe_ops,
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/media/dvb/frontends/dvb-pll.c
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ static struct dvb_pll_desc dvb_pll_opera1 = {

/* Philips FCV1236D
*/
static struct dvb_pll_desc dvb_pll_fcv1236d = {
struct dvb_pll_desc dvb_pll_fcv1236d = {
/* Bit_0: RF Input select
* Bit_1: 0=digital, 1=analog
*/
Expand Down
Loading

0 comments on commit def0a81

Please sign in to comment.