[linux-dvb] [PATCH] cx24116 DVB-S modulation fix

Christophe Thommeret hftom at free.fr
Wed Oct 15 20:59:26 CEST 2008


Le Wednesday 15 October 2008 19:22:35 Darron Broad, vous avez écrit :
> In message <200810151846.59042.hftom at free.fr>, Christophe Thommeret wrote:
>
> hi.
>
> <snip>
>
> >Other subject:
> >Would you accept some patch to enhance cx24116 pilot_auto emulation?
>
> If you present your patch and it enhances or fixes something
> then I am sure people will support it.

I don't know to which tree to apply, so i give the code as is (it's pretty 
simple):

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


static int cx24116_set_frontend(struct dvb_frontend* fe, struct 
dvb_frontend_parameters *p)
....
....
case SYS_DVBS2:
...
...
switch(c->pilot) {
				case PILOT_AUTO:	/* Not supported but emulated */
					retune = 2;	/* Fall-through */
					if ( c->modulation==QPSK )
						state->dnxt.pilot_val = CX24116_PILOT_OFF;
					else
						state->dnxt.pilot_val = CX24116_PILOT_ON;
					break;
...
...
/* Toggle pilot bit when in auto-pilot */
		if(state->dcur.pilot == PILOT_AUTO) {
			if ( state->dnxt.pilot_val== CX24116_PILOT_OFF )
				cmd.args[0x07] ^= CX24116_PILOT_ON;
			else
				cmd.args[0x07] ^= CX24116_PILOT_OFF;
		}

....
...




-- 
Christophe Thommeret




More information about the linux-dvb mailing list