| From mkrufky@linuxtv.org Tue Nov 4 14:13:46 2008 |
| From: Devin Heitmueller <devin.heitmueller@gmail.com> |
| Date: Sun, 02 Nov 2008 23:04:47 -0500 |
| Subject: DVB: s5h1411: Perform s5h1411 soft reset after tuning |
| To: stable@kernel.org |
| Cc: v4l-dvb maintainer list <v4l-dvb-maintainer@linuxtv.org>, Steven Toth <stoth@linuxtv.org>, Devin Heitmueller <devin.heitmueller@gmail.com>, Mauro Carvalho Chehab <mchehab@redhat.com> |
| Message-ID: <490E785F.1080606@linuxtv.org> |
| |
| |
| From: Devin Heitmueller <devin.heitmueller@gmail.com> |
| |
| cherry picked from commit f0d041e50bc6c8a677922d72b010f80af9b23b18 |
| |
| DVB: s5h1411: Perform s5h1411 soft reset after tuning |
| |
| If you instruct the tuner to change frequencies, it can take up to 2500ms to |
| get a demod lock. By performing a soft reset after the tuning call (which |
| is consistent with how the Pinnacle 801e Windows driver behaves), you get |
| a demod lock inside of 300ms |
| |
| Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> |
| Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> |
| Acked-by: Steven Toth <stoth@linuxtv.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/media/dvb/frontends/s5h1411.c | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/media/dvb/frontends/s5h1411.c |
| +++ b/drivers/media/dvb/frontends/s5h1411.c |
| @@ -588,9 +588,6 @@ static int s5h1411_set_frontend(struct d |
| |
| s5h1411_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); |
| @@ -601,6 +598,10 @@ static int s5h1411_set_frontend(struct d |
| fe->ops.i2c_gate_ctrl(fe, 0); |
| } |
| |
| + /* Issue a reset to the demod so it knows to resync against the |
| + newly tuned frequency */ |
| + s5h1411_softreset(fe); |
| + |
| return 0; |
| } |
| |