[PATCH v4] dma: ti: k3-udma: Use ring_idx to pair k3 nav rings

Ravi Gunasekaran r-gunasekaran at ti.com
Fri Feb 2 06:01:19 CET 2024



On 1/30/2024 11:48 AM, MD Danish Anwar wrote:
> Use ring_idx to pair rings. ring_idx will be same as tx flow_id for all
> non-negative flow_ids. For negative flow_ids, ring_idx will be tchan->id
> added with bchan_cnt.
>
> Signed-off-by: MD Danish Anwar <danishanwar at ti.com>
> ---
> Changes from v3 to v4:
> *) No functional change. Splitted the patch out of the series as suggested
>    by Nishant.
>
> v3: https://lore.kernel.org/all/20240124064930.1787929-2-danishanwar@ti.com/
>
>  drivers/dma/ti/k3-udma.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
> index 8a62d63dfe..eea9ec9659 100644
> --- a/drivers/dma/ti/k3-udma.c
> +++ b/drivers/dma/ti/k3-udma.c
> @@ -876,13 +876,20 @@ static int udma_alloc_tx_resources(struct udma_chan *uc)
>  {
>  	struct k3_nav_ring_cfg ring_cfg;
>  	struct udma_dev *ud = uc->ud;
> -	int ret;
> +	struct udma_tchan *tchan;
> +	int ring_idx, ret;
>  
>  	ret = udma_get_tchan(uc);
>  	if (ret)
>  		return ret;
>  
> -	ret = k3_nav_ringacc_request_rings_pair(ud->ringacc, uc->tchan->id, -1,
> +	tchan = uc->tchan;
> +	if (tchan->tflow_id >= 0)
> +		ring_idx = tchan->tflow_id;
> +	else
> +		ring_idx = ud->bchan_cnt + tchan->id;
> +
> +	ret = k3_nav_ringacc_request_rings_pair(ud->ringacc, ring_idx, -1,
>  						&uc->tchan->t_ring,
>  						&uc->tchan->tc_ring);
>  	if (ret) {

I see this change present in upstream linux kernel as well.
You could consider providing the link to kernel if such changes are already
merged there.

Reviewed-by: Ravi Gunasekaran <r-gunasekaran at ti.com>


More information about the U-Boot mailing list