diff --git a/[refs] b/[refs] index 189aafb5f87d..7599af835277 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 86cf786c04541c18febc897686a0d5bea29ce688 +refs/heads/master: cf845297d592339bcf0839298c4319633df3173a diff --git a/trunk/drivers/media/dvb/frontends/tda18271c2dd.c b/trunk/drivers/media/dvb/frontends/tda18271c2dd.c index 2eb3a31a715c..0384e8da4f5e 100644 --- a/trunk/drivers/media/dvb/frontends/tda18271c2dd.c +++ b/trunk/drivers/media/dvb/frontends/tda18271c2dd.c @@ -1123,6 +1123,21 @@ static int release(struct dvb_frontend *fe) return 0; } +/* + * As defined on EN 300 429 Annex A and on ITU-T J.83 annex A, the DVB-C + * roll-off factor is 0.15. + * According with the specs, the amount of the needed bandwith is given by: + * Bw = Symbol_rate * (1 + 0.15) + * As such, the maximum symbol rate supported by 6 MHz is + * max_symbol_rate = 6 MHz / 1.15 = 5217391 Bauds + *NOTE: For ITU-T J.83 Annex C, the roll-off factor is 0.13. So: + * max_symbol_rate = 6 MHz / 1.13 = 5309735 Baud + * That means that an adjustment is needed for Japan, + * but, as currently DRX-K is hardcoded to Annex A, let's stick + * with 0.15 roll-off factor. + */ +#define MAX_SYMBOL_RATE_6MHz 5217391 + static int set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) { @@ -1146,7 +1161,10 @@ static int set_params(struct dvb_frontend *fe, break; } else if (fe->ops.info.type == FE_QAM) { - Standard = HF_DVBC_8MHZ; + if (params->u.qam.symbol_rate <= MAX_SYMBOL_RATE_6MHz) + Standard = HF_DVBC_6MHZ; + else + Standard = HF_DVBC_8MHZ; } else return -EINVAL; do {