dmaengine: pl330: remove pdata based initialization
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 27 Mar 2017 05:31:03 +0000 (07:31 +0200)
committerVinod Koul <vinod.koul@intel.com>
Tue, 28 Mar 2017 16:07:48 +0000 (21:37 +0530)
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 <m.szyprowski@samsung.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
For plat-samsung:
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
arch/arm/plat-samsung/devs.c
drivers/dma/pl330.c
include/linux/amba/pl330.h [deleted file]

index 03fac123676db0c5eb9901076ead5b65c33bd889..dc269d9143bca73b6201350fc1b85895787da460 100644 (file)
@@ -10,7 +10,6 @@
  * published by the Free Software Foundation.
 */
 
-#include <linux/amba/pl330.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/interrupt.h>
index f37f4978dabbb2e43dab75d95255cafa398b0c73..8b0da7fa520d27ac514228130c354f121a12b848 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
 #include <linux/amba/bus.h>
-#include <linux/amba/pl330.h>
 #include <linux/scatterlist.h>
 #include <linux/of.h>
 #include <linux/of_dma.h>
@@ -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 SIMPLE_DEV_PM_OPS(pl330_pm, pl330_suspend, pl330_resume);
 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 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
        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 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
        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 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
        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 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
 
        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 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
                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 (file)
index fe93758..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* linux/include/linux/amba/pl330.h
- *
- * Copyright (C) 2010 Samsung Electronics Co. Ltd.
- *     Jaswinder Singh <jassi.brar@samsung.com>
- *
- * 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 <linux/dmaengine.h>
-
-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_ */