summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-11-15 15:55:30 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-11-20 15:59:00 +0100
commitb503fa01990f6875640339d8f4ba98dbc068f821 (patch)
tree7364cad331b4b2a06622716f28398b8c05b69730
parent9aedbdbab39c8aa58c0b2a0791fb10df6eebc123 (diff)
downloadlinux-b503fa01990f6875640339d8f4ba98dbc068f821.tar.gz
linux-b503fa01990f6875640339d8f4ba98dbc068f821.tar.bz2
linux-b503fa01990f6875640339d8f4ba98dbc068f821.zip
dma: mv_xor: remove the pool_size from platform_data
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>
-rw-r--r--arch/arm/plat-orion/common.c18
-rw-r--r--drivers/dma/mv_xor.c15
-rw-r--r--drivers/dma/mv_xor.h1
-rw-r--r--include/linux/platform_data/dma-mv_xor.h1
4 files changed, 9 insertions, 26 deletions
diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 09d836060bf4..2d4b6414609f 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
@@ -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,
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index fc983bf38438..ec741b4607e2 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -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;
diff --git a/drivers/dma/mv_xor.h b/drivers/dma/mv_xor.h
index dab9f30e564a..698b4487b348 100644
--- a/drivers/dma/mv_xor.h
+++ b/drivers/dma/mv_xor.h
@@ -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
diff --git a/include/linux/platform_data/dma-mv_xor.h b/include/linux/platform_data/dma-mv_xor.h
index b18dc2496186..8ec18f64e396 100644
--- a/include/linux/platform_data/dma-mv_xor.h
+++ b/include/linux/platform_data/dma-mv_xor.h
@@ -14,7 +14,6 @@
struct mv_xor_channel_data {
dma_cap_mask_t cap_mask;
- size_t pool_size;
};
struct mv_xor_platform_data {