OSDN Git Service

media: ccs: Allow range in between I²C retries
authorSakari Ailus <sakari.ailus@linux.intel.com>
Fri, 13 Nov 2020 15:07:28 +0000 (16:07 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 3 Dec 2020 11:27:31 +0000 (12:27 +0100)
Make the delay between I²C access retries a range between 1 and 2 ms. Also
make the number of retries 10 instead of 5, in order not to reduce the
total amount of time.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/ccs/ccs-reg-access.c

index aad2727..79efed5 100644 (file)
@@ -256,7 +256,7 @@ int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val)
        put_unaligned_be16(CCS_REG_ADDR(reg), data);
        put_unaligned_be32(val << (8 * (sizeof(val) - len)), data + 2);
 
-       for (retries = 0; retries < 5; retries++) {
+       for (retries = 0; retries < 10; retries++) {
                /*
                 * Due to unknown reason sensor stops responding. This
                 * loop is a temporaty solution until the root cause
@@ -271,7 +271,7 @@ int ccs_write_addr_no_quirk(struct ccs_sensor *sensor, u32 reg, u32 val)
                        return 0;
                }
 
-               usleep_range(2000, 2000);
+               usleep_range(1000, 2000);
        }
 
        dev_err(&client->dev,