aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/fsldma.c17
-rw-r--r--drivers/dma/ppc4xx/adma.c2
-rw-r--r--drivers/dma/shdma.c5
-rw-r--r--drivers/dma/timb_dma.c2
4 files changed, 17 insertions, 9 deletions
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index 1fdf180cbd67..8088b14ba5f7 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -1315,7 +1315,7 @@ static int __devinit fsldma_of_probe(struct of_device *op,
1315 INIT_LIST_HEAD(&fdev->common.channels); 1315 INIT_LIST_HEAD(&fdev->common.channels);
1316 1316
1317 /* ioremap the registers for use */ 1317 /* ioremap the registers for use */
1318 fdev->regs = of_iomap(op->node, 0); 1318 fdev->regs = of_iomap(op->dev.of_node, 0);
1319 if (!fdev->regs) { 1319 if (!fdev->regs) {
1320 dev_err(&op->dev, "unable to ioremap registers\n"); 1320 dev_err(&op->dev, "unable to ioremap registers\n");
1321 err = -ENOMEM; 1321 err = -ENOMEM;
@@ -1323,7 +1323,7 @@ static int __devinit fsldma_of_probe(struct of_device *op,
1323 } 1323 }
1324 1324
1325 /* map the channel IRQ if it exists, but don't hookup the handler yet */ 1325 /* map the channel IRQ if it exists, but don't hookup the handler yet */
1326 fdev->irq = irq_of_parse_and_map(op->node, 0); 1326 fdev->irq = irq_of_parse_and_map(op->dev.of_node, 0);
1327 1327
1328 dma_cap_set(DMA_MEMCPY, fdev->common.cap_mask); 1328 dma_cap_set(DMA_MEMCPY, fdev->common.cap_mask);
1329 dma_cap_set(DMA_INTERRUPT, fdev->common.cap_mask); 1329 dma_cap_set(DMA_INTERRUPT, fdev->common.cap_mask);
@@ -1345,7 +1345,7 @@ static int __devinit fsldma_of_probe(struct of_device *op,
1345 * of_platform_bus_remove(). Instead, we manually instantiate every DMA 1345 * of_platform_bus_remove(). Instead, we manually instantiate every DMA
1346 * channel object. 1346 * channel object.
1347 */ 1347 */
1348 for_each_child_of_node(op->node, child) { 1348 for_each_child_of_node(op->dev.of_node, child) {
1349 if (of_device_is_compatible(child, "fsl,eloplus-dma-channel")) { 1349 if (of_device_is_compatible(child, "fsl,eloplus-dma-channel")) {
1350 fsl_dma_chan_probe(fdev, child, 1350 fsl_dma_chan_probe(fdev, child,
1351 FSL_DMA_IP_85XX | FSL_DMA_BIG_ENDIAN, 1351 FSL_DMA_IP_85XX | FSL_DMA_BIG_ENDIAN,
@@ -1411,10 +1411,13 @@ static const struct of_device_id fsldma_of_ids[] = {
1411}; 1411};
1412 1412
1413static struct of_platform_driver fsldma_of_driver = { 1413static struct of_platform_driver fsldma_of_driver = {
1414 .name = "fsl-elo-dma", 1414 .driver = {
1415 .match_table = fsldma_of_ids, 1415 .name = "fsl-elo-dma",
1416 .probe = fsldma_of_probe, 1416 .owner = THIS_MODULE,
1417 .remove = fsldma_of_remove, 1417 .of_match_table = fsldma_of_ids,
1418 },
1419 .probe = fsldma_of_probe,
1420 .remove = fsldma_of_remove,
1418}; 1421};
1419 1422
1420/*----------------------------------------------------------------------------*/ 1423/*----------------------------------------------------------------------------*/
diff --git a/drivers/dma/ppc4xx/adma.c b/drivers/dma/ppc4xx/adma.c
index c6079fcca13f..fa98abe4686f 100644
--- a/drivers/dma/ppc4xx/adma.c
+++ b/drivers/dma/ppc4xx/adma.c
@@ -4944,12 +4944,12 @@ static const struct of_device_id ppc440spe_adma_of_match[] __devinitconst = {
4944MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match); 4944MODULE_DEVICE_TABLE(of, ppc440spe_adma_of_match);
4945 4945
4946static struct of_platform_driver ppc440spe_adma_driver = { 4946static struct of_platform_driver ppc440spe_adma_driver = {
4947 .match_table = ppc440spe_adma_of_match,
4948 .probe = ppc440spe_adma_probe, 4947 .probe = ppc440spe_adma_probe,
4949 .remove = __devexit_p(ppc440spe_adma_remove), 4948 .remove = __devexit_p(ppc440spe_adma_remove),
4950 .driver = { 4949 .driver = {
4951 .name = "PPC440SP(E)-ADMA", 4950 .name = "PPC440SP(E)-ADMA",
4952 .owner = THIS_MODULE, 4951 .owner = THIS_MODULE,
4952 .of_match_table = ppc440spe_adma_of_match,
4953 }, 4953 },
4954}; 4954};
4955 4955
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c
index a1727522343e..a2a519fd2a24 100644
--- a/drivers/dma/shdma.c
+++ b/drivers/dma/shdma.c
@@ -722,6 +722,10 @@ static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan, bool all)
722{ 722{
723 while (__ld_cleanup(sh_chan, all)) 723 while (__ld_cleanup(sh_chan, all))
724 ; 724 ;
725
726 if (all)
727 /* Terminating - forgive uncompleted cookies */
728 sh_chan->completed_cookie = sh_chan->common.cookie;
725} 729}
726 730
727static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan) 731static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan)
@@ -1188,6 +1192,7 @@ static struct platform_driver sh_dmae_driver = {
1188 .remove = __exit_p(sh_dmae_remove), 1192 .remove = __exit_p(sh_dmae_remove),
1189 .shutdown = sh_dmae_shutdown, 1193 .shutdown = sh_dmae_shutdown,
1190 .driver = { 1194 .driver = {
1195 .owner = THIS_MODULE,
1191 .name = "sh-dma-engine", 1196 .name = "sh-dma-engine",
1192 }, 1197 },
1193}; 1198};
diff --git a/drivers/dma/timb_dma.c b/drivers/dma/timb_dma.c
index 0172fa3c7a2b..a1bf77c1993f 100644
--- a/drivers/dma/timb_dma.c
+++ b/drivers/dma/timb_dma.c
@@ -188,7 +188,7 @@ static void __td_unmap_descs(struct timb_dma_desc *td_desc, bool single)
188static int td_fill_desc(struct timb_dma_chan *td_chan, u8 *dma_desc, 188static int td_fill_desc(struct timb_dma_chan *td_chan, u8 *dma_desc,
189 struct scatterlist *sg, bool last) 189 struct scatterlist *sg, bool last)
190{ 190{
191 if (sg_dma_len(sg) > USHORT_MAX) { 191 if (sg_dma_len(sg) > USHRT_MAX) {
192 dev_err(chan2dev(&td_chan->chan), "Too big sg element\n"); 192 dev_err(chan2dev(&td_chan->chan), "Too big sg element\n");
193 return -EINVAL; 193 return -EINVAL;
194 } 194 }