Hi Changhuang On Wed, Jul 17, 2024 at 08:28:31PM GMT, Changhuang Liang wrote: > Add system PM support make it stopping streaming at system suspend time, > and restarting streaming at system resume time. > > Signed-off-by: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx> Looks ok to me! Reviewed-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/cadence/cdns-csi2rx.c | 32 ++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/drivers/media/platform/cadence/cdns-csi2rx.c b/drivers/media/platform/cadence/cdns-csi2rx.c > index 981819adbb3a..81e90b31e9f8 100644 > --- a/drivers/media/platform/cadence/cdns-csi2rx.c > +++ b/drivers/media/platform/cadence/cdns-csi2rx.c > @@ -776,8 +776,40 @@ static int csi2rx_runtime_resume(struct device *dev) > return ret; > } > > +static int __maybe_unused csi2rx_suspend(struct device *dev) > +{ > + struct csi2rx_priv *csi2rx = dev_get_drvdata(dev); > + > + mutex_lock(&csi2rx->lock); > + if (csi2rx->count) > + csi2rx_stop(csi2rx); > + mutex_unlock(&csi2rx->lock); > + > + pm_runtime_force_suspend(dev); > + > + return 0; > +} > + > +static int __maybe_unused csi2rx_resume(struct device *dev) > +{ > + struct csi2rx_priv *csi2rx = dev_get_drvdata(dev); > + int ret; > + > + ret = pm_runtime_force_resume(dev); > + if (ret < 0) > + return ret; > + > + mutex_lock(&csi2rx->lock); > + if (csi2rx->count) > + csi2rx_start(csi2rx); > + mutex_unlock(&csi2rx->lock); > + > + return 0; > +} > + > static const struct dev_pm_ops csi2rx_pm_ops = { > SET_RUNTIME_PM_OPS(csi2rx_runtime_suspend, csi2rx_runtime_resume, NULL) > + SET_SYSTEM_SLEEP_PM_OPS(csi2rx_suspend, csi2rx_resume) > }; > > static const struct of_device_id csi2rx_of_table[] = { > -- > 2.25.1 > >