Skip to content

Commit

Permalink
V4L/DVB (7070): Fix some tuning problems
Browse files Browse the repository at this point in the history
The attached patch solves all my vdr tuning problems on a dib7000p
nova-t stick as far as I could check within the last weekend.

It disables streaming while tuning, like that the number of faulty TS
packets is reduced.

Signed-off-by: Soeren Moch <Soeren.Moch@stud.uni-hannover.de>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Soeren Moch authored and Mauro Carvalho Chehab committed Jan 25, 2008
1 parent 13b83b5 commit 853ea13
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
8 changes: 6 additions & 2 deletions drivers/media/dvb/frontends/dib3000mc.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,6 +684,9 @@ static int dib3000mc_set_frontend(struct dvb_frontend* fe,
struct dvb_frontend_parameters *fep)
{
struct dib3000mc_state *state = fe->demodulator_priv;
int ret;

dib3000mc_set_output_mode(state, OUTMODE_HIGH_Z);

state->current_bandwidth = fep->u.ofdm.bandwidth;
dib3000mc_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
Expand Down Expand Up @@ -715,10 +718,11 @@ static int dib3000mc_set_frontend(struct dvb_frontend* fe,
dib3000mc_get_frontend(fe, fep);
}

ret = dib3000mc_tune(fe, fep);

/* make this a config parameter */
dib3000mc_set_output_mode(state, OUTMODE_MPEG2_FIFO);

return dib3000mc_tune(fe, fep);
return ret;
}

static int dib3000mc_read_status(struct dvb_frontend *fe, fe_status_t *stat)
Expand Down
9 changes: 6 additions & 3 deletions drivers/media/dvb/frontends/dib7000m.c
Original file line number Diff line number Diff line change
Expand Up @@ -1171,7 +1171,9 @@ static int dib7000m_set_frontend(struct dvb_frontend* fe,
struct dvb_frontend_parameters *fep)
{
struct dib7000m_state *state = fe->demodulator_priv;
int time;
int time, ret;

dib7000m_set_output_mode(state, OUTMODE_HIGH_Z);

state->current_bandwidth = fep->u.ofdm.bandwidth;
dib7000m_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
Expand Down Expand Up @@ -1206,10 +1208,11 @@ static int dib7000m_set_frontend(struct dvb_frontend* fe,
dib7000m_get_frontend(fe, fep);
}

ret = dib7000m_tune(fe, fep);

/* make this a config parameter */
dib7000m_set_output_mode(state, OUTMODE_MPEG2_FIFO);

return dib7000m_tune(fe, fep);
return ret;
}

static int dib7000m_read_status(struct dvb_frontend *fe, fe_status_t *stat)
Expand Down
8 changes: 5 additions & 3 deletions drivers/media/dvb/frontends/dib7000p.c
Original file line number Diff line number Diff line change
Expand Up @@ -1128,8 +1128,9 @@ static int dib7000p_set_frontend(struct dvb_frontend* fe,
struct dvb_frontend_parameters *fep)
{
struct dib7000p_state *state = fe->demodulator_priv;
int time;
int time, ret;

dib7000p_set_output_mode(state, OUTMODE_HIGH_Z);
state->current_bandwidth = fep->u.ofdm.bandwidth;
dib7000p_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));

Expand Down Expand Up @@ -1166,10 +1167,11 @@ static int dib7000p_set_frontend(struct dvb_frontend* fe,
dib7000p_get_frontend(fe, fep);
}

ret = dib7000p_tune(fe, fep);

/* make this a config parameter */
dib7000p_set_output_mode(state, OUTMODE_MPEG2_FIFO);

return dib7000p_tune(fe, fep);
return ret;
}

static int dib7000p_read_status(struct dvb_frontend *fe, fe_status_t *stat)
Expand Down

0 comments on commit 853ea13

Please sign in to comment.