This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: ccs: Wait until software reset is done
Author:  Sakari Ailus <[email protected]>
Date:    Thu Oct 8 12:09:07 2020 +0200

Verify the software reset has been completed until proceeding.

The spec does not guarantee a delay but presumably 100 ms should be
enough.

Signed-off-by: Sakari Ailus <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/i2c/ccs/ccs-core.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

---

diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index fdf2e83eeac3..e1b3c5693e01 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -1553,11 +1553,26 @@ static int ccs_power_on(struct device *dev)
         */
 
        if (!sensor->reset && !sensor->xshutdown) {
+               u8 retry = 100;
+               u32 reset;
+
                rval = ccs_write(sensor, SOFTWARE_RESET, CCS_SOFTWARE_RESET_ON);
                if (rval < 0) {
                        dev_err(dev, "software reset failed\n");
                        goto out_cci_addr_fail;
                }
+
+               do {
+                       rval = ccs_read(sensor, SOFTWARE_RESET, &reset);
+                       reset = !rval && reset == CCS_SOFTWARE_RESET_OFF;
+                       if (reset)
+                               break;
+
+                       usleep_range(1000, 2000);
+               } while (--retry);
+
+               if (!reset)
+                       return -EIO;
        }
 
        if (sensor->hwcfg.i2c_addr_alt) {

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to