[linux-dvb] Anubis Electronics "Lifeview"(0x10fd:0x1513)

Michael Krufky mkrufky at linuxtv.org
Sun Mar 18 15:10:59 CET 2007


Hartmut Hackmann wrote:
> Here is the experimental patch i promised:
> The struct tda1004x_config has a new entry: .ts_mode
> Possible values are TDA10046_TS_PARALLEL or TDA10046_TS_SERIAL
> There always is only one interface active, default is parallel.
> Can you please give it a try?
> 
> Hartmut

Hartmut,

Would you mind if I send this one in through the m920x tree?  Both Pierre
and Nick's patches depend on this one, and it makes sense to push these
changes together.

Can you either push it to your tree, so that I can merge it into the m920x
tree before applying Pierre's patch, or send me your s-o-b and I'll take care
of it?

Thanks,

Mike

> diff -uNr v4l-dvb/linux/drivers/media/dvb/frontends/tda1004x.c v4l-dvb.new/linux/drivers/media/dvb/frontends/tda1004x.c
> --- v4l-dvb/linux/drivers/media/dvb/frontends/tda1004x.c	2007-03-17 02:07:11.000000000 +0100
> +++ v4l-dvb.new/linux/drivers/media/dvb/frontends/tda1004x.c	2007-03-17 01:45:35.000000000 +0100
> @@ -657,8 +657,16 @@
>  		tda1004x_write_mask(state, TDA10046H_CONF_POLARITY, 0xf0, 0x60);  // set AGC polarities
>  		break;
>  	}
> +	if (state->config->ts_mode == 0) {
> +		tda1004x_write_mask(state, TDA10046H_CONF_TRISTATE1, 0xc0, 0x40);
> +		tda1004x_write_mask(state, 0x3a, 0x80, state->config->invert_oclk << 7);
> +	} else {                                                                                
> +		tda1004x_write_mask(state, TDA10046H_CONF_TRISTATE1, 0xc0, 0x80);
> +		tda1004x_write_mask(state, TDA10046H_CONF_POLARITY, 0x10,
> +							state->config->invert_oclk << 4);
> +	}
>  	tda1004x_write_byteI(state, TDA1004X_CONFADC2, 0x38);
> -	tda1004x_write_byteI(state, TDA10046H_CONF_TRISTATE1, 0x79); // Turn IF AGC output on
> +	tda1004x_write_mask (state, TDA10046H_CONF_TRISTATE1, 0x3e, 0x38); // Turn IF AGC output on
>  	tda1004x_write_byteI(state, TDA10046H_AGC_TUN_MIN, 0);	  // }
>  	tda1004x_write_byteI(state, TDA10046H_AGC_TUN_MAX, 0xff); // } AGC min/max values
>  	tda1004x_write_byteI(state, TDA10046H_AGC_IF_MIN, 0);	  // }
> @@ -668,7 +676,6 @@
>  	tda1004x_write_byteI(state, TDA1004X_CONF_TS1, 7); // MPEG2 interface config
>  	tda1004x_write_byteI(state, TDA1004X_CONF_TS2, 0xc0); // MPEG2 interface config
>  	// tda1004x_write_mask(state, 0x50, 0x80, 0x80);         // handle out of guard echoes
> -	tda1004x_write_mask(state, 0x3a, 0x80, state->config->invert_oclk << 7);
>  
>  	return 0;
>  }
> diff -uNr v4l-dvb/linux/drivers/media/dvb/frontends/tda1004x.h v4l-dvb.new/linux/drivers/media/dvb/frontends/tda1004x.h
> --- v4l-dvb/linux/drivers/media/dvb/frontends/tda1004x.h	2007-03-17 02:07:11.000000000 +0100
> +++ v4l-dvb.new/linux/drivers/media/dvb/frontends/tda1004x.h	2007-03-17 02:00:52.000000000 +0100
> @@ -61,6 +61,11 @@
>  	TDA10046_FREQ_052,		/* low IF, 5.1667 MHZ for tda9889 */
>  };
>  
> +enum tda10046_tsout {
> +	TDA10046_TS_PARALLEL  = 0x00,	/* parallel transport stream, default */
> +	TDA10046_TS_SERIAL    = 0x01,	/* serial transport stream */
> +};
> +
>  struct tda1004x_config
>  {
>  	/* the demodulator's i2c address */
> @@ -72,6 +77,9 @@
>  	/* Does the OCLK signal need inverted? */
>  	u8 invert_oclk;
>  
> +	/* parallel or serial transport stream */
> +	enum tda10046_tsout ts_mode;
> +	
>  	/* Xtal frequency, 4 or 16MHz*/
>  	enum tda10046_xtal xtal_freq;



More information about the linux-dvb mailing list