media: ccs: Partially revert "media: i2c: Use pm_runtime_resume_and_get()"
authorSakari Ailus <sakari.ailus@linux.intel.com>
Fri, 29 Sep 2023 09:00:42 +0000 (12:00 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Sat, 7 Oct 2023 08:55:48 +0000 (10:55 +0200)
ccs_pm_get_init() depends on the return values > 0 of
pm_runtime_get_sync(), thus it can't use pm_runtime_resume_and_get().
There's even a comment in the driver on this, a few lines above the code.

Fixes: aa0adb399d09 ("media: i2c: Use pm_runtime_resume_and_get()")
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/i2c/ccs/ccs-core.c

index c6853622946bcc1baff0086434016fb474558707..34f4f62a95239fc00e9d2de84aefd31eca261801 100644 (file)
@@ -1873,9 +1873,9 @@ static int ccs_pm_get_init(struct ccs_sensor *sensor)
         * relies at the returned value to detect if the device was already
         * active or not.
         */
-       rval = pm_runtime_resume_and_get(&client->dev);
-       if (rval)
-               return rval;
+       rval = pm_runtime_get_sync(&client->dev);
+       if (rval < 0)
+               goto error;
 
        /* Device was already active, so don't set controls */
        if (rval == 1)