Browse Source

V4L/DVB (9270): cx24116: optimise emulated auto-pilot

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>
Christophe Thommeret 17 years ago
parent
commit
745632147d
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/media/dvb/frontends/cx24116.c

+ 4 - 1
drivers/media/dvb/frontends/cx24116.c

@@ -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;