]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: ccs: Remove I²C write retry hack
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 15 Oct 2024 07:28:42 +0000 (10:28 +0300)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 25 Apr 2025 08:15:33 +0000 (10:15 +0200)
The I²C retry hack has been there in order to address transient I²C
register write access issues on a few very old sensors and possibly it has
addressed also first I²C access problems (device not responding until a
certain amount of time has passed) but that is now separately handled. The
retry hack has a good potential for introducing hard to debug problems in
updating sensor settings while streaming. Remove it and instead pass those
rare errors to the user space -- which is also what virtually all other
drivers do.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/ccs/ccs-reg-access.c

index a696a0ec8ff5c7d0c1fbda580da5b61e04a4750f..fd36889ccc1d3628d1b5fa4f1f9d7e8d21464cf2 100644 (file)
@@ -210,7 +210,6 @@ int ccs_read_addr_noconv(struct ccs_sensor *sensor, u32 reg, u32 *val)
  */
 int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val)
 {
-       unsigned int retries = 10;
        int rval;
 
        rval = ccs_call_quirk(sensor, reg_access, true, &reg, &val);
@@ -219,13 +218,7 @@ int ccs_write_addr(struct ccs_sensor *sensor, u32 reg, u32 val)
        if (rval < 0)
                return rval;
 
-       rval = 0;
-       do {
-               if (cci_write(sensor->regmap, reg, val, &rval))
-                       fsleep(1000);
-       } while (rval && --retries);
-
-       return rval;
+       return cci_write(sensor->regmap, reg, val, NULL);
 }
 
 #define MAX_WRITE_LEN  32U