diff --git a/drivers/media/dvb/frontends/zl10353.c b/drivers/media/dvb/frontends/zl10353.c
index a97a7fd2c89132a596027619d8e3e9fbfedc6be9..0106df4c55e827da3410630463888b7bcecda789 100644
--- a/drivers/media/dvb/frontends/zl10353.c
+++ b/drivers/media/dvb/frontends/zl10353.c
@@ -122,7 +122,7 @@ static void zl10353_calc_nominal_rate(struct dvb_frontend *fe,
 				      enum fe_bandwidth bandwidth,
 				      u16 *nominal_rate)
 {
-	u32 adc_clock = 22528; /* 20.480 MHz on the board(!?) */
+	u32 adc_clock = 45056; /* 45.056 MHz */
 	u8 bw;
 	struct zl10353_state *state = fe->demodulator_priv;
 
@@ -142,7 +142,7 @@ static void zl10353_calc_nominal_rate(struct dvb_frontend *fe,
 		break;
 	}
 
-	*nominal_rate = (64 * bw * (1<<16) / (7 * 8) * 4000 / adc_clock + 2) / 4;
+	*nominal_rate = (bw * (1 << 23) / 7 * 125 + adc_clock / 2) / adc_clock;
 
 	dprintk("%s: bw %d, adc_clock %d => 0x%x\n",
 		__FUNCTION__, bw, adc_clock, *nominal_rate);
diff --git a/drivers/media/dvb/frontends/zl10353.h b/drivers/media/dvb/frontends/zl10353.h
index cb274dc12b82596ead31dfd1f5bf5667197992d5..1c3d494a6da9e3bd04ba06ba646c2d4c7beb5c0d 100644
--- a/drivers/media/dvb/frontends/zl10353.h
+++ b/drivers/media/dvb/frontends/zl10353.h
@@ -30,7 +30,7 @@ struct zl10353_config
 	u8 demod_address;
 
 	/* frequencies in kHz */
-	int adc_clock;  // default: 22528
+	int adc_clock;	/* default: 45056 */
 
 	/* set if no pll is connected to the secondary i2c bus */
 	int no_tuner;