Re: [hg:v4l-dvb] tuner-xc2028: Fix offset frequencies for DVB @ 6MHz

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

 



On Mon, 2009-06-01 at 17:20 +0200, Patch from Mauro Carvalho Chehab
wrote:
> The patch number 11918 was added via Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
> to http://linuxtv.org/hg/v4l-dvb master development tree.
> 
> Kernel patches in this development tree may be modified to be backward
> compatible with older kernels. Compatibility modifications will be
> removed before inclusion into the mainstream Kernel
> 
> If anyone has any objections, please let us know by sending a message to:
> 	Linux Media Mailing List <linux-media@xxxxxxxxxxxxxxx>
> 
> ------
> 
> From: Mauro Carvalho Chehab  <mchehab@xxxxxxxxxx>
> tuner-xc2028: Fix offset frequencies for DVB @ 6MHz
> 
> 
> Both ATSC and DVB @ 6MHz bandwidth require the same offset.
> 
> While we're fixing it, let's cleanup the bandwidth setup to better
> reflect the fact that it is a function of the bandwidth.
> 
> Thanks to Terry Wu <terrywu2009@xxxxxxxxx> for pointing this issue and
> to Andy Walls <awalls@xxxxxxxxx> for an initial patch for this fix.
> 
> Priority: normal
> 
> CC: Terry Wu <terrywu2009@xxxxxxxxx>
> CC: Andy Walls <awalls@xxxxxxxxx>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>

Acked-by: Andy Walls <awalls@xxxxxxxxx>

You may want to emphasize with a comment that 'offset = 0' is used for
T_ANALOG_TV.  It's somewhat hidden by its initialization early in the
function.

Italy also appears to use 7 MHz VHF and 8 MHz UHF.

Regards,
Andy

> ---
> 
>  linux/drivers/media/common/tuners/tuner-xc2028.c |   32 ++++++++-------
>  1 file changed, 19 insertions(+), 13 deletions(-)
> 
> diff -r c78c18fe3dc9 -r e6a8672631a0 linux/drivers/media/common/tuners/tuner-xc2028.c
> --- a/linux/drivers/media/common/tuners/tuner-xc2028.c	Mon Jun 01 11:46:08 2009 -0300
> +++ b/linux/drivers/media/common/tuners/tuner-xc2028.c	Mon Jun 01 12:18:10 2009 -0300
> @@ -921,22 +921,28 @@ static int generic_set_freq(struct dvb_f
>  	 * that xc2028 will be in a safe state.
>  	 * Maybe this might also be needed for DTV.
>  	 */
> -	if (new_mode == T_ANALOG_TV) {
> +	if (new_mode == T_ANALOG_TV)
>  		rc = send_seq(priv, {0x00, 0x00});
> -	} else if (priv->cur_fw.type & ATSC) {
> -		offset = 1750000;
> -	} else {
> -		offset = 2750000;
> +
> +	/*
> +	 * Digital modes require an offset to adjust to the
> +	 * proper frequency
> +	 */
> +	if (new_mode != T_ANALOG_TV) {
> +		/* Sets the offset according with firmware */
> +		if (priv->cur_fw.type & DTV6)
> +			offset = 1750000;
> +		if (priv->cur_fw.type & DTV7)
> +			offset = 2250000;
> +		else	/* DTV8 or DTV78 */
> +			offset = 2750000;
> +
>  		/*
> -		 * We must adjust the offset by 500kHz in two cases in order
> -		 * to correctly center the IF output:
> -		 * 1) When the ZARLINK456 or DIBCOM52 tables were explicitly
> -		 *    selected and a 7MHz channel is tuned;
> -		 * 2) When tuning a VHF channel with DTV78 firmware.
> +		 * We must adjust the offset by 500kHz  when
> +		 * tuning a 7MHz VHF channel with DTV78 firmware
> +		 * (used in Australia)
>  		 */
> -		if (((priv->cur_fw.type & DTV7) &&
> -		     (priv->cur_fw.scode_table & (ZARLINK456 | DIBCOM52))) ||
> -		    ((priv->cur_fw.type & DTV78) && freq < 470000000))
> +		if ((priv->cur_fw.type & DTV78) && freq < 470000000)
>  			offset -= 500000;
>  	}
>  
> 
> 
> ---
> 
> Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/e6a8672631a0f5f549f5ee5db3acac4f35013942
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux