28.07.2020 18:59, Sowjanya Komatineni пишет: ... >>> + ret = tegra_mipi_finish_calibration(csi_chan->mipi); >>> + if (ret < 0) >>> + dev_err(csi_chan->csi->dev, >>> + "MIPI calibration failed: %d\n", ret); >> Doesn't v4l2_subdev_call(OFF) need to be invoked here on error? > > Not required as on error streaming fails and runtime PM will turn off > power anyway. I see that camera drivers bump theirs RPM on s_stream=1, and thus, s_stream=0 should be invoked in order to balance the RPM. What am I missing? https://elixir.bootlin.com/linux/v5.8-rc4/source/drivers/media/i2c/ov2740.c#L634 > Also we only did csi subdev s_stream on and during sensor subdev > s_stream on fail, actual stream dont happen and on tegra side frame > capture by HW happens only when kthreads run. Secondly, perhaps a failed calibration isn't a very critical error? Hence just printing a warning message should be enough. Could you please make a patch that factors all ON/OFF code paths into a separate functions? It's a bit difficult to follow the combined code, especially partial changes in the patches. Thanks in advance!