dmaengine: ti: k3-udma: Correct normal channel offset when uchan_cnt is not 0
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 8 Dec 2020 09:04:21 +0000 (11:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:53:51 +0000 (11:53 +0100)
[ Upstream commit e2de925bbfe321ba0588c99f577c59386ab1f428 ]

According to different sections of the TRM, the hchan_cnt of CAP3 includes
the number of uchan in UDMA, thus the start offset of the normal channels
are hchan_cnt.

Fixes: daf4ad0499aa4 ("dmaengine: ti: k3-udma: Query throughput level information from hardware")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20201208090440.31792-2-peter.ujfalusi@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 82cf6c7..d390278 100644 (file)
@@ -3201,8 +3201,7 @@ static int udma_setup_resources(struct udma_dev *ud)
        } else if (UDMA_CAP3_UCHAN_CNT(cap3)) {
                ud->tpl_levels = 3;
                ud->tpl_start_idx[1] = UDMA_CAP3_UCHAN_CNT(cap3);
-               ud->tpl_start_idx[0] = ud->tpl_start_idx[1] +
-                                      UDMA_CAP3_HCHAN_CNT(cap3);
+               ud->tpl_start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);
        } else if (UDMA_CAP3_HCHAN_CNT(cap3)) {
                ud->tpl_levels = 2;
                ud->tpl_start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);