Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp1382737pxx; Tue, 27 Oct 2020 15:49:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyBFO/nZOu714aa3eRTjHw8PB3+vedIZ9+JcZi7qHpYKfiVDyz96sBTO0y9Qxm6KrmSXiM0 X-Received: by 2002:a17:906:5ad1:: with SMTP id x17mr1322951ejs.155.1603838968905; Tue, 27 Oct 2020 15:49:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603838968; cv=none; d=google.com; s=arc-20160816; b=X/QcMc5S95EZLldZctiKfTFapq0U/0gokHfaioFjie+DfF5EFVyya8dan4tfrxKPun gguLk3eeRTw2ypsvUHYalAwsIu94MS/CZSo4mtpTkKlZw8wo/N1pY5/MDA3DFmA1WnjZ MJs1ehbUA+bMB6SMwMh9IAOo1DVF3sq8fQQ2zQStl+sc/UTqq1rAZYjsSbwdX21KrPP1 UTfqZdB2ZJz8UiTS2t8q7CiKacQHeSmviJFxUZOd33gd5PameWcfpFThhFgaXUNqver2 vzch2yIJcvaSxbvyD9/LRVWrG52bGwsnr60JD9ZgwznJXjyhh3wwHGZnqGcxzi+lgIWh AA/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from:ironport-sdr :ironport-sdr; bh=X6UJwP3CiFs9WDi4kMdTpYCFbXkdsFIeWKpBSyu2v+w=; b=ygqirPUE3HYBQjugXL3Sm+AYxP9WsX3wy0MpPgVuFDxsXjVJgv3vUhNNsLoTSPNgrY 6wwxCZechhv8K4ktns9+F18ziMq5VeiI+Jj47DDHh4+WZn9ZSJa8Ym1C5BjMsQv7fW/M Q1mHdsax8plJXsRecxgVqDtBBg8YLoK/udVN/z13zwtjiEvF5C+GlWVQAvIDEYTCxPr0 onqgWxvXCXpvPmtWZ+6ckSfdujQuFqDeZacNV5EQJL9H7OkvUtGQCaYbqGGCtb7JbQUm qJ+Um+VACAr+MEQJG8dSnF31W7cBiOCr1ZjUz0sUsY7RYoHvGqJbZQTIMBValeAN/8Vr o+tA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b8si1931538edn.129.2020.10.27.15.49.06; Tue, 27 Oct 2020 15:49:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442516AbgJ0GzR (ORCPT + 99 others); Tue, 27 Oct 2020 02:55:17 -0400 Received: from mga02.intel.com ([134.134.136.20]:42071 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730066AbgJ0GzR (ORCPT ); Tue, 27 Oct 2020 02:55:17 -0400 IronPort-SDR: CnqeuU1IAO68juSbJ6c8yWrE2j6GbEa+Z4UO4h3f6O3GGPIlcMg5TVmEwAym8Fzd7u2ByYqbG5 /1/Ller578aQ== X-IronPort-AV: E=McAfee;i="6000,8403,9786"; a="155004131" X-IronPort-AV: E=Sophos;i="5.77,422,1596524400"; d="scan'208";a="155004131" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2020 23:55:16 -0700 IronPort-SDR: r5b9KK5mMqBwRyNx1spZ3aDIP+kDSopJF4M2eRAcEYuRAcwbWcXXxNpnfuTSFsEc1EAKgJTRS2 ozGvLTfjGrvA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,422,1596524400"; d="scan'208";a="350175819" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by orsmga008.jf.intel.com with ESMTP; 26 Oct 2020 23:55:14 -0700 From: Sia Jee Heng To: vkoul@kernel.org, Eugeniy.Paltsev@synopsys.com Cc: andriy.shevchenko@linux.intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 00/15] dmaengine: dw-axi-dmac: support Intel KeemBay AxiDMA Date: Tue, 27 Oct 2020 14:38:43 +0800 Message-Id: <20201027063858.4877-1-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The below patch series are to support AxiDMA running on Intel KeemBay SoC. The base driver is dw-axi-dmac. This driver only support DMA memory copy transfers. Code refactoring is needed so that additional features can be supported. The features added in this patch series are: - Replacing Linked List with virtual descriptor management. - Remove unrelated hw desc stuff from dma memory pool. - Manage dma memory pool alloc/destroy based on channel activity. - Support dmaengine device_sync() callback. - Support dmaengine device_config(). - Support dmaengine device_prep_slave_sg(). - Support dmaengine device_prep_dma_cyclic(). - Support of_dma_controller_register(). - Support burst residue granularity. - Support Intel KeemBay AxiDMA registers. - Support Intel KeemBay AxiDMA device handshake. - Support Intel KeemBay AxiDMA BYTE and HALFWORD device operation. - Add constraint to Max segment size. This patch series are tested on Intel KeemBay platform. v2: - Rebased to v5.10-rc1 kernel. - Added support for dmaengine device_config(). - Added support for dmaengine device_prep_slave_sg(). - Added support for dmaengine device_prep_dma_cyclic(). - Added support for of_dma_controller_register(). - Added support for burst residue granularity. - Added support for Intel KeemBay AxiDMA registers. - Added support for Intel KeemBay AxiDMA device handshake. - Added support for Intel KeemBay AxiDMA BYTE and HALFWORD device operation. - Added constraint to Max segment size. v1: - Initial version. Patch on top of dw-axi-dma driver. This version improve the descriptor management by replacing Linked List Item (LLI) with virtual descriptor management, only allocate hardware LLI memories from DMA memory pool, manage DMA memory pool alloc/destroy based on channel activity and to support device_sync callback. Sia Jee Heng (15): dt-bindings: dma: Add YAML schemas for dw-axi-dmac dmaengine: dw-axi-dmac: simplify descriptor management dmaengine: dw-axi-dmac: move dma_pool_create() to alloc_chan_resources() dmaengine: dw-axi-dmac: Add device_synchronize() callback dmaengine: dw-axi-dmac: Add device_config operation dmaengine: dw-axi-dmac: Support device_prep_slave_sg dmaegine: dw-axi-dmac: Support device_prep_dma_cyclic() dmaengine: dw-axi-dmac: Support of_dma_controller_register() dmaengine: dw-axi-dmac: Support burst residue granularity dmaengine: dw-axi-dmac: Add Intel KeemBay AxiDMA support dt-binding: dma: dw-axi-dmac: Add support for Intel KeemBay AxiDMA dmaengine: dw-axi-dmac: Add Intel KeemBay DMA register fields dmaengine: dw-axi-dmac: Add Intel KeemBay AxiDMA handshake dmaengine: dw-axi-dmac: Add Intel KeemBay AxiDMA BYTE and HALFWORD registers dmaengine: dw-axi-dmac: Set constraint to the Max segment size .../bindings/dma/snps,dw-axi-dmac.txt | 39 - .../bindings/dma/snps,dw-axi-dmac.yaml | 149 ++++ .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 696 +++++++++++++++--- drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 33 +- 4 files changed, 783 insertions(+), 134 deletions(-) delete mode 100644 Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt create mode 100644 Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml base-commit: 4525c8781ec0701ce824e8bd379ae1b129e26568 -- 2.18.0