V4L/DVB (12824): tuner-xc2028: adds an option to send i2c data on slower speed
authorMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 8 Jan 2008 14:26:59 +0000 (11:26 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 18 May 2010 03:40:05 +0000 (00:40 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/tuner-xc2028.c
drivers/media/common/tuners/tuner-xc2028.h

index 96d61707f501cfc28b7caf1136741fcfc415f0aa..8d2907f38a9472bee9edfe6d70921fe0202b0462 100644 (file)
@@ -100,6 +100,7 @@ struct xc2028_data {
        if (size != _rc)                                                \
                tuner_info("i2c output error: rc = %d (should be %d)\n",\
                           _rc, (int)size);                             \
+       msleep(priv->ctrl.msleep);                                      \
        _rc;                                                            \
 })
 
@@ -119,6 +120,7 @@ struct xc2028_data {
        if (isize != _rc)                                               \
                tuner_err("i2c input error: rc = %d (should be %d)\n",  \
                           _rc, (int)isize);                            \
+       msleep(priv->ctrl.msleep);                                      \
        _rc;                                                            \
 })
 
@@ -130,7 +132,7 @@ struct xc2028_data {
                                                _val, sizeof(_val)))) { \
                tuner_err("Error on line %d: %d\n", __LINE__, _rc);     \
        } else                                                          \
-               msleep(10);                                             \
+               msleep(priv->ctrl.msleep);                              \
        _rc;                                                            \
 })
 
@@ -996,6 +998,7 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */,
           The reset CLK is needed only with tm6000.
           Driver should work fine even if this fails.
         */
+       msleep(priv->ctrl.msleep);
        do_tuner_callback(fe, XC2028_RESET_CLK, 1);
 
        msleep(10);
index a90c35d50add70c00a7deaa7476757d7d9cbd3bc..e116071810e053099d8140637aeb70f76479228d 100644 (file)
@@ -33,6 +33,7 @@ enum firmware_type {
 struct xc2028_ctrl {
        char                    *fname;
        int                     max_len;
+       int                     msleep;
        unsigned int            scode_table;
        unsigned int            mts   :1;
        unsigned int            input1:1;