dma: mv_xor: remove the pool_size from platform_data
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 15 Nov 2012 14:55:30 +0000 (15:55 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 20 Nov 2012 14:59:00 +0000 (15:59 +0100)
The pool_size is always PAGE_SIZE, and since it is a software
configuration paramter (and not a hardware description parameter), we
cannot make it part of the Device Tree binding, so we'd better remove
it from the platform_data as well.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
arch/arm/plat-orion/common.c
drivers/dma/mv_xor.c
drivers/dma/mv_xor.h
include/linux/platform_data/dma-mv_xor.h

index 09d836060bf47ad984f3ee33b2a2ce76fd6e26af..2d4b6414609f6edf2df165ccb14b01527246ad93 100644 (file)
@@ -625,14 +625,7 @@ static struct resource orion_xor0_shared_resources[] = {
        },
 };
 
-static struct mv_xor_channel_data orion_xor0_channels_data[2] = {
-       {
-               .pool_size      = PAGE_SIZE,
-       },
-       {
-               .pool_size      = PAGE_SIZE,
-       },
-};
+static struct mv_xor_channel_data orion_xor0_channels_data[2];
 
 static struct mv_xor_platform_data orion_xor0_pdata = {
        .channels = orion_xor0_channels_data,
@@ -698,14 +691,7 @@ static struct resource orion_xor1_shared_resources[] = {
        },
 };
 
-static struct mv_xor_channel_data orion_xor1_channels_data[2] = {
-       {
-               .pool_size      = PAGE_SIZE,
-       },
-       {
-               .pool_size      = PAGE_SIZE,
-       },
-};
+static struct mv_xor_channel_data orion_xor1_channels_data[2];
 
 static struct mv_xor_platform_data orion_xor1_pdata = {
        .channels = orion_xor1_channels_data,
index fc983bf38438e65b21ed0358e9ea32a2176b6a9c..ec741b4607e2da9549bab469ac8da602d9775fac 100644 (file)
@@ -603,7 +603,7 @@ static int mv_xor_alloc_chan_resources(struct dma_chan *chan)
        int idx;
        struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
        struct mv_xor_desc_slot *slot = NULL;
-       int num_descs_in_pool = mv_chan->pool_size/MV_XOR_SLOT_SIZE;
+       int num_descs_in_pool = MV_XOR_POOL_SIZE/MV_XOR_SLOT_SIZE;
 
        /* Allocate descriptor slots */
        idx = mv_chan->slots_allocated;
@@ -1074,7 +1074,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
 
        dma_async_device_unregister(&mv_chan->dmadev);
 
-       dma_free_coherent(dev, mv_chan->pool_size,
+       dma_free_coherent(dev, MV_XOR_POOL_SIZE,
                          mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool);
 
        list_for_each_entry_safe(chan, _chan, &mv_chan->dmadev.channels,
@@ -1088,8 +1088,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
 static struct mv_xor_chan *
 mv_xor_channel_add(struct mv_xor_device *xordev,
                   struct platform_device *pdev,
-                  int idx, dma_cap_mask_t cap_mask,
-                  size_t pool_size, int irq)
+                  int idx, dma_cap_mask_t cap_mask, int irq)
 {
        int ret = 0;
        struct mv_xor_chan *mv_chan;
@@ -1109,9 +1108,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
         * note: writecombine gives slightly better performance, but
         * requires that we explicitly flush the writes
         */
-       mv_chan->pool_size = pool_size;
        mv_chan->dma_desc_pool_virt =
-         dma_alloc_writecombine(&pdev->dev, mv_chan->pool_size,
+         dma_alloc_writecombine(&pdev->dev, MV_XOR_POOL_SIZE,
                                 &mv_chan->dma_desc_pool, GFP_KERNEL);
        if (!mv_chan->dma_desc_pool_virt)
                return ERR_PTR(-ENOMEM);
@@ -1193,7 +1191,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
        return mv_chan;
 
  err_free_dma:
-       dma_free_coherent(&pdev->dev, pool_size,
+       dma_free_coherent(&pdev->dev, MV_XOR_POOL_SIZE,
                          mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool);
        return ERR_PTR(ret);
 }
@@ -1296,8 +1294,7 @@ static int mv_xor_probe(struct platform_device *pdev)
 
                        xordev->channels[i] =
                                mv_xor_channel_add(xordev, pdev, i,
-                                                  cd->cap_mask,
-                                                  cd->pool_size, irq);
+                                                  cd->cap_mask, irq);
                        if (IS_ERR(xordev->channels[i])) {
                                ret = PTR_ERR(xordev->channels[i]);
                                goto err_channel_add;
index dab9f30e564afb901446acc24ffc7faad7ae9e7a..698b4487b348b75cf7e9051e46beb8c9d654832a 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/interrupt.h>
 
 #define USE_TIMER
+#define MV_XOR_POOL_SIZE               PAGE_SIZE
 #define MV_XOR_SLOT_SIZE               64
 #define MV_XOR_THRESHOLD               1
 #define MV_XOR_MAX_CHANNELS             2
index b18dc24961864f99fa5ac6b7f3ffaf934b1a1d84..8ec18f64e3965e68fcf6ffbfae436687987f3466 100644 (file)
@@ -14,7 +14,6 @@
 
 struct mv_xor_channel_data {
        dma_cap_mask_t                  cap_mask;
-       size_t                          pool_size;
 };
 
 struct mv_xor_platform_data {