dmaengine: xilinx_dma: Fix SG capability check for MCDMA

The SG capability is inherently present with Multichannel DMA operation.
The register used to check for this capability with other DMA driver types
is not defined for MCDMA.

Fixes: 6ccd692bfb ("dmaengine: xilinx_dma: Add Xilinx AXI MCDMA Engine driver support")
Signed-off-by: Matthew Murrian <matthew.murrian@goctsi.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Link: https://lore.kernel.org/r/1604473206-32573-4-git-send-email-radhey.shyam.pandey@xilinx.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Matthew Murrian 2020-11-04 12:30:06 +05:30 коммит произвёл Vinod Koul
Родитель c8ae793299
Коммит 96d5d884f7
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -2855,10 +2855,11 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
chan->stop_transfer = xilinx_dma_stop_transfer; chan->stop_transfer = xilinx_dma_stop_transfer;
} }
/* check if SG is enabled (only for AXIDMA and CDMA) */ /* check if SG is enabled (only for AXIDMA, AXIMCDMA, and CDMA) */
if (xdev->dma_config->dmatype != XDMA_TYPE_VDMA) { if (xdev->dma_config->dmatype != XDMA_TYPE_VDMA) {
if (dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) & if (xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA ||
XILINX_DMA_DMASR_SG_MASK) dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) &
XILINX_DMA_DMASR_SG_MASK)
chan->has_sg = true; chan->has_sg = true;
dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id, dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id,
chan->has_sg ? "enabled" : "disabled"); chan->has_sg ? "enabled" : "disabled");