Received: by 10.213.65.68 with SMTP id h4csp2431611imn; Mon, 2 Apr 2018 07:29:10 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/LXnqlFQHQxxdSZ9ScIMMC8Kb/eVDB5vDBvwAU7/JCtH3jW1VrCGHs8/xp8NW2we2MvUjf X-Received: by 10.167.128.194 with SMTP id a2mr7652431pfn.186.1522679350514; Mon, 02 Apr 2018 07:29:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522679350; cv=none; d=google.com; s=arc-20160816; b=HDcjyMbdc31mvohT9iKxf88dX7kC482PmMEDr46iq4m+cm3DvEzHZBoBiGpuWhYgmn wbol8SVZya04DJunvlr/YbPjJl/18qtwvSIvatwN1fRRbB52gRngjZl9Hp+tBK/aRnKK QGQGdtVAz1hDBNUO12KbJ+oKZQ6xDIFHmEhjaoQIkRBtXZ1vRg8boWUIv8CO10GkRWWp QWig0dBr5GwoRkVeQ0pwFbaCpKNd/n2nwO9gFfOuO9BQnSFYmDfLGsvub/9e4wYUclUH 9gLzYM+ZzduHQaQUnbBEfXg+kIFs6prhrgc5U5WqpV5YZDQPURORMb+hDCiy15Zg6PJi NlIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=R+fIo5AiLSnOjA8pHLvSCJCdg1AM/tXohm5XhgjVeGk=; b=EJxKRIvBxTgIM+E/LHj+9MnDXJB24PS8j6O29cEL72i1KZ8bGGr1dqKg5o3U0TdS3P Ph8DKI2xSsTnAFyDpMMufFxE7v5gSUgji73JK9D/621+C7fxtcSw3oDbhQWwBvvpSi0p N7pZvMyEQ5Y3bUM4Z373huQNHQF1uqF2YYZrAziQo/QV+z/T4HX3TsdR5RBSmIGDXCvy TAZaePGNGzUjg5RKWaahW9Hz1T8ncVYSt8oVcZOYcT96v8okYT7YIHVMECp5OnqOgD34 oeA4GYwfcewfudqHzn05ZqPYptbNnBOp3kQB3Kk5foz1FS3mzbc1MoDEWkjSGmx2GFO/ qnVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m11-v6si417790pls.337.2018.04.02.07.28.56; Mon, 02 Apr 2018 07:29:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752366AbeDBO1c (ORCPT + 99 others); Mon, 2 Apr 2018 10:27:32 -0400 Received: from smtp06.smtpout.orange.fr ([80.12.242.128]:18840 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752269AbeDBO1Z (ORCPT ); Mon, 2 Apr 2018 10:27:25 -0400 Received: from belgarion.home ([86.201.130.131]) by mwinf5d63 with ME id VSSy1x00R2qEl8e03STNBf; Mon, 02 Apr 2018 16:27:24 +0200 X-ME-Helo: belgarion.home X-ME-Auth: amFyem1pay5yb2JlcnRAb3JhbmdlLmZy X-ME-Date: Mon, 02 Apr 2018 16:27:24 +0200 X-ME-IP: 86.201.130.131 From: Robert Jarzmik To: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Bartlomiej Zolnierkiewicz , Tejun Heo , Vinod Koul , Mauro Carvalho Chehab , Ulf Hansson , Ezequiel Garcia , Boris Brezillon , David Woodhouse , Brian Norris , Marek Vasut , Richard Weinberger , Cyrille Pitchen , Nicolas Pitre , Samuel Ortiz , Greg Kroah-Hartman , Jaroslav Kysela , Takashi Iwai , Liam Girdwood , Mark Brown , Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, dmaengine@vger.kernel.org, linux-media@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org, devel@driverdev.osuosl.org, alsa-devel@alsa-project.org Subject: [PATCH 01/15] dmaengine: pxa: use a dma slave map Date: Mon, 2 Apr 2018 16:26:42 +0200 Message-Id: <20180402142656.26815-2-robert.jarzmik@free.fr> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180402142656.26815-1-robert.jarzmik@free.fr> References: <20180402142656.26815-1-robert.jarzmik@free.fr> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In order to remove the specific knowledge of the dma mapping from PXA drivers, add a default slave map for pxa architectures. This won't impact MMP architecture, but is aimed only at all PXA boards. This is the first step, and once all drivers are converted, pxad_filter_fn() will be made static, and the DMA resources removed from device.c. Signed-off-by: Robert Jarzmik Reported-by: Arnd Bergmann --- drivers/dma/pxa_dma.c | 10 +++++++++- include/linux/platform_data/mmp_dma.h | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c index b53fb618bbf6..9505334f9c6e 100644 --- a/drivers/dma/pxa_dma.c +++ b/drivers/dma/pxa_dma.c @@ -179,6 +179,8 @@ static unsigned int pxad_drcmr(unsigned int line) return 0x1000 + line * 4; } +bool pxad_filter_fn(struct dma_chan *chan, void *param); + /* * Debug fs */ @@ -1396,9 +1398,10 @@ static int pxad_probe(struct platform_device *op) { struct pxad_device *pdev; const struct of_device_id *of_id; + const struct dma_slave_map *slave_map = NULL; struct mmp_dma_platdata *pdata = dev_get_platdata(&op->dev); struct resource *iores; - int ret, dma_channels = 0, nb_requestors = 0; + int ret, dma_channels = 0, nb_requestors = 0, slave_map_cnt = 0; const enum dma_slave_buswidth widths = DMA_SLAVE_BUSWIDTH_1_BYTE | DMA_SLAVE_BUSWIDTH_2_BYTES | DMA_SLAVE_BUSWIDTH_4_BYTES; @@ -1429,6 +1432,8 @@ static int pxad_probe(struct platform_device *op) } else if (pdata && pdata->dma_channels) { dma_channels = pdata->dma_channels; nb_requestors = pdata->nb_requestors; + slave_map = pdata->slave_map; + slave_map_cnt = pdata->slave_map_cnt; } else { dma_channels = 32; /* default 32 channel */ } @@ -1440,6 +1445,9 @@ static int pxad_probe(struct platform_device *op) pdev->slave.device_prep_dma_memcpy = pxad_prep_memcpy; pdev->slave.device_prep_slave_sg = pxad_prep_slave_sg; pdev->slave.device_prep_dma_cyclic = pxad_prep_dma_cyclic; + pdev->slave.filter.map = slave_map; + pdev->slave.filter.mapcnt = slave_map_cnt; + pdev->slave.filter.fn = pxad_filter_fn; pdev->slave.copy_align = PDMA_ALIGNMENT; pdev->slave.src_addr_widths = widths; diff --git a/include/linux/platform_data/mmp_dma.h b/include/linux/platform_data/mmp_dma.h index d1397c8ed94e..6397b9c8149a 100644 --- a/include/linux/platform_data/mmp_dma.h +++ b/include/linux/platform_data/mmp_dma.h @@ -12,9 +12,13 @@ #ifndef MMP_DMA_H #define MMP_DMA_H +struct dma_slave_map; + struct mmp_dma_platdata { int dma_channels; int nb_requestors; + int slave_map_cnt; + const struct dma_slave_map *slave_map; }; #endif /* MMP_DMA_H */ -- 2.11.0