Hi Tomi, Thank you for the patch. On Wed, Nov 22, 2023 at 03:13:48PM +0200, Tomi Valkeinen wrote: > The driver always calls mipi_csis_runtime_suspend() and > mipi_csis_clk_disable() in remove(). This causes multiple WARNs from the > kernel, as the clocks get disabled too many times. Did you try to unload the driver ? What a weird idea :-) > Fix the remove() to call mipi_csis_runtime_suspend() and > mipi_csis_clk_disable() in a way that reverses what is done in probe(). > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/nxp/imx-mipi-csis.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c > index 6cb20b45e0a1..b39d7aeba750 100644 > --- a/drivers/media/platform/nxp/imx-mipi-csis.c > +++ b/drivers/media/platform/nxp/imx-mipi-csis.c > @@ -1502,8 +1502,10 @@ static void mipi_csis_remove(struct platform_device *pdev) > v4l2_async_nf_cleanup(&csis->notifier); > v4l2_async_unregister_subdev(&csis->sd); > > + if (!pm_runtime_enabled(&pdev->dev)) > + mipi_csis_runtime_suspend(&pdev->dev); > + > pm_runtime_disable(&pdev->dev); > - mipi_csis_runtime_suspend(&pdev->dev); > mipi_csis_clk_disable(csis); > v4l2_subdev_cleanup(&csis->sd); > media_entity_cleanup(&csis->sd.entity); > -- Regards, Laurent Pinchart