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;