From patchwork Tue Jul 19 15:47:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amelie Delaunay X-Patchwork-Id: 12922714 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4FE76C433EF for ; Tue, 19 Jul 2022 15:49:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:CC :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=SSAvFaXS6X/yAI41nlVzXdI77cqnLWvWkHpEja7QGs0=; b=otBpgQGOtjOLt4 H6v4BohbkHNfiOmvgew9beRKb+e+Oww4nqAsVQ03iKv2ZOIX0bMwD2vCDfRTSnrbKTaX1gz/bJots qLci8WMJnsSseVv9FxMM0/1k/ginwtVlSSmO9/Ce6cYjAcxBpJ+z6z6QjKBQ8exle6QWBtN4Fv30n QR+7tgC7bTrm+1j9aQn2Lu+y38fA69BOp0gt338xCGE60lmayi9pADQ84Gk2rCKI+I//FcFSYOTql cgzv91WC8c5GzPz5phr6aWMp3u7WXsXQfkd50bihfGreHN2Auuku891KsLnheK6SYTRKEQOsN4aqx 6IHOSXK+BP3ch9OVlgPA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDpSD-00AE0T-N6; Tue, 19 Jul 2022 15:48:09 +0000 Received: from mx07-00178001.pphosted.com ([185.132.182.106]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oDpSA-00ADxg-9P for linux-arm-kernel@lists.infradead.org; Tue, 19 Jul 2022 15:48:08 +0000 Received: from pps.filterd (m0241204.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 26JFMe81030928; Tue, 19 Jul 2022 17:47:57 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=selector1; bh=1ralePF7NZgiuaaEZtba9R7/B4WF8Zv4f9q+QOtg1so=; b=p7alzx8ATWRqHMwq63kuR9a7iTHwgoLPGSyYr/j6JOqf3T7JZp8iWZjk+9QllAyd9BBz FEzw4TEgLdlMiaQHCRhyF/E84Ah9dWUUrBLv7J4btdwhn18XecS3TsfRAtQE7dLEHZ/l 72RVw+SNfrJZT5w8nKZvVY4M5WEQoH/PN33cLE9f1nuExvZUFkFmlcUKsXc/VwYrgFdb eraf0txmD1oyGN04Cf07wh4ruPAli40xs8XJiTTVC1LWegYoBwPST4KWyV6h1/20G0cP 3f/eadgF7+VvnPLT+h0uQo01wJMI4s7dXoYG5oadsMY2ivcNSQfyiJtpry7Sj3cpfEmu Ig== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com (PPS) with ESMTPS id 3hbnhy0prh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jul 2022 17:47:57 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 03F95100034; Tue, 19 Jul 2022 17:47:57 +0200 (CEST) Received: from Webmail-eu.st.com (shfdag1node2.st.com [10.75.129.70]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id F2FC222D17C; Tue, 19 Jul 2022 17:47:56 +0200 (CEST) Received: from localhost (10.75.127.48) by SHFDAG1NODE2.st.com (10.75.129.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.20; Tue, 19 Jul 2022 17:47:56 +0200 From: Amelie Delaunay To: Jonathan Corbet , Vinod Koul , Maxime Coquelin , Alexandre Torgue CC: , , , , , Marek Vasut , Amelie Delaunay Subject: [PATCH v3 0/6] STM32 DMA-MDMA chaining feature Date: Tue, 19 Jul 2022 17:47:39 +0200 Message-ID: <20220719154745.623204-1-amelie.delaunay@foss.st.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Originating-IP: [10.75.127.48] X-ClientProxiedBy: SFHDAG2NODE3.st.com (10.75.127.6) To SHFDAG1NODE2.st.com (10.75.129.70) X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-07-19_04,2022-07-19_01,2022-06-22_01 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220719_084806_637674_F5292270 X-CRM114-Status: GOOD ( 16.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This patchset (re)introduces STM32 DMA-MDMA chaining feature. As the DMA is not able to generate convenient burst transfer on the DDR, it penalises the AXI bus when accessing the DDR. While it accesses optimally the SRAM. The DMA-MDMA chaining then consists in having an SRAM buffer between DMA and MDMA, so the DMA deals with peripheral and SRAM, and the MDMA with SRAM and DDR. The feature relies on the fact that DMA channel Transfer Complete signal can trigger a MDMA channel transfer and MDMA can clear the DMA request by writing to DMA Interrupt Clear register. A deeper introduction can be found in patch 1. Previous implementation [1] has been dropped as nacked. Unlike this previous implementation (where all the stuff was embedded in stm32-dma driver), the user (in peripheral drivers using dma) has now to configure the MDMA channel. [1] https://lore.kernel.org/lkml/1538139715-24406-1-git-send-email-pierre-yves.mordret@st.com/ Changes in v3: - introduce two prior patches to help readibility - fix stm32-dma struct stm32_dma_mdma_config documentation Changes in v2: - wrap to 80-column limit for documentation - add an entry for this documentation in index.rst - use simple table instead of csv-table in documentation Amelie Delaunay (6): dmaengine: stm32-dma: introduce 3 helpers to address channel flags dmaengine: stm32-dma: use bitfield helpers docs: arm: stm32: introduce STM32 DMA-MDMA chaining feature dmaengine: stm32-dmamux: set dmamux channel id in dma features bitfield dmaengine: stm32-dma: add support to trigger STM32 MDMA dmaengine: stm32-mdma: add support to be triggered by STM32 DMA Documentation/arm/index.rst | 1 + .../arm/stm32/stm32-dma-mdma-chaining.rst | 415 ++++++++++++++++++ drivers/dma/stm32-dma.c | 136 +++--- drivers/dma/stm32-dmamux.c | 2 +- drivers/dma/stm32-mdma.c | 70 ++- 5 files changed, 569 insertions(+), 55 deletions(-) create mode 100644 Documentation/arm/stm32/stm32-dma-mdma-chaining.rst