dmaengine: fsl-edma: select of_dma_xlate based on the dmamuxs presence
authorLarisa Grigore <larisa.grigore@oss.nxp.com>
Thu, 19 Dec 2024 10:24:10 +0000 (12:24 +0200)
committerVinod Koul <vkoul@kernel.org>
Tue, 24 Dec 2024 09:44:13 +0000 (15:14 +0530)
Select the of_dma_xlate function based on the dmamuxs definition rather
than the FSL_EDMA_DRV_SPLIT_REG flag, which pertains to the eDMA3
layout.

This change is a prerequisite for the S32G platforms, which integrate both
eDMAv3 and DMAMUX.

Existing platforms with FSL_EDMA_DRV_SPLIT_REG will not be impacted, as
they all have dmamuxs set to zero.

Signed-off-by: Larisa Grigore <larisa.grigore@oss.nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20241219102415.1208328-2-larisa.grigore@oss.nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/fsl-edma-main.c

index 60de1003193aa3420e7b46edc47c44c98d01ddf3..2a7d19f512874c090accc118c4b3a2873e7e011d 100644 (file)
@@ -646,7 +646,7 @@ static int fsl_edma_probe(struct platform_device *pdev)
        }
 
        ret = of_dma_controller_register(np,
-                       drvdata->flags & FSL_EDMA_DRV_SPLIT_REG ? fsl_edma3_xlate : fsl_edma_xlate,
+                       drvdata->dmamuxs ? fsl_edma_xlate : fsl_edma3_xlate,
                        fsl_edma);
        if (ret) {
                dev_err(&pdev->dev,