24.04.2020 06:55, Sowjanya Komatineni пишет: > +static int tegra_csi_init(struct host1x_client *client) > +{ > + struct tegra_csi *csi = host1x_client_to_csi(client); > + struct tegra_video_device *vid = dev_get_drvdata(client->host); > + int ret; > + > + INIT_LIST_HEAD(&csi->csi_chans); > + > + ret = pm_runtime_get_sync(csi->dev); > + if (ret < 0) { > + dev_err(csi->dev, "failed to get runtime PM: %d\n", ret); > + pm_runtime_put_noidle(csi->dev); > + return ret; > + } The whole point of RPM is to keep hardware enabled only when needed, i.e. during of the capture process in this case. You should move all RPM handling to the capture start / stop functions.