aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSoeren Moch <Soeren.Moch@stud.uni-hannover.de>2008-01-25 04:27:06 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-25 16:05:17 -0500
commit853ea132c75ff2c4e3c3aaf61bf3ef5779774dbc (patch)
treea70a35f555011abdccc7ce86abcdd58a5eb05df2
parent13b83b5d516abe2610ae7812267d7d322050bf68 (diff)
V4L/DVB (7070): Fix some tuning problems
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>
-rw-r--r--drivers/media/dvb/frontends/dib3000mc.c8
-rw-r--r--drivers/media/dvb/frontends/dib7000m.c9
-rw-r--r--drivers/media/dvb/frontends/dib7000p.c8
3 files changed, 17 insertions, 8 deletions
diff --git a/drivers/media/dvb/frontends/dib3000mc.c b/drivers/media/dvb/frontends/dib3000mc.c
index 3667f8e48091..fa851601e7d4 100644
--- a/drivers/media/dvb/frontends/dib3000mc.c
+++ b/drivers/media/dvb/frontends/dib3000mc.c
@@ -684,6 +684,9 @@ static int dib3000mc_set_frontend(struct dvb_frontend* fe,
684 struct dvb_frontend_parameters *fep) 684 struct dvb_frontend_parameters *fep)
685{ 685{
686 struct dib3000mc_state *state = fe->demodulator_priv; 686 struct dib3000mc_state *state = fe->demodulator_priv;
687 int ret;
688
689 dib3000mc_set_output_mode(state, OUTMODE_HIGH_Z);
687 690
688 state->current_bandwidth = fep->u.ofdm.bandwidth; 691 state->current_bandwidth = fep->u.ofdm.bandwidth;
689 dib3000mc_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth)); 692 dib3000mc_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
@@ -715,10 +718,11 @@ static int dib3000mc_set_frontend(struct dvb_frontend* fe,
715 dib3000mc_get_frontend(fe, fep); 718 dib3000mc_get_frontend(fe, fep);
716 } 719 }
717 720
721 ret = dib3000mc_tune(fe, fep);
722
718 /* make this a config parameter */ 723 /* make this a config parameter */
719 dib3000mc_set_output_mode(state, OUTMODE_MPEG2_FIFO); 724 dib3000mc_set_output_mode(state, OUTMODE_MPEG2_FIFO);
720 725 return ret;
721 return dib3000mc_tune(fe, fep);
722} 726}
723 727
724static int dib3000mc_read_status(struct dvb_frontend *fe, fe_status_t *stat) 728static int dib3000mc_read_status(struct dvb_frontend *fe, fe_status_t *stat)
diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c
index fb18441a8c57..5f1375e30dfc 100644
--- a/drivers/media/dvb/frontends/dib7000m.c
+++ b/drivers/media/dvb/frontends/dib7000m.c
@@ -1171,7 +1171,9 @@ static int dib7000m_set_frontend(struct dvb_frontend* fe,
1171 struct dvb_frontend_parameters *fep) 1171 struct dvb_frontend_parameters *fep)
1172{ 1172{
1173 struct dib7000m_state *state = fe->demodulator_priv; 1173 struct dib7000m_state *state = fe->demodulator_priv;
1174 int time; 1174 int time, ret;
1175
1176 dib7000m_set_output_mode(state, OUTMODE_HIGH_Z);
1175 1177
1176 state->current_bandwidth = fep->u.ofdm.bandwidth; 1178 state->current_bandwidth = fep->u.ofdm.bandwidth;
1177 dib7000m_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth)); 1179 dib7000m_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
@@ -1206,10 +1208,11 @@ static int dib7000m_set_frontend(struct dvb_frontend* fe,
1206 dib7000m_get_frontend(fe, fep); 1208 dib7000m_get_frontend(fe, fep);
1207 } 1209 }
1208 1210
1211 ret = dib7000m_tune(fe, fep);
1212
1209 /* make this a config parameter */ 1213 /* make this a config parameter */
1210 dib7000m_set_output_mode(state, OUTMODE_MPEG2_FIFO); 1214 dib7000m_set_output_mode(state, OUTMODE_MPEG2_FIFO);
1211 1215 return ret;
1212 return dib7000m_tune(fe, fep);
1213} 1216}
1214 1217
1215static int dib7000m_read_status(struct dvb_frontend *fe, fe_status_t *stat) 1218static int dib7000m_read_status(struct dvb_frontend *fe, fe_status_t *stat)
diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c
index f45bcfc51cf8..0396a6f31ef8 100644
--- a/drivers/media/dvb/frontends/dib7000p.c
+++ b/drivers/media/dvb/frontends/dib7000p.c
@@ -1128,8 +1128,9 @@ static int dib7000p_set_frontend(struct dvb_frontend* fe,
1128 struct dvb_frontend_parameters *fep) 1128 struct dvb_frontend_parameters *fep)
1129{ 1129{
1130 struct dib7000p_state *state = fe->demodulator_priv; 1130 struct dib7000p_state *state = fe->demodulator_priv;
1131 int time; 1131 int time, ret;
1132 1132
1133 dib7000p_set_output_mode(state, OUTMODE_HIGH_Z);
1133 state->current_bandwidth = fep->u.ofdm.bandwidth; 1134 state->current_bandwidth = fep->u.ofdm.bandwidth;
1134 dib7000p_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth)); 1135 dib7000p_set_bandwidth(state, BANDWIDTH_TO_KHZ(fep->u.ofdm.bandwidth));
1135 1136
@@ -1166,10 +1167,11 @@ static int dib7000p_set_frontend(struct dvb_frontend* fe,
1166 dib7000p_get_frontend(fe, fep); 1167 dib7000p_get_frontend(fe, fep);
1167 } 1168 }
1168 1169
1170 ret = dib7000p_tune(fe, fep);
1171
1169 /* make this a config parameter */ 1172 /* make this a config parameter */
1170 dib7000p_set_output_mode(state, OUTMODE_MPEG2_FIFO); 1173 dib7000p_set_output_mode(state, OUTMODE_MPEG2_FIFO);
1171 1174 return ret;
1172 return dib7000p_tune(fe, fep);
1173} 1175}
1174 1176
1175static int dib7000p_read_status(struct dvb_frontend *fe, fe_status_t *stat) 1177static int dib7000p_read_status(struct dvb_frontend *fe, fe_status_t *stat)