Received: by 2002:a05:7412:e79e:b0:f3:1519:9f41 with SMTP id o30csp54736rdd; Wed, 22 Nov 2023 09:13:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IGGjvRVrpwdAAVYZp9CIaINCojfhjzL04vzWEg1sq9ZMceISgThi/ds4eSEBe1kdZeXO1PW X-Received: by 2002:a05:6a21:9986:b0:187:b2a7:c6cd with SMTP id ve6-20020a056a21998600b00187b2a7c6cdmr3339465pzb.57.1700673198849; Wed, 22 Nov 2023 09:13:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700673198; cv=none; d=google.com; s=arc-20160816; b=IYMltRn8408fCSa50dcCJkRLCYrsidD9aePwBa1zJE6ydUZCGaFz7197henWDCotkK dKWlUXR8e+zpMqnDMqqfqrIYEdk9pwtZc14pandIuhKnZh2XNBH3tjtiNM+TrThpuR0X d6niy8SCBUwQajEwwlrxujCHL0fM/HIc7Vt64fGNeCpbMOgQ4Da9FR9CvNaIRG3qWrW5 aHekIHio7ImUlh3aS4QBzQ3yELPsZRivfTUQr9bf7sguwDr0Hf3KUnjYhHv11vT3M8E0 PdkveD3IFVmEkTLLgH8OVOWsBoR/IGL4S7K170k19+TNRKTavW9qo1pqW3m32d3kBUJQ plXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=VDOilQgi1cUH4ia4bTeLUDAkfACuVO4SVtGsN+9J3AM=; fh=dlPuRL/y93GODHMf3wn9xNKc3EumOl7F4h54zywICf4=; b=BbdrOCdPdVPVdDb8unfpUr34rE73MiI01gLD8RrVEBk65LmPVSW7c2xj2Bv5RdmWsG Uchc0tUmqrd7u2UFENSiim30BlKsLfnjfZcxmnHu48ZdF/ipfqNAUradTnglAhz4iLZP sGj2EUmtq/LSqmS7VekFi5kIQ7yXkjH5gmgVqr4VY1df43JLlqaw6qThpVQ0NAWsnWuX UfXMbGHUtdhOEYnecHoYEw0zjU0uAQJ/xbcwGIiq81dQK74RoEBX1dxxzhu2Wmn/d/GY KTtLh6rpA22erCfNmHGZ/6firyYyz5E2g6YXIypiplzjRj9YJ8pZI+S9t/wk7Tn7xq+Z tX+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="r/4JHaKW"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id y18-20020a056a00191200b0068beee4922csi13316908pfi.23.2023.11.22.09.13.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 09:13:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="r/4JHaKW"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 4C51A823CEA4; Wed, 22 Nov 2023 09:13:10 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343961AbjKVRNF (ORCPT + 99 others); Wed, 22 Nov 2023 12:13:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234988AbjKVRND (ORCPT ); Wed, 22 Nov 2023 12:13:03 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A4D6E7 for ; Wed, 22 Nov 2023 09:12:57 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 558D5C433C8; Wed, 22 Nov 2023 17:12:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700673177; bh=HUTD8xpMc9WU9D9MA+DlhRXxHESV5HWBP+wnlIUOgnM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=r/4JHaKWX3NX08PYu39vHlovyPaDQ4fHpqxslpOa4cryj6YVwAKcwiiuHxArmrcdV GJ9Wr7rszHIBdkeT9R4ACDJwyNBXR5Lf2K5rpPHPep9B42hF/UB4MST18MjCBL6FUo mCNNMw9eEs+zExC4meYNQNNTTCrOmAHbsAX1ERYlPOJz/j/YV4oCVM2DfROZdDyfLm Tyvu+f7a/k7ab+ZdtS3CEo6U5bMCbP6nh98FrO0D2mltWAcoyhKfN3W9+e+o9WHE+4 lXhzYS9TME8YFp44qIilQwA/qqHt5GyHKTbeIMRcbrj+RbnrhefzlOFPG0h9XVw6j0 nCoeupnkIsyTw== Date: Wed, 22 Nov 2023 22:42:42 +0530 From: Manivannan Sadhasivam To: Serge Semin Cc: Manivannan Sadhasivam , Kory Maincent , Gustavo Pimentel , Vinod Koul , Cai Huoqing , Thomas Petazzoni , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Herve Codina Subject: Re: [PATCH v6 0/6] Fix support of dw-edma HDMA NATIVE IP in remote setup Message-ID: <20231122171242.GA266396@thinkpad> References: <20231117-b4-feature_hdma_mainline-v6-0-ebf7aa0e40d7@bootlin.com> <20231121062629.GA3315@thinkpad> <20231121120828.GC3315@thinkpad> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-4.5 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 22 Nov 2023 09:13:10 -0800 (PST) On Tue, Nov 21, 2023 at 06:36:19PM +0300, Serge Semin wrote: > On Tue, Nov 21, 2023 at 05:38:28PM +0530, Manivannan Sadhasivam wrote: > > On Tue, Nov 21, 2023 at 01:55:22PM +0300, Serge Semin wrote: > > > Hi Mani > > > > > > On Tue, Nov 21, 2023 at 11:56:29AM +0530, Manivannan Sadhasivam wrote: > > > > On Fri, Nov 17, 2023 at 11:03:48AM +0100, Kory Maincent wrote: > > > > > This patch series fix the support of dw-edma HDMA NATIVE IP. > > > > > I can only test it in remote HDMA IP setup with single dma transfer, but > > > > > with these fixes it works properly. > > > > > > > > > > Few fixes has also been added for eDMA version. Similarly to HDMA I have > > > > > tested only eDMA in remote setup. > > > > > > > > > > > > > Just out of curiosity, can you share how you are setting EDMA_MF_HDMA_NATIVE? > > > > > > This topic has already been concerned on v1 (in another context > > > though): > > > https://lore.kernel.org/dmaengine/20230621151948.36125997@kmaincent-XPS-13-7390/ > > > > > > Here is the repo with the out-of-tree driver Kory said he was using > > > together with the kernel's version of the DW eDMA/hDMA driver: > > > https://github.com/Brainchip-Inc/akida_dw_edma > > > > > > > > Thanks Sergey, I missed it! But looks like we are not focusing on the HDMA > > integration in designware-ep.c. Have you/anyone thought about it? Was it > > discussed previously that I missed? > > No. We haven't discussed that in the framework of this patchset. > > > > > HDMA is used in one of the recent Qcom SoCs (SA8775) that Qcom folks are > > bringing up and I'd like to have a common solution like we have for eDMA. > > AFAICS it won't be that easy to do for HDMA. Unlike eDMA, HDMA doesn't > have a handy global config registers to determine the number of R/W > channels. Kory also said that auto-detecting them by dummy-writing to > all the CH_EN registers didn't work either because all, even > unavailable, channels CSRs were writable. This part was discussed > earlier: > https://lore.kernel.org/lkml/20230607144014.6356a197@kmaincent-XPS-13-7390/ > So if you don't come up with some more clever solution, then alas the > number of R/W channels will need to be specified by the platform > code/driver. > > Regarding how to auto-detect HDMA. I can't be absolutely sure whether > it will work but if we assume that: > 1. HDMA reg-space is always unrolled (mapped over a separate reg-space), > 2. Lowest 16 bits of base+0x8 are RO in EDMA (DMA_CTRL_OFF) and RW in HDMA > (prefetch CSR), > then we can implement a procedure like this: > > 1. If iATU/xDMA reg-space is specified and it's writable at the > xDMA-base+0x8 then it's HDMA controller and amount of channels is > supposed to be pre-initialized by the low-level platform driver, > otherwise it's eDMA and the read value can be used to determine the > number of channels. > 2. If iATU/xDMA reg-space isn't specified then the viewport-based eDMA > auto-detection procedure will be executed. > > For all of that you'll need to fix the > dw_pcie_edma_find_chip()/dw_pcie_edma_detect() method somehow. > > Alternatively, to keep things simple you can convert the > dw_pcie_edma_find_chip()/dw_pcie_edma_detect() methods to just relying > on the HDMA settings being fully specified by the low-level drivers. > This looks like the best possible solution at the moment. Thanks for the insight! I will post the patches together with the HDMA enablement ones. - Mani > -Serge(y) > > > > > - Mani > > > > > -Serge(y) > > > > > > > > > > > - Mani > > > > > > > > > Changes in v2: > > > > > - Update comments and fix typos. > > > > > - Removed patches that tackle hypothetical bug and then were not pertinent. > > > > > - Add the similar HDMA race condition in remote setup fix to eDMA IP driver. > > > > > > > > > > Changes in v3: > > > > > - Fix comment style. > > > > > - Split a patch in two to differ bug fix and simple harmless typo. > > > > > > > > > > Changes in v4: > > > > > - Update patch git commit message. > > > > > - Link to v3: https://lore.kernel.org/r/20231011-b4-feature_hdma_mainline-v3-0-24ee0c979c6f@bootlin.com > > > > > > > > > > Changes in v5: > > > > > - No change > > > > > - Rebase to mainline 6.7-rc1 > > > > > - Link to v4: https://lore.kernel.org/r/20231011-b4-feature_hdma_mainline-v4-0-43d417b93138@bootlin.com > > > > > > > > > > Changes in v6: > > > > > - Fix several commit messages and comments. > > > > > - Link to v5: https://lore.kernel.org/r/20231114-b4-feature_hdma_mainline-v5-0-7bc86d83c6f7@bootlin.com > > > > > > > > > > Signed-off-by: Kory Maincent > > > > > --- > > > > > Kory Maincent (6): > > > > > dmaengine: dw-edma: Fix the ch_count hdma callback > > > > > dmaengine: dw-edma: Fix wrong interrupt bit set for HDMA > > > > > dmaengine: dw-edma: HDMA_V0_REMOTEL_STOP_INT_EN typo fix > > > > > dmaengine: dw-edma: Add HDMA remote interrupt configuration > > > > > dmaengine: dw-edma: HDMA: Add sync read before starting the DMA transfer in remote setup > > > > > dmaengine: dw-edma: eDMA: Add sync read before starting the DMA transfer in remote setup > > > > > > > > > > drivers/dma/dw-edma/dw-edma-v0-core.c | 17 +++++++++++++++ > > > > > drivers/dma/dw-edma/dw-hdma-v0-core.c | 39 +++++++++++++++++++++++------------ > > > > > drivers/dma/dw-edma/dw-hdma-v0-regs.h | 2 +- > > > > > 3 files changed, 44 insertions(+), 14 deletions(-) > > > > > --- > > > > > base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86 > > > > > change-id: 20231011-b4-feature_hdma_mainline-b6c57f8e3b5d > > > > > > > > > > Best regards, > > > > > -- > > > > > Köry Maincent, Bootlin > > > > > Embedded Linux and kernel engineering > > > > > https://bootlin.com > > > > > > > > > > > > > -- > > > > மணிவண்ணன் சதாசிவம் > > > > -- > > மணிவண்ணன் சதாசிவம் -- மணிவண்ணன் சதாசிவம்