--- drivers/media/common/tuners/mt2266.c.orig 2009-06-29 22:11:08.000000000 +0200 +++ drivers/media/common/tuners/mt2266.c 2009-06-29 22:21:01.000000000 +0200 @@ -137,7 +137,6 @@ static int mt2266_set_params(struct dvb_ freq = params->frequency / 1000; // Hz -> kHz if (freq < 470000 && freq > 230000) return -EINVAL; /* Gap between VHF and UHF bands */ - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0; priv->frequency = freq * 1000; tune = 2 * freq * (8192/16) / (FREF/16); @@ -145,21 +144,24 @@ static int mt2266_set_params(struct dvb_ if (band == MT2266_VHF) tune *= 2; - switch (params->u.ofdm.bandwidth) { - case BANDWIDTH_6_MHZ: - mt2266_writeregs(priv, mt2266_init_6mhz, - sizeof(mt2266_init_6mhz)); - break; - case BANDWIDTH_7_MHZ: - mt2266_writeregs(priv, mt2266_init_7mhz, - sizeof(mt2266_init_7mhz)); - break; - case BANDWIDTH_8_MHZ: - default: - mt2266_writeregs(priv, mt2266_init_8mhz, - sizeof(mt2266_init_8mhz)); - break; - } + if (priv->bandwidth != params->u.ofdm.bandwidth) { + priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0; + switch (params->u.ofdm.bandwidth) { + case BANDWIDTH_6_MHZ: + mt2266_writeregs(priv, mt2266_init_6mhz, + sizeof(mt2266_init_6mhz)); + break; + case BANDWIDTH_7_MHZ: + mt2266_writeregs(priv, mt2266_init_7mhz, + sizeof(mt2266_init_7mhz)); + break; + case BANDWIDTH_8_MHZ: + default: + mt2266_writeregs(priv, mt2266_init_8mhz, + sizeof(mt2266_init_8mhz)); + break; + } + } if (band == MT2266_VHF && priv->band == MT2266_UHF) { dprintk("Switch from UHF to VHF"); @@ -327,6 +329,7 @@ struct dvb_frontend * mt2266_attach(stru priv->cfg = cfg; priv->i2c = i2c; + priv->bandwidth= BANDWIDTH_8_MHZ; priv->band = MT2266_UHF; if (mt2266_readreg(priv, 0, &id)) {