Commit b503fa01 authored by Thomas Petazzoni's avatar Thomas Petazzoni

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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 9aedbdba
...@@ -625,14 +625,7 @@ static struct resource orion_xor0_shared_resources[] = { ...@@ -625,14 +625,7 @@ static struct resource orion_xor0_shared_resources[] = {
}, },
}; };
static struct mv_xor_channel_data orion_xor0_channels_data[2] = { static struct mv_xor_channel_data orion_xor0_channels_data[2];
{
.pool_size = PAGE_SIZE,
},
{
.pool_size = PAGE_SIZE,
},
};
static struct mv_xor_platform_data orion_xor0_pdata = { static struct mv_xor_platform_data orion_xor0_pdata = {
.channels = orion_xor0_channels_data, .channels = orion_xor0_channels_data,
...@@ -698,14 +691,7 @@ static struct resource orion_xor1_shared_resources[] = { ...@@ -698,14 +691,7 @@ static struct resource orion_xor1_shared_resources[] = {
}, },
}; };
static struct mv_xor_channel_data orion_xor1_channels_data[2] = { static struct mv_xor_channel_data orion_xor1_channels_data[2];
{
.pool_size = PAGE_SIZE,
},
{
.pool_size = PAGE_SIZE,
},
};
static struct mv_xor_platform_data orion_xor1_pdata = { static struct mv_xor_platform_data orion_xor1_pdata = {
.channels = orion_xor1_channels_data, .channels = orion_xor1_channels_data,
......
...@@ -603,7 +603,7 @@ static int mv_xor_alloc_chan_resources(struct dma_chan *chan) ...@@ -603,7 +603,7 @@ static int mv_xor_alloc_chan_resources(struct dma_chan *chan)
int idx; int idx;
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan); struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
struct mv_xor_desc_slot *slot = NULL; 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 */ /* Allocate descriptor slots */
idx = mv_chan->slots_allocated; idx = mv_chan->slots_allocated;
...@@ -1074,7 +1074,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan) ...@@ -1074,7 +1074,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
dma_async_device_unregister(&mv_chan->dmadev); 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); mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool);
list_for_each_entry_safe(chan, _chan, &mv_chan->dmadev.channels, 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) ...@@ -1088,8 +1088,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
static struct mv_xor_chan * static struct mv_xor_chan *
mv_xor_channel_add(struct mv_xor_device *xordev, mv_xor_channel_add(struct mv_xor_device *xordev,
struct platform_device *pdev, struct platform_device *pdev,
int idx, dma_cap_mask_t cap_mask, int idx, dma_cap_mask_t cap_mask, int irq)
size_t pool_size, int irq)
{ {
int ret = 0; int ret = 0;
struct mv_xor_chan *mv_chan; struct mv_xor_chan *mv_chan;
...@@ -1109,9 +1108,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev, ...@@ -1109,9 +1108,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
* note: writecombine gives slightly better performance, but * note: writecombine gives slightly better performance, but
* requires that we explicitly flush the writes * requires that we explicitly flush the writes
*/ */
mv_chan->pool_size = pool_size;
mv_chan->dma_desc_pool_virt = 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); &mv_chan->dma_desc_pool, GFP_KERNEL);
if (!mv_chan->dma_desc_pool_virt) if (!mv_chan->dma_desc_pool_virt)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
...@@ -1193,7 +1191,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev, ...@@ -1193,7 +1191,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
return mv_chan; return mv_chan;
err_free_dma: 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); mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool);
return ERR_PTR(ret); return ERR_PTR(ret);
} }
...@@ -1296,8 +1294,7 @@ static int mv_xor_probe(struct platform_device *pdev) ...@@ -1296,8 +1294,7 @@ static int mv_xor_probe(struct platform_device *pdev)
xordev->channels[i] = xordev->channels[i] =
mv_xor_channel_add(xordev, pdev, i, mv_xor_channel_add(xordev, pdev, i,
cd->cap_mask, cd->cap_mask, irq);
cd->pool_size, irq);
if (IS_ERR(xordev->channels[i])) { if (IS_ERR(xordev->channels[i])) {
ret = PTR_ERR(xordev->channels[i]); ret = PTR_ERR(xordev->channels[i]);
goto err_channel_add; goto err_channel_add;
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#define USE_TIMER #define USE_TIMER
#define MV_XOR_POOL_SIZE PAGE_SIZE
#define MV_XOR_SLOT_SIZE 64 #define MV_XOR_SLOT_SIZE 64
#define MV_XOR_THRESHOLD 1 #define MV_XOR_THRESHOLD 1
#define MV_XOR_MAX_CHANNELS 2 #define MV_XOR_MAX_CHANNELS 2
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
struct mv_xor_channel_data { struct mv_xor_channel_data {
dma_cap_mask_t cap_mask; dma_cap_mask_t cap_mask;
size_t pool_size;
}; };
struct mv_xor_platform_data { struct mv_xor_platform_data {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment