Hi Baruch, On Thu, May 3, 2018 at 6:09 PM Baruch Siach <baruch@xxxxxxxxxx> wrote: > Hi Jacob, > On Thu, Mar 08, 2018 at 05:47:55PM +0800, Jacob Chen wrote: > > +static int rkisp1_isp_sd_s_power(struct v4l2_subdev *sd, int on) > > +{ > > + struct rkisp1_device *isp_dev = sd_to_isp_dev(sd); > > + int ret; > > + > > + v4l2_dbg(1, rkisp1_debug, &isp_dev->v4l2_dev, "s_power: %d\n", on); > > + > > + if (on) { > > + ret = pm_runtime_get_sync(isp_dev->dev); > > + if (ret < 0) > > + return ret; > > + > > + rkisp1_config_clk(isp_dev); > > + } else { > > + ret = pm_runtime_put(isp_dev->dev); > I commented this line out to make more than one STREAMON work. Otherwise, the > second STREAMON hangs. I guess the bug is not this driver. Probably something > in drivers/soc/rockchip/pm_domains.c. Just noting that in case you or someone > on Cc would like to investigate it further. > I tested v4.16-rc4 on the Tinkerboard. Looks like that version doesn't include the IOMMU PM and clock handling rework [1], which should fix a lot of runtime PM issues. FWIW, linux-next seems to already include it. [1] https://lkml.org/lkml/2018/3/23/44 Best regards, Tomasz