Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759035AbdCVIX3 (ORCPT ); Wed, 22 Mar 2017 04:23:29 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:52061 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759014AbdCVIWc (ORCPT ); Wed, 22 Mar 2017 04:22:32 -0400 X-AuditID: cbfec7ef-f79d26d00000420c-3a-58d234440cd7 Subject: Re: [PATCH v8 2/3] dmaengine: pl330: remove pdata based initialization To: linux-samsung-soc@vger.kernel.org, dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Vinod Koul , Ulf Hansson , "Rafael J. Wysocki" , Lars-Peter Clausen , Arnd Bergmann , Inki Dae From: Marek Szyprowski Message-id: Date: Wed, 22 Mar 2017 09:22:23 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-version: 1.0 In-reply-to: <1486650171-20598-3-git-send-email-m.szyprowski@samsung.com> Content-type: text/plain; charset=utf-8; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02SbUhTURzGO7v3btfR4jYtD6ZZo5LUNMHgYiVGRtcPQYKhRNBWXnxpU9lU WgUt33KrVCbWUilTM5jZbJr41tRZzjBavk1CsyI0Vy61EaXTkdvV8NvvOf/nnOc8h4MjfCPm g6ekZdLSNJFYwOaiLX2L5gPR4UMJB60tQeSKuo9DPtfoMLK+bAUj1Z9KUNJsbuSQtaUPMVL/ 1YKRw+2VbNJ+5xUgNWYDi3w7MISRpoZ40lrUhUbxKMeSGlA1nVYWpdcq2dSEpZNNNdVep2pn jRjVPHoTpYqatYCy63ee9jjLPZJIi1OyaWlopJCbbBwq4GTMhV025Ko4CvA7QAU8cEiEwxsD syjD2+H7SR1bBbg4n6gDsLSkDmOEHcDbedXY+o6Z8X7Wf9ePuc+AEd8AXP5gRFwuTyIWKvof cFwDL6IawD7zE7dAiC4WtK18dJ/FJsKgyqZiu5hHRMKFqRGWi1FiL+xr17lvtY04B3uH5zHG sxX+LZ10r3sQMdAx3ONOQ4gIOO3Mxxj2h01PbYgrDBILHNhpWFwNwFeFH9R3I0yHaPjGal9r 7Qm/m5o5DPtCZWEPi+FiAHPygxjWAPjOxmP4MOw1Da5lbYHqlnsIczwPFhbwGaSguiiVcR+D NT3atTcdB7BSt8QuAf7lG9qUb2hQvqFBFUC0wIvOkkmSaFlYiEwkkWWlJYVcTJfowerPGnCa 5lrBVG6cERA4EGzm7fIfTOBjomyZXGIEEEcEXry50KEEPi9RJL9CS9PPS7PEtMwIduCowJv3 smoknk8kiTLpSzSdQUvXpyzcw0cB5NbJqgnn6wpTcO1kg9Jnd6pFb9Aln+l6ofCL9fulGUvc sy9iXLCpom25vkMedPWUUNjWrZ6Puq8E1QEdm5wjP+tb/f5YvB+dDByLapwpy0gO9r7V9Wy6 rbhVuDT6JUZk2Z+Hjc0ebXReizvum4M6Qh/bDmWIJ05Uc2fuah0XBgWoLFkUFohIZaJ/LHyi +FUDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCIsWRmVeSWpSXmKPExsVy+t/xK7prTC5FGNw5qmTxd9IxdouNM9az Wqye+pfVYtL9CSwW589vYLdYMnk+q8Wmx9dYLS7vmsNm8bn3CKPFjPP7mCzOnL7EanF8bbjF y779LA68Hr9/TWL0WLznJZPHplWdbB53ru1h89i8pN5jyZtDrB5brrazePRtWcXo8XmTXABn lJtNRmpiSmqRQmpecn5KZl66rVJoiJuuhZJCXmJuqq1ShK5vSJCSQlliTimQZ2SABhycA9yD lfTtEtwyDl1qYy94b1ixr7mLvYHxq3oXIyeHhICJxIvbJ5ggbDGJC/fWs3UxcnEICSxhlPh1 YSMzhPOcUWL26d+sIFXCAv4SR3tfgCVEBBYxSpxY8R+q6jajxKruz+wgDrPAfiaJOdM+MIK0 sAkYSnS97WIDsXkF7CQ+Pr0CtpBFQFXi2K71LCC2qECMRMsSiHpeAUGJH5PvgcU5BTwlfl8+ yAxiMwuYSXx5eZgVwpaX2LzmLfMERoFZSFpmISmbhaRsASPzKkaR1NLi3PTcYkO94sTc4tK8 dL3k/NxNjMAY3nbs5+YdjJc2Bh9iFOBgVOLhVZC/GCHEmlhWXJl7iFGCg1lJhPe9/qUIId6U xMqq1KL8+KLSnNTiQ4ymQE9MZJYSTc4Hppe8knhDE0NzS0MjYwsLcyMjJXHekg9XwoUE0hNL UrNTUwtSi2D6mDg4pRoYQ47ODHDVnO//Xa+6W3dPVv10hZfldxxrNyp5y/l6rZOZvVCcO/DC 0bnmsmYfP7boZDs1GLAWH2b7MHfW6Y+L1q5/vjhcyHv6msQAwe6UzKviRrPk/v0yePJnzW4u ORGFtjNxbs1Ct1/Jvp0/68IkXqGdnXdZJL97t2lMqni97NreqjM7THt3K7EUZyQaajEXFScC ALBCxnf3AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170322082225eucas1p1b609edc5de8c5c73619c990ddbafb54b X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170209142308eucas1p24d52db3d52e19228e8f423c3dc8b085b X-RootMTR: 20170209142308eucas1p24d52db3d52e19228e8f423c3dc8b085b References: <1486650171-20598-1-git-send-email-m.szyprowski@samsung.com> <1486650171-20598-3-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6195 Lines: 186 Hi Vinod On 2017-02-09 15:22, Marek Szyprowski wrote: > This driver is now used only on platforms which support device tree, so > it is safe to remove legacy platform data based initialization code. > > Signed-off-by: Marek Szyprowski > Reviewed-by: Ulf Hansson > Acked-by: Arnd Bergmann > For plat-samsung: > Acked-by: Krzysztof Kozlowski Vinod: This patch is completely independent from the rest of the changes from that patchset. Could you apply it, or do you want me to resend it separately? Runtime pm related changes will wait until a new DMA engine API is ready. > --- > arch/arm/plat-samsung/devs.c | 1 - > drivers/dma/pl330.c | 42 ++++++++---------------------------------- > include/linux/amba/pl330.h | 35 ----------------------------------- > 3 files changed, 8 insertions(+), 70 deletions(-) > delete mode 100644 include/linux/amba/pl330.h > > diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c > index 03fac123676d..dc269d9143bc 100644 > --- a/arch/arm/plat-samsung/devs.c > +++ b/arch/arm/plat-samsung/devs.c > @@ -10,7 +10,6 @@ > * published by the Free Software Foundation. > */ > > -#include > #include > #include > #include > diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c > index f37f4978dabb..8b0da7fa520d 100644 > --- a/drivers/dma/pl330.c > +++ b/drivers/dma/pl330.c > @@ -22,7 +22,6 @@ > #include > #include > #include > -#include > #include > #include > #include > @@ -2077,18 +2076,6 @@ static void pl330_tasklet(unsigned long data) > } > } > > -bool pl330_filter(struct dma_chan *chan, void *param) > -{ > - u8 *peri_id; > - > - if (chan->device->dev->driver != &pl330_driver.drv) > - return false; > - > - peri_id = chan->private; > - return *peri_id == (unsigned long)param; > -} > -EXPORT_SYMBOL(pl330_filter); > - > static struct dma_chan *of_dma_pl330_xlate(struct of_phandle_args *dma_spec, > struct of_dma *ofdma) > { > @@ -2833,7 +2820,6 @@ static int __maybe_unused pl330_resume(struct device *dev) > static int > pl330_probe(struct amba_device *adev, const struct amba_id *id) > { > - struct dma_pl330_platdata *pdat; > struct pl330_config *pcfg; > struct pl330_dmac *pl330; > struct dma_pl330_chan *pch, *_p; > @@ -2843,8 +2829,6 @@ static int __maybe_unused pl330_resume(struct device *dev) > int num_chan; > struct device_node *np = adev->dev.of_node; > > - pdat = dev_get_platdata(&adev->dev); > - > ret = dma_set_mask_and_coherent(&adev->dev, DMA_BIT_MASK(32)); > if (ret) > return ret; > @@ -2857,7 +2841,7 @@ static int __maybe_unused pl330_resume(struct device *dev) > pd = &pl330->ddma; > pd->dev = &adev->dev; > > - pl330->mcbufsz = pdat ? pdat->mcbuf_sz : 0; > + pl330->mcbufsz = 0; > > /* get quirk */ > for (i = 0; i < ARRAY_SIZE(of_quirks); i++) > @@ -2901,10 +2885,7 @@ static int __maybe_unused pl330_resume(struct device *dev) > INIT_LIST_HEAD(&pd->channels); > > /* Initialize channel parameters */ > - if (pdat) > - num_chan = max_t(int, pdat->nr_valid_peri, pcfg->num_chan); > - else > - num_chan = max_t(int, pcfg->num_peri, pcfg->num_chan); > + num_chan = max_t(int, pcfg->num_peri, pcfg->num_chan); > > pl330->num_peripherals = num_chan; > > @@ -2916,11 +2897,8 @@ static int __maybe_unused pl330_resume(struct device *dev) > > for (i = 0; i < num_chan; i++) { > pch = &pl330->peripherals[i]; > - if (!adev->dev.of_node) > - pch->chan.private = pdat ? &pdat->peri_id[i] : NULL; > - else > - pch->chan.private = adev->dev.of_node; > > + pch->chan.private = adev->dev.of_node; > INIT_LIST_HEAD(&pch->submitted_list); > INIT_LIST_HEAD(&pch->work_list); > INIT_LIST_HEAD(&pch->completed_list); > @@ -2933,15 +2911,11 @@ static int __maybe_unused pl330_resume(struct device *dev) > list_add_tail(&pch->chan.device_node, &pd->channels); > } > > - if (pdat) { > - pd->cap_mask = pdat->cap_mask; > - } else { > - dma_cap_set(DMA_MEMCPY, pd->cap_mask); > - if (pcfg->num_peri) { > - dma_cap_set(DMA_SLAVE, pd->cap_mask); > - dma_cap_set(DMA_CYCLIC, pd->cap_mask); > - dma_cap_set(DMA_PRIVATE, pd->cap_mask); > - } > + dma_cap_set(DMA_MEMCPY, pd->cap_mask); > + if (pcfg->num_peri) { > + dma_cap_set(DMA_SLAVE, pd->cap_mask); > + dma_cap_set(DMA_CYCLIC, pd->cap_mask); > + dma_cap_set(DMA_PRIVATE, pd->cap_mask); > } > > pd->device_alloc_chan_resources = pl330_alloc_chan_resources; > diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h > deleted file mode 100644 > index fe93758e8403..000000000000 > --- a/include/linux/amba/pl330.h > +++ /dev/null > @@ -1,35 +0,0 @@ > -/* linux/include/linux/amba/pl330.h > - * > - * Copyright (C) 2010 Samsung Electronics Co. Ltd. > - * Jaswinder Singh > - * > - * This program is free software; you can redistribute it and/or modify > - * it under the terms of the GNU General Public License as published by > - * the Free Software Foundation; either version 2 of the License, or > - * (at your option) any later version. > - */ > - > -#ifndef __AMBA_PL330_H_ > -#define __AMBA_PL330_H_ > - > -#include > - > -struct dma_pl330_platdata { > - /* > - * Number of valid peripherals connected to DMAC. > - * This may be different from the value read from > - * CR0, as the PL330 implementation might have 'holes' > - * in the peri list or the peri could also be reached > - * from another DMAC which the platform prefers. > - */ > - u8 nr_valid_peri; > - /* Array of valid peripherals */ > - u8 *peri_id; > - /* Operational capabilities */ > - dma_cap_mask_t cap_mask; > - /* Bytes to allocate for MC buffer */ > - unsigned mcbuf_sz; > -}; > - > -extern bool pl330_filter(struct dma_chan *chan, void *param); > -#endif /* __AMBA_PL330_H_ */ Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland