From patchwork Sun May 21 10:12:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96857 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp849564vqo; Sun, 21 May 2023 05:28:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5RrY4ZhqdLh+zVKHyQxl3CdkxU9X9xtlYQOiEai33Z0Q/RSrBCZ/ZzTYucWOl4ztVgzAqz X-Received: by 2002:a05:6a21:788f:b0:10b:58f1:7a6f with SMTP id bf15-20020a056a21788f00b0010b58f17a6fmr1595780pzc.41.1684672136822; Sun, 21 May 2023 05:28:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672136; cv=none; d=google.com; s=arc-20160816; b=0PXQOXgcGyb2ah9VXVgat01+oozWhmVpcHFkIYiZ+4XsDWUYE3KyX9MzwPmHfnpIYw 0+g0K1TtU1ytfrsgNqFBqdFw9NFoqJ5vMOh874nmeyYT8oZ6zNT5e+OCm+VJzrfpSFyg m6rK3tc8exLhmId4r5kxWd69NZwXiNlZf4UkWG257PA+YG/e1Tfh3SqhIjS048HMdiUW lR8b0kVUDwHV2LuQHXr/jhuipQ7VNWZA9YFHayvAA2SmfvIY9qRMrukAfKVSpSYHOOHd cD3+9jqhUblVmCXInYYazUg0839N08EC+23ll2lGpCnU4NgTKosUu8N8a3Af1zid0CX1 6/8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oxmBwZT2mcEPtR3kV3p1O3m0Bq8Z9pNe+0qDPeLoykc=; b=YtMy6kB8fcsIT5mvCFKxgp3yQBJCptlWL66cr8QiL+CEivrWauy6jEOw0NTHmjO4q1 Lg7DXLQreVXNODaXRvjWPO/zSpmvLxMTeAcjXrcta3A6ZqtkFZ999NstB0T9d+3/wc23 eD+u+j+UDg1mvIumE4ReCM0+A3tQ3AmYcPInbfq8Ek/kQspdkP/rOOSGnWallEYpjgLJ T69tDzAhyzfrcKA3ng9eVfkMr10rFGUimKU5s9SbXT52z27o3nY7/j4k10SNdjKPkzIj SEIYqntBk2+/0vALJiVH8Gn+y+0XCodML1hPlWtIGy9E3zyI37VdfC+e2gmAdovRh1Ly UcYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=T1wnG289; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020aa796b3000000b00643ba887601si1480613pfk.307.2023.05.21.05.28.41; Sun, 21 May 2023 05:28:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=T1wnG289; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231478AbjEULtl (ORCPT + 99 others); Sun, 21 May 2023 07:49:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230466AbjEUK1S (ORCPT ); Sun, 21 May 2023 06:27:18 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FF7D10E0; Sun, 21 May 2023 03:23:28 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A91BD61237; Sun, 21 May 2023 10:23:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 410FFC4339B; Sun, 21 May 2023 10:23:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664607; bh=iRI9Nbek5uu1qAv7VQcDDGQ/jUGkxcfTM3bdHx/73/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T1wnG289rlegA31pfjTwhfCkzkkQREJxin57BHyMKFgwZslrkTJMBDYrqLldVEDJo L7IyA0vD/2U8mUe5DWd4rNKp2F3gjfORXPxdh9QwzkoZRcB7Jq83uuQFWsWQ9kMcZk gs32NhhV+TjGmeOQI5hw9Dk1Heuk2xK19/roDYZTxzkYkkRUUZ+9pB/zKXZ3zP03ZO 5Cj4XiIx/k3t+eN+awQoKFEsN8ArRfSfhiH8p3pLcNh6tvP4gIY+RIOE1GQ9NXTl7y 3UdKktY6e7edqUXCNubD0GU7v3FBf3jrFR/LSNo0T90GLR3mPnrm2foUnTTUnbBgJZ kvr+NWaTqea6A== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 01/11] dmaengine: dw-axi-dmac: fix reading register when runtime suspended Date: Sun, 21 May 2023 18:12:06 +0800 Message-Id: <20230521101216.4084-2-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506770693394188?= X-GMAIL-MSGID: =?utf-8?q?1766506770693394188?= We should runtime resume the device before calling axi_chan_is_hw_enable(), otherwise we may see cpu aborts when accessing registers in axi_chan_is_hw_enable(). Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 796b6caf0bab..203be13499e3 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -469,13 +469,17 @@ static void dw_axi_dma_synchronize(struct dma_chan *dchan) static int dma_chan_alloc_chan_resources(struct dma_chan *dchan) { + int ret; struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + pm_runtime_get(chan->chip->dev); + /* ASSERT: channel is idle */ if (axi_chan_is_hw_enable(chan)) { dev_err(chan2dev(chan), "%s is non-idle!\n", axi_chan_name(chan)); - return -EBUSY; + ret = -EBUSY; + goto err_busy; } /* LLI address must be aligned to a 64-byte boundary */ @@ -485,13 +489,16 @@ static int dma_chan_alloc_chan_resources(struct dma_chan *dchan) 64, 0); if (!chan->desc_pool) { dev_err(chan2dev(chan), "No memory for descriptors\n"); - return -ENOMEM; + ret = -ENOMEM; + goto err_busy; } dev_vdbg(dchan2dev(dchan), "%s: allocating\n", axi_chan_name(chan)); - pm_runtime_get(chan->chip->dev); - return 0; + +err_busy: + pm_runtime_put(chan->chip->dev); + return ret; } static void dma_chan_free_chan_resources(struct dma_chan *dchan) From patchwork Sun May 21 10:12:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96865 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp852020vqo; Sun, 21 May 2023 05:34:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5WJQfT/iYdSC4Mq8UrGQRfm+lsntSVQJNfXLpFS83hHxD7MKsqoOtbSrSh6SPq3g8XP+4g X-Received: by 2002:a05:6a21:2c83:b0:100:d061:52ca with SMTP id ua3-20020a056a212c8300b00100d06152camr6839163pzb.50.1684672458249; Sun, 21 May 2023 05:34:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672458; cv=none; d=google.com; s=arc-20160816; b=eLqTwQ/1jdtylKgw4g7r1WFlIZ8mQx2Xs2GT/VwCnA6vXbegUvoFIXlQZNOLAVZv89 mvxYc1wZm1sLMfQbBHVm7kYckB0x7UrrESbYeNQREpJ2f+6v8dJz/rpwVJ2YWBTHJ6w3 y56Cztb2J/LIMmDUEZXQrGsrbpyDJnQ1a7iVMIm/TpnnwZbzZEo3cmIWIVCSEmt9M4Cu i3Rg4knF3M5bJNlNzHhWWv7VYPPjubYO7iQr+Ey2xYZMXeWPnMHwDvb1b5D4UkZuNZnj bgTkrevjv/HYDuOAr7lxLXhXEkuscvZ7jcA2j5bsZ9Y9AqEt8lDfZqCOw1oCt2uJbf4N Whdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=D66zJlACp46RF5wmLGGk0AyE7BJSu2zFNKPrMtm0Z9E=; b=s2JrOWGl4kIQsNj1cr1M6/36zeaE8ubu42FipnZhQ54K8jcqCty3f2SFhr/TSAdrRe klhu6lpgK+j0hLgIuqOV94DDgtRhvTDpoSMi8wW2kuAwTiyG0TyL5r3Ba/Gdxq+BlBY7 FxFJn1G/5Ro2vMSlrbDAzpNk31iDXLFaDaAxb13y5tXD0QHbrt/xolK6raRbBXM8v8aG 4ze9k7RR34XagoqaE271TBqsp9quSPKu8cV+HkwkjSQY2ACFfV7c2qsPzGaJvyyA1G4k m2nuXbxPlmD+gtPKpbHjGyPpSIZ1nWBdER1qsHPGGXL+cpKXHSXoBzEj94RZRAF+s7Xr ApfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PINJX4DO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q21-20020a656a95000000b005303c3dedc2si3209648pgu.419.2023.05.21.05.34.05; Sun, 21 May 2023 05:34:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PINJX4DO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231134AbjEULta (ORCPT + 99 others); Sun, 21 May 2023 07:49:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230459AbjEUK1S (ORCPT ); Sun, 21 May 2023 06:27:18 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E80C10E2; Sun, 21 May 2023 03:23:29 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E6F3C60C94; Sun, 21 May 2023 10:23:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7C825C433D2; Sun, 21 May 2023 10:23:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664608; bh=xLmFwERNLFGS44YuN2v3vab89SlNXlrWfcwD+NSS4sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PINJX4DODMB4CoA3wTX1FBA+zyOp+XmO+q/mnBCmSPeov7yP4TZ3nxL6xkr/RDTPi E6UVndyBT3h1d7vXfHTNuAvNKgPeOvNLdZ04FAC+sgCkHTTjvmHaNCnokQztF1f5bP rlapEI4CHl1x1OJFDijLkGTR9+w1QAmcEN+iH3ACxjQk3AIeiI5Js/5W8Z7G6q/An1 Na6p98Uo6JFslD9QhscTGwocbd7yC9dwjyvQ4ySvmkQSRu+OKnn1q74g4EM5CQcfUb LTeVoalXU3XlWBjphsWOWcIgORzPCMcemewKU65GF/nKBPwuJc9E4R+PVWZyTNX3Da E00rb9AO2hw3g== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 02/11] dmaengine: dw-axi-dmac: remove unnecessary devm_free_irq() calling Date: Sun, 21 May 2023 18:12:07 +0800 Message-Id: <20230521101216.4084-3-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766507107054361967?= X-GMAIL-MSGID: =?utf-8?q?1766507107054361967?= In dw_remove(), We have disabled the irq from the dw-axi-dma side, so we are safe against the case "The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed." Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 203be13499e3..a19b651ddaad 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1563,8 +1563,6 @@ static int dw_remove(struct platform_device *pdev) pm_runtime_disable(chip->dev); axi_dma_suspend(chip); - devm_free_irq(chip->dev, chip->irq, chip); - of_dma_controller_free(chip->dev->of_node); list_for_each_entry_safe(chan, _chan, &dw->dma.channels, From patchwork Sun May 21 10:12:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96862 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp851058vqo; Sun, 21 May 2023 05:32:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4Bmie99/e3R/6GJnL88I0o6FPU2ioB0iVFr8OO72T1nwzoMOOgqGj7PBdJvTkCSo6Y0mxS X-Received: by 2002:a05:6a00:23d2:b0:64c:a099:8924 with SMTP id g18-20020a056a0023d200b0064ca0998924mr8296292pfc.10.1684672327623; Sun, 21 May 2023 05:32:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672327; cv=none; d=google.com; s=arc-20160816; b=lD4npXoVax2qKwxazG7qhoO1hzpZwZIJBLiljrU+zfIbMS+mXLonuLpBYUOKC8qbag IDnRF4t6MlGsJnSLx6f7FcZLBRuHoM/aWgbu+zfQyPTgKj3IjETqg4TbNGlwFnAGdh77 KG0NhTT5aaroBhZdYnnGMqRSSNLcHWSSVgUggz8O8qTYwiXRrgqIciBTT1nngsM5t7NU 0E1JViQVjQzlAk45G051w6sWPfE9rI1jqOe2eC+Uc+6sufq943c2ZQfd7sKDNdkNFKG5 +SB5RTbYfmWrMv+HeNrwagk+MilFwdhKjmjFHiMNNdPtKQc4otMkxZ0+ksq3e+s6aNSt wo2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fPZZeue9eF+U+Wp0gEnmz48NaRoltBV0HK0IhcA46u0=; b=weZBFtNYEIPuOuqBWDQzWLwJX6J8L0bL6O2HxDcZJbWcdQwEYJqyJe3ZTbHyQWXX+O dTJjFypVw7dGY9LGBPlJoJLmjWQC2IhrnXQ+VLLC4MsV+/LtYksrvv/n4EiSx2ecP2QB B0M9/Gb3cJDNHvZzP8FJSpLJ7jN+WBt5ct7BrRC0IJzSEDIzbpvIcAPYfNWBtFkhc+jT xgQxm5fgCMmn5oCPse7BLDMa0dtbYEzlDexhqAZIv2AHYxxxQs4Noy7dz6DOeBnPtsEt /duQEzqqF9HIrrNTvarK8jFAS09Bk9CwyZiMtH8PorTVgDXjR3cxwHmi0ZKO5x34ikBk yJUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=obhYptZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020aa796b3000000b00643ba887601si1480613pfk.307.2023.05.21.05.31.53; Sun, 21 May 2023 05:32:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=obhYptZi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231146AbjEULtf (ORCPT + 99 others); Sun, 21 May 2023 07:49:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230455AbjEUK1S (ORCPT ); Sun, 21 May 2023 06:27:18 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BFBB10E3; Sun, 21 May 2023 03:23:30 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2F788611F6; Sun, 21 May 2023 10:23:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7E49C4339B; Sun, 21 May 2023 10:23:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664609; bh=BLq9O0pAfUMUGI7sir1Wus9mHo0zlYVxEcjud2ZFuwA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=obhYptZiMtvVZVJlLF20TpBWHQwK+KLU/DD5Fd//1C8URO1K0xZnhXxazi/WNESxr XzO9yh2LPz2Cmnz+ywcbRJFpc5J3G4eeCCwTY8T7aIeEnN46DrcEKnuH88X70TGO2o hsBtcV8N2/hJNHagOsDdsDeW94yvF1CVcxthm4v2j0K7Pzb7CNP4ys1xWDLYgUOd4e 2eJFczzUX7ZUo4TfdqtHisXtsM89mAc5tQQqkHSUsmw1yMiD8EmPS3PcnhjK0sLp9+ V/zuL1oiw2RcYtIMKcaMFxUafhn8uI3iCk0XKP7CEjZQO65HxcCJAkU3N66gZDrt+5 OS9wB7NqLQr5g== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 03/11] dmaengine: dw-axi-dmac: remove unnecessary axi_dma_enable() calling Date: Sun, 21 May 2023 18:12:08 +0800 Message-Id: <20230521101216.4084-4-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506970418387486?= X-GMAIL-MSGID: =?utf-8?q?1766506970418387486?= The dma is enabled, I.E runtime resumed during chan allocation, and is disable, I.E runtime suspended during chan free. So when starting xfer, we are sure the dma is enabled. Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index a19b651ddaad..4378134eea63 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -389,8 +389,6 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan, return; } - axi_dma_enable(chan->chip); - config.dst_multblk_type = DWAXIDMAC_MBLK_TYPE_LL; config.src_multblk_type = DWAXIDMAC_MBLK_TYPE_LL; config.tt_fc = DWAXIDMAC_TT_FC_MEM_TO_MEM_DMAC; From patchwork Sun May 21 10:12:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96848 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp832214vqo; Sun, 21 May 2023 04:50:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7r1h3zoccZNTijZHg4eA8YBZ+2NglYElrxbgIp5cXsVW9xMtp4pOXUM02440+aIyLUWMXW X-Received: by 2002:a05:6a00:2188:b0:64d:fd0:dd1a with SMTP id h8-20020a056a00218800b0064d0fd0dd1amr10120175pfi.16.1684669803892; Sun, 21 May 2023 04:50:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684669803; cv=none; d=google.com; s=arc-20160816; b=jSgirNvDywd3SHizPBbUwT3j6kZHdTwW+73KM184hgQR3SuIuQDBTfISLq4AghxKXZ Q5+/22pT5na+DzXEKtJ2Urf5JwlGq7WWLoc/nzuyVDRizkmtXSjJmtNeirQyN6nJ2xdS CifIu9H+xu5bALi6IRJk1Sz9/uD3vUfAuy/JizRUNHS8Kw+iMRLKe8Wlw9gvVAv43cgR MwEUAZuvD7icUMe/GFXjh/7pD8lE2JCZjswZNeb7Gac907PQJGnusM79KLd5S7wPxTEN 5+6JnBH2O0ZJhRluVaTTn8UkgMNx7prMXbfbVa/PjX2MU8+kFLVxrjQZVCSeg0OU73TS qLSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UOE66fctEc2RuKHmYjTr+eNDZkjKhOlsoje7O5Zk8e4=; b=URlCuN8bx6JhMYjw50z51b4FB4xNE+A8KjJUcS2DkAlfYsubAh8gw5Z1hbAeu1BVZ6 jMgy0ccQheIu/Da0HSrZvyJBFlYM7MeAR6OMAizCIRvOhoEo9Z5z/fSyar0mW1i1uy1e f7EB2op7h2AGVzoLfRG09+mDS5FCzmcjQLNPVBGxfBlUrm93vkdt+xunNADvWqxc/a4H d7Gy4N+BzLkLil8fkK9ViunIq2hFck3GjHPnLJVQjOO4BzGUx69xq8qdSNLVJgPa7f+u ed1BeK+jYq2ru9x6AuP/9Dfieb8GqTJzpEJExMdNgU+0VMR17gNmNXGHFoNELNDDDiCs TyDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="cJbg/qlK"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d196-20020a621dcd000000b0064cecf7b983si2486957pfd.143.2023.05.21.04.49.50; Sun, 21 May 2023 04:50:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="cJbg/qlK"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230434AbjEULsc (ORCPT + 99 others); Sun, 21 May 2023 07:48:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230412AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D75B810E4; Sun, 21 May 2023 03:23:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 6C9F360E05; Sun, 21 May 2023 10:23:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01046C433D2; Sun, 21 May 2023 10:23:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664610; bh=mJ5yS9oI4b3i7UhOvVPGcZz88NvjaTzXIsaTK0vbsRY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cJbg/qlKueDxxcK7o7KMD+7lkG+dw3yGQVp3s/fUr7dngLT8jEbqbe3smC5PAioeS YWERFWjBpl3cvQHKJ5G8jjwOZWMGx8WQrjovmylKiQ7dQqzX0KS5btxTJTtYaB6A12 vBa3i25d1tSBD4TzIFOdzO19vN9c+yzjDGd4Ny8X8Od08hEDwJCjAYE7AW6Ld2QE8w xG8501nXb0L9kIlalaufG0ywHwtEID+ngGLVUh0tv524eXTjNV3cBKzrxRTqY5xvIT ep10J2F4/SPlyOvrP7bdVbHWEQzsZbEDHT6ILLB5+g6X4cg437Qov98+SCJ+/P7ffG Ma3SaL75VSZZw== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 04/11] dmaengine: dw-axi-dmac: remove redundant axi_dma_disable() calling Date: Sun, 21 May 2023 18:12:09 +0800 Message-Id: <20230521101216.4084-5-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766504324317484744?= X-GMAIL-MSGID: =?utf-8?q?1766504324317484744?= axi_dma_suspend() will soon call axi_dma_disable(), remove the redundant axi_dma_disable() callin. Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 4378134eea63..e596910e9f84 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1556,7 +1556,6 @@ static int dw_remove(struct platform_device *pdev) axi_chan_disable(&chip->dw->chan[i]); axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL); } - axi_dma_disable(chip); pm_runtime_disable(chip->dev); axi_dma_suspend(chip); From patchwork Sun May 21 10:12:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96856 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp849045vqo; Sun, 21 May 2023 05:27:31 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4KLJGPJXcks9rfZ9Wb0zvTza/sCbfkbAEVe58oFCvncOZWprfK5rdvcjbH4qDrGuDpyj9D X-Received: by 2002:a05:6a20:7f91:b0:ff:ca91:68ee with SMTP id d17-20020a056a207f9100b000ffca9168eemr8822223pzj.9.1684672050883; Sun, 21 May 2023 05:27:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672050; cv=none; d=google.com; s=arc-20160816; b=Ap91R+2nUji7rcjGBvI6R/vTKtCFrctPLOS2KuyPC+qogz7g5hQbn5+2SFXcwGgTED 2QsCiw3lXhVuezIx3pmIHWjiSonXF+N8byjav0J/DvrfizItjGTy0X98Gxd/JHyh5aAJ LGwbXFK9nh647R2k6UU8Ism5iBlfijP1xT4Vd9Z394h/b2wNf27mlyr9rr/yZ9vYl16x bvt+uF/AR9Fd8T1XyP9mH8Hfm42tV6SD3PPk9fqIjCyRjqxAcKqVj4XkUw4PCfVbU9IH CQ4YqlKKGzw7jMtCtNcmjxxHTNMImkPxratJpDnurgi9ZjZlImP4+MJIJ0ymH7EX/K4/ zmSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ff3UdYi3a4vi0uhAQbow/JpiqsVqHfWSFGm32O+IB+k=; b=PcxuN8C8jTtCkkALVG7SQvVb+MD2yHVwcYiyoXNh4xsQBqABnd+CFxP2F7tCKIeueq py0yTARVWGsaEbQUCA3NFsac2KO91AAbxuWxJxw5QCu/SP3nFUtINWRiHmrTxrEOv1i8 bWH3UcdTy2hAU4H2tTdxgpUJI53nT5yQ8XEhLIxV9lqyCPQtvvz/NI9uxO/TAVWEL2p3 n+P2WNpPMhioQ1NJilIOMa3l8B0sQxW2aijVP7a4w4dThj1rZIH383yHm6ywga3oPW+5 h72KjGAWnbJEdJWFtYmWqU1x8nHNmSh+OA6hVfpUuTtWkewPwpdlPUEo7lw7kAvrzHFu TLQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=onljlQhn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020aa796b3000000b00643ba887601si1480613pfk.307.2023.05.21.05.27.15; Sun, 21 May 2023 05:27:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=onljlQhn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230288AbjEULtW (ORCPT + 99 others); Sun, 21 May 2023 07:49:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230470AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DEF910E6; Sun, 21 May 2023 03:23:33 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A85A760E74; Sun, 21 May 2023 10:23:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DB34C4339B; Sun, 21 May 2023 10:23:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664612; bh=+Tf439DcPyOhnrJYLUHMQ/cInIgZ19g0uwID2SQPxBs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=onljlQhnGLnsMg8c1ByUgOfPf+pW4AQdNXQQfNkiVzxEmVJIqo1lCyYXS617e7stn SLs3YAiTnhWULSS0eEE1vuuZLP9FuwgB/MMv488p0Bql484cf/ntGD45TRB4KlDzQ6 pXt4ZUYZMo3SKUsI9BOE5PGrVSw1r55lVhpXyIMirQEzAb/fC9SvEVQwN0inkwp0Nt xWe6V7FF9wzKr12vR0+o2jNptP86lAmi+U8XUuLnEdgH8BJlyfr4TrZmWkPipBrq5L Px0JE2bkVCUzf9+H6BKb3NQocHi0nnR2/TtPOTrq+JxT61sntQD/Ou112+Sz2qS9HL b9fhqCoe1CunQ== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 05/11] dmaengine: dw-axi-dmac: delay irq getting until request_irq Date: Sun, 21 May 2023 18:12:10 +0800 Message-Id: <20230521101216.4084-6-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506680538935420?= X-GMAIL-MSGID: =?utf-8?q?1766506680538935420?= This is to prepare for per-channel irq support in next patch. In per-channel irq case, we need to parse dt firstly to know whether the platform is per-channel irq or not. Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index e596910e9f84..64b4ee2d618b 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1403,10 +1403,6 @@ static int dw_probe(struct platform_device *pdev) chip->dev = &pdev->dev; chip->dw->hdata = hdata; - chip->irq = platform_get_irq(pdev, 0); - if (chip->irq < 0) - return chip->irq; - chip->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(chip->regs)) return PTR_ERR(chip->regs); @@ -1447,6 +1443,10 @@ static int dw_probe(struct platform_device *pdev) if (!dw->chan) return -ENOMEM; + chip->irq = platform_get_irq(pdev, 0); + if (chip->irq < 0) + return chip->irq; + ret = devm_request_irq(chip->dev, chip->irq, dw_axi_dma_interrupt, IRQF_SHARED, KBUILD_MODNAME, chip); if (ret) From patchwork Sun May 21 10:12:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96859 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp849761vqo; Sun, 21 May 2023 05:29:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ735WfRcI6Bved+DwVdt8HaHGGR4eUFNFA/n/FNUUEuhaoUCYc6LkDFRk6ltPeMF8oVIZ1S X-Received: by 2002:a17:902:ab14:b0:1ac:750e:33f4 with SMTP id ik20-20020a170902ab1400b001ac750e33f4mr7206351plb.32.1684672166533; Sun, 21 May 2023 05:29:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672166; cv=none; d=google.com; s=arc-20160816; b=KDtZhmbb4CVVR+COLoq1FGtMbDnT0fAhR4JAw6upTj5OHOpZMsH96orj55/eW9YmA/ K+xQgosshRWWA9i5v9utEfRUfV/qZPG3gEyXpNq1RfbErilMIDgWiCzKsi9ok9FT1a4y pE1YuLWQsZEzdyNA3yC18XOHaDxGPmlH+U4tElSwVFXdhMLTeQa8bwSRf0E496UezRWF Or+XXeHai8s8bFSE5dQv666V3PZ2mYk6+JCxlajZAXWLF9dIwnb+gwBzlyv/VJAxB2gy Ss8DySCVqJh48Hf8uMmHFuV6GQhR+WLnqGNobwjtph4xY0A+KBxuFiY2pRju7Z/YZsTx N8/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=T6sadelNHOwnKCkRQoXvHEZ4ktCynJJ3sakxk81ye/A=; b=iLsfmnXrmzvR3d5p6WKK0TEEVSYEJgXt1JobKOUuxXjROM1TDV0MxA47SgKhyFgWBe w+VclqvVCVnRRpyIMU0BHwp0qrSuQXw5tbscllqwA7TDq0zyl4i/5STAc8urAzBNC6K6 Id8PFHKnsrteyDffLko27IedLxuvmqoTtZrWspqcjZdUoylbAT6JpakpyC8oW6R9Cmv8 fAK0Me9wVfKnGWYGceBG1ACXOBQ3DtyEPzVjk3YElPnNyajEV+PMfkr+7axR6k0tNFWF i0GO5PlWuX419ipagLKKjQys3gdLWOerUHoDbKfZ0P2upyWud8zz/3RM+70eM1f9Ype+ Pz1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ENzZSteH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l20-20020a170903005400b001aacffacf0bsi2943270pla.570.2023.05.21.05.29.15; Sun, 21 May 2023 05:29:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ENzZSteH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230186AbjEULtU (ORCPT + 99 others); Sun, 21 May 2023 07:49:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230372AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 580BA10E7; Sun, 21 May 2023 03:23:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E2E2560E05; Sun, 21 May 2023 10:23:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B94EC4339C; Sun, 21 May 2023 10:23:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664613; bh=nugoBLj1hecEiOwev69EKFxOoV/ysyY1qdC6Ej2+N0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ENzZSteHBMg9fdrWHXxObejJbr5ltEU9QUiC30q3DfDy9y+OP0jxZTEmuLAdibzdG YLQ87KQPJ17QYMtDaPvTnE0fFsgHHeN8UycYTKvPq7DXmOqjtlERXuN09OKsGnVOjb qZKlfUbdMDB3GE+D0SeB2wJ/w+n8YbS5hVsXbdZFvupfpBcqseyN7TzKdlbQ9Lh/+s z9197/37ryoJMGWMxFVVm6WmvF0aKIw0z2e1tzRktZ1SLTCBMOAmd23rXdABiKECWt mGadMpLY4wOWXwO2Q8W8TLu+t8iBFPSfhjj71delITJOL0XjTfr0to6GHrie0t6EPJ oJL5rAQKIH5ig== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 06/11] dmaengine: dw-axi-dmac: move ch irq handling into common routine Date: Sun, 21 May 2023 18:12:11 +0800 Message-Id: <20230521101216.4084-7-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506802078442795?= X-GMAIL-MSGID: =?utf-8?q?1766506802078442795?= In next patch, we will add per-channel irq support, we will use the common routine in per-channel irq handler. Signed-off-by: Jisheng Zhang --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 64b4ee2d618b..24a93b0c1489 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1108,13 +1108,30 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) spin_unlock_irqrestore(&chan->vc.lock, flags); } +static void dw_axi_dma_handle_ch(struct axi_dma_chan *chan) +{ + u32 status; + + /* Poll, clear and process this channel interrupt status */ + status = axi_chan_irq_read(chan); + axi_chan_irq_clear(chan, status); + + dev_vdbg(chan->chip->dev, "%s IRQ status: 0x%08x\n", axi_chan_name(chan), status); + + if (status & DWAXIDMAC_IRQ_ALL_ERR) + axi_chan_handle_err(chan, status); + else if (status & DWAXIDMAC_IRQ_DMA_TRF) + axi_chan_block_xfer_complete(chan); + +} + static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) { struct axi_dma_chip *chip = dev_id; struct dw_axi_dma *dw = chip->dw; struct axi_dma_chan *chan; - u32 status, i; + u32 i; /* Disable DMAC interrupts. We'll enable them after processing channels */ axi_dma_irq_disable(chip); @@ -1122,16 +1139,7 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) /* Poll, clear and process every channel interrupt status */ for (i = 0; i < dw->hdata->nr_channels; i++) { chan = &dw->chan[i]; - status = axi_chan_irq_read(chan); - axi_chan_irq_clear(chan, status); - - dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", - axi_chan_name(chan), i, status); - - if (status & DWAXIDMAC_IRQ_ALL_ERR) - axi_chan_handle_err(chan, status); - else if (status & DWAXIDMAC_IRQ_DMA_TRF) - axi_chan_block_xfer_complete(chan); + dw_axi_dma_handle_ch(chan); } /* Re-enable interrupts */ From patchwork Sun May 21 10:12:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96860 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp850392vqo; Sun, 21 May 2023 05:30:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ50OtFRQbCL95+NnC1e2lREkn+SR+V0NNCu+/jEQsPjsmkjw59offnT8gsLsWl1grNq5Uja X-Received: by 2002:a05:6a00:2e0e:b0:646:3c2:4d30 with SMTP id fc14-20020a056a002e0e00b0064603c24d30mr9874928pfb.30.1684672242801; Sun, 21 May 2023 05:30:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684672242; cv=none; d=google.com; s=arc-20160816; b=CHO8o3/9xkvE/0Ediq60WXssENvVpawRTybFVWxvUBnv+j0d0E66dYbquglaMwcLZR HFMPFqRtXHk0VsJrA3kNlafzjVGYppneRqJKnMaKhkqvcOiuh0yohff6t3h+l/5FeH1D zZXoYXdOeNN3BMYIy9fqeZ6QM351HO0uBpffYWZouwievidmT0mtTpFl3/EP9TrEQ+Gc S2/UB9oeU0cgJnAs5dMs2CYt8T/y4KISwW4FqEP2Ov7tCbUGuMTQLB9KrISe0NXbRWgb kLgBJpDvIgx0mll0SWuAJczQwPOD7WHwHpo1wH12Lxg0N/xMc6QBJX7XwTRuaPf9zQNl /FBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PdFM3jdUn8IOu9eCnlTY6mQja1UpluVmsM+lCpHvIRQ=; b=AwDf5Vv9K6bfx/zyLI+oFR6DvwJTe81MDHS3nb2Zgf3Z/QlWAYc4Uet92Ls+P5fwqu G5GszoIR4ifgMJ3JNei0gQIH5cI43lh9hkvVUpNo0fLz93wP/uNbHLsbyqg2UpOuo2xe w8VPLKm0IjNctiiTNrupxOuavDLh5hF0C8obIXLH2IdoKWHmU1YE+iVR52Sn2KNaw6mJ CDBuBtV0PsRSu0/hpx2NU6gheZvPgBF2w0PeU/ootmn4YctvS+dly2BuE5XLGAga6QNr 0tb3wP/0TW6AuocppjgouGJaC8iqNlq5A8rBxaviZp44d5ZjeAFUF3TXVsZikH4T6qwd nJYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=vMcLc2lI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020aa796b3000000b00643ba887601si1480613pfk.307.2023.05.21.05.30.28; Sun, 21 May 2023 05:30:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=vMcLc2lI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229719AbjEULtP (ORCPT + 99 others); Sun, 21 May 2023 07:49:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230407AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98E0710E9; Sun, 21 May 2023 03:23:35 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2D55060C94; Sun, 21 May 2023 10:23:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7164C4339B; Sun, 21 May 2023 10:23:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664614; bh=yGoRDjvKLbCYkSOxnH9X59HxNfLXO+ROMNUsbfcZ4wM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vMcLc2lI+wQvbqyTaFbmRSdqRqkCkEaQ0bJ/5dlZRCdKtbi237kfH1e0PRZkbuK5A 6Epfhd5w9eeJ57Tq9kIfLtbgTyhd5Q9LKxClSgqfsNorGNi7SPDXtTkWv6+W1UqF2C L7GSnjVmvg9itJ9/SYs9HGsU9aRWlgVifoD5o+N8C08Yq/GapJF6k/zNGPC9Fz1RyV Q+AgF4ASkUWs4EawSh4RdE8NlfNRdOXw/N8oGDRllrYJLyqXg3ChNXw1UdSNR54KJ/ fsqgSjvNKp2Sue4So1+wY2iSkcaF7W7Nk25RD0jKSWl4oMS5+IuE/TtauQzzFVi0Au G6n69g2C3rXFA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 07/11] dmaengine: dw-axi-dmac: support per channel irq Date: Sun, 21 May 2023 18:12:12 +0800 Message-Id: <20230521101216.4084-8-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506881740142332?= X-GMAIL-MSGID: =?utf-8?q?1766506881740142332?= Each channel can have its own irq, support this case. Signed-off-by: Jisheng Zhang --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 46 ++++++++++++++++--- drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 2 + 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 24a93b0c1489..3f3db48822e3 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1148,6 +1148,21 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } +static irqreturn_t dw_axi_dma_ch_interrupt(int irq, void *dev_id) +{ + struct axi_dma_chan *chan = dev_id; + + /* Disable DMAC interrupts. We'll enable them after processing channels */ + axi_chan_irq_sig_set(chan, DWAXIDMAC_IRQ_NONE); + + dw_axi_dma_handle_ch(chan); + + /* Re-enable interrupts */ + axi_chan_irq_sig_set(chan, DWAXIDMAC_IRQ_DMA_TRF | DWAXIDMAC_IRQ_ALL_ERR); + + return IRQ_HANDLED; +} + static int dma_chan_terminate_all(struct dma_chan *dchan) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); @@ -1382,6 +1397,8 @@ static int parse_device_properties(struct axi_dma_chip *chip) chip->dw->hdata->axi_rw_burst_len = tmp; } + chip->dw->hdata->perch_irq = device_property_read_bool(dev, "snps,perch_irq"); + return 0; } @@ -1451,14 +1468,29 @@ static int dw_probe(struct platform_device *pdev) if (!dw->chan) return -ENOMEM; - chip->irq = platform_get_irq(pdev, 0); - if (chip->irq < 0) - return chip->irq; + if (hdata->perch_irq) { + char irqname[8]; + for (i = 0; i < hdata->nr_channels; i++) { + snprintf(irqname, sizeof(irqname), "ch%u", i); + dw->chan[i].irq = platform_get_irq_byname(pdev, irqname); + if (dw->chan[i].irq < 0) + return dw->chan[i].irq; + ret = devm_request_irq(chip->dev, dw->chan[i].irq, + dw_axi_dma_ch_interrupt, + 0, KBUILD_MODNAME, &dw->chan[i]); + if (ret) + return ret; + } + } else { + chip->irq = platform_get_irq(pdev, 0); + if (chip->irq < 0) + return chip->irq; - ret = devm_request_irq(chip->dev, chip->irq, dw_axi_dma_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip); - if (ret) - return ret; + ret = devm_request_irq(chip->dev, chip->irq, dw_axi_dma_interrupt, + IRQF_SHARED, KBUILD_MODNAME, chip); + if (ret) + return ret; + } INIT_LIST_HEAD(&dw->dma.channels); for (i = 0; i < hdata->nr_channels; i++) { diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index eb267cb24f67..49210a248c27 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -34,6 +34,7 @@ struct dw_axi_dma_hcfg { bool reg_map_8_channels; bool restrict_axi_burst_len; bool use_cfg2; + bool perch_irq; }; struct axi_dma_chan { @@ -49,6 +50,7 @@ struct axi_dma_chan { struct axi_dma_desc *desc; struct dma_slave_config config; enum dma_transfer_direction direction; + int irq; bool cyclic; /* these other elements are all protected by vc.lock */ bool is_paused; From patchwork Sun May 21 10:12:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96842 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp807928vqo; Sun, 21 May 2023 03:47:54 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7vz8yPerQbkeK/jYlwjgqMAcOT4ZGX5gvKXzr57KKngoZa+Y9vOLZWmPwh6RylGvnDSq+k X-Received: by 2002:a05:6a00:2e0e:b0:646:3c2:4d30 with SMTP id fc14-20020a056a002e0e00b0064603c24d30mr9659313pfb.30.1684666073746; Sun, 21 May 2023 03:47:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684666073; cv=none; d=google.com; s=arc-20160816; b=VNzAYME4gJ5+OJbBEHO3v0bFmK0EN9Ur8B9hvBcVVU2SRxXK32ONb+vDLzYrMo6H2C 6a/ssUyNmQ3mPe4ZZ3DE6FocB1Dqbj9WHruHky4ckSzZRBLRlaz5wD5gVimQ8CmKwKp3 +cOC4Ta0waDOz6zMClyaY2wGmG8Afo6LRPN73QandSdPEy7nIZDSEoVIUx4bS1JMVPu3 TEQZacNBpkblGmaN+Bga6hG/xlknGj1Fs4Hwj605hV+gTh6CNISq/cZoqU7woKiX30kQ 0ZbN9oovMXdUZm14ZpuuxtzUfQDrcPTkXSqDMfFiuwtY6Zk/uddj93WmTGGNatApKDqd lkbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2XmnqNiSq0T3WyMzeIKShS/TsG4HNfo0VZlWwxepL5g=; b=PtrUcMLt1VdR1yLeawdlJobpGba7w6/WrFe1PxjNNlnVlhh/yjjiq9fZL0BnjeGCm+ NKJ0EEk2vDlXIixPAUCV2WLH/3XshojFgUsep7DyQVL6yqS06wcnPMXKud24VTFX7oW7 ZaqvA0e0jQzxHkKZxvWIs0A5Uik/P+ITOarHtNdx0eseosTbkziOB5tv8ncABKCg2eh8 o2c27AnL9M5kpOyizHtdzrla8wvBLA0w3x8TKZ6P8pACrMDgrNTafVyIYwSdvxZeBtH8 COOmy6K76IPmv8BJEP03sZJwxCEIANoqGPZP2COy8fI8miw58eiJjiFwjuELJBGde8/n pL5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WNfVn5dG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k22-20020aa79736000000b0063b8f0a6f51si2985283pfg.117.2023.05.21.03.47.28; Sun, 21 May 2023 03:47:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=WNfVn5dG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231874AbjEUKqi (ORCPT + 99 others); Sun, 21 May 2023 06:46:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230489AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D072110EA; Sun, 21 May 2023 03:23:36 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 65700611F6; Sun, 21 May 2023 10:23:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2A60C433EF; Sun, 21 May 2023 10:23:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664615; bh=Fu9hvdidpGkytptzWtE0mzE1XOtEGG2Aj2hPihoV7C4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WNfVn5dG+4iNau0L+paN8n2y+19tX8ACn0cdeCJAKa6xPhGYSSIjbOdQGJKgIkXPu Bmszre4u0TYublRYrZn7OPDzgHXTjKP1DOyR+pDRsbBwvbBUdgp/gnS5MCWcjCbyyY 1BywclxJ4TMJB2JN1Si21Qc10D6XqorqcI8YX7KZvuGooDLBaiSX3AqVljmYQ6yauB 2ywkw5Ix1ZsNLlpko+3Hyh/vyRY7zDlmy5UGr1Lu9IIa37yCNsT8hw0hzGXYOeJNDp 6TNMcQK4MYFmHrLsrtMpw6xLiYVPwFvk2cXe6+piSmMNQspgP1BXPUQsla277285ma jvTNoLDSSxfoQ== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 08/11] dmaengine: dw-axi-dmac: support dma-channel-mask Date: Sun, 21 May 2023 18:12:13 +0800 Message-Id: <20230521101216.4084-9-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766500412875871962?= X-GMAIL-MSGID: =?utf-8?q?1766500412875871962?= Some dma channels may not be available, so we need to tell the driver the available dma channels, use the general dt binding "dma-channel-mask" for this purpose. Signed-off-by: Jisheng Zhang --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 19 +++++++++++++++++++ drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 1 + 2 files changed, 20 insertions(+) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 3f3db48822e3..f0bd8a7e3caf 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -223,6 +223,8 @@ static void axi_dma_hw_init(struct axi_dma_chip *chip) u32 i; for (i = 0; i < chip->dw->hdata->nr_channels; i++) { + if (!(chip->dw->hdata->channels_mask & (1 << i))) + continue; axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL); axi_chan_disable(&chip->dw->chan[i]); } @@ -1397,6 +1399,14 @@ static int parse_device_properties(struct axi_dma_chip *chip) chip->dw->hdata->axi_rw_burst_len = tmp; } + /* + * Use all channels if there's no dma-channel-mask property + */ + ret = device_property_read_u32(dev, "dma-channel-mask", &tmp); + if (ret) + tmp = GENMASK(chip->dw->hdata->nr_channels - 1, 0); + chip->dw->hdata->channels_mask = tmp; + chip->dw->hdata->perch_irq = device_property_read_bool(dev, "snps,perch_irq"); return 0; @@ -1471,6 +1481,10 @@ static int dw_probe(struct platform_device *pdev) if (hdata->perch_irq) { char irqname[8]; for (i = 0; i < hdata->nr_channels; i++) { + if (!(hdata->channels_mask & (1 << i))) { + dw->chan[i].irq = -1; + continue; + } snprintf(irqname, sizeof(irqname), "ch%u", i); dw->chan[i].irq = platform_get_irq_byname(pdev, irqname); if (dw->chan[i].irq < 0) @@ -1496,6 +1510,9 @@ static int dw_probe(struct platform_device *pdev) for (i = 0; i < hdata->nr_channels; i++) { struct axi_dma_chan *chan = &dw->chan[i]; + if (!(hdata->channels_mask & (1 << i))) + continue; + chan->chip = chip; chan->id = i; chan->chan_regs = chip->regs + COMMON_REG_LEN + i * CHAN_REG_LEN; @@ -1593,6 +1610,8 @@ static int dw_remove(struct platform_device *pdev) clk_prepare_enable(chip->core_clk); axi_dma_irq_disable(chip); for (i = 0; i < dw->hdata->nr_channels; i++) { + if (!(dw->hdata->channels_mask & (1 << i))) + continue; axi_chan_disable(&chip->dw->chan[i]); axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL); } diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index 49210a248c27..1f9772e9be30 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -30,6 +30,7 @@ struct dw_axi_dma_hcfg { u32 priority[DMAC_MAX_CHANNELS]; /* maximum supported axi burst length */ u32 axi_rw_burst_len; + u32 channels_mask; /* Register map for DMAX_NUM_CHANNELS <= 8 */ bool reg_map_8_channels; bool restrict_axi_burst_len; From patchwork Sun May 21 10:12:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96844 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp831263vqo; Sun, 21 May 2023 04:47:21 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ50uGYc1Z3qy2bzl0TZHS2VjMiQZATbhYcsIR99RFvE0dr5+rdEbf3EsSqCNNDyDAlSp9GI X-Received: by 2002:a17:902:e887:b0:1ae:8e80:ba89 with SMTP id w7-20020a170902e88700b001ae8e80ba89mr7989372plg.0.1684669641295; Sun, 21 May 2023 04:47:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684669641; cv=none; d=google.com; s=arc-20160816; b=es/XDLhlolXS2SVLrpXK2ti9dbEhbgfEUVo37m9n/xeqdULa61lsfPEtspAR9c6MqU /2RVht9HVyShiYPisQVs3KbewkpqUvpIb/FbyLYOQebxXKgPxRnRQRjgrLXzR7vuHIAJ hXpFeyAipozrSM9c1jhDzMYIb0SZg+2w6OA6Ky06r1L5XgQ6dO8Onu49t/ht+AjgeKhT aev9Rkyl4yLtECnYmi/TprVoe8go/IGU1nNLfTtNzbwvIPNH5Ky6h102wDD6HFcy88EG +wQduvbjD1azC0Ll0qMpUsXPvH9FZsjgUZt/npBlI8aImfDPAF/P4zVoKDkm4iTbD/Z/ sspg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wnYxM4InXVvn7k1FuTZnoBuLxYn2svTwQ5NvVnolpyw=; b=oKkWMCJMNe48JbjSheK5SuNRzv2u4aYgBthJ6diUPUNyYY7IKFLahjVl/aqTXZsl4V ciz0e5J/EIVY2Gs6uLIyNArgVvAXO0U6oOcvDq3cbIdpLfhNswhozowTMXbk72ejSFKD f+aQBMKg0ap4CjCuw5QxV0MfxHV34kuYkSZ1SzqnoUUdmuEHNUl/i/2LwjhioYFs37m1 6TI5kzXoCTcsfe3ZbpDZCTIFx8eWU+krs60rJqcw0C+Sh/detfPpH9afeqt3s/FDRGp0 oTEIUX/rpq//zDxhScFrlQidKBPlYIUGHJDXT+vA0KmQRy1XL/M8E68GPZUlHz/b/amn RYDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AvSff5Qr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jb21-20020a170903259500b001add3e4ee8fsi3003273plb.138.2023.05.21.04.46.57; Sun, 21 May 2023 04:47:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AvSff5Qr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231974AbjEUKvh (ORCPT + 99 others); Sun, 21 May 2023 06:51:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230483AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C84210EC; Sun, 21 May 2023 03:23:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A4E6F60E74; Sun, 21 May 2023 10:23:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A01AC433D2; Sun, 21 May 2023 10:23:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664617; bh=wuVX/0YvZSuO5U9SVtkLtDjCssqIgDDcmJ1FV8R4DUU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AvSff5QrbnWVP3y0CGYY3/phzmkCqWYAL7qL7/ZyeLhCrD5tXdwcj7HvafpUNDXEE yIhivZGr/ZmbayQikZ+dqPITjxqZUvHF3BRIJMfizara/A7zB/cFhnT/lTzm7jFL+Z 3jvG9acunlQQTnF+g3+L2Q7zRueUQXaMUg0n5hCzAvkPa6J7LaDPfW2AqSjHIxB0e7 jPHHQmzu/bSD1yScYIUk8LgqnBMjrx/WvFizDZKoH3fte7tw5DE4IxvKacr5VzPWQl hqFcFhsbZBfLOd9oGZyxrWtihuyELUNIpHfFDK+9Bhzwa3ilPhObIgRnW7i2wBG8X8 +YfeEt/5LisKA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 09/11] dmaengine: dw-axi-dmac: try best to get residue when tx is running Date: Sun, 21 May 2023 18:12:14 +0800 Message-Id: <20230521101216.4084-10-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766504154140813485?= X-GMAIL-MSGID: =?utf-8?q?1766504154140813485?= When tx is running, vchan_find_desc() will return NULL, try our best to get the residue in this case. Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index f0bd8a7e3caf..f14fdfc9c7e9 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -312,6 +312,7 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, struct dma_tx_state *txstate) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + struct axi_dma_desc *desc = NULL; struct virt_dma_desc *vdesc; enum dma_status status; u32 completed_length; @@ -329,9 +330,15 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, vdesc = vchan_find_desc(&chan->vc, cookie); if (vdesc) { - length = vd_to_axi_desc(vdesc)->length; - completed_blocks = vd_to_axi_desc(vdesc)->completed_blocks; - len = vd_to_axi_desc(vdesc)->hw_desc[0].len; + desc = vd_to_axi_desc(vdesc); + } else if (chan->desc && chan->desc->vd.tx.cookie == cookie) { + desc = chan->desc; + } + + if (desc) { + length = desc->length; + completed_blocks = desc->completed_blocks; + len = desc->hw_desc[0].len; completed_length = completed_blocks * len; bytes = length - completed_length; } @@ -432,6 +439,7 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan, axi_chan_irq_set(chan, irq_mask); axi_chan_enable(chan); + chan->desc = first; } static void axi_chan_start_first_queued(struct axi_dma_chan *chan) @@ -1195,6 +1203,7 @@ static int dma_chan_terminate_all(struct dma_chan *dchan) spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_dma_desc_free_list(&chan->vc, &head); + chan->desc = NULL; dev_vdbg(dchan2dev(dchan), "terminated: %s\n", axi_chan_name(chan)); From patchwork Sun May 21 10:12:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96852 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp845277vqo; Sun, 21 May 2023 05:17:38 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5TFbJR00M16Nd9W7y8eCHWKTAjRsLlGjGtFMAzeLxznUj1f9Hu/6Vyo14gsblaBcaI1tUZ X-Received: by 2002:a17:902:7d8d:b0:1ac:b2c4:46cc with SMTP id a13-20020a1709027d8d00b001acb2c446ccmr7852661plm.20.1684671458472; Sun, 21 May 2023 05:17:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684671458; cv=none; d=google.com; s=arc-20160816; b=Z7zsLKEnqLuTu6x4PMXhsdmorHWXQ/PJGQ5d8HxAApGvZ+VPZ/eImedgwOoQeYvLRs OCi0bVBUnKSGwD/pIhlVFZbbZU9nhCsaCSuwRaIQOW7hvi1PLevEyEcgOKKt2TS7NZGw 3W0bXxjjpyBzIG5VE9pc4ZwR5rqQMZeKCK0yqAkUsMQAdks4PhSM+5hEFUO6cROIAXCz RlHwEVJ445rjqbOr0eiq9uza1SjsO8gFwHVTtLKO4cj9GIRimL9BCnMf2TdxgZ8EJg59 jZToK9mStq8oPB7TpElgO9aLPR47T9EdhFXA/qZWzp5qARlyJ6WKJlWZA0DAcI6A8eqp X3Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=sf1zcZVOOhtKIjM5/3EZhKRiuu9o7kaxevEK2H5yYzk=; b=MPH0P66mtRIAO1iF9BiWqw52rv88x5GBQHFG9h4s4C2Umz0TIH+A5aZl23A7cQJcQW crYN8waJ8LdWqfV//W1CZf1iDegI+O4KkIudaEEk+1WsCYwNb+G8JV/vf8la1itnJ/Hi f6aqOp1k3E29Px+SFrCRa5vocShdEIL4oGn3DP/3cCmts6aI0qtejNIxHTYGsI/hUcL/ YauONoDKCfZeQRHo2A0+xMTjeZ7RD/EXbWN4rOQjYIuF7VbfRFTaPbcpZ0bfWQpQ3Wca ED0avKVY/Nk79BOY9vr+qZaq967kSwbQT995pAM00Fi2Wzg0IwKFnULer/bejU9JuaBS QKAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZTS2wewK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jc18-20020a17090325d200b001a197aa18fesi2903985plb.121.2023.05.21.05.17.26; Sun, 21 May 2023 05:17:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ZTS2wewK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230309AbjEULsU (ORCPT + 99 others); Sun, 21 May 2023 07:48:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230484AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59AD110F0; Sun, 21 May 2023 03:23:39 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E36A3611F6; Sun, 21 May 2023 10:23:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 758A8C4339C; Sun, 21 May 2023 10:23:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664618; bh=3vm8AIqJvr6Fc6EEUZBTa078hFQD/CBcDZ6PM3gC9JA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZTS2wewKlHnWKe/Xt0LHnE/CRuHSfAree8mN77wrdaHUgAwoMzJxDIv9fOnD9xuCa Z5gw7/WkCIz6Uc2CXENgFaDYuWj294/D9DAA+hm9kPqKFv7z1S5mRIv5a1HU4r0Lzw sKVlEtkCZMAVHPdG/CS9SooYm3vY4TG4AOwg358K5yhravQ8lP9qpcUMOU79pvWG3M JAkzoXuK3cNMCqbSdrR+OS7eeFcKOVgY9tr9AgjRQBX5QgcNuWnETHSTGcoz7Bpd6H G1hGLEeTqCj3IsudnqNzsjs4MFMzyzhW2rlfsy/onGJMTxxzWwRd32XawUkkPKfN83 +H8XR1Xxshipw== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 10/11] dmaengine: dw-axi-dmac: move dma_chan_tx_status() Date: Sun, 21 May 2023 18:12:15 +0800 Message-Id: <20230521101216.4084-11-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766506059252475792?= X-GMAIL-MSGID: =?utf-8?q?1766506059252475792?= We will add polled support soon, for which we need to call dw_axi_dma_handle_ch() in dma_chan_tx_status(). Move the function to avoid pre-declaration. No functionality changes. Signed-off-by: Jisheng Zhang --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index f14fdfc9c7e9..091c15c2ec31 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -307,48 +307,6 @@ static void vchan_desc_put(struct virt_dma_desc *vdesc) axi_desc_put(vd_to_axi_desc(vdesc)); } -static enum dma_status -dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, - struct dma_tx_state *txstate) -{ - struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); - struct axi_dma_desc *desc = NULL; - struct virt_dma_desc *vdesc; - enum dma_status status; - u32 completed_length; - unsigned long flags; - u32 completed_blocks; - size_t bytes = 0; - u32 length; - u32 len; - - status = dma_cookie_status(dchan, cookie, txstate); - if (status == DMA_COMPLETE || !txstate) - return status; - - spin_lock_irqsave(&chan->vc.lock, flags); - - vdesc = vchan_find_desc(&chan->vc, cookie); - if (vdesc) { - desc = vd_to_axi_desc(vdesc); - } else if (chan->desc && chan->desc->vd.tx.cookie == cookie) { - desc = chan->desc; - } - - if (desc) { - length = desc->length; - completed_blocks = desc->completed_blocks; - len = desc->hw_desc[0].len; - completed_length = completed_blocks * len; - bytes = length - completed_length; - } - - spin_unlock_irqrestore(&chan->vc.lock, flags); - dma_set_residue(txstate, bytes); - - return status; -} - static void write_desc_llp(struct axi_dma_hw_desc *desc, dma_addr_t adr) { desc->lli->llp = cpu_to_le64(adr); @@ -1173,6 +1131,48 @@ static irqreturn_t dw_axi_dma_ch_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } +static enum dma_status +dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, + struct dma_tx_state *txstate) +{ + struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + struct axi_dma_desc *desc = NULL; + struct virt_dma_desc *vdesc; + enum dma_status status; + u32 completed_length; + unsigned long flags; + u32 completed_blocks; + size_t bytes = 0; + u32 length; + u32 len; + + status = dma_cookie_status(dchan, cookie, txstate); + if (status == DMA_COMPLETE || !txstate) + return status; + + spin_lock_irqsave(&chan->vc.lock, flags); + + vdesc = vchan_find_desc(&chan->vc, cookie); + if (vdesc) { + desc = vd_to_axi_desc(vdesc); + } else if (chan->desc && chan->desc->vd.tx.cookie == cookie) { + desc = chan->desc; + } + + if (desc) { + length = desc->length; + completed_blocks = desc->completed_blocks; + len = desc->hw_desc[0].len; + completed_length = completed_blocks * len; + bytes = length - completed_length; + } + + spin_unlock_irqrestore(&chan->vc.lock, flags); + dma_set_residue(txstate, bytes); + + return status; +} + static int dma_chan_terminate_all(struct dma_chan *dchan) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); From patchwork Sun May 21 10:12:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 96851 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp844337vqo; Sun, 21 May 2023 05:15:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4sJ/xC7g0gCMmCpgbHlfdlZWbLODN+QN/yKMIk7B4scTC3NWJ8jDkAoQK2ywOO12cCZ2og X-Received: by 2002:a05:6a00:a17:b0:63d:38db:60ef with SMTP id p23-20020a056a000a1700b0063d38db60efmr10456067pfh.26.1684671347806; Sun, 21 May 2023 05:15:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684671347; cv=none; d=google.com; s=arc-20160816; b=KAng0+HBmVsqwqc6g2SZAywFgBzJYhxa4w4FZGRW94nZm1dKAevBoE2NJcJbG8iLy+ wFOm9+dOd6S+XCFBjkKpj7SP6c5MFLgHd8H71E0YfOkMITXheWw+Eb7VRTrQ4Js4OkTC s7eShkowRD2Uliggg+9cuw1f3dpCmIcIbtl6vA5A+DJ2AdJKzV4L9gJ4Z5x2Td1xzoLD 3K7eA1bP12+OGBhr7ufWK/ier0hRH73fiPxdj4uv5q6Ew0HI5aRWXynp3/lEFQW0XAtV ovrCRIAy1FfqtBvQF1ffQnEsIDCLidZFO462xIryW52kf18ex06uOWU8AKYZYnR4NDiR vjfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=DgyJFsV4pBXgusI78qLTNYEL68myzMuNBg9cGl9pmiM=; b=yE6ICzhn1D56iwCCJSXEddZOKwaB/MxqoX5UY1DvV/ZAtq9YlQZFx02v65NZJkN1pA wUoRaKczCBhFafDYVOe03uT2tIl3v9fCIidDc2FLF8A8Ef5riAc5leBTZmKBOfDFgw3r nJCB1TCQNSoO7mP7psCz6UFcegqvRO+RkF85ul43O93t4BaaoJ8CQhjL+hpFt4NLNOSI pXmpEWhPWlTwowI1/1eT/5N+CvnwBhm63kYcW3c4lIw5x4qE+DHU5xmMzBoA6EW84tfv NJmFz3bs8nvG+rYGe2FPDW1G2/0TSAn1Qm4rtxXJv8VYecgmdv3835cb45tJf6WPbpWm ZyTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gHw5+gVj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r25-20020aa79639000000b0063b8f3a4d42si1094606pfg.163.2023.05.21.05.15.32; Sun, 21 May 2023 05:15:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=gHw5+gVj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230378AbjEULs1 (ORCPT + 99 others); Sun, 21 May 2023 07:48:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230480AbjEUK1w (ORCPT ); Sun, 21 May 2023 06:27:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95F9D10F1; Sun, 21 May 2023 03:23:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2B57861237; Sun, 21 May 2023 10:23:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0EC9C4339B; Sun, 21 May 2023 10:23:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1684664619; bh=CgvF8Omo2JeTGnqmRi2Go52uNuV9rdRbFiAeV3NJTAk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gHw5+gVjEIOb+e4UbCc7hGKVU4uLX2hcCGsPYe4SmaCXZUVwwW2ZRC+CVIVxhTK5E hZTQLv54htOvEfBkLSkdRlMA762KQhvnN/etb/FE9/qyPXn3/h7HLgDBvZ2KcmN+BB k1h2sgi+1zLsTy0FuiKu/6M2EgQCWZiIy0zfqwfhLmQs1MM92/Vuur23CRe4aDU/Um ZLLAD14zUEE4zWrmVs16IS9D5E16I9nbNCO+DfxNLyNnRBO/mqE+yyVZOx6wINoCVh 7HIuyU5gbJGKhOR6cB2sHgC+eBW4zb8U/F4eLb7ApuIryThJNMe8ws+DAsO8MQIkZb 1lWhPMUffXPYw== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 11/11] dmaengine: dw-axi-dmac: support polled mode Date: Sun, 21 May 2023 18:12:16 +0800 Message-Id: <20230521101216.4084-12-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230521101216.4084-1-jszhang@kernel.org> References: <20230521101216.4084-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766505943507451521?= X-GMAIL-MSGID: =?utf-8?q?1766505943507451521?= Run in polled mode if the DMA_PREP_INTERRUPT flag is not provided. Signed-off-by: Jisheng Zhang --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 11 ++++++++++- drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 091c15c2ec31..37ab9a03d94b 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -390,7 +390,10 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan, write_chan_llp(chan, first->hw_desc[0].llp | lms); irq_mask = DWAXIDMAC_IRQ_DMA_TRF | DWAXIDMAC_IRQ_ALL_ERR; - axi_chan_irq_sig_set(chan, irq_mask); + if (chan->polled) + axi_chan_irq_sig_set(chan, DWAXIDMAC_IRQ_NONE); + else + axi_chan_irq_sig_set(chan, irq_mask); /* Generate 'suspend' status but don't generate interrupt */ irq_mask |= DWAXIDMAC_IRQ_SUSPENDED; @@ -721,6 +724,7 @@ dw_axi_dma_chan_prep_cyclic(struct dma_chan *dchan, dma_addr_t dma_addr, if (unlikely(!desc)) goto err_desc_get; + chan->polled = !(flags & DMA_PREP_INTERRUPT); chan->direction = direction; desc->chan = chan; chan->cyclic = true; @@ -803,6 +807,7 @@ dw_axi_dma_chan_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, desc->chan = chan; desc->length = 0; + chan->polled = !(flags & DMA_PREP_INTERRUPT); chan->direction = direction; for_each_sg(sgl, sg, sg_len, i) { @@ -866,6 +871,7 @@ dma_chan_prep_dma_memcpy(struct dma_chan *dchan, dma_addr_t dst_adr, if (unlikely(!desc)) goto err_desc_get; + chan->polled = !(flags & DMA_PREP_INTERRUPT); desc->chan = chan; num = 0; desc->length = 0; @@ -1146,6 +1152,9 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, u32 length; u32 len; + if (chan->polled) + dw_axi_dma_handle_ch(chan); + status = dma_cookie_status(dchan, cookie, txstate); if (status == DMA_COMPLETE || !txstate) return status; diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index 1f9772e9be30..33ae4280dacc 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -55,6 +55,7 @@ struct axi_dma_chan { bool cyclic; /* these other elements are all protected by vc.lock */ bool is_paused; + bool polled; }; struct dw_axi_dma {