mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
dmaengine: ti: k3-udma: Wait for peer teardown completion if supported
Set the TDTYPE if it is supported on the platform (j721e) which will cause UDMAP to wait for the remote peer to finish the teardown before returning the teardown completed message. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> Link: https://lore.kernel.org/r/20201208090440.31792-3-peter.ujfalusi@ti.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
e2de925bbf
commit
5e1cb1cb0f
1 changed files with 10 additions and 2 deletions
|
@ -86,6 +86,7 @@ struct udma_rchan {
|
|||
|
||||
#define UDMA_FLAG_PDMA_ACC32 BIT(0)
|
||||
#define UDMA_FLAG_PDMA_BURST BIT(1)
|
||||
#define UDMA_FLAG_TDTYPE BIT(2)
|
||||
|
||||
struct udma_match_data {
|
||||
u32 psil_base;
|
||||
|
@ -1589,6 +1590,13 @@ static int udma_tisci_tx_channel_config(struct udma_chan *uc)
|
|||
req_tx.tx_fetch_size = fetch_size >> 2;
|
||||
req_tx.txcq_qnum = tc_ring;
|
||||
req_tx.tx_atype = uc->config.atype;
|
||||
if (uc->config.ep_type == PSIL_EP_PDMA_XY &&
|
||||
ud->match_data->flags & UDMA_FLAG_TDTYPE) {
|
||||
/* wait for peer to complete the teardown for PDMAs */
|
||||
req_tx.valid_params |=
|
||||
TI_SCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID;
|
||||
req_tx.tx_tdtype = 1;
|
||||
}
|
||||
|
||||
ret = tisci_ops->tx_ch_cfg(tisci_rm->tisci, &req_tx);
|
||||
if (ret)
|
||||
|
@ -3105,14 +3113,14 @@ static struct udma_match_data am654_mcu_data = {
|
|||
static struct udma_match_data j721e_main_data = {
|
||||
.psil_base = 0x1000,
|
||||
.enable_memcpy_support = true,
|
||||
.flags = UDMA_FLAG_PDMA_ACC32 | UDMA_FLAG_PDMA_BURST,
|
||||
.flags = UDMA_FLAG_PDMA_ACC32 | UDMA_FLAG_PDMA_BURST | UDMA_FLAG_TDTYPE,
|
||||
.statictr_z_mask = GENMASK(23, 0),
|
||||
};
|
||||
|
||||
static struct udma_match_data j721e_mcu_data = {
|
||||
.psil_base = 0x6000,
|
||||
.enable_memcpy_support = false, /* MEM_TO_MEM is slow via MCU UDMA */
|
||||
.flags = UDMA_FLAG_PDMA_ACC32 | UDMA_FLAG_PDMA_BURST,
|
||||
.flags = UDMA_FLAG_PDMA_ACC32 | UDMA_FLAG_PDMA_BURST | UDMA_FLAG_TDTYPE,
|
||||
.statictr_z_mask = GENMASK(23, 0),
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue