Re: fmd1216me integration (fwd)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've some question to this patch:

Trent Piepho wrote:
> Include the patch this time
> diff --git a/linux/drivers/media/dvb/frontends/dvb-pll.c b/linux/drivers/media/dvb/frontends/dvb-pll.c
> --- a/linux/drivers/media/dvb/frontends/dvb-pll.c
> +++ b/linux/drivers/media/dvb/frontends/dvb-pll.c
> @@ -38,6 +38,12 @@
>  	0x50 = AGC Take over point = 103 dBuV */
>  static u8 tua603x_agc103[] = { 2, 0x80|0x40|0x18|0x06|0x01, 0x00|0x50 };
> 
> +/*	0x04 = 166.67 kHz divider
> +
> +	0x80 = AGC Time constant 50ms Iagc = 9 uA
> +	0x20 = AGC Take over point = 112 dBuV */
> +static u8 tua603x_agc112[] = { 2, 0x80|0x40|0x18|0x04|0x01, 0x80|0x20 };

Why is the AGC time constant set permanently to 50ms (short time)? Usually, the AGC time constant of the tuner is set to
the short time during tuning only. After the pll lock + some time (ca. 100ms), the AGC time constant should be switched
back to 2s (long time). If the time constant isn't changed during tuning, they should be set to the long time.

> +
>  struct dvb_pll_desc dvb_pll_thomson_dtt7579 = {
>  	.name  = "Thomson dtt7579",
>  	.min   = 177000000,
> @@ -282,6 +288,8 @@ struct dvb_pll_desc dvb_pll_fmd1216me =
>  	.max = 858000000,
>  	.iffreq= 36125000,
>  	.setbw = fmd1216me_bw,
> +	.initdata = tua603x_agc112,
> +	.sleepdata = (u8[]){ 4, 0x9c, 0x60, 0x85, 0x54 },

In sleep mode, the AGC shouldn't be set into high impedance mode. A better solution is to disable the AGC. 0x60 should
be 0x70. In sleep mode, P0 and P1 must be set to 1. This means 0x54 should be 0x54|0x03. Why is the value of the band
switch byte 0x54? Bits 5,6 and 7 aren't used.

- Hartmut



_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux