Message ID | 20231117-b4-feature_hdma_mainline-v6-0-ebf7aa0e40d7@bootlin.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9910:0:b0:403:3b70:6f57 with SMTP id i16csp419606vqn; Fri, 17 Nov 2023 02:04:37 -0800 (PST) X-Google-Smtp-Source: AGHT+IEv39qSCCYHFK9ixEktQZjuW3A6Vh6bR5TTsh5hiSGKz6HAFpuJ7S6CtYiWZD09onaWHoU+ X-Received: by 2002:a05:6a20:e118:b0:187:3765:1798 with SMTP id kr24-20020a056a20e11800b0018737651798mr6770430pzb.22.1700215476867; Fri, 17 Nov 2023 02:04:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700215476; cv=none; d=google.com; s=arc-20160816; b=aGIatcvdHR5v7AX7iaG81n+42tqX222kdT2S4QS1g8cNJskM6sssOdVpHkeYIGcT98 TWWfcbE1clKQHY8uIrJRtwPpDdGzqrLXRSEwVj+eJBvj3P1AE++Qb5uFnGvsGQ8EaKce SVkVlWFj5Rv0+GKKbb1SjYhdCF88kLfnCtXAfCsVAZknupp1ZZOtH0wC/SkZyGW3Dzlo mntZEo3yzd5hVZXiPBAqTjXe1l3u044j3Ne7zgQzXBaYzzoFSsT1fepu5WhsiL/CdKAr p6k3yMXv1drPpXZUBLJ3ONCFDbrVWlLOh8lYj+u3Gsjm2ZLEadWA2nugKDUz//T6PMQW JHYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from:dkim-signature; bh=G0PLzIlsZP1HElpZeKAWH8qOGtUSKwQ/xdBhUhmw8QA=; fh=Fko32OqwGgI5WpcqYpp5KigXgtelsKMiigtnZERCGL8=; b=i/M2+TNYdCBi7lAFaLlUpw2uUZ1icf3w5FS+aA+w4gJ2CLDhUWO78Dxg6u3L+wbIFH xjatjmbBW7X15EHc1GZ1qmNfDMM7UJDTBBHSKYwaiOD73u8MmbQ8oHNcHza+2MguW88o R0W7CgK62UCM0tl79wCxdrMZC+lqUd0Vn0TnFsHQL+unh5FEfr1Z2SL2ACTqKnqoMFqV 5qSGihWezlyvhHpXVboD+r/gWN49wHxKNOeeHgx1CrpttmSIJ399dUAKOjIZ/D+w52Vf OZc6uuRTJ8aQWVsX+KczObQP2gKtcwu0pQJro/RcHnHM7ram4v7swss6EeLZ/vQifpsx LIvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=SpxbkSq9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id u9-20020a632349000000b005c1589db3e6si1544782pgm.647.2023.11.17.02.04.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 02:04:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=SpxbkSq9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 387C7820D5D5; Fri, 17 Nov 2023 02:04:27 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345744AbjKQKEM (ORCPT <rfc822;jaysivo@gmail.com> + 30 others); Fri, 17 Nov 2023 05:04:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229952AbjKQKEL (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 17 Nov 2023 05:04:11 -0500 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DA9384; Fri, 17 Nov 2023 02:04:07 -0800 (PST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 0DCE7FF813; Fri, 17 Nov 2023 10:04:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1700215446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G0PLzIlsZP1HElpZeKAWH8qOGtUSKwQ/xdBhUhmw8QA=; b=SpxbkSq9soW9ge6pfKqJIvgCoMhsIfVuBLPQEHLeG4Elnw2Q3TTm6LcFRFyaR4G6zZZXmF ZY0fV4nQSqqip2V+JWz9tHNgo8W2AQwUUU2xl/S0phM7no6sUCURksr7IDnhvsfti21NA6 q8ZdvJMRTtFPVj8BuHksG2WRNyPYhDO4/BrBVrqHg3FpTLbplYYYyoMErQTma57Atr4rop bPir+rS1nki/AeqH7Y8YhXLFR7f3VjpdWcsOfJNwkUw1iL111CHElo1W8+PdGfPGvpE9+3 WQQtLHIv3vS8xuFrfdmKWgUm4zlz/hu7KQfhVcOPO6e8cZOqg60Gx/saCo102w== From: Kory Maincent <kory.maincent@bootlin.com> Subject: [PATCH v6 0/6] Fix support of dw-edma HDMA NATIVE IP in remote setup Date: Fri, 17 Nov 2023 11:03:48 +0100 Message-Id: <20231117-b4-feature_hdma_mainline-v6-0-ebf7aa0e40d7@bootlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAIQ6V2UC/43OywrCMBAF0F+RrI00zbOu/A+RksfUBmwiaS1K6 b+bdiMiSJd3hntmJtRD8tCj425CCUbf+xhyEPsdsq0OV8De5YzKoqSkIAQbhhvQwyNB3bpO153 24eYDYCMsl40CarhDuX5P0PjnSp8vObe+H2J6rZdGukw3oCPFBS4ZQGErWVnRnEyMQ14dbOzQw o5sK8UyxahjRJqKEqp+Kf6hCGF/KJ4paawSTtH8lPym5nl+A8HsiJZYAQAA To: Manivannan Sadhasivam <mani@kernel.org>, Gustavo Pimentel <gustavo.pimentel@synopsys.com>, Serge Semin <fancer.lancer@gmail.com>, Vinod Koul <vkoul@kernel.org>, Cai Huoqing <cai.huoqing@linux.dev> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Herve Codina <herve.codina@bootlin.com>, Kory Maincent <kory.maincent@bootlin.com>, Manivannan Sadhasivam <mani@kernel.org> X-Mailer: b4 0.12.4 X-GND-Sasl: kory.maincent@bootlin.com X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,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 lipwig.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 17 Nov 2023 02:04:27 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782805143932075345 X-GMAIL-MSGID: 1782805143932075345 |
Series |
Fix support of dw-edma HDMA NATIVE IP in remote setup
|
|
Message
Köry Maincent
Nov. 17, 2023, 10:03 a.m. UTC
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.
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@bootlin.com>
---
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,
Comments
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? - 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@bootlin.com> > --- > 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 >
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 -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@bootlin.com> > > --- > > 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 > > > > -- > மணிவண்ணன் சதாசிவம்
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? 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. - 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@bootlin.com> > > > --- > > > 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 > > > > > > > -- > > மணிவண்ணன் சதாசிவம்
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@bootlin.com> > > > > --- > > > > 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 > > > > > > > > > > -- > > > மணிவண்ணன் சதாசிவம் > > -- > மணிவண்ணன் சதாசிவம்
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@bootlin.com> > > > > > --- > > > > > 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 > > > > > > > > > > > > > -- > > > > மணிவண்ணன் சதாசிவம் > > > > -- > > மணிவண்ணன் சதாசிவம்
On Wed, 22 Nov 2023 22:42:42 +0530 Manivannan Sadhasivam <mani@kernel.org> wrote: > > 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. Hello Manivannan, What is the status of this series? Do you want to wait for designware-ep.c to be HDMA compatible before merging the fixes? Do you expect us to do something? We can't work on the designware-ep.c driver as we do not have such hardware. Shouldn't fixes be merged as soon as possible? Regards,
On Fri, Jan 12, 2024 at 11:16:37AM +0100, Köry Maincent wrote: > On Wed, 22 Nov 2023 22:42:42 +0530 > Manivannan Sadhasivam <mani@kernel.org> wrote: > > > > 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. > > Hello Manivannan, > > What is the status of this series? > Do you want to wait for designware-ep.c to be HDMA compatible before merging > the fixes? Do you expect us to do something? We can't work on the > designware-ep.c driver as we do not have such hardware. > Shouldn't fixes be merged as soon as possible? > I've reviewed all the patches, but I do not merge them. It is upto the dmaengine maintainer (Vinod) to merge the patches. Anyway, we are in v6.8 merge window, so you can rebase on top of v6.8-rc1 once released and post the patches. - Mani > Regards, > -- > Köry Maincent, Bootlin > Embedded Linux and kernel engineering > https://bootlin.com
On Sat, 20 Jan 2024 20:43:40 +0530 Manivannan Sadhasivam <mani@kernel.org> wrote: > On Fri, Jan 12, 2024 at 11:16:37AM +0100, Köry Maincent wrote: > > On Wed, 22 Nov 2023 22:42:42 +0530 > > Manivannan Sadhasivam <mani@kernel.org> wrote: > > > > > > 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. > > > > Hello Manivannan, > > > > What is the status of this series? > > Do you want to wait for designware-ep.c to be HDMA compatible before merging > > the fixes? Do you expect us to do something? We can't work on the > > designware-ep.c driver as we do not have such hardware. > > Shouldn't fixes be merged as soon as possible? > > > > I've reviewed all the patches, but I do not merge them. It is upto the > dmaengine maintainer (Vinod) to merge the patches. Anyway, we are in v6.8 > merge window, so you can rebase on top of v6.8-rc1 once released and post the > patches. Ok, thanks! I will do this then! Regards,