Re: [PATCH v4] dmaengine: tegra210-adma: Add error logging on failure paths

From: Frank Li

Date: Wed May 06 2026 - 15:11:09 EST


On Mon, Apr 13, 2026 at 06:45:45AM +0000, Sheetal wrote:
> Add dev_err/dev_err_probe logging across failure paths to improve
> debuggability of DMA errors during runtime and probe.
>
> Use return dev_err_probe() pattern consistently in the probe function,
> and dev_err in non-probe functions. Also convert existing dev_err calls
> in probe to dev_err_probe for consistency.
>
> Signed-off-by: Sheetal <sheetal@xxxxxxxxxx>
> ---

...
>
> @@ -1141,12 +1157,16 @@ static int tegra_adma_probe(struct platform_device *pdev)
> pm_runtime_enable(&pdev->dev);
>
> ret = pm_runtime_resume_and_get(&pdev->dev);

Change to use ACQUIRE(pm_runtime_active, pm), so rpm_disable can be removed

> - if (ret < 0)
> + if (ret < 0) {
> + dev_err_probe(&pdev->dev, ret, "runtime PM resume failed\n");
> goto rpm_disable;
> + }
>
> ret = tegra_adma_init(tdma);
> - if (ret)
> + if (ret) {
> + dev_err_probe(&pdev->dev, ret, "failed to initialize ADMA\n");
> goto rpm_put;
> + }
>
> dma_cap_set(DMA_SLAVE, tdma->dma_dev.cap_mask);
> dma_cap_set(DMA_PRIVATE, tdma->dma_dev.cap_mask);
> @@ -1172,14 +1192,14 @@ static int tegra_adma_probe(struct platform_device *pdev)
>
> ret = dma_async_device_register(&tdma->dma_dev);

the preferred pattern is
return dev_err_probe();

Before do that, I suggest
change to use dmaenginem_async_device_register(), so label dma_remove
can be removed.

Frank

> if (ret < 0) {
> - dev_err(&pdev->dev, "ADMA registration failed: %d\n", ret);
> + dev_err_probe(&pdev->dev, ret, "ADMA registration failed\n");
> goto rpm_put;
> }
>
> ret = of_dma_controller_register(pdev->dev.of_node,
> tegra_dma_of_xlate, tdma);
> if (ret < 0) {
> - dev_err(&pdev->dev, "ADMA OF registration failed %d\n", ret);
> + dev_err_probe(&pdev->dev, ret, "ADMA OF registration failed\n");
> goto dma_remove;
> }
>
> --
> 2.17.1
>