]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
i3c: master: Add missing runtime PM get in dev_nack_retry_count_store()
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 16 Jun 2026 11:37:51 +0000 (14:37 +0300)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 16 Jun 2026 21:19:19 +0000 (23:19 +0200)
Ensure the device is runtime resumed while updating the retry
configuration to avoid accessing the controller while suspended.

Call i3c_master_rpm_get() before accessing the controller in
dev_nack_retry_count_store() and release it with
i3c_master_rpm_put() afterwards.

Fixes: 990c149c61ee4 ("i3c: master: Introduce optional Runtime PM support")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260616113752.196140-3-adrian.hunter@intel.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/i3c/master.c

index 05ea9e3c4d46fa12539bf8653684f30dbd8e21c8..a24944047e30ca490a4de60b8c2ac37c60934619 100644 (file)
@@ -767,12 +767,18 @@ static ssize_t dev_nack_retry_count_store(struct device *dev,
        if (ret)
                return ret;
 
+       ret = i3c_master_rpm_get(master);
+       if (ret)
+               return ret;
+
        i3c_bus_maintenance_lock(i3cbus);
        ret = master->ops->set_dev_nack_retry(master, val);
        if (!ret)
                master->dev_nack_retry_count = val;
        i3c_bus_maintenance_unlock(i3cbus);
 
+       i3c_master_rpm_put(master);
+
        return ret ?: count;
 }