diff --git a/drivers/media/dvb/frontends/tda18271-fe.c b/drivers/media/dvb/frontends/tda18271-fe.c
index 7f7fab7cd5afda910413047caffe52842c723429..26042a977e4e24b36671c94d9244b2fc5c291502 100644
--- a/drivers/media/dvb/frontends/tda18271-fe.c
+++ b/drivers/media/dvb/frontends/tda18271-fe.c
@@ -752,54 +752,8 @@ static int tda18271c1_tune(struct dvb_frontend *fe,
 	if (0 == tda18271_calc_rf_cal(fe, &freq))
 		tda18271_write_regs(fe, R_EB14, 1);
 
-	/* Channel Configuration */
-
-	switch (priv->mode) {
-	case TDA18271_ANALOG:
-		regs[R_EB22]  = 0x2c;
-		break;
-	case TDA18271_DIGITAL:
-		regs[R_EB22]  = 0x37;
-		break;
-	}
-	tda18271_write_regs(fe, R_EB22, 1);
-
-	regs[R_EP1]  |= 0x40; /* set dis power level on */
-
-	/* set standard */
-	regs[R_EP3]  &= ~0x1f; /* clear std bits */
-
-	/* see table 22 */
-	regs[R_EP3]  |= std;
-
-	regs[R_EP4]  &= ~0x03; /* set cal mode to normal */
-
-	regs[R_EP4]  &= ~0x1c; /* clear if level bits */
-	switch (priv->mode) {
-	case TDA18271_ANALOG:
-		regs[R_MPD]  &= ~0x80; /* IF notch = 0 */
-		break;
-	case TDA18271_DIGITAL:
-		regs[R_EP4]  |= 0x04;
-		regs[R_MPD]  |= 0x80;
-		break;
-	}
-
-	if (radio)
-		regs[R_EP4]  |=  0x80;
-	else
-		regs[R_EP4]  &= ~0x80;
-
-	/* image rejection validity */
-	tda18271_calc_ir_measure(fe, &freq);
-
-	/* calculate MAIN PLL */
-	N = freq + ifc;
-
-	tda18271_calc_main_pll(fe, N);
+	tda18271_channel_configuration(fe, ifc, freq, bw, std, radio);
 
-	tda18271_write_regs(fe, R_TM, 15);
-	msleep(5);
 	mutex_unlock(&priv->lock);
 
 	return 0;