From patchwork Mon Mar 13 17:04:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68983 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1311473wrd; Mon, 13 Mar 2023 10:27:06 -0700 (PDT) X-Google-Smtp-Source: AK7set+VYfH5eL8j835ryYI0n3OSpYqwQeyzkPXe3vGnxOfeqpKmmSpVDDfCP2gp3uTlqwMd6zmy X-Received: by 2002:a05:6a20:548b:b0:be:e450:69b3 with SMTP id i11-20020a056a20548b00b000bee45069b3mr44086263pzk.0.1678728426121; Mon, 13 Mar 2023 10:27:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678728426; cv=none; d=google.com; s=arc-20160816; b=Sd3qRWrMIk9e6uheBL29NVROqwy3tlwJGxjMJabci1zGNTT+ooSde6rjb1Lp3Ol8fs jiQ6xp+KKHUmJBszgcx4WPyGZv0cphkisQ08ZSi53IyKBCmYoXwOMlwItGC6I14OaH3z HcVRxAIsBa3itgEw9P6GsZSiy7p+RY5TFq+ImrcROr1qJbEVl2I3ufFKQZ++GbmVA5sW 3B2rNNKNOhDIjL8j5dRGr9loXtvwzLDLFeTtQ9DL0YGuTO/Uy7wwR6GhfxaXU+KGryIr D/XsVk/TsTyIfk497R0Yh04zX1jsCdVSNyKDE+wTd+5XG0Lsbi9vRcGaVFj+n33KoWJJ JC0A== 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=EziCaviDBJQsLAn2ahCOITB4a+p8jmiijT0SlsRwZDE=; b=oDSFBJeERUp+qyhhEqZ2jgjcVr7EumkZoTuerm4lGo9CjrJOozyxxTHsNT4T9hAM0X vRo3cuKtP/dJt5Edf3h7LoKhXKW/olEv+wiecjgKTkQ1Img7F0ihbkqRJZIyzJAT43aK jKQna++0GUIFPMd0bD5SImRo7S3dqGeWSc20CPBZYnd32QVE1iaQ5cgApkexHqUVwNRT vws7fksVfHahT9LDXcW1xtOh828trjP2UlyrxCW9l8ko0oYhJbuI7f8lt9vGcZDAIvGo mAiuBb0WNIfu4woHCmdGwpWrYHrQnuI32gLCr4hN8Pugd+an1hW2vpBbjQQfeYL0Aqis I8eA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Ma+bhWtu; 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 e66-20020a621e45000000b005a9dd8ef30csi7052097pfe.216.2023.03.13.10.26.53; Mon, 13 Mar 2023 10:27:06 -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=Ma+bhWtu; 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 S231483AbjCMRRF (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39114 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231499AbjCMRQz (ORCPT ); Mon, 13 Mar 2023 13:16:55 -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 8B9F977E15; Mon, 13 Mar 2023 10:16:27 -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 D8DC66141D; Mon, 13 Mar 2023 17:15:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43AFBC4339B; Mon, 13 Mar 2023 17:15:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727734; bh=IhJqKy/lFwInJmGYo3Tizjdc1Cg9RTkiCKAvvE/5axU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ma+bhWtuu+yLhewspm0qg1DsqcCvLp67qc/WgVu6MYKqlr5ZC3LT492zAnTEtkEn0 1WHAR73D78JEQpigWF2DcPdyFYeU9DOh+MmKqedagiobLZm8Yeykq+KDx26uALyxrQ 6r3AEht3hmXZ7qfyZZGfVsSCbsfLdjp6hPu1ZAUJ0AzEwLGpKrWzh2+yT679FkhQh3 BUxLuREbHdp3oJ7+gTbyhdqg0NW3Nq7DRxCvtkehJdgoxSmIYNqKbFhL/MmTxNcu3W H3xMcSHTS/hdZsrkKKNpPQLpx7TiNLManem5jNf7jWX8gJfCAp/TOJGVa6Gx5QkOH9 +xHR5vlK/viNQ== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 01/11] dmaengine: dw-axi-dmac: fix reading register hen runtime suspended Date: Tue, 14 Mar 2023 01:04:40 +0800 Message-Id: <20230313170450.897-2-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274338263087993?= X-GMAIL-MSGID: =?utf-8?q?1760274338263087993?= We should runtime resume the device before calling 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 7f3a60e28e38..23a10dbdecb7 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -462,13 +462,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 */ @@ -478,13 +482,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 Mon Mar 13 17:04:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68998 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1324729wrd; Mon, 13 Mar 2023 10:57:18 -0700 (PDT) X-Google-Smtp-Source: AK7set/fVeJnYuiZscnoOmlZHNLYN02Ef0xw8FVd6WCm1lg9NbcB/klX4jLtE+8JSWk4efKUsQVG X-Received: by 2002:aa7:93c8:0:b0:625:500c:35c4 with SMTP id y8-20020aa793c8000000b00625500c35c4mr860707pff.29.1678730238498; Mon, 13 Mar 2023 10:57:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678730238; cv=none; d=google.com; s=arc-20160816; b=rumEYrEtPWcYc9LKJVK6oRQWzMR8JdXnVpypgNxKs+FVqRTl8xRqNU1m7ABQbpBy85 UduZoVtYb6i8t9w28LyzwDCkrpncJ2vTGUIoLjCYUyUz3nVit/crIUZ7pelYUW75y0mW wCtol1P1CSay/iRM1dqqux3lvH8H2vSOT+UoXZqCKOCxzkfiLj39DzzO5x5Y16sUPJUm Q2NVTKklRQw27WnhI8VM7Zv30qzL534Jb1mH+MikvY98Jj9cqBXojxRKRGLrxgXbBQFb Jb14wyrb5tNu3Rykg/Yh+MWAjEV7N89Uw6ma8SpRqHhsd+J+JSU4ikOayQZmy5ZK0L/y xaeg== 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=6kaf3rGwzUSGiOuakOdFpdA/lkeHpTJO3jWJqdHdQRU=; b=iZI5I3wJdMc9nynrLSNbqxPakL8PJfAVkxBE0f0QLeRRjMJJkcq7c/RObrpfkXyNzr 2oAZy0Bfv73M0sY8JZjlhHgIVPycD5eA9V6OpuwXzhPPQdVXrBrZBiVVHXrLlSJeLnXw 3oi06HMG9CyWHqP1BGwhpcRyGQk8MPtWapWBX4C9k4VnnuQqhrAyqTAHCMDriDD3Mqvq n++h9k9H03rk5kgqYWYw0h2obCDy9IBAoMWKTtN/Oly33NagdcRFuxXsgq7iyeIFm4aP D8pRK4auIJA2e30UDv2sW9C4Ugly+Cl+1HGVyHu0c64sniR22/1dUUhgR14oKmVhlEIO LOTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OynKBULD; 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 q205-20020a632ad6000000b00502e521cf81si82879pgq.356.2023.03.13.10.57.04; Mon, 13 Mar 2023 10:57: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=OynKBULD; 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 S231535AbjCMRRh (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231575AbjCMRRX (ORCPT ); Mon, 13 Mar 2023 13:17:23 -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 6C56E5D44F; Mon, 13 Mar 2023 10:16:55 -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 5DABE6134E; Mon, 13 Mar 2023 17:15:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7667C4339C; Mon, 13 Mar 2023 17:15:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727735; bh=18h7yJ4dungwOKffwnbsdGXL7tiydULOEDbCcZ66iBs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OynKBULDCoI/qcQGwd4Pr1fRMeE9xZRbwZyH/ENX9IxzsA5qb6ew9/0hl/W8SkZsa kPUXJz/V21M9lpDz9ycnnp8FdcNLsMBN1ECYYu6Ngpua00Kk5MEp8k+avfYhE3UuTj 2rtzJtf/mlB05WgEK1xQ2mZWWo0Hc2PZmvI12Zhe8qo4kiy5SW9EB897FJOZEoGVz+ xmqehOH+JGNeKNP/qys0RiJEupqI2F03msT/1a3Grl0aAFBHpTVEbjfleoZnjNrVoW zetoHu7WbstMVeEugIWb6Q77eIZFueshv1mq3AXD9T8pNmQj64tuv3mqHbDmbiixzc mAPVz3m2rcChg== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 02/11] dmaengine: dw-axi-dmac: remove unnecessary devm_free_irq() calling Date: Tue, 14 Mar 2023 01:04:41 +0800 Message-Id: <20230313170450.897-3-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760276238798057658?= X-GMAIL-MSGID: =?utf-8?q?1760276238798057658?= 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 23a10dbdecb7..56f12dfa410d 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1542,8 +1542,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 Mon Mar 13 17:04:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68987 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1312088wrd; Mon, 13 Mar 2023 10:28:41 -0700 (PDT) X-Google-Smtp-Source: AK7set8Q8wvSSsmpJ1bEKUI3wk1XdwZAJonk68Nx147BIwxo0wD/JM2LxDB7kl8N8OBH4oGPYtvg X-Received: by 2002:a17:90b:38c3:b0:234:159:4003 with SMTP id nn3-20020a17090b38c300b0023401594003mr35169520pjb.25.1678728521276; Mon, 13 Mar 2023 10:28:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678728521; cv=none; d=google.com; s=arc-20160816; b=Ig7z613Vbemx3LCrY+xHpfJoBQDiI4pC+Pgu9+SQqKkrbJxzMeuurEc+TBDSBkZBJ3 HhByy1+kMPC8xfYcC7MhXawJs/snOgPRx9ddIf8uylzs2sy9JTs3q1AjgeEm7kjA+lW9 FbHTivxC1eTjm+tG4wSNJ+bY6crXOlbeu+cQ6tsSXWe86u7Ub3t4WlJmc7AgZPKAx6RV PQfJ1+rfkNJIafQu0mh6W6TFJOMNsK1yZWfGPVXf7fBiL+JGwX1H6NjZxYHde0HFC3rD t+/C9W322uQmqswkYNcjZogIdBiUPUGuL0f4x3lvqLE2BSy3umoR7Gv+3BB1EZyMZnRi wHHg== 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=w2u4rycNS0F4qdU6aVJLMr16w8F+4hbmxJbmn54Gcq4=; b=GeydlMJgibgT3RKrV2C+4siQY+/hAk5DheRPYBRPejwxB0AfXHfJsHnDsyT179QPlS R0EqyR1sW7J5KIY3QIyN/gbzO3CSy4DD4CWt4iZljmxAA0ycyOBBtCY3TflicfncWXAj UIXwiEHQm+9edDvCq5rUqeAbRSyNwShhUw66GYuH+sWL1sWpU20FgfdbX7vGrtjPJwpf 5mCemS2j7Arl1ONz5gSzxEPBRwXga7ZYajkPGaL7j1BU0t9qV/OHbGlaHItz0NQqhiZI 5r6I8cIdvppNFECR9l1ncslzbXUp3oTFAUYOc6mJrFMbjmM/JvnDMM1NrwVUIr4LraKa ls3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HuigqclH; 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 s13-20020a63dc0d000000b0050300ca139fsi19119pgg.191.2023.03.13.10.28.26; Mon, 13 Mar 2023 10:28:41 -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=HuigqclH; 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 S231304AbjCMRRH (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39208 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229988AbjCMRQ6 (ORCPT ); Mon, 13 Mar 2023 13:16:58 -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 56BB57E8B1; Mon, 13 Mar 2023 10:16: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 D7B0061368; Mon, 13 Mar 2023 17:15:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39DAFC4339B; Mon, 13 Mar 2023 17:15:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727737; bh=/WoZ1V3BfTduJ79xfQ4OOwggeNMcUtHeDcPNMKwKbuk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HuigqclHWxET0fEcgScekjHYmY/mpWPHwMXaJnJSXjXoWJM6vd5pe7bgmphI0o9u0 N+h97Hl/alXMJFQT5hiB+G3tjP7YVBWDykPS1ePqv+4xo+vv2RLkKgSXOWHImKAAiB YwFdoa+dFIAfQcjN1f2vnmKc0KRgR+rj0/Y53qQyISCaTMtjwgZHwnJ1Rp4nbr1PMD mRC52Kii48yk/cwCoFol3CcpFjguwOTbm+9AfJrmbz50Pe7g9Qm4+upUvoNex9T53Z WOKdUgXQ9fMWgAWBFwu3wf97yOBZ+oJ8CvwUOAnLeuIycpRca83q660pvtZkNV4IEY WDbOxI91eCgUA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 03/11] dmaengine: dw-axi-dmac: remove unnecessary axi_dma_enable() calling Date: Tue, 14 Mar 2023 01:04:42 +0800 Message-Id: <20230313170450.897-4-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274437949355110?= X-GMAIL-MSGID: =?utf-8?q?1760274437949355110?= 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 56f12dfa410d..891776528619 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -382,8 +382,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 Mon Mar 13 17:04:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68986 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1312034wrd; Mon, 13 Mar 2023 10:28:33 -0700 (PDT) X-Google-Smtp-Source: AK7set92onD+LnMd8C2DG/DRni4DQeaGelsz5bDKUaDQDl/yO1UgxsSZGwAHViCQy9AuKYjoaOSA X-Received: by 2002:a05:6a20:7d88:b0:cc:32a8:323d with SMTP id v8-20020a056a207d8800b000cc32a8323dmr10524620pzj.28.1678728512687; Mon, 13 Mar 2023 10:28:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678728512; cv=none; d=google.com; s=arc-20160816; b=AoOWs5O7qhU+YAMaaDMvm/YaYXNhbjvgtJH899j7vIbeyP3ZEJ6lESvDH3IaDefL4h rYtMgdHolD8PCikGO73vDaxbkTQVL6ud48YPmGaoMs4oVAVwwNcLQRmykWS8PT4m6kWE 8yl14LU9r+HJEavzGlPJq8c1nIpbnbBAMvlgr33+K/Vyge8w3dNbQ+A7iGdFNYFmKPgo 9mRygvXSjBbLO+yCVFFjT32xI2pcUdlv1V05+HZgp5h3BwdoUFNhxhjavAXLd/6hqye8 iaVmgCJVJ8939GAIU5EuyLhtXDgBVw7tMK855oWHtlq51I6zc88NYZOeYYhNoMpgT/Ss xd6Q== 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=iAFhoD/eGOV4bIefAQ1NIyyfrKFYqwnB1/B1QqK4k2w=; b=XMcOFrYpqKJFH/vAXIQVLYoqzDfY5QQyG15tGVofjlsBR/kZH/+u6x+v0gk8HZI0cO wQzvu/s0U+O3o4h4zKc6dx1xffE0a+oYmv0oN31+1g3dLARSRM6AYaHJNtOJ/Y6rZheT 1LgUBhKL+I4h+XukMtXZEwSpCaephrafHYE9yu3yzbAt8IkgCKro+SfL/TKJz8Vf80lH zheogi2ExYUENFArI0VRSS7JEXItAGLZWL6a2abtOT61OiIVP76xnJL7WfZRCFrGMuP6 ovCOrxHFzKg/XGeoEHsalTQ72xb6iO16jZa5wH+YehRyhqpfjd1lVR8Xqo64EPr2Lq7q shrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bGryyCWu; 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 n16-20020a635c50000000b0050910681ff0si18994pgm.207.2023.03.13.10.28.18; Mon, 13 Mar 2023 10:28:32 -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=bGryyCWu; 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 S231557AbjCMRRk (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231538AbjCMRRZ (ORCPT ); Mon, 13 Mar 2023 13:17:25 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 831BA56152; Mon, 13 Mar 2023 10:16:56 -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 ams.source.kernel.org (Postfix) with ESMTPS id F262AB811AE; Mon, 13 Mar 2023 17:15:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B12F9C43444; Mon, 13 Mar 2023 17:15:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727738; bh=JRKBUa5JXVxlNgvhy7KVhNfMBjTnbpEYzC/sl0OoIDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bGryyCWuMURvsTurldq07AiHtbwoa8rCEUpMjBxrDURk+DOUZ/gOXyOokbyWbGKR/ /8bxGUpay+83Cwlnnf5qr/jAoep+mOzrW0WPiO+OImza88MKXpdPTjdzF8xJW2Gx8T eRVxrHiVAnugk/lJBZW2k2kiww3uuNKS3K2FqV9z2bhPUCAqYjcIBgx5djchzLFS1L Zpr1mmmtMNbMXBRq1lamM0/CpNOoi5u5J+C2+ZlYVMcs+RuvFB0O3TffZM1esPIp11 ixDQoCqg5Fud2z76z7BCEnA5EifZxYyN60wXwvGzK3QkUGWckYwF0kwU04iwJ2CEx9 ojtUUSYcfo+0w== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/11] dmaengine: dw-axi-dmac: remove redudant axi_dma_disable() calling Date: Tue, 14 Mar 2023 01:04:43 +0800 Message-Id: <20230313170450.897-5-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274429231290147?= X-GMAIL-MSGID: =?utf-8?q?1760274429231290147?= axi_dma_suspend() will soon call axi_dma_disable(), remove the redudant 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 891776528619..410222e7224c 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1535,7 +1535,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 Mon Mar 13 17:04:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68989 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1312257wrd; Mon, 13 Mar 2023 10:29:07 -0700 (PDT) X-Google-Smtp-Source: AK7set8tO75tuNOj38RRgD5l+X4lcUqYIm7zHkUuMl4HyRFnaISooQHRhjdB+AR+yRMqD3T4CWQP X-Received: by 2002:a05:6a21:6d9f:b0:cd:a334:a531 with SMTP id wl31-20020a056a216d9f00b000cda334a531mr44024086pzb.62.1678728547006; Mon, 13 Mar 2023 10:29:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678728546; cv=none; d=google.com; s=arc-20160816; b=UyiP1rP+78bfj41aNUydKn1J/4Oc/bS8XXqQcxg1rUgAXxIvrteG2A/SW4B7C0VVT2 d1xT1cuJDJC4QlhTe0MbzdUqz0x9J3FZ+wldxWKVGg5IYmeiYYdIbVEBMJcuDLTLdtns 0xhM5xH9wEadDLhQx7uoiw/0XEVZuENDEAm/mbQKAUWGfNGOJbj4EqNYZ0r1CrAr1NJm ZiHexHnS+ZL22TL9CFLF4HwcMm3A1DD4wD2O5rEd9nElgML4d+YqnqbZSI222ccXTQJ6 aC5UEegpsPo4Ktb3i3cpXAL52mrW49Hi4JK4wLuFjzX8jATK+2m3nybIh7ML1Ebvhaae fcaQ== 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=/mElfMeCWHcknq5bBOwkJwXGIVRhDOLXeGYXGsCVu2s=; b=p5bzGMxLtKoRUxxsZbf+aX+pYqKxpFiExn9hijBuYTpt0fTozcnxHxtV2o/lmbFFQ6 vFxU6xgesHglkiZEJuJPKhgA0dEGku8lMkAvVSMAUcDV1NacLB9FEuSoQ1A18X17xISw nKjuTdrDehbtdYSK0HzEufDDRS8sRIm6k1eL6rYV1KRXaf6u+qJOdQojUuH94vmw8ND0 Szm8xs99tRqbaQxWaQhOGz/t8y+tdOejxMsWx8MU2OLApBnOA6MCwz1JLeNVT3BKjMLT iEDDQJ2GzLjDzSwc16c1xLq5mIelr3DscwT1YsL5Xu+CYGkwdDSuZwiv8jxVJpHqDraK OXOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=sKgd+zta; 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 h30-20020a63531e000000b00508f0b57d58si13207pgb.186.2023.03.13.10.28.52; Mon, 13 Mar 2023 10:29:06 -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=sKgd+zta; 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 S229637AbjCMRRP (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230013AbjCMRRA (ORCPT ); Mon, 13 Mar 2023 13:17:00 -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 2F29A5A928; Mon, 13 Mar 2023 10:16: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 C7D1261381; Mon, 13 Mar 2023 17:15:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 318E9C4339B; Mon, 13 Mar 2023 17:15:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727740; bh=Wq9HdywcRzw2m/st4OKSeu8XmLXjFD1NNFfAN6itaz4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sKgd+ztaC39soHjcw/Zova9uilv09zfak4DBc6q5EpKhTdjMsEKuqZEbB1FWzkTTu j2apkY5HKm8HXIvXu6IEDUIQYId4xdoE27ejvIrCItoeam7kSIiwqjA+mNUAeLt/Qi xuQbCXysqla3PlCHbm9OqCwrBY0tLXDEX/cb8uWdmJulSjMPr21NPwHStU6+E/K9uD wrajF/s6kdeFzBilf9JukGJSLltythKuNtvhNJvhNVSR5ZWiOb7SyBcX26cX9kTxro TJISaXkvnCIZQXwuRgLgJRl4whOx0Xfm8qRXv5r/RNnmtV9l9MEN0iu0VbA+k/R3dQ Re6Ny4Jucq0JQ== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/11] dmaengine: dw-axi-dmac: delay irq getting until request_irq Date: Tue, 14 Mar 2023 01:04:44 +0800 Message-Id: <20230313170450.897-6-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274464815813380?= X-GMAIL-MSGID: =?utf-8?q?1760274464815813380?= 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 410222e7224c..6087fb7d567a 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1395,10 +1395,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); @@ -1426,6 +1422,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 Mon Mar 13 17:04:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68994 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1322368wrd; Mon, 13 Mar 2023 10:51:34 -0700 (PDT) X-Google-Smtp-Source: AK7set/WhERyfcbA9r6KvM6zw8nm3U1kIcs2zba/YhOBOXYPmaDtA/gRjxjZBS5KHiCzvnW1UL/E X-Received: by 2002:a05:6a20:6a03:b0:cc:f9f2:3034 with SMTP id p3-20020a056a206a0300b000ccf9f23034mr36822027pzk.40.1678729894128; Mon, 13 Mar 2023 10:51:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678729894; cv=none; d=google.com; s=arc-20160816; b=CdSLO2kK/QGYFA3FAKSNwbhgKzxhsiSiMTEcYESxBK8fi4GXMoHd+tlswnripQeJak zGPsRYcWVJd6SRW5pa5w4FYQaZ/PV35xDXuMH4lJot/P7VzJkBNZZHmxodzp7DSTTI+g EkWmhAzC6JjhU5tAPwbMjDDh0GGrQQW6c8HgEH14G1eKUFA1SCo7sOy5GjHYW0bTpa93 gPIXMEoHt4HrxP3BATnIKeyp05CDchoRGHAN7G6wgGWOCMcec9hdzLCF+rdtet5QOGax JH1zPioOvGsLHNRyV+8IpjiK3MfJiiyXzKJx30GtHARyg+9vRsXdTICs3GQmAWUO0t3z cD2g== 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=2N30BO8E/sEv8J9wMMsKNdzIawVaSq8X5am7iM3XXPM=; b=EKbKheSAvaf3vsAITj/LK7zw4k3T899il7B4IU05T9aieVLzVOERNRiG1IuXsXxiZh t9qPWHY/pgvBtu5SoCg9+4dERR/XX2lMm66YA5feOaGPk5v14dyFri06sz2eNvJVZDMA T+LlXBzixNAlNaJXVBHvGZA+HwUcrNNuzNfDwQO8zSccTgEFRtm9ib+t4gI140VTdp7b x3t1n9xCZyZ53/GesJBRNfikvEMcfeQE0Go1TW6tLmOZbYCKUNmxCQNuZEX42eajpZIy KyCnLrHiNgo2zaG9OzUielDcjpLfLh/+7xycMZ8kbQWjhCvrOSKQLUaT7/tLAoZN7qXj 2iZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Xaf+tiZJ; 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 p123-20020a625b81000000b005a90d906122si53091pfb.154.2023.03.13.10.51.19; Mon, 13 Mar 2023 10:51:34 -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=Xaf+tiZJ; 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 S230445AbjCMRXx (ORCPT + 99 others); Mon, 13 Mar 2023 13:23:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230337AbjCMRXa (ORCPT ); Mon, 13 Mar 2023 13:23:30 -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 E0389D530; Mon, 13 Mar 2023 10:22: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 4B64261423; Mon, 13 Mar 2023 17:15:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9FF99C433EF; Mon, 13 Mar 2023 17:15:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727741; bh=X0v6md0ShrzygWDpZi0pa8rfM30TOG9ETPBgqjPAHbo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xaf+tiZJ5OBAxeLGXmtyAFMCaeq0qoTTinLpwYLsvKb2RnUjeoKuTMS3fZUZesLc+ BoPZKR79Y+UxocHkR6KE3hlui5VQMCLKHE3zlCN8peiq5LRPXWD/DSorMegDYdH1bD sK8QgIATwiJng5ZJ7dSVUHVeKAO8d5k25YA+64t5oAFFWLGfmP+4iKxFfgs5GzWa9h liOQScDI/mEeU9NXKDXNo/jxONKWq3BOUzhGqAwzWyys7bPIuT2nC7EAwTqiVjh99R cFkDTQG2fSJn//tCt4AU5M15pcbCuAJNnugUqTcAV/KHJS+XWJj/8cSNGM/v1Ccadx rnaxm4DGNwNvw== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 06/11] dmaengine: dw-axi-dmac: move ch irq handling into common routine Date: Tue, 14 Mar 2023 01:04:45 +0800 Message-Id: <20230313170450.897-7-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760275877615608031?= X-GMAIL-MSGID: =?utf-8?q?1760275877615608031?= 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 6087fb7d567a..796fd0136781 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1101,13 +1101,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); @@ -1115,16 +1132,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 Mon Mar 13 17:04:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68990 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1315826wrd; Mon, 13 Mar 2023 10:36:46 -0700 (PDT) X-Google-Smtp-Source: AK7set9+ZpmPUEH2CQOrXfQmjt43ybJn6ozQ/EHCgb+o/tGIPvX2PXn8QqJU6oNyHQubu3fptpbZ X-Received: by 2002:a05:6a20:1a12:b0:cc:8e18:420f with SMTP id cj18-20020a056a201a1200b000cc8e18420fmr30868639pzb.35.1678729006411; Mon, 13 Mar 2023 10:36:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678729006; cv=none; d=google.com; s=arc-20160816; b=Fwk4141nzOIPzuOcAbi37b42a+oQYXn5t7P6zNMYyalx8K87Pqo8FyaRijFVm2yk+o XACxp5PiEfgOkTxY4giE+Ss3zPc9OnsOefIWpyTXooG6w19DGz4uk2AKVORD0Chywrgp 4w090M9S2C1ytHH3RbLfUJOi1q7jfoMFHfIdYXIlI3ET/r2lLdllI4mRjoTZO0lmKq0d 3EYfGA3D5rPpzSWYSr31iro0ROb6m9Rb3p4anz0c8QC0TtaOvzH2knK7XmhT/ILoK/XI /Vlx8bM4PgfFHqlo7FgIqSCEpA1PC5o45er+mK5YXPDXjE7YQPo5ot0iMYGIg5THYswf f4xw== 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=+i9wur/NRJkG0IOS4rWD+Z+7QTwkLqheLe930lWPRJo=; b=JYxJZ/8ossqA2RoY1wQBRfFGqFNBkTX0vAvoL7PnIYUg3pGX4aknADja8qnoyRdwyg kZlkBxrdPh3aC7td/ZxgaTi6kxtL3IYYZja3ZC7wSSAV57ZNbrBRDM2yn+dJUlBiuoMz TL1r5qeZblBkxTJLMGa5/j0tcXqJ1+z+2+F2RB7vJ/ch2oxd0jn6bwE3FJ1Cn1C0vXPz HuRbzNwD0QlvfEO5EsyJGSPhVd6hWjJ7eNfuyAux3+rVMqlJE4kpP5CeBmwXlE1qNvaS nEoGLejkSk8dOlCXux0M96e/nfmZkPafZpAM7fLXX0kCAIYYHNo9adFszo20mU7d+NaI nN6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OAUPmfhl; 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 c37-20020a634e25000000b0050ac7d1b330si40298pgb.289.2023.03.13.10.36.30; Mon, 13 Mar 2023 10:36:46 -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=OAUPmfhl; 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 S229961AbjCMRW5 (ORCPT + 99 others); Mon, 13 Mar 2023 13:22:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229912AbjCMRWn (ORCPT ); Mon, 13 Mar 2023 13:22:43 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 922118317B; Mon, 13 Mar 2023 10:21: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 ams.source.kernel.org (Postfix) with ESMTPS id 59337B811B6; Mon, 13 Mar 2023 17:15:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 200E5C433D2; Mon, 13 Mar 2023 17:15:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727743; bh=BENT+Gyh2C5823xlOfoa81398QX+6CAqsChvkHIBGOc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OAUPmfhl0MJEIjwtmCduDdD8aCkqfvNEOohRkEne7CshXZqSdrT6OeF04a80e3e8e v4C9/etA6G7YvWU7Kb7RR7BEJuKCc6vh04nOTvcirodB2MbeuoAa1xhyPCwFslTCaw WadHH2xfttyeSr3Ds0XTN2aD8UTYdADUfCsfXzmMJUeceqwkFHMlP2lPjlpfZDae/4 jQnzyza24xwy/dk94S7g6maWIRvL1sMblB+p21oS3SNU3DMGU1nEArgO7df2RCOotV oNbrP3B2aFPWYut+4fgEquB+tFi7D1l6z4vEqM+ZRyAjDVaC4eGDFK/QGkADTPr97p D6icQ9a0x0dRA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 07/11] dmaengine: dw-axi-dmac: support per channel irq Date: Tue, 14 Mar 2023 01:04:46 +0800 Message-Id: <20230313170450.897-8-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274946410200821?= X-GMAIL-MSGID: =?utf-8?q?1760274946410200821?= Each channel can have its own irq, support this case. Signed-off-by: Jisheng Zhang --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 48 +++++++++++++++---- drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 2 + 2 files changed, 42 insertions(+), 8 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 796fd0136781..edb1c089a8eb 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1141,6 +1141,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); @@ -1375,6 +1390,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; } @@ -1430,14 +1447,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; - - ret = devm_request_irq(chip->dev, chip->irq, dw_axi_dma_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip); - if (ret) - return ret; + 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; + } 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 e9d5eb0fd594..83ac839b4394 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -33,6 +33,7 @@ struct dw_axi_dma_hcfg { /* Register map for DMAX_NUM_CHANNELS <= 8 */ bool reg_map_8_channels; bool restrict_axi_burst_len; + bool perch_irq; }; struct axi_dma_chan { @@ -48,6 +49,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 Mon Mar 13 17:04:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68992 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1321822wrd; Mon, 13 Mar 2023 10:50:14 -0700 (PDT) X-Google-Smtp-Source: AK7set8THYKIF+nz9y+h5lSL79xf9ayLC5LOB3yTjgmQ4z9FB5wZAXJ2AB9dH7/N+c10EewLLQLA X-Received: by 2002:a05:6a20:a028:b0:cc:32a8:323f with SMTP id p40-20020a056a20a02800b000cc32a8323fmr29528486pzj.38.1678729814108; Mon, 13 Mar 2023 10:50:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678729814; cv=none; d=google.com; s=arc-20160816; b=mMyU8O8lJnMSOM19UehwwDC+Z3BhmA4j9A5+DdNVnlKwGYdle/g5szsD11AJy0WKN1 epezWtNqmDnJryGRFcWz7ckTWDcEXnCRCUzjIEFkuHiWzpBjO6nqk4hKgyDJxEvx0aQM zKUBLdJX8QMBSYryCgaS1fDhiMexN1cfkpAf2wcHsIx7lfVFFNS/8qV8y84UodkbBFtw KeKr+i0fUmOalAo9LV0DBV2bacD39QhnktVHar3SiSYgG0HtGEtyqVM+Z756m1k7Vd7c Iabdubs6Z9BCVMYOZWi6IvnMeEVbFBED40SR5LO5HQxdjqy/VLGBTSGHz3jhUDh9etbm AloA== 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=6lUuuKa3151bRgynL08X/UqfBh/3xVhHKDiboOJaVco=; b=aEGtt5WxdBeAIQG6dFa6iwwOTJVsUo0GohUHl7rN9/uF5GkP0a4EhBHQxVwJGU6qkL pkFO2f0vJC4YfUTP3UhfnChdU8Jh5Lgz/eTxCwzzsFldSrypa9rLurOfSf6DsZ1a0oZu bMLuccsTyuflK8QrN0JZmyQ0LylIyV0YKLuwCOFKubZq5w3V0XPKsByMJBvUtQn0u+sK 4mNAeEy6OTJ3ZiuDKRhwKb7chlzv20nrbRE0FbfBXHNyOZBHWqDnWq03pc7zI8qaPgfM CapZZ/oKGeZwxV7BwHZm2yRqJZqDPe8oK9k2fbH8jOvdMIQKYcGZREm/ZccdKs92UHN1 bI4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=juz5mfjI; 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 z10-20020aa79e4a000000b005aa7ec6f915si75687pfq.51.2023.03.13.10.49.59; Mon, 13 Mar 2023 10:50:14 -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=juz5mfjI; 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 S231653AbjCMRSN (ORCPT + 99 others); Mon, 13 Mar 2023 13:18:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230426AbjCMRSA (ORCPT ); Mon, 13 Mar 2023 13:18:00 -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 B14FC81CE4; Mon, 13 Mar 2023 10:17:32 -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 319AE6142F; Mon, 13 Mar 2023 17:15:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 91440C433EF; Mon, 13 Mar 2023 17:15:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727744; bh=LTJK1Q5mjYuDFo6XOCu0Yts3P4bL4yj+TgvZBGYtFVU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=juz5mfjIHepuK/C9slExugzY1AT/hTly2K0djTFKQtMPZLNdsnTYzJnhImV3McZFf gP7768wE2sjelp9jgF6+BqLpQNziHenoA8Dqz++Bm+kYY8mlQFwJ1XwFgo706aqARH gJFidpFNx2JfKW2xGQN3mMdTAVlesx4ziduuwSKQYkFCXSOzyb2FVwtWxz6HIuHWRy XtqtVvZp+46HjJkDoHwwFlckYrF6ozr1KNRcSR1fkFMpK2UHnbsLinHqPnadrBuw7T IqYcX1S35y1wm/hwPjtcFt3/cBzq/DN6P3EufNXDfo5fs6APztcnbczjE5JzhP3y3R +JCWfbkyOWZEA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 08/11] dmaengine: dw-axi-dmac: support dma-channel-mask Date: Tue, 14 Mar 2023 01:04:47 +0800 Message-Id: <20230313170450.897-9-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760275793505396531?= X-GMAIL-MSGID: =?utf-8?q?1760275793505396531?= 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 edb1c089a8eb..a6e46cb66000 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -216,6 +216,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]); } @@ -1390,6 +1392,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; @@ -1450,6 +1460,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) @@ -1475,6 +1489,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; @@ -1572,6 +1589,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 83ac839b4394..f57961620d2d 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 Mon Mar 13 17:04:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68993 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1322210wrd; Mon, 13 Mar 2023 10:51:11 -0700 (PDT) X-Google-Smtp-Source: AK7set9HPQegHF+ItiCZRa6NegNd/273mn6bbd6/OdRtHgp4NhavOLIdsN5e9h/7C8hwV76+iXuw X-Received: by 2002:a17:90a:ee8a:b0:23b:3699:b8a1 with SMTP id i10-20020a17090aee8a00b0023b3699b8a1mr8255712pjz.25.1678729871000; Mon, 13 Mar 2023 10:51:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678729870; cv=none; d=google.com; s=arc-20160816; b=PbXBCHKodW9yMxc20eT6kKIuOZIZOyfBpe6CreR2lHDo3WaLoNOaeJWUh/jD85uPxm +gRUrY4BlqQo/qCENesGVfQmxGD7aMrhFyOC0vMZT60sqVYzfkDx9efaW6aK/Z4FJ3B0 kd/eZK4H3vo5aRDqYB/+d0hmP7CgTiHHTqkn8M6zR8P4ZnHUibj0mi+g1aBQhIR5Xeh1 AT8jNSuhqH7xjW6eDWIVssbD0g+MLC1M+H82RreXkAgtc1AEiSD8FpmpwLgIH+lHG1l1 fA8cNU63oAiHPxMXhcQFk+abVxZ6kXwsxURitZzjPakpvloM0JjFzhfWIqi0NiJJCAhV 09+g== 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=Onr1c9wwoqj8oofKbwPgpp76A8KTznpIrNIIGtjTu+Q=; b=i36v4zsA4af8aKe7wL1xTrC+b712DVwDPUZJOcXCskwOCGCOBWPJnA+LwtQ8oeg42A SEr2Wa7HCQWTQpObJvafGGtJFWdRFxKsaxPSejgrxdBWwvTryB/ou2KQfO66JBrb8x70 upYpgNDFQ69Brug5aUM1C6mUKndFLuaQazdOA86+UQ0I7cXElsPC10vfIDZFq+Y19Enu jBnxh8sDeJxVApcYKU64kPKMYid2mCp261bcmi1hIryzzcSM5oAEpPfsD00+8oD4mKn5 bTP0Zao65sp/XyadYQz3+qMUJQOuzPkhWqBdFo79qvQAmNx0I9KkxFYmpYCQiJVgrXjh UpqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Rz+HewYQ; 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 j18-20020a635512000000b004fbd58ce355si43456pgb.511.2023.03.13.10.50.56; Mon, 13 Mar 2023 10:51:10 -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=Rz+HewYQ; 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 S230336AbjCMRRm (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231239AbjCMRR3 (ORCPT ); Mon, 13 Mar 2023 13:17:29 -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 3544377CBA; Mon, 13 Mar 2023 10:16:58 -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 A21BB6144A; Mon, 13 Mar 2023 17:15:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0CF0DC4339C; Mon, 13 Mar 2023 17:15:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727746; bh=eA2ZxLGWNR6IdxbFmS127kxHvHFaTkPGETvRqPfSGHI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rz+HewYQDWhKf2yVjWlD3Ax9+Bei/7TPg13o2xwZJMK5x/cP9LYG78LNGMJ0j8/Od kKprT9xj8VyFk0GbUfCKCeXjqQnkpBzsAVxHRea9/0NxyNiez5/4/VWE0VYmijkZf+ Rs2jKa7+8pzb3SEeKfl4lzZ0lwJfab0c5PDZE8ZEvLAVn5D17sZm+z0D3s70ggk9BJ yUvMLmRQ1DmmAqJxmtDMjRKeJCjICW8tGdLwOChm+OsExmxIDJnRArIDxbHQF4D0E8 +uPUVPcchyBMj06+r2ukJZLkK7l5fFEGcapnljsHzX9WVOciblQefC38gn/zeNtUgC MGPe94fPoWuXg== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 09/11] dmaengine: dw-axi-dmac: try best to get residue when tx is running Date: Tue, 14 Mar 2023 01:04:48 +0800 Message-Id: <20230313170450.897-10-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760275853309742513?= X-GMAIL-MSGID: =?utf-8?q?1760275853309742513?= 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 a6e46cb66000..1c1b9574985a 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -305,6 +305,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; @@ -322,9 +323,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; } @@ -425,6 +432,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) @@ -1188,6 +1196,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 Mon Mar 13 17:04:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68996 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1324154wrd; Mon, 13 Mar 2023 10:55:51 -0700 (PDT) X-Google-Smtp-Source: AK7set/gh3aPHpWsMZ9Qvlmf5DaG3jmSOgDv7EX8JwIMX2XMYcqtKHtV6WmF5nADqjOIrkv7S2VF X-Received: by 2002:a17:902:ecd2:b0:194:5c63:364c with SMTP id a18-20020a170902ecd200b001945c63364cmr44964053plh.62.1678730151441; Mon, 13 Mar 2023 10:55:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678730151; cv=none; d=google.com; s=arc-20160816; b=rrsnZri61ffRgThpfswTcAzrTUOiHR51RDxIok845sA2i15gLD7pdZUGmDGmSQPILW mC+9YpFi7IGvrq8zoMbSxAf89qoIHAmVmHuJBuegffBbiybDI/1PA/mRgiVtpJ4SgsHH qJtLp2z1uuZ/5rVxJOFbCiQ+egoHrpYC9O5h4WVdlK4Z3j7hDyHEf5D/dFoVRdyIyPXw o1+P0OFSEu+hnyhZfFkRE3RTpKttOnR05cHqA9lWXNZ/zw8M56lYj9iPifjdXivYw/+4 vb9SqpmGajzl3bVSRX1v1o6i6UjgBzPw5ZkOlsh+e83hRyTqSawEU9/U1VVaH/Tv4TGp 2L2w== 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=VzO7Iwj9jaFnR9jpFAlcL6VK7ZIXRZzCKjaEAzg80q4=; b=EGMWSjEPqOr5a5A5XdbPa3mJVPWfOIPGByyK4NbjzQczOpkCdrDz5rwk/BJ0Ojx42T tkOzXOHOV0kZGtmH22nIQXdN8FcfFqQMuIXwDla5OoWUV3vcC5TlqMVaz83DvIqUDRPn /+2Es3YOQdIfQ9Qbw/FkaTgeCzjoqtZrakdW/ti0LfhDXw1wHkT6Sh3RrO9tdMCSz9TW o+v0uHwlHyLfxNOCA0tkVWAq31RILy0GgOgnRE64OVPNomE0JXbKOdeVY0zroojFiBhv VFqGrjVNDm3Zy9C0o4Iw4HlwW2WPiFTq0Cv54mt/qgs4oLPkVyDgAATGRE1xN7qbBc5W O8JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=r6B1QTM2; 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 ks7-20020a170903084700b0019edb3d138esi259167plb.327.2023.03.13.10.55.36; Mon, 13 Mar 2023 10:55:51 -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=r6B1QTM2; 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 S231497AbjCMRRS (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39756 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231527AbjCMRRJ (ORCPT ); Mon, 13 Mar 2023 13:17:09 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ACAF88092F; Mon, 13 Mar 2023 10:16: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 ams.source.kernel.org (Postfix) with ESMTPS id B6EACB811AF; Mon, 13 Mar 2023 17:15:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81027C433EF; Mon, 13 Mar 2023 17:15:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727747; bh=iP3PWNMb+3tRizoMnR4yxUHqhZ9zp9+fFtQ/nNwpumk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r6B1QTM2G4QG7c6I9hwylzYb/x7Ch6gfDExVqIDhHFj0NuC8gZN0M2zyvSymKgzgJ /CLWU5n8lN5UGw5EO2P2WLvbSU+zpSmRi+Tq6+o3JIc7L10oZEy8UdMpeJVMxoO9Eg YIm2uQR1zaAZOAacvX5cIC1Z6fZfbByoC4bgpRBZkIJc/U30MzQ89EsCQkDMStoLgo sPbIegUeD9CCsAyvqwQVYE7zDF2x0tktW2tb9m1WNMmTywTUvcNchn+fM5nKpms/Ie 96KwQIjDECl+IW60bH8GQKSElYwSs77N09WjjKnZgfGeP6Z7osUFt8Z04WNt0zdS+c dgF+0478/dDuw== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/11] dmaengine: dw-axi-dmac: move dma_chan_tx_status() Date: Tue, 14 Mar 2023 01:04:49 +0800 Message-Id: <20230313170450.897-11-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760276147043746529?= X-GMAIL-MSGID: =?utf-8?q?1760276147043746529?= 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 1c1b9574985a..1d00793a83bf 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -300,48 +300,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); @@ -1166,6 +1124,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 Mon Mar 13 17:04:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 68988 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1312208wrd; Mon, 13 Mar 2023 10:29:01 -0700 (PDT) X-Google-Smtp-Source: AK7set866jip0sb6r4SSQtVtxRNd3D+pGTnr36QaH8niwMem3gPLjqmUfJ0+qrt74QumAGH3KXgI X-Received: by 2002:a05:6a20:c126:b0:cd:74aa:df55 with SMTP id bh38-20020a056a20c12600b000cd74aadf55mr29208406pzb.25.1678728541504; Mon, 13 Mar 2023 10:29:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1678728541; cv=none; d=google.com; s=arc-20160816; b=awjBk6lWqpWWJf/dj2n1KR6b5p33QusHjjR1HI69eiPj/Q4sz69Yl7PGmC7yzNnsei AWFPZ2VIMVjWZL9jHjUWfImQtdxzFgtMkpenUbvEbP478j90g3plZGYIPuutQU9EyYS5 +UtNXElLnHv/bQ7J5UVkv6e4ra/3cv4dD5NMNEAo4X7606JwglPVqqANsKqlYhW8JMNk mSsMXUkFxwbnl0S+e5a1Dr90tIIPYcPEBe24BiMgdhu9825iwl4ZFQKoi1UBk0zFc5sY E9Myb6iPymUVvZ7h4sOQF4/hXIejgdgCE6mjXx+jUqHrJK5+JH6kyF1hGSgQVmuvQeuf FkvA== 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=jDKB5Q7vJgDXwL8IcHnmzpLKNUON50C1FbjIwsweUyo=; b=bAKoDrzaCH8Nn+Yhzx4gzXTMbhD1sWnHxAJ+uTEgXLIsFDYk81U05dDsvRRBc3HPXG oCTHl+0aM5cCCdYOS06ajzGJKSprnVJMprOk5F0lrXNnQR/Sts5wgtpObQnS+HddMdtr QwC8ACxxF3eMcqYaRW53KZayB3hDiAmvBgRBFsRI7EB0ZL3kt+GHfWvif4Rd7WTwsBEg myhrulAFD9l4YZeG9Bj+PFjwqQ06nub+hSZ3W9vQLxsbc+S1xKGnNb4DQ1k5wHtXVkUJ BE2gbl6MpcfUWvzFRu9ewohNIEdKAe43V71Bv3jza6IJTjnamY7y8JYRVwdi1rOQAV97 mcuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="Q/qc6WSx"; 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 v190-20020a6389c7000000b00508d21e0f66si46pgd.282.2023.03.13.10.28.49; Mon, 13 Mar 2023 10:29:01 -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="Q/qc6WSx"; 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 S230013AbjCMRR0 (ORCPT + 99 others); Mon, 13 Mar 2023 13:17:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38260 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231551AbjCMRRM (ORCPT ); Mon, 13 Mar 2023 13:17:12 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5E2C80902; Mon, 13 Mar 2023 10:16:42 -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 ams.source.kernel.org (Postfix) with ESMTPS id 417C3B811B2; Mon, 13 Mar 2023 17:15:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02C2CC4339E; Mon, 13 Mar 2023 17:15:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1678727749; bh=do8+kPrEABA/+sArd48GuvtE5icgNiKsJ/7FNgFAelM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q/qc6WSx2eaxfWUOaCR+Jt4U8paKMjj7KnDAWCX+J3H2/KXdEoE/A1nkimEhlbjId Y209A1IzajyXtQfyP7cyCqN9F2qVAT6MTQVxk0cpCzRZYiLgRB0Ee1JeM29PeOievu vJHJWiMJTTSYjMJN799lYCJ47zl+b3YXI+ZhbcAntWpxIDHvUgOQn/bVWv0cGauw55 7T8uruloIifyaQnZb+FNgLYkHX+pkDSOqrXpuWmj6P7yHRglLFseQOd1MMQfcDCgpY LOyCZ5qowffCRz1O5QVnL7JcyO0U2rXTxEH9LLMEs3ivku9ahB4G+knIWDtqNed30M KAgELShJAfwYA== From: Jisheng Zhang To: Eugeniy Paltsev , Vinod Koul Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 11/11] dmaengine: dw-axi-dmac: support polled mode Date: Tue, 14 Mar 2023 01:04:50 +0800 Message-Id: <20230313170450.897-12-jszhang@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230313170450.897-1-jszhang@kernel.org> References: <20230313170450.897-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 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?1760274459118218720?= X-GMAIL-MSGID: =?utf-8?q?1760274459118218720?= 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 1d00793a83bf..8daeb22d4560 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -383,7 +383,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; @@ -714,6 +717,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; @@ -796,6 +800,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) { @@ -859,6 +864,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; @@ -1139,6 +1145,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 f57961620d2d..e4fbc38446ec 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -54,6 +54,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 {