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