]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Aug 2024 07:00:59 +0000 (09:00 +0200)
[ Upstream commit 372f8b3621294173f539b32976e41e6e12f5decf ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/dma/ti/k3-udma.c

index 6400d06588a24d1aa54ceefc3e79ce7661e43f3a..df507d96660b959511f49f09ac09518d5aef434b 100644 (file)
@@ -4472,7 +4472,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;