Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Sai Sree Kartheek Adivi" <s-adivi@ti.com>
Cc: robh@kernel.org, conor+dt@kernel.org, vkoul@kernel.org,
	devicetree@vger.kernel.org, Frank.Li@kernel.org,
	dmaengine@vger.kernel.org
Subject: Re: [PATCH v9 18/19] dmaengine: ti: k3-udma-v2: Update glue layer to support PKTDMA V2
Date: Tue, 22 Sep 2026 07:10:52 +0000	[thread overview]
Message-ID: <20260922071053.5669E1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260922064902.2719979-19-s-adivi@ti.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] dmaengine: ti: inverted hardware teardown sequence for PKTDMA V2 TX channels
- [Medium] dmaengine: ti: missing configuration of error handling flags for PKTDMA V2
--

commit c9030c9c505174820633d0b6b095c2b74c127474
Author: Sai Sree Kartheek Adivi <s-adivi@ti.com>

dmaengine: ti: k3-udma-v2: Update glue layer to support PKTDMA V2

This patch updates the glue layer to support PKTDMA V2 for non DMAengine users.
It adds handling for the absence of TISCI, direct IRQs, and autopairing.

> diff --git a/drivers/dma/ti/k3-udma-glue.c b/drivers/dma/ti/k3-udma-glue.c
> index 3721edf71f9b3..5a3cac685a46c 100644
> --- a/drivers/dma/ti/k3-udma-glue.c
> +++ b/drivers/dma/ti/k3-udma-glue.c
> @@ -267,6 +268,19 @@ static int k3_udma_glue_cfg_tx_chn(struct k3_udma_glue_tx_channel *tx_chn)
>  	const struct udma_tisci_rm *tisci_rm = tx_chn->common.tisci_rm;
>  	struct ti_sci_msg_rm_udmap_tx_ch_cfg req;
>  
> +	if (!tisci_rm->tisci) {
> +		u32 val = 0;
> +
> +		if (tx_chn->tx_filt_einfo)
> +			val |= UDMA_CHAN_CFG_FILT_EINFO;
> +		if (tx_chn->tx_filt_pswords)
> +			val |= UDMA_CHAN_CFG_FILT_PSWORDS;
> +
> +		xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_CFG_REG, val);
> +
> +		return 0;
> +	}

[Severity: Medium]
When configuring the channel without TISCI, is it intentional that
tx_pause_on_err and tx_supr_tdpkt are silently ignored before the early
return? In the TISCI configuration path further down in this function, these
flags are evaluated and applied, but here they seem to be dropped.

[ ... ]

> @@ -573,8 +605,16 @@ void k3_udma_glue_tdown_tx_chn(struct k3_udma_glue_tx_channel *tx_chn,
>  
>  	k3_udma_glue_dump_tx_rt_chn(tx_chn, "txchn tdown1");
>  
> -	xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_CTL_REG,
> -			    UDMA_CHAN_RT_CTL_EN | UDMA_CHAN_RT_CTL_TDOWN);
> +	if (tx_chn->common.udmax->match_data->version == K3_UDMA_V1) {
> +		xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_CTL_REG,
> +				    UDMA_CHAN_RT_CTL_EN | UDMA_CHAN_RT_CTL_TDOWN);
> +	} else {
> +		val = xudma_tchanrt_read(tx_chn->udma_tchanx, UDMA_CHAN_RT_CTL_REG);
> +		xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_CTL_REG,
> +				    val | UDMA_CHAN_RT_CTL_TDOWN);
> +		xudma_tchanrt_write(tx_chn->udma_tchanx, UDMA_CHAN_RT_PEER_REG(8),
> +				    UDMA_CHAN_RT_PEER_REG8_FLUSH);
> +	}

[Severity: High]
Does this sequence invert the hardware teardown requirements for PKTDMA V2 TX
channels? It looks like the teardown bit (UDMA_CHAN_RT_CTL_TDOWN) is being
written to UDMA_CHAN_RT_CTL_REG before sending the flush command to the peer
via UDMA_CHAN_RT_PEER_REG(8). Does the hardware require flushing the peer
before initiating the teardown to avoid locking up or leaving the channel in
an inconsistent state?

