diff --git a/[refs] b/[refs] index 9c8ba5a92ac9..22e28a82f90f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 897b842296f1285a6b58e9170f7017022e2e2603 +refs/heads/master: 3dfefc50ff45744ffb97ce0bf9c213a3fb6d5d3d diff --git a/trunk/drivers/media/video/tuner-xc2028.c b/trunk/drivers/media/video/tuner-xc2028.c index 63a6fca1f8cf..0565edd224bc 100644 --- a/trunk/drivers/media/video/tuner-xc2028.c +++ b/trunk/drivers/media/video/tuner-xc2028.c @@ -998,20 +998,27 @@ static int xc2028_set_params(struct dvb_frontend *fe, return -EINVAL; } - /* FIXME: - There are two Scodes that will never be selected: - DTV78 ZARLINK456, DTV78 DIBCOM52 - When it should opt for DTV78 instead of DTV7 or DTV8? - */ switch (bw) { case BANDWIDTH_8_MHZ: - type |= DTV8 | F8MHZ; + if (p->frequency < 470000000) + priv->ctrl.vhfbw7 = 0; + else + priv->ctrl.uhfbw8 = 1; + type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV8; + type |= F8MHZ; break; case BANDWIDTH_7_MHZ: - type |= DTV7 | F8MHZ; + if (p->frequency < 470000000) + priv->ctrl.vhfbw7 = 1; + else + priv->ctrl.uhfbw8 = 0; + type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV7; + type |= F8MHZ; break; case BANDWIDTH_6_MHZ: - type |= DTV6 ; + type |= DTV6; + priv->ctrl.vhfbw7 = 0; + priv->ctrl.uhfbw8 = 0; break; default: tuner_err("error: bandwidth not supported.\n"); diff --git a/trunk/drivers/media/video/tuner-xc2028.h b/trunk/drivers/media/video/tuner-xc2028.h index 1fe8b195960c..7462629b98fd 100644 --- a/trunk/drivers/media/video/tuner-xc2028.h +++ b/trunk/drivers/media/video/tuner-xc2028.h @@ -30,6 +30,8 @@ struct xc2028_ctrl { unsigned int mts :1; unsigned int d2633 :1; unsigned int input1:1; + unsigned int vhfbw7:1; + unsigned int uhfbw8:1; unsigned int demod; };