From patchwork Wed Mar 27 09:58:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Louis Chauvet X-Patchwork-Id: 13606112 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 757EBCD11DF for ; Wed, 27 Mar 2024 09:59:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Mm88BnMIIqHVIaW8iOkmgWuDA4o3xcInafXuZ8ye+Co=; b=hJ1WcHEvWTnERo 66g0FYYymEQZk02CXW2wWqc4q1+jMUsqYJpslU/C+vwqVKWrFZxoJF4ZSKRJ0mW6T9dk9lb3WQQeJ 4QsNvKJp9Sup4hY3Ces4kVsHf19hu7ZQtMqISDNjBGSLnpyhDCvuorthAaAmSqnl8uF3kjJY4ULDl x17qUfNMIOY8phnHmUUZBZlUPGkmXNAeGKCnc+gEsc5LQlZDazthju5DVOmoO1RStXcGzFVLnR2M2 ylwXUmpBhMOrq19XamqieZfgjqb7XC2VmnNc3bNO4l6JwoYeJL1XeXXmAgRaHUe5frQ+NG7brCmgZ iczxXFbdTb/jVbUeAEfA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ4B-00000008Jcb-1ONl; Wed, 27 Mar 2024 09:59:31 +0000 Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ3u-00000008JWV-2fcG for linux-arm-kernel@lists.infradead.org; Wed, 27 Mar 2024 09:59:19 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9FA8D2000B; Wed, 27 Mar 2024 09:59:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1711533550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4g70CEkuUSM1WtA7B5LTii3U2wOnA2Oz3/OdBqqrL5M=; b=l6Q7GSZiup/bbdE0wbavpZwfrd7xGJe9vle11q+vc9vXfvzMn7zM7/E8Qi8rNtlJxsEseu +VYfMMEbl3/frfCX/kadadS63dTaDWCG3apw/cqxoRK9mhysQVEUQ3J53i5J/tLGs3Ng0Y chiv8YVfl2eTJcNer159ITHbdVxl5n4N3MDeUPXs8q4XhnnBIQQvw0myelrbls/ZBXCfBh ts2NcDIMR29k4DYkup5BGbN9603EedrzU1u8aVjxA3VG9jw1/Tk8gMESGY+TUwcFL+6Lr6 qHLSPOC5g5/D4wnitDS5gGqJPNuhvshy6th0BvB3YN9p8Pk4xq8mUKzPiKnXCA== From: Louis Chauvet Date: Wed, 27 Mar 2024 10:58:48 +0100 Subject: [PATCH 1/3] dmaengine: xilinx: xdma: Fix wrong offsets in the buffers addresses in dma descriptor MIME-Version: 1.0 Message-Id: <20240327-digigram-xdma-fixes-v1-1-45f4a52c0283@bootlin.com> References: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> In-Reply-To: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> To: Lizhi Hou , Brian Xu , Raj Kumar Rampelli , Vinod Koul , Michal Simek , Jan Kuliga , Miquel Raynal Cc: dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Louis Chauvet X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1016; i=louis.chauvet@bootlin.com; h=from:subject:message-id; bh=Uzr2bK6DiI1V4GZAhaVT5cYNAM7G0VnbzgyNu2t/W38=; b=owEBbQKS/ZANAwAIASCtLsZbECziAcsmYgBmA+3s0JG0WdUbsy7i8QDPfbhTO08tGTlQ8yyvl92x mhKGN06JAjMEAAEIAB0WIQRPj7g/vng8MQxQWQQgrS7GWxAs4gUCZgPt7AAKCRAgrS7GWxAs4g4LEA CggITrUpwzuuj5zMdD6jmZdbJKYNK+s2pg7X1fhI0UGcqV0xoraveSkRKutOQyLWZq+Ed84ipqZdjP MXlUapOFmdBj8saXaitR1COGB8uI47gmjB2taQAcQkS8Cxc9d6ws50ThDSYIPvbyt8SHYgJCOsKZVk PLgohKVXHgzWTOv4OB0nsjvy57uzt6R1atpK7Rs4jaQZ6MCzI1EwJa1Mvz+sihPcDuWch3jPnlleEM TkF1BFRS8Gz/rSORI13d6lAHRZTqg7Spz9uCSGwtV7malBOrjU0hpqh/sbG0GvjTSshVTDHWXfc16O n0YqzRd8tlbBxBc+IY+Cv/ibaeq3cX9jthdMcUREkeiQe+P4pX9ScFLLssIUHX//0wFxBbvpkRo0U4 8+VMRtWIqJA8lRHGN7DoAC3hMc0H++vybnbWVJILCCsJ93/Dg1gri6aJKWib2d5ynhhNi0MWO4EeqI LU4deXn7+m1HaH/SrPFQafgW74OCmhlIU5FEY3hAaLc8Sq+paZ1wIHyj4aOOfW+pD+bmOz456/8VX9 kOR0xk9lOpV184m9twPtMeZMoC6UiWY3kAOb2eLxz0dSO2Pm1YuDcMLibOYqayi1bEzLete3blPbyY OO6W6kL2GB7PsPH/jiXQEUjx5xDuBgZa3u7MY9xy+00z5GS7SVAtExS/wdQw== X-Developer-Key: i=louis.chauvet@bootlin.com; a=openpgp; fpr=8B7104AE9A272D6693F527F2EC1883F55E0B40A5 X-GND-Sasl: louis.chauvet@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240327_025915_193417_454A8177 X-CRM114-Status: GOOD ( 10.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Miquel Raynal The addition of interleaved transfers slightly changed the way addresses inside DMA descriptors are derived, breaking cyclic transfers. Fixes: 3e184e64c2e5 ("dmaengine: xilinx: xdma: Prepare the introduction of interleaved DMA transfers") Cc: stable@vger.kernel.org Signed-off-by: Miquel Raynal Signed-off-by: Louis Chauvet --- drivers/dma/xilinx/xdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/xilinx/xdma.c b/drivers/dma/xilinx/xdma.c index 170017ff2aad..b9788aa8f6b7 100644 --- a/drivers/dma/xilinx/xdma.c +++ b/drivers/dma/xilinx/xdma.c @@ -704,7 +704,7 @@ xdma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t address, desc_num = 0; for (i = 0; i < periods; i++) { desc_num += xdma_fill_descs(sw_desc, *src, *dst, period_size, desc_num); - addr += i * period_size; + addr += period_size; } tx_desc = vchan_tx_prep(&xdma_chan->vchan, &sw_desc->vdesc, flags); From patchwork Wed Mar 27 09:58:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Louis Chauvet X-Patchwork-Id: 13606114 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 50BFACD1288 for ; Wed, 27 Mar 2024 09:59:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CLz1nnVuZxaavTLgzhulOaq28JZ+S0dh1mRKBnF+z+w=; b=Ox2VF7A0njK0P9 tkDckzZPGgbmDPBEG3lFnUJyDm8f9DOTsDBm7/x7B9bJt134VTs/5nk85g4EFoMg5wV2cpsxUZi1S GU5Z1H/n2r/9ht9o9VChzW3pkvuak3pcCPtgTcBvwBskYcSt31qaghQLQKmWdS5WPtNvEvVhtXMvN ZwthDpkd30Zs6zvJQakvLHFMAa2AAys5TLqeK0ZYp9fvpn3bD0u84Wz4avthuUt0UpvQbQ3dPfZBD jvjK5nFud2h3C/ihOJ34e48UgrpktMsWN2i2hqPjrMFJNgkm14Gc2ziLGnYFfsl4EyNNW2biI69S4 0FyQCkHi81jXWzNs6Lnw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ4E-00000008JfH-2vgP; Wed, 27 Mar 2024 09:59:34 +0000 Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ3u-00000008JWk-2OYU for linux-arm-kernel@lists.infradead.org; Wed, 27 Mar 2024 09:59:20 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4D40920007; Wed, 27 Mar 2024 09:59:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1711533550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fD9sOUsMc8Jqg8IRAVkvtFQ1xqLl4g/m6Ehzp79ZvKU=; b=KrL2YKnbp6PTiFdDWg0S2ONjAPircQgM+PNxXHoyQqJD+0yHWv+gEMov6oCXs+UaBMpuXL YreCdd8VZ4rT4j4rQAqoXS68UHgDyrhjJFn617gzxqjX59oadpXl03ZkEvv8inxyvUcCSA Pw87YEyJXUhqeB5E7WlJ7cmXUBeYY+AycPrkQ/UgjTsY9pzjavUEHlx06jKZpzLId9yCrN icJ9LdSTgpbp5KPZV1qQd4AzBVWGxNYNbQ5TNlnL9EAUpinGZzPqj2cevEcKcTxPGTzs34 C2ClOyP6MQqQRIjUPCn82ewrV4zASU9hh/F6j01bs1A0hPUHLp0bdBrfy/lJMw== From: Louis Chauvet Date: Wed, 27 Mar 2024 10:58:49 +0100 Subject: [PATCH 2/3] dmaengine: xilinx: xdma: Fix synchronization issue MIME-Version: 1.0 Message-Id: <20240327-digigram-xdma-fixes-v1-2-45f4a52c0283@bootlin.com> References: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> In-Reply-To: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> To: Lizhi Hou , Brian Xu , Raj Kumar Rampelli , Vinod Koul , Michal Simek , Jan Kuliga , Miquel Raynal Cc: dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Louis Chauvet X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4262; i=louis.chauvet@bootlin.com; h=from:subject:message-id; bh=tAAg740eQ7IlOAqxwVUt+FnDhBsraf8Wz/vF4jDolhM=; b=owEBbQKS/ZANAwAIASCtLsZbECziAcsmYgBmA+3sEHyfBZjy1qGVBd85PxD2wQVHGXiv4/AXT2Hd I6hI1DGJAjMEAAEIAB0WIQRPj7g/vng8MQxQWQQgrS7GWxAs4gUCZgPt7AAKCRAgrS7GWxAs4kM1EA Ci+9mkrXFSOWUajW81HMrAHmczDf8A2ntyeopy0Z37g0I3z7W53rJpj7ybqfFCauOBptuzM9TRZjMb Zg3x4cKUX2r9KAgAO9OAEvTNtkDmr8sjWNYUbJpRTg3CzXH80Q/HmrjmAQfR9yfn9H7N3U5h8Txorh CR+cogWRfOKCMwW37mSSxhI6Gu/i9HI9mM7uOW5HzB0SxCbfyIi5k0mVTH6CwI9FY5wgUtXEPI1m+M odWUpGBi9LbccM7/kTlFalOlRqxXu9EaZMCmqdt0OZ6MtXnBTPFCFSsczYRjbnR1NCA12koAPE33Az S0eGZkOnjeDFfDTd6WBqX+ykWzdtbXthLu2PGvJs6BJdrIBaR+mtFcHskKy3X4PREQLlggj9NXe1nT kUONpCcqfh7BTYbX+TA8MlfCXSACw2/3K/AnRFdrKjBCA0zV4NRHk1uEG4yhXqs8IfIrV381BvkzjF VpOOIXaHnU21MLIAI3YgZIuQlCn+aCreyG6FG9iGmvmghoX0kwOrpx99NoPtaootEAM3y4hCdy1tS1 ZRaZqA6LrZ4B5DtSyz2Wd2F8YnA971pGq+zMWrBOFDsBdtJdzDeeVM3CVUmKB8/MbsJacnaP11dIzz oFK46h+k4VJr1z3RgAZtvESlQoa+l5vGdvES5cqIFMCNPbW680rUrymm9q9g== X-Developer-Key: i=louis.chauvet@bootlin.com; a=openpgp; fpr=8B7104AE9A272D6693F527F2EC1883F55E0B40A5 X-GND-Sasl: louis.chauvet@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240327_025915_371664_E51E89AB X-CRM114-Status: GOOD ( 18.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The current xdma_synchronize method does not properly wait for the last transfer to be done. Due to limitations of the XMDA engine, it is not possible to stop a transfer in the middle of a descriptor. Said otherwise, if a stop is requested at the end of descriptor "N" and the OS is fast enough, the DMA controller will effectively stop immediately. However, if the OS is slightly too slow to request the stop and the DMA engine starts descriptor "N+1", the N+1 transfer will be performed until its end. This means that after a terminate_all, the last descriptor must remain valid and the synchronization must wait for this last descriptor to be terminated. Fixes: 855c2e1d1842 ("dmaengine: xilinx: xdma: Rework xdma_terminate_all()") Fixes: f5c392d106e7 ("dmaengine: xilinx: xdma: Add terminate_all/synchronize callbacks") Cc: stable@vger.kernel.org Suggested-by: Miquel Raynal Signed-off-by: Louis Chauvet --- drivers/dma/xilinx/xdma-regs.h | 3 +++ drivers/dma/xilinx/xdma.c | 26 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/drivers/dma/xilinx/xdma-regs.h b/drivers/dma/xilinx/xdma-regs.h index 98f5f6fb9ff9..6ad08878e938 100644 --- a/drivers/dma/xilinx/xdma-regs.h +++ b/drivers/dma/xilinx/xdma-regs.h @@ -117,6 +117,9 @@ struct xdma_hw_desc { CHAN_CTRL_IE_WRITE_ERROR | \ CHAN_CTRL_IE_DESC_ERROR) +/* bits of the channel status register */ +#define XDMA_CHAN_STATUS_BUSY BIT(0) + #define XDMA_CHAN_STATUS_MASK CHAN_CTRL_START #define XDMA_CHAN_ERROR_MASK (CHAN_CTRL_IE_DESC_ALIGN_MISMATCH | \ diff --git a/drivers/dma/xilinx/xdma.c b/drivers/dma/xilinx/xdma.c index b9788aa8f6b7..5a3a3293b21b 100644 --- a/drivers/dma/xilinx/xdma.c +++ b/drivers/dma/xilinx/xdma.c @@ -71,6 +71,8 @@ struct xdma_chan { enum dma_transfer_direction dir; struct dma_slave_config cfg; u32 irq; + struct completion last_interrupt; + bool stop_requested; }; /** @@ -376,6 +378,8 @@ static int xdma_xfer_start(struct xdma_chan *xchan) return ret; xchan->busy = true; + xchan->stop_requested = false; + reinit_completion(&xchan->last_interrupt); return 0; } @@ -387,7 +391,6 @@ static int xdma_xfer_start(struct xdma_chan *xchan) static int xdma_xfer_stop(struct xdma_chan *xchan) { int ret; - u32 val; struct xdma_device *xdev = xchan->xdev_hdl; /* clear run stop bit to prevent any further auto-triggering */ @@ -395,13 +398,7 @@ static int xdma_xfer_stop(struct xdma_chan *xchan) CHAN_CTRL_RUN_STOP); if (ret) return ret; - - /* Clear the channel status register */ - ret = regmap_read(xdev->rmap, xchan->base + XDMA_CHAN_STATUS_RC, &val); - if (ret) - return ret; - - return 0; + return ret; } /** @@ -474,6 +471,8 @@ static int xdma_alloc_channels(struct xdma_device *xdev, xchan->xdev_hdl = xdev; xchan->base = base + i * XDMA_CHAN_STRIDE; xchan->dir = dir; + xchan->stop_requested = false; + init_completion(&xchan->last_interrupt); ret = xdma_channel_init(xchan); if (ret) @@ -521,6 +520,7 @@ static int xdma_terminate_all(struct dma_chan *chan) spin_lock_irqsave(&xdma_chan->vchan.lock, flags); xdma_chan->busy = false; + xdma_chan->stop_requested = true; vd = vchan_next_desc(&xdma_chan->vchan); if (vd) { list_del(&vd->node); @@ -542,6 +542,13 @@ static int xdma_terminate_all(struct dma_chan *chan) static void xdma_synchronize(struct dma_chan *chan) { struct xdma_chan *xdma_chan = to_xdma_chan(chan); + struct xdma_device *xdev = xdma_chan->xdev_hdl; + int st = 0; + + /* If the engine continues running, wait for the last interrupt */ + regmap_read(xdev->rmap, xdma_chan->base + XDMA_CHAN_STATUS, &st); + if (st & XDMA_CHAN_STATUS_BUSY) + wait_for_completion_timeout(&xdma_chan->last_interrupt, msecs_to_jiffies(1000)); vchan_synchronize(&xdma_chan->vchan); } @@ -876,6 +883,9 @@ static irqreturn_t xdma_channel_isr(int irq, void *dev_id) u32 st; bool repeat_tx; + if (xchan->stop_requested) + complete(&xchan->last_interrupt); + spin_lock(&xchan->vchan.lock); /* get submitted request */ From patchwork Wed Mar 27 09:58:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Louis Chauvet X-Patchwork-Id: 13606111 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0C55CC47DD9 for ; Wed, 27 Mar 2024 09:59:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=fbQfKgllgY9yquJEdNYQvT6QZdlW2VmpukXCei328zQ=; b=nplFAPg2WNXOzP 6jLQK8kJZs9ahEgihCPeGfhWDss5mdg7KqDsEarDEy/D1zUjRfzdlHPwJrUaZKU31rIn0dxcLuAWI /TX3DHJWrl4fmsbG1vqS8jy2ZFW2bROKZhCfSOirLTfF7YUvVQb3AitAVDwLiNGDxNNb3luu9O6AH uvO6e+ocPUZnC2hYSbjsmbyZtQ6tUs8qdIh6a17/PBNGm6J+MoSja+ROpT0oDTQjb8JK2jVgw9uft 5ThE3aAY6SW9Gz4jZNIw1ftcy3Dc+Hs+L54RqIXKXEI3IGbdO5bRsA3XX2q+zPnhAtrbsRickCfnC Z5Xwbd0D7I9wES8KI9ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ4C-00000008JdJ-0pqs; Wed, 27 Mar 2024 09:59:32 +0000 Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQ3u-00000008JXB-2tyW for linux-arm-kernel@lists.infradead.org; Wed, 27 Mar 2024 09:59:20 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id E94EC2000E; Wed, 27 Mar 2024 09:59:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1711533551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XLH57fwLTXfBUc6BX3tfnkCCcKVQ9c7Io2++9VEubdw=; b=FbC8p5/A/zJBAFi+obVk3JTmtO4K7jIoBH0kTghWLEuZbxxDWAj2x6wN/4wacUDPLnbgSY aIUmK6op2nt7cnMn9weKSjOhIi+djnoSpiIG7Pdbsd2bo87fqx4AskZ26h/zS9yA6t1SVw 2+2OU5rjVPqpQ7ucpvLOC55GxGewEeaEWUaWRm4swpVkAlVLOB4Prsk6ycZpAOxOPgqVI3 VtdnlageoRViWIeGnxHOd0dNVmAmXeScIvVSF3zti0wioj6/xicMPEHofk/aHF9hNTXfV0 msIC7VnF93VvOubQATG3rvnS1BIqAugodDZ4PHIpPSLBEWaAllIvVLMQ5rOxjA== From: Louis Chauvet Date: Wed, 27 Mar 2024 10:58:50 +0100 Subject: [PATCH 3/3] dmaengine: xilinx: xdma: Clarify kdoc in XDMA driver MIME-Version: 1.0 Message-Id: <20240327-digigram-xdma-fixes-v1-3-45f4a52c0283@bootlin.com> References: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> In-Reply-To: <20240327-digigram-xdma-fixes-v1-0-45f4a52c0283@bootlin.com> To: Lizhi Hou , Brian Xu , Raj Kumar Rampelli , Vinod Koul , Michal Simek , Jan Kuliga , Miquel Raynal Cc: dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Louis Chauvet X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1602; i=louis.chauvet@bootlin.com; h=from:subject:message-id; bh=Qu3N1kH//gP+Zhn4r+vc3YZmGiId+GfbdTx9l1LnfhA=; b=owEBbQKS/ZANAwAIASCtLsZbECziAcsmYgBmA+3sS9HVQIWiFg2uWF+TzbykBXZyV4P4JePFYOSL GqiUWc+JAjMEAAEIAB0WIQRPj7g/vng8MQxQWQQgrS7GWxAs4gUCZgPt7AAKCRAgrS7GWxAs4tV+EA C5S9ZpDRclxOf6wzOsIvQV1M1IfOGbnVbBQvAn0EXG0QvS+XLMQTvQ/tzMEhc/xJw+dbLBCBRRT7yr fjLCiLUUMsMJU/fU91gpORTSHZ82xttwR2AYCmvEi4VQmDZkZFMAgpQHXxHatc9Sge0wpL3LB0y6WS 2zdY+gdaFguTg8zBza1SKMs/lsJ4y6pq2fytp7rr3hIOkfrNZH76BC6WV+9kbNIRgbdImB+HZlSopE 6rgCgBY4ZB1ciu8/Buo0WDMy7RE96+PmgNsy7vhUFvoyBxuyDVojuXtTuWg9zSpnQXgAM23Avrey5g xE9YFROL7cuqPWAQyYovPgj8nwueaePCZcQebWSUtga1DYikKxKb2oghPZw1Gz8Zh9O1nsMtQmNCk5 oDT7vnSlVE4DNUoLpGPHcB6DveeDvP2fM7j+b3wwf1zc+HQAy7lgcChqm1w1L9mwrhCsZWvIEXw/b+ 8t71rwvDB74V9Ihw2spnKDwiRcaV2DT7FCYouXSzDyF2VEnBGBA/ujyOtsL010kNZIat7xr6f1qwE2 0QHEJwimgaoiBzXRqPD6mtpoxLxkbKe+XOGqsRDSXN/hl+EIPvH5m8mGoW4jnTqEt17wOsVU5MVzrD tKoOox28Mis4O8s4pzjvdTvwoOPmTCd6655l5wfHyhzd4v9wqc0nOI+ipCHQ== X-Developer-Key: i=louis.chauvet@bootlin.com; a=openpgp; fpr=8B7104AE9A272D6693F527F2EC1883F55E0B40A5 X-GND-Sasl: louis.chauvet@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240327_025915_446903_0C00088B X-CRM114-Status: GOOD ( 10.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Miquel Raynal Clarify the kernel doc of xdma_fill_descs(), especially how big chunks will be handled. Signed-off-by: Miquel Raynal Signed-off-by: Louis Chauvet --- drivers/dma/xilinx/xdma.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/dma/xilinx/xdma.c b/drivers/dma/xilinx/xdma.c index 5a3a3293b21b..313b217388fe 100644 --- a/drivers/dma/xilinx/xdma.c +++ b/drivers/dma/xilinx/xdma.c @@ -554,12 +554,14 @@ static void xdma_synchronize(struct dma_chan *chan) } /** - * xdma_fill_descs - Fill hardware descriptors with contiguous memory block addresses - * @sw_desc: tx descriptor state container - * @src_addr: Value for a ->src_addr field of a first descriptor - * @dst_addr: Value for a ->dst_addr field of a first descriptor - * @size: Total size of a contiguous memory block - * @filled_descs_num: Number of filled hardware descriptors for corresponding sw_desc + * xdma_fill_descs() - Fill hardware descriptors for one contiguous memory chunk. + * More than one descriptor will be used if the size is bigger + * than XDMA_DESC_BLEN_MAX. + * @sw_desc: Descriptor container + * @src_addr: First value for the ->src_addr field + * @dst_addr: First value for the ->dst_addr field + * @size: Size of the contiguous memory block + * @filled_descs_num: Index of the first descriptor to take care of in @sw_desc */ static inline u32 xdma_fill_descs(struct xdma_desc *sw_desc, u64 src_addr, u64 dst_addr, u32 size, u32 filled_descs_num)