Hi Sakari, On Thu, 2020-06-04 at 11:10 +0300, Sakari Ailus wrote: > On Thu, Jun 04, 2020 at 10:33:38AM +0800, Dongchun Zhu wrote: > > Hi Tomasz, > > > > On Mon, 2020-06-01 at 20:47 +0200, Tomasz Figa wrote: > > > On Wed, May 27, 2020 at 11:03 AM Dongchun Zhu <dongchun.zhu@xxxxxxxxxxxx> wrote: > > > > > > > > Hi Tomasz, > > > > > > > > On Mon, 2020-05-25 at 13:45 +0200, Tomasz Figa wrote: > > > > > On Fri, May 22, 2020 at 11:27 AM Dongchun Zhu <dongchun.zhu@xxxxxxxxxxxx> wrote: > > > > > > > > > > > > Hi Tomasz, > > > > > > > > > > > > Thanks for the review. My replies are as below. > > > > > > > > > > > > On Thu, 2020-05-21 at 19:51 +0000, Tomasz Figa wrote: > > > > > > > Hi Dongchun, Sakari, > > > > > > > > > > > > > > On Mon, May 18, 2020 at 09:27:31PM +0800, Dongchun Zhu wrote: > > > > > [snip] > > > > > > > > + pm_runtime_enable(dev); > > > > > > > > + if (!pm_runtime_enabled(dev)) { > > > > > > > > + ret = dw9768_runtime_resume(dev); > > > > > > > > + if (ret < 0) { > > > > > > > > + dev_err(dev, "failed to power on: %d\n", ret); > > > > > > > > + goto entity_cleanup; > > > > > > > > + } > > > > > > > > + } > > > > > > > > + > > > > > > > > + ret = v4l2_async_register_subdev(&dw9768->sd); > > > > > > > > + if (ret < 0) > > > > > > > > + goto entity_cleanup; > > > > > > > > + > > > > > > > > + return 0; > > > > > > > > + > > > > > > > > +entity_cleanup: > > > > > > > > > > > > > > Need to power off if the code above powered on. > > > > > > > > > > > > > > > > > > > Thanks for the reminder. > > > > > > If there is something wrong with runtime PM, actuator is to be powered > > > > > > on via dw9768_runtime_resume() API. > > > > > > When actuator sub-device is powered on completely and async registered > > > > > > successfully, we shall power off it afterwards. > > > > > > > > > > > > > > > > The code above calls dw9768_runtime_resume() if > > > > > !pm_runtime_enabled(dev), but the clean-up code below the > > > > > entity_cleanup label doesn't have the corresponding > > > > > dw9768_runtime_suspend() call. > > > > > > > > > > > > > Did you mean the 'entity_cleanup' after v4l2_async_register_subdev()? > > > > > > Yes. > > > > > > > Actually I made some changes for OV02A V9, according to this comment. > > > > Could you help review that change? Thanks. > > > > > > Sure, I will take a look. > > > > > > > Thanks. > > Sorry, I just wanna make sure the change is okay for next release. > > May we use the check like OV02A V9 did? > > ret = v4l2_async_register_subdev(&dw9768->sd); > > if (ret < 0) { > > if (!pm_runtime_enabled(dev)) > > dw9768_runtime_suspend(dev); > > Please do this part where you're jumping to, if possible. > Fine. Fixed in next release. > > goto entity_cleanup; > > } > > >