[ ... ]

> @@ -826,6 +883,19 @@ static int k3_udma_glue_cfg_rx_flow(struct k3_udma_glue_rx_channel *rx_chn,
>  		rx_ringfdq_id = k3_ringacc_get_ring_id(flow->ringrxfdq);
>  	}
>  
> +	if (!tisci_rm->tisci) {
> +		u32 val = 0;
> +
> +		if (rx_chn->common.epib)
> +			val |= UDMA_FLOWRT_RFA_RX_EINFO_PRESENT;
> +		if (rx_chn->common.psdata_size)
> +			val |= UDMA_FLOWRT_RFA_RX_PSINFO_PRESENT;
> +
> +		xudma_rflowrt_write(flow->udma_rflow, UDMA_RX_FLOWRT_RFA, val);
> +		rx_chn->flows_ready++;
> +		return 0;
> +	}

[Severity: Medium]
Are we missing the configuration for flow_cfg->rx_error_handling in this new
no-TISCI path? Callers using the glue layer for PKTDMA V2 could request
rx_error_handling, but it appears to be silently ignored here instead of being
written to the hardware registers (like bit 28 of UDMA_RX_FLOWRT_RFA) to enable
hardware flow error handling.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260922064902.2719979-1-s-adivi@ti.com?part=18

  reply	other threads:[~2026-09-22  7:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22  6:47 [PATCH v9 00/19] dmaengine: ti: Add support for BCDMA v2 and PKTDMA v2 Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 01/19] dmaengine: ti: k3-udma: Fix sporadic crash on AM62x Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 02/19] dmaengine: ti: k3-udma: move macros to header file Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 03/19] dmaengine: ti: k3-udma: move structs and enums " Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 04/19] dmaengine: ti: k3-udma: move static inline helper functions " Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 05/19] dmaengine: ti: k3-udma: move descriptor management to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 06/19] dmaengine: ti: k3-udma: move ring management functions " Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 07/19] dmaengine: ti: k3-udma: Add variant-specific function pointers to udma_dev Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 08/19] dmaengine: ti: k3-udma: move udma utility functions to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 09/19] dmaengine: ti: k3-udma: move resource management " Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 10/19] dmaengine: ti: k3-udma: refactor resource setup functions Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 11/19] dmaengine: ti: k3-udma: move inclusion of k3-udma-private.c to k3-udma-common.c Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 12/19] drivers: soc: ti: k3-ringacc: handle absence of tisci Sai Sree Kartheek Adivi
2026-09-22  7:06   ` sashiko-bot
2026-09-22  6:47 ` [PATCH v9 13/19] dt-bindings: dma: ti: Add K3 BCDMA V2 Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 14/19] dt-bindings: dma: ti: Add K3 PKTDMA V2 Sai Sree Kartheek Adivi
2026-09-22  6:47 ` [PATCH v9 15/19] dmaengine: ti: k3-psil-am62l: Add AM62Lx PSIL and PDMA data Sai Sree Kartheek Adivi
2026-09-22  7:07   ` sashiko-bot
2026-09-22  6:47 ` [PATCH v9 16/19] dmaengine: ti: k3-udma-v2: New driver for K3 BCDMA_V2 Sai Sree Kartheek Adivi
2026-09-22  7:22   ` sashiko-bot
2026-09-22  6:47 ` [PATCH v9 17/19] dmaengine: ti: k3-udma-v2: Add support for PKTDMA V2 Sai Sree Kartheek Adivi
2026-09-22  7:14   ` sashiko-bot
2026-09-22  6:47 ` [PATCH v9 18/19] dmaengine: ti: k3-udma-v2: Update glue layer to support " Sai Sree Kartheek Adivi
2026-09-22  7:10   ` sashiko-bot [this message]
2026-09-22  6:47 ` [PATCH v9 19/19] dmaengine: ti: k3-udma: Validate resource ID and fix logging in reservation Sai Sree Kartheek Adivi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260922071053.5669E1F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=s-adivi@ti.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox