V4L/DVB (6124): cx25840: add a few 10 microsecond delays
authorTyler Trafford <ttrafford@gmail.com>
Tue, 28 Aug 2007 20:56:47 +0000 (17:56 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 10 Oct 2007 01:07:29 +0000 (22:07 -0300)
There were a couple of places in the cx25840 initialization where the
datasheet called for a 10 microsecond delay, which we ignored because
of the 10 usec I2C delay. Put them in anyway now that the I2C delay
was decreased to 5 usec.

Signed-off-by: Tyler Trafford <ttrafford@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx25840/cx25840-core.c

index d6f8b3b6af406f7948bc2484c4967249c987a1d5..90f7859bb48e20b7e8b7e58cc8ec7081955666b5 100644 (file)
@@ -133,7 +133,9 @@ static void init_dll1(struct i2c_client *client)
        cx25840_write(client, 0x159, 0x23);
        cx25840_write(client, 0x15a, 0x87);
        cx25840_write(client, 0x15b, 0x06);
+       udelay(10);
        cx25840_write(client, 0x159, 0xe1);
+       udelay(10);
        cx25840_write(client, 0x15a, 0x86);
        cx25840_write(client, 0x159, 0xe0);
        cx25840_write(client, 0x159, 0xe1);
@@ -147,6 +149,7 @@ static void init_dll2(struct i2c_client *client)
        cx25840_write(client, 0x15d, 0xe3);
        cx25840_write(client, 0x15e, 0x86);
        cx25840_write(client, 0x15f, 0x06);
+       udelay(10);
        cx25840_write(client, 0x15d, 0xe1);
        cx25840_write(client, 0x15d, 0xe0);
        cx25840_write(client, 0x15d, 0xe1);
@@ -165,9 +168,7 @@ static void cx25836_initialize(struct i2c_client *client)
        /* 3c. */
        cx25840_and_or(client, 0x159, ~0x02, 0x02);
        /* 3d. */
-       /* There should be a 10-us delay here, but since the
-          i2c bus already has a 10-us delay we don't need to do
-          anything */
+       udelay(10);
        /* 3e. */
        cx25840_and_or(client, 0x159, ~0x02, 0x00);
        /* 3f. */