dmaengine: dw-axi-dmac: Hardware handshake configuration
authorPandith N <pandith.n@intel.com>
Fri, 1 Oct 2021 14:08:11 +0000 (19:38 +0530)
committerVinod Koul <vkoul@kernel.org>
Mon, 18 Oct 2021 06:44:19 +0000 (12:14 +0530)
Added hardware handshake selection in channel config,
for mem2per and per2mem case.
The peripheral specific handshake interface needs to be
programmed in src_per, dst_per bits of CHx_CFG register.

Signed-off-by: Pandith N <pandith.n@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211001140812.24977-3-pandith.n@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c

index 9a8231244c426e93646d1aba7b8937f5a26b4935..f46fd9895a13a1820df77324dc22e274d7b7406e 100644 (file)
@@ -396,6 +396,8 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan,
                                DWAXIDMAC_TT_FC_MEM_TO_PER_DMAC;
                if (chan->chip->apb_regs)
                        config.dst_per = chan->id;
+               else
+                       config.dst_per = chan->hw_handshake_num;
                break;
        case DMA_DEV_TO_MEM:
                config.tt_fc = chan->config.device_fc ?
@@ -403,6 +405,8 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan,
                                DWAXIDMAC_TT_FC_PER_TO_MEM_DMAC;
                if (chan->chip->apb_regs)
                        config.src_per = chan->id;
+               else
+                       config.src_per = chan->hw_handshake_num;
                break;
        default:
                break;