Hi Zhi, On Sat, Aug 31, 2024 at 1:54 PM Zhi Mao <zhi.mao@xxxxxxxxxxxx> wrote: Suggestion for the new patch title: media: i2c: dw9768: Use runtime PM autosuspend to better describe "what" this patch does to the DW9768 driver, not "why". Also there's nothing to do with GT9769 in this patch. > > Chromebook camera AP can switch between video and photo mode, > the behavior corresponding to VCM is suspend and resume, > it will cause camera preview is not smooth during switching operation. > We use autosuspend function can fix this issue. > > Signed-off-by: Zhi Mao <zhi.mao@xxxxxxxxxxxx> > --- > drivers/media/i2c/dw9768.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/i2c/dw9768.c b/drivers/media/i2c/dw9768.c > index 18ef2b35c9aa..7449d29df901 100644 > --- a/drivers/media/i2c/dw9768.c > +++ b/drivers/media/i2c/dw9768.c > @@ -374,7 +374,7 @@ static int dw9768_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) > > static int dw9768_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) > { > - pm_runtime_put(sd->dev); Call pm_runtime_mark_last_busy() to update the power.last_busy field for autosuspend to work properly. > + pm_runtime_put_sync_autosuspend(sd->dev); Use pm_runtime_put_autosuspend(). Don't switch to the synchronized variant without reasons. > > return 0; > } > @@ -490,6 +490,7 @@ static int dw9768_probe(struct i2c_client *client) > goto err_power_off; > } > > + pm_runtime_use_autosuspend(dev); Add pm_runtime_set_autosuspend_delay() before calling pm_runtime_use_autosuspend() to avoid rapid power state bouncing. Regards, Fei > pm_runtime_idle(dev); > > return 0; > -- > 2.46.0 > >