]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: imu: inv_icm45600: fix regulator put warning when probe fails
authorJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Tue, 17 Feb 2026 10:44:50 +0000 (11:44 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 23 Feb 2026 08:24:39 +0000 (08:24 +0000)
When the driver probe fails we encounter a regulator put warning
because vddio regulator is not stopped before release. The issue
comes from pm_runtime not already setup when core probe fails and
the vddio regulator disable callback is called.

Fix the issue by setting pm_runtime active early before vddio
regulator resource cleanup. This requires to cut pm_runtime
set_active and enable in 2 function calls.

Fixes: 7ff021a3faca ("iio: imu: inv_icm45600: add new inv_icm45600 driver")
Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/inv_icm45600/inv_icm45600_core.c

index e4638926a10cf5bef1ab3268da86affe22d687c8..d49053161a6572667d0c2547ddef6f03da9f33dd 100644 (file)
@@ -744,6 +744,11 @@ int inv_icm45600_core_probe(struct regmap *regmap, const struct inv_icm45600_chi
         */
        fsleep(5 * USEC_PER_MSEC);
 
+       /* set pm_runtime active early for disable vddio resource cleanup */
+       ret = pm_runtime_set_active(dev);
+       if (ret)
+               return ret;
+
        ret = inv_icm45600_enable_regulator_vddio(st);
        if (ret)
                return ret;
@@ -776,7 +781,7 @@ int inv_icm45600_core_probe(struct regmap *regmap, const struct inv_icm45600_chi
        if (ret)
                return ret;
 
-       ret = devm_pm_runtime_set_active_enabled(dev);
+       ret = devm_pm_runtime_enable(dev);
        if (ret)
                return ret;