Hi, Am Montag, den 01.06.2009, 20:00 -0400 schrieb Andy Walls: > 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. Germany too. Cheers, Hermann > > 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