Em Sat, 02 Nov 2013 23:05:14 +0200 CrazyCat <crazycat69@xxxxxxxx> escreveu: > Fix dvb-c standard selection - qam8 for ANNEX_AC > > Signed-off-by: Evgeny Plehov <EvgenyPlehov@xxxxxxx> > diff --git a/drivers/media/tuners/tda18271-fe.c b/drivers/media/tuners/tda18271-fe.c > index 4995b89..6a385c8 100644 > --- a/drivers/media/tuners/tda18271-fe.c > +++ b/drivers/media/tuners/tda18271-fe.c > @@ -960,16 +960,12 @@ static int tda18271_set_params(struct dvb_frontend *fe) > break; > case SYS_DVBC_ANNEX_B: > bw = 6000000; > - /* falltrough */ > + map = &std_map->qam_6; > + break; > case SYS_DVBC_ANNEX_A: > case SYS_DVBC_ANNEX_C: > - if (bw <= 6000000) { > - map = &std_map->qam_6; > - } else if (bw <= 7000000) { > - map = &std_map->qam_7; > - } else { > - map = &std_map->qam_8; > - } > + bw = 8000000; > + map = &std_map->qam_8; This is wrong, as it breaks for 6MHz-spaced channels, like what's used in Brazil and Japan. What happens here is that, if the tuner uses a too wide lowpass filter, the interference will be higher at the demod, and it may not be able to decode. As the bandwidth is already estimated by the DVB frontend core, the tuners should be adjusted to get the closest filter for a given bandwidth. So, the driver is correct (and it is tested under 6MHz spaced channels). > break; > default: > tda_warn("modulation type not supported!\n"); > > -- > 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 -- Cheers, Mauro -- 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