Hi Tommaso, Thank you for the patch. On Mon, Feb 10, 2025 at 12:45:40PM +0100, Tommaso Merciai wrote: > Use newly added devm_pm_runtime_enable() into rzg2l_cru_probe() and > drop unnecessary pm_runtime_disable() from rzg2l_cru_probe() and > rzg2l_csi2_remove(). > > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx> > --- > drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c > index 70fed0ce45ea..5548b328d970 100644 > --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c > +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c > @@ -287,7 +287,9 @@ static int rzg2l_cru_probe(struct platform_device *pdev) > > cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; > pm_suspend_ignore_children(dev, true); > - pm_runtime_enable(dev); > + ret = devm_pm_runtime_enable(dev); > + if (ret) > + return ret; Leaking DMA. > > ret = rzg2l_cru_media_init(cru); > if (ret) > @@ -297,7 +299,6 @@ static int rzg2l_cru_probe(struct platform_device *pdev) > > error_dma_unregister: > rzg2l_cru_dma_unregister(cru); > - pm_runtime_disable(dev); > > return ret; > } > @@ -306,8 +307,6 @@ static void rzg2l_cru_remove(struct platform_device *pdev) > { > struct rzg2l_cru_dev *cru = platform_get_drvdata(pdev); > > - pm_runtime_disable(&pdev->dev); > - > v4l2_async_nf_unregister(&cru->notifier); > v4l2_async_nf_cleanup(&cru->notifier); > -- Regards, Laurent Pinchart