V4L/DVB (9270): cx24116: optimise emulated auto-pilot
authorChristophe Thommeret <hftom@free.fr>
Wed, 15 Oct 2008 23:01:32 +0000 (20:01 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 17 Oct 2008 20:29:46 +0000 (17:29 -0300)
Christophe divulged the following:
"Since 8PSK (and higher mod) signals are very likely to have pilot symbols,
pilot_auto should start with pilot_on for 8PSK.
And since QPSK signals are unlikely to have pilot, pilot_auto should start
with pilot_off for QPSK.

Without the patch:
QPSK tuning delay: ~100ms
8PSK tuning delay: ~900ms
with patch:
QPSK tuning delay: ~100ms
8PSK tuning delay: ~100ms
"

This patch does as Cristophe asks. In emulated auto-pilot we
choose pilot-on for tuning PSK_8 and pilot-off for
tuning QPSK.

Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/cx24116.c

index 8afdfbe..fe62f92 100644 (file)
@@ -1248,7 +1248,10 @@ static int cx24116_set_frontend(struct dvb_frontend *fe,
 
                switch (c->pilot) {
                case PILOT_AUTO:        /* Not supported but emulated */
-                       retune = 2;     /* Fall-through */
+                       state->dnxt.pilot_val = (c->modulation == QPSK)
+                               ? CX24116_PILOT_OFF : CX24116_PILOT_ON;
+                       retune = 2;
+                       break;
                case PILOT_OFF:
                        state->dnxt.pilot_val = CX24116_PILOT_OFF;
                        break;