V4L/DVB (6629): zl10353: fix default adc_clock and TRL nominal rate calculation
authorChris Pascoe <c.pascoe@itee.uq.edu.au>
Mon, 19 Nov 2007 06:47:07 +0000 (03:47 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 11 Dec 2007 20:08:13 +0000 (18:08 -0200)
The default adc_clock for the zl10353 is different from what was originally
thought to be the case and the TRL nominal rate formula was incorrect as a
result.  Use a better (and hopefully now correct) formula.

Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/zl10353.c
drivers/media/dvb/frontends/zl10353.h

index a97a7fd2c89132a596027619d8e3e9fbfedc6be9..0106df4c55e827da3410630463888b7bcecda789 100644 (file)
@@ -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);
index cb274dc12b82596ead31dfd1f5bf5667197992d5..1c3d494a6da9e3bd04ba06ba646c2d4c7beb5c0d 100644 (file)
@@ -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;