aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2012-11-18 05:44:56 -0500
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-11-20 09:59:01 -0500
commit34c93c8657935d30649e777c4aa05f74f16aa418 (patch)
tree8a5fbb6cf15677350fd8dd83689ba8c4545f6598 /drivers/dma
parentcd09fea446f485f1514ad444cb06a35e1dd63326 (diff)
dma: mv_xor: Add a device_control function
The dmatest module for DMA engines calls device_control(dtc->chan, DMA_TERMINATE_ALL, 0); after completing the tests. The documentation in include/linux/dmaengine.h suggests this function is optional and dma_async_device_register() also does not BUG_ON() when not passed a function. However, dmatest is not the only code in the kernel unconditionally calling device_control. So add an implementation indicating all operations are not implemented. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/mv_xor.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 97c8611f5ffb..f450fe8cbd61 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -1070,6 +1070,14 @@ out:
1070 return err; 1070 return err;
1071} 1071}
1072 1072
1073/* This driver does not implement any of the optional DMA operations. */
1074static int
1075mv_xor_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
1076 unsigned long arg)
1077{
1078 return -ENOSYS;
1079}
1080
1073static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan) 1081static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan)
1074{ 1082{
1075 struct dma_chan *chan, *_chan; 1083 struct dma_chan *chan, *_chan;
@@ -1130,6 +1138,7 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
1130 dma_dev->device_free_chan_resources = mv_xor_free_chan_resources; 1138 dma_dev->device_free_chan_resources = mv_xor_free_chan_resources;
1131 dma_dev->device_tx_status = mv_xor_status; 1139 dma_dev->device_tx_status = mv_xor_status;
1132 dma_dev->device_issue_pending = mv_xor_issue_pending; 1140 dma_dev->device_issue_pending = mv_xor_issue_pending;
1141 dma_dev->device_control = mv_xor_control;
1133 dma_dev->dev = &pdev->dev; 1142 dma_dev->dev = &pdev->dev;
1134 1143
1135 /* set prep routines based on capability */ 1144 /* set prep routines based on capability */