summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@linuxtv.org>2009-01-26 01:07:59 -0500
committerDevin Heitmueller <dheitmueller@linuxtv.org>2009-01-26 01:07:59 -0500
commitb1d07a100a489df3cd03e3dc629d76bebce559f7 (patch)
treebcd2b187cfb0784fa5e1f01c897a5ea6ee1e1e4b /linux/drivers/media/dvb
parent8b8d5d53029339f50706bc1a3b099cedae2abf6a (diff)
downloadmediapointer-dvb-s2-b1d07a100a489df3cd03e3dc629d76bebce559f7.tar.gz
mediapointer-dvb-s2-b1d07a100a489df3cd03e3dc629d76bebce559f7.tar.bz2
s5h1409: Perform s5h1409 soft reset after tuning
From: Devin Heitmueller <dheitmueller@linuxtv.org> Just like with the s5h1411, the s5h1409 needs a soft-reset in order for it to know that the tuner has been told to change frequencies. This change changes the behavior from "random tuning times between 500ms to complete tuning lock failures" to "tuning lock consistently within 700ms". Thanks to Robert Krakora <rob.krakora@messagenetsystems.com> for doing initial testing of the patch on the KWorld 330U. Thanks to Andy Walls <awalls@radix.net> for doing testing of the patch on the HVR-1600. Thanks to Michael Krufky <mkrufky@linuxtv.org> for doing additional testing. Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/dvb')
-rw-r--r--linux/drivers/media/dvb/frontends/s5h1409.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/frontends/s5h1409.c b/linux/drivers/media/dvb/frontends/s5h1409.c
index cf4d8936b..3e08d985d 100644
--- a/linux/drivers/media/dvb/frontends/s5h1409.c
+++ b/linux/drivers/media/dvb/frontends/s5h1409.c
@@ -545,9 +545,6 @@ static int s5h1409_set_frontend(struct dvb_frontend *fe,
s5h1409_enable_modulation(fe, p->u.vsb.modulation);
- /* Allow the demod to settle */
- msleep(100);
-
if (fe->ops.tuner_ops.set_params) {
if (fe->ops.i2c_gate_ctrl)
fe->ops.i2c_gate_ctrl(fe, 1);
@@ -562,6 +559,10 @@ static int s5h1409_set_frontend(struct dvb_frontend *fe,
s5h1409_set_qam_interleave_mode(fe);
}
+ /* Issue a reset to the demod so it knows to resync against the
+ newly tuned frequency */
+ s5h1409_softreset(fe);
+
return 0;
}