media: i2c: vs6624: Replace mdelay() with msleep() and usleep_range() in vs6624_probe()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 27 Jul 2018 03:02:40 +0000 (23:02 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 27 Jul 2018 12:11:57 +0000 (08:11 -0400)
vs6624_probe() is never called in atomic context.
It calls mdelay() to busily wait, which is not necessary.
mdelay() can be replaced with msleep() and usleep_range().

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/vs6624.c

index 1658816..bc9825f 100644 (file)
@@ -770,7 +770,7 @@ static int vs6624_probe(struct i2c_client *client,
                return ret;
        }
        /* wait 100ms before any further i2c writes are performed */
-       mdelay(100);
+       msleep(100);
 
        sensor = devm_kzalloc(&client->dev, sizeof(*sensor), GFP_KERNEL);
        if (sensor == NULL)
@@ -782,7 +782,7 @@ static int vs6624_probe(struct i2c_client *client,
        vs6624_writeregs(sd, vs6624_p1);
        vs6624_write(sd, VS6624_MICRO_EN, 0x2);
        vs6624_write(sd, VS6624_DIO_EN, 0x1);
-       mdelay(10);
+       usleep_range(10000, 11000);
        vs6624_writeregs(sd, vs6624_p2);
 
        vs6624_writeregs(sd, vs6624_default);