This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: i2c: hi846: Drop system suspend and resume handlers
Author:  Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Date:    Thu Sep 14 21:16:45 2023 +0300

Stopping streaming on a camera pipeline at system suspend time, and
restarting it at system resume time, requires coordinated action between
the bridge driver and the camera sensor driver. This is handled by the
bridge driver calling the sensor's .s_stream() handler at system suspend
and resume time. There is thus no need for the sensor to independently
implement system sleep PM operations. Drop them.

Now that the runtime PM operations are not called from the system PM
handlers, the sensor is guaranteed not to be streaming when the runtime
PM resume handler is called, and to have been stopped already when the
runtime PM suspend handler is called. Drop the manual stream start/stop
from the runtime PM handlers.

Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 drivers/media/i2c/hi846.c | 25 +------------------------
 1 file changed, 1 insertion(+), 24 deletions(-)

---

diff --git a/drivers/media/i2c/hi846.c b/drivers/media/i2c/hi846.c
index 7fbcc3ff044b..825fc8dc48f5 100644
--- a/drivers/media/i2c/hi846.c
+++ b/drivers/media/i2c/hi846.c
@@ -1675,9 +1675,6 @@ static int __maybe_unused hi846_suspend(struct device 
*dev)
        struct v4l2_subdev *sd = i2c_get_clientdata(client);
        struct hi846 *hi846 = to_hi846(sd);
 
-       if (hi846->streaming)
-               hi846_stop_streaming(hi846);
-
        return hi846_power_off(hi846);
 }
 
@@ -1686,26 +1683,8 @@ static int __maybe_unused hi846_resume(struct device 
*dev)
        struct i2c_client *client = to_i2c_client(dev);
        struct v4l2_subdev *sd = i2c_get_clientdata(client);
        struct hi846 *hi846 = to_hi846(sd);
-       int ret;
-
-       ret = hi846_power_on(hi846);
-       if (ret)
-               return ret;
-
-       if (hi846->streaming) {
-               ret = hi846_start_streaming(hi846);
-               if (ret) {
-                       dev_err(dev, "%s: start streaming failed: %d\n",
-                               __func__, ret);
-                       goto error;
-               }
-       }
 
-       return 0;
-
-error:
-       hi846_power_off(hi846);
-       return ret;
+       return hi846_power_on(hi846);
 }
 
 static int hi846_set_format(struct v4l2_subdev *sd,
@@ -2168,8 +2147,6 @@ static void hi846_remove(struct i2c_client *client)
 }
 
 static const struct dev_pm_ops hi846_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
-                               pm_runtime_force_resume)
        SET_RUNTIME_PM_OPS(hi846_suspend, hi846_resume, NULL)
 };
 

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to