From: Anup Patel Subject: Re: [PATCH v3 3/4] dmaengine: Add Broadcom SBA RAID driver Date: Tue, 14 Feb 2017 09:30:04 +0530 Message-ID: References: <1486717628-17580-1-git-send-email-anup.patel@broadcom.com> <1486717628-17580-4-git-send-email-anup.patel@broadcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Vinod Koul , Rob Herring , Mark Rutland , Herbert Xu , "David S . Miller" , Jassi Brar , Ray Jui , Scott Branden , Jon Mason , Rob Rice , BCM Kernel Feedback , "dmaengine@vger.kernel.org" , Device Tree , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , linux-crypto@vger.kernel.org, linux-raid To: Dan Williams Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org On Mon, Feb 13, 2017 at 2:43 PM, Anup Patel wrote: > On Fri, Feb 10, 2017 at 11:20 PM, Dan Williams wrote: >> On Fri, Feb 10, 2017 at 1:07 AM, Anup Patel wrote: >>> The Broadcom stream buffer accelerator (SBA) provides offloading >>> capabilities for RAID operations. This SBA offload engine is >>> accessible via Broadcom SoC specific ring manager. >>> >>> This patch adds Broadcom SBA RAID driver which provides one >>> DMA device with RAID capabilities using one or more Broadcom >>> SoC specific ring manager channels. The SBA RAID driver in its >>> current shape implements memcpy, xor, and pq operations. >>> >>> Signed-off-by: Anup Patel >>> Reviewed-by: Ray Jui >>> --- >>> drivers/dma/Kconfig | 13 + >>> drivers/dma/Makefile | 1 + >>> drivers/dma/bcm-sba-raid.c | 1711 ++++++++++++++++++++++++++++++++++++++++++++ >>> 3 files changed, 1725 insertions(+) >>> create mode 100644 drivers/dma/bcm-sba-raid.c >>> >>> diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig >>> index 263495d..bf8fb84 100644 >>> --- a/drivers/dma/Kconfig >>> +++ b/drivers/dma/Kconfig >>> @@ -99,6 +99,19 @@ config AXI_DMAC >>> controller is often used in Analog Device's reference designs for FPGA >>> platforms. >>> >>> +config BCM_SBA_RAID >>> + tristate "Broadcom SBA RAID engine support" >>> + depends on (ARM64 && MAILBOX && RAID6_PQ) || COMPILE_TEST >>> + select DMA_ENGINE >>> + select DMA_ENGINE_RAID >>> + select ASYNC_TX_ENABLE_CHANNEL_SWITCH >> >> ASYNC_TX_ENABLE_CHANNEL_SWITCH violates the DMA mapping API and >> Russell has warned it's especially problematic on ARM [1]. If you >> need channel switching for this offload engine to be useful then you >> need to move DMA mapping and channel switching responsibilities to MD >> itself. >> >> [1]: http://lists.infradead.org/pipermail/linux-arm-kernel/2011-January/036753.html > > Actually driver works fine with/without > ASYNC_TX_ENABLE_CHANNEL_SWITCH enabled > so I am fine with removing dependency on this config option. I stand corrected. Previously, when I had tried removing ASYNC_TX_ENABLE_CHANNEL_SWITCH from BCM_SBA_RAID config option it worked because other drivers such xgene-dma and mv_xor_v2 are selecting this option. The BCM-SBA-RAID driver requires ASYNC_TX_ENABLE_CHANNEL_SWITCH option There is no issue reported for ASYNC_TX_ENABLE_CHANNEL_SWITCH with ARM64 kernel. The issue you pointed out was with ARM kernel. We will have to select ASYNC_TX_ENABLE_CHANNEL_SWITCH for BCM-SBA-RAID driver just like other ARM64 RAID drivers such as xgene-dma and mv_xor_v2. (Refer, XGENE_DMA and MV_XOR_V2 options) Regards, Anup