aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2025-01-10 14:50:27 +0200
committerHans Verkuil <hverkuil@xs4all.nl>2025-02-15 15:22:50 +0100
commite04604583095faf455b3490b004254a225fd60d4 (patch)
tree6f801ca7a8ff0d490c57bb5f7a0f88449644b837
parentmedia: stm32: dcmipp: add has_csi2 & needs_mclk in match data (diff)
downloadlinux-e04604583095faf455b3490b004254a225fd60d4.tar.gz
linux-e04604583095faf455b3490b004254a225fd60d4.zip
media: i2c: ccs: Set the device's runtime PM status correctly in remove
Set the device's runtime PM status to suspended in device removal only if it wasn't suspended already. Fixes: 9447082ae666 ("[media] smiapp: Implement power-on and power-off sequences without runtime PM") Cc: stable@vger.kernel.org # for >= v5.15 Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
-rw-r--r--drivers/media/i2c/ccs/ccs-core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index 2cdab2f3d9dc..45b317216aba 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -3595,9 +3595,10 @@ static void ccs_remove(struct i2c_client *client)
v4l2_async_unregister_subdev(subdev);
pm_runtime_disable(&client->dev);
- if (!pm_runtime_status_suspended(&client->dev))
+ if (!pm_runtime_status_suspended(&client->dev)) {
ccs_power_off(&client->dev);
- pm_runtime_set_suspended(&client->dev);
+ pm_runtime_set_suspended(&client->dev);
+ }
for (i = 0; i < sensor->ssds_used; i++)
v4l2_device_unregister_subdev(&sensor->ssds[i].sd);