aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/mv_xor.c
diff options
context:
space:
mode:
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2008-07-08 14:58:58 -0400
committerDan Williams <dan.j.williams@intel.com>2008-07-08 14:58:58 -0400
commit848c536a37b8db4e461f14ca15fe29850151c822 (patch)
treef4a88e92e31de28511e3a3de99200a77d2613dae /drivers/dma/mv_xor.c
parent4a776f0aa922a552460192c07b56f4fe9cd82632 (diff)
dmaengine: Add dma_client parameter to device_alloc_chan_resources
A DMA controller capable of doing slave transfers may need to know a few things about the slave when preparing the channel. We don't want to add this information to struct dma_channel since the channel hasn't yet been bound to a client at this point. Instead, pass a reference to the client requesting the channel to the driver's device_alloc_chan_resources hook so that it can pick the necessary information from the dma_client struct by itself. [dan.j.williams@intel.com: fixed up fsldma and mv_xor] Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma/mv_xor.c')
-rw-r--r--drivers/dma/mv_xor.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index f0c123ce8ae0..8239cfdbc2e6 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -588,7 +588,8 @@ submit_done:
588} 588}
589 589
590/* returns the number of allocated descriptors */ 590/* returns the number of allocated descriptors */
591static int mv_xor_alloc_chan_resources(struct dma_chan *chan) 591static int mv_xor_alloc_chan_resources(struct dma_chan *chan,
592 struct dma_client *client)
592{ 593{
593 char *hw_desc; 594 char *hw_desc;
594 int idx; 595 int idx;
@@ -938,7 +939,7 @@ static int __devinit mv_xor_memcpy_self_test(struct mv_xor_device *device)
938 dma_chan = container_of(device->common.channels.next, 939 dma_chan = container_of(device->common.channels.next,
939 struct dma_chan, 940 struct dma_chan,
940 device_node); 941 device_node);
941 if (mv_xor_alloc_chan_resources(dma_chan) < 1) { 942 if (mv_xor_alloc_chan_resources(dma_chan, NULL) < 1) {
942 err = -ENODEV; 943 err = -ENODEV;
943 goto out; 944 goto out;
944 } 945 }
@@ -1033,7 +1034,7 @@ mv_xor_xor_self_test(struct mv_xor_device *device)
1033 dma_chan = container_of(device->common.channels.next, 1034 dma_chan = container_of(device->common.channels.next,
1034 struct dma_chan, 1035 struct dma_chan,
1035 device_node); 1036 device_node);
1036 if (mv_xor_alloc_chan_resources(dma_chan) < 1) { 1037 if (mv_xor_alloc_chan_resources(dma_chan, NULL) < 1) {
1037 err = -ENODEV; 1038 err = -ENODEV;
1038 goto out; 1039 goto out;
1039 } 1040 }