From c4afd40f7f28cd711772f64724466ab1e6eb3cf3 Mon Sep 17 00:00:00 2001 From: Sugar Zhang Date: Thu, 13 Jul 2023 10:51:39 +0800 Subject: [PATCH] dmaengine: pl330: Add support for mcbufsz parsed from DT This patch introduce property 'arm,pl330-mcbufsz-bytes' to support assign mcbufsz from DT. And we limit the max value to one PAGE_SIZE. though there is no limit for the controller. e.g. arm,pl330-mcbufsz-bytes = <2048>; Signed-off-by: Sugar Zhang Change-Id: Ia13c35e58cd6addcc7a80cb05b484184f6031989 --- drivers/dma/pl330.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 91592809d496..b1d6faede65b 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -3191,6 +3191,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) struct resource *res; int i, ret, irq; int num_chan; + int val; struct device_node *np = adev->dev.of_node; ret = dma_set_mask_and_coherent(&adev->dev, DMA_BIT_MASK(32)); @@ -3205,7 +3206,12 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) pd = &pl330->ddma; pd->dev = &adev->dev; - pl330->mcbufsz = 0; + if (!device_property_read_u32(&adev->dev, "arm,pl330-mcbufsz-bytes", &val)) { + if ((val > 0) && (val <= PAGE_SIZE)) + pl330->mcbufsz = val; + + dev_info(&adev->dev, "mcbufsz: %d bytes\n", pl330->mcbufsz); + } /* get quirk */ for (i = 0; i < ARRAY_SIZE(of_quirks); i++)