Message ID | 20231122-imx-csis-v1-1-0617368eb996@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: imx-mipi-csis: csis clock fixes | expand |
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@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > 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); >
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);
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. 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@ideasonboard.com> --- drivers/media/platform/nxp/imx-mipi-csis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)