]> www.infradead.org Git - nvme.git/commitdiff
dmaengine: ti: k3-udma: Fix BCHAN count with UHC and HC channels
authorVignesh Raghavendra <vigneshr@ti.com>
Fri, 7 Jun 2024 18:11:03 +0000 (23:41 +0530)
committerVinod Koul <vkoul@kernel.org>
Fri, 28 Jun 2024 07:29:30 +0000 (12:59 +0530)
Unlike other channel counts in CAPx registers, BCDMA BCHAN CNT doesn't
include UHC and HC BC channels. So include them explicitly to arrive at
total BC channel in the instance.

Fixes: 8844898028d4 ("dmaengine: ti: k3-udma: Add support for BCDMA channel TPL handling")
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Tested-by: Jayesh Choudhary <j-choudhary@ti.com>
Link: https://lore.kernel.org/r/20240607-bcdma_chan_cnt-v2-1-bf1a55529d91@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ti/k3-udma.c

index d7259caa0200e7763f64f3ca433aa9871d2c73ae..c253e6dd8df0d30d7b6e63770a87f940508ae1e5 100644 (file)
@@ -4473,7 +4473,9 @@ static int udma_get_mmrs(struct platform_device *pdev, struct udma_dev *ud)
                ud->rchan_cnt = UDMA_CAP2_RCHAN_CNT(cap2);
                break;
        case DMA_TYPE_BCDMA:
-               ud->bchan_cnt = BCDMA_CAP2_BCHAN_CNT(cap2);
+               ud->bchan_cnt = BCDMA_CAP2_BCHAN_CNT(cap2) +
+                               BCDMA_CAP3_HBCHAN_CNT(cap3) +
+                               BCDMA_CAP3_UBCHAN_CNT(cap3);
                ud->tchan_cnt = BCDMA_CAP2_TCHAN_CNT(cap2);
                ud->rchan_cnt = BCDMA_CAP2_RCHAN_CNT(cap2);
                ud->rflow_cnt = ud->rchan_cnt;