Received: by 2002:a05:7412:40d:b0:e2:908c:2ebd with SMTP id 13csp471741rdf; Tue, 21 Nov 2023 07:36:45 -0800 (PST) X-Google-Smtp-Source: AGHT+IGVoQF7v4HNFKRyTPIkAndaSsZnaRfGCxexRR8/8YKbtuK6R/xDws5HGi2iFgiiSX50z68A X-Received: by 2002:a17:903:18e:b0:1cf:68a3:d8ea with SMTP id z14-20020a170903018e00b001cf68a3d8eamr4730367plg.13.1700581004796; Tue, 21 Nov 2023 07:36:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700581004; cv=none; d=google.com; s=arc-20160816; b=tWrM553NCEUb2uhm/dX680E7BV0I82RfQoCnlebawtdZqK0f4p2bKLu6BsnOAw85N6 6YzlysqevpgjCvE/s4NWENRM6AsYCEBMZal7zPRIEoF4yTX5Xh/77lJX5k9GVxyY5/uj 2jnPlHUzgz0OzOjEhpzuetH8OQYdJ+ThUjtULF5hD/8pNXz6p1CYLG5M/itiGXSG+sAx dVKtXEZaWU2F8hitLDJVbb/e9A4CH040nhi3MOpsxx1nhoYOtTNKuoiWTXSeFOv53bHY v3lRMgf6Vthkjmv9cCRqq4zT8K+W3yFA6XkKX6RPylwd713o7FvxG1NqHY+mlw9RurCl MORg== 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=jMwkSetSrGsH8YXWn5E9oRyhdsEgnZ0K9d+hYpnmxv8=; fh=pmHXQ5ygZTeUoyRFO0JhE+NZxqXcT7/40U5HLVnlZxY=; b=ftSoSGR37sG5tiQQcxWNZHqTEQo8IK3MGREDMRaVTDUHi+fjB6Kxy5z3xNxAVeB6m7 kjx3mVexHzPUsZ9kN5lX8ckT8FPxCR4WUkh334E87HmPGFQGCvw5oLgP6x5QOcSFnzAS V0YadEUYAF0FdZzcroRPbMF5la/4x1fSkylVNNlAHpzTs/Z5vLbacMTI295rVw+H/4az yYfuFsucSBWWt1jGILRYsOcAFyCuSb/gJKsOZsoMSx6ACtuvh3Gaz7CBhfnBNGBJIbvA 10BkMTw3eRYBBVT6ezk3Afx+eJXacHo1JKgoRiESttvOZz5Ifmh2raeWulWaSPzFt/ex OTDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=dzMsCZWx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id z14-20020a170903018e00b001cf676859ffsi3298212plg.367.2023.11.21.07.36.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 07:36:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=dzMsCZWx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 92EB68031D6A; Tue, 21 Nov 2023 07:36:41 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234438AbjKUPg3 (ORCPT + 99 others); Tue, 21 Nov 2023 10:36:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234053AbjKUPg2 (ORCPT ); Tue, 21 Nov 2023 10:36:28 -0500 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C423910C; Tue, 21 Nov 2023 07:36:24 -0800 (PST) Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-50aab3bf71fso3664879e87.3; Tue, 21 Nov 2023 07:36:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700580983; x=1701185783; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=jMwkSetSrGsH8YXWn5E9oRyhdsEgnZ0K9d+hYpnmxv8=; b=dzMsCZWxgovsh6RSKgcAyFKU6bRd6AYqTQHrXyT21Nntrie3+snK93/TTAGYDkT1+2 sghYeKyH6R3mWwB3IxH4yIeGs9DX682733dmrov5YpqDJSuXDbYa4M0M4msGIWF95cbV 7in5IA3eCPL97ltAe8+zkliyZAnx/WpXXJpU/5XBJdLrj8+KC8vq4MLGV7lfbZ4j1IYI fEuZNbmIg2M/viB+/QqjelF8c5fM7wENIYBM0afvVaztDpvoj8t93+PBCwrYsLzUBw5M HPB1lMOm+qxPyHHHM7QB51I8cftoVaH3t+VfCzaf4EEQvX/Et+w1rsdtL3jxRw+yQ231 TEFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700580983; x=1701185783; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jMwkSetSrGsH8YXWn5E9oRyhdsEgnZ0K9d+hYpnmxv8=; b=IwNj0l9i7nF77bfiZ+hEz4AiTp0kbAYKbqoWRdezOexs0fTDWEIie/glCDFYABa03U 84upDIjrWOL4AZaGn9r+xf9oJy6OHKxO9upkBIawwWNfyI/aGYeaHIlAoPG9/nAHgqNH GVMs7Quz6B+clgKAG2NFAh9OC8JoprZjvUqKy1UAv3xBITQK7htVsvvHQNWSFJW9R841 MRvmhi0KyRBdzntz8HBfBovdlNmFShw3+YWzqNuIRIw3PkJGbHcojOzUQDirWh7EOfe7 npKaxYJE4DDfq2hLCgUtIrzjIPdXr8zuzjFPoyMgJkgXSqN5kvI8g4wdBvfQt8wIjTWs Gp1g== X-Gm-Message-State: AOJu0Yw3tR75+TsGrqJ+qiQ0cyINYml9av065w0ypO2q0Uob1QP0IyNM sO0t++RG5Ocxs84KBiViMYcVIroJ3AI= X-Received: by 2002:a05:6512:2033:b0:50a:a2ba:fa86 with SMTP id s19-20020a056512203300b0050aa2bafa86mr7009361lfs.15.1700580982627; Tue, 21 Nov 2023 07:36:22 -0800 (PST) Received: from mobilestation ([178.176.56.174]) by smtp.gmail.com with ESMTPSA id c11-20020a056512074b00b0050915816a16sm1552710lfs.145.2023.11.21.07.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 07:36:22 -0800 (PST) Date: Tue, 21 Nov 2023 18:36:19 +0300 From: Serge Semin To: Manivannan Sadhasivam Cc: 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: 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: <20231121120828.GC3315@thinkpad> X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email 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 (fry.vger.email [0.0.0.0]); Tue, 21 Nov 2023 07:36:41 -0800 (PST) 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. -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 > > > > > > > > > > -- > > > மணிவண்ணன் சதாசிவம் > > -- > மணிவண்ணன் சதாசிவம்