diff options
| -rw-r--r-- | drivers/dma/Makefile | 4 | ||||
| -rw-r--r-- | drivers/dma/at_hdmac.c | 2 | ||||
| -rw-r--r-- | drivers/dma/fsldma.c | 6 | ||||
| -rw-r--r-- | drivers/dma/fsldma.h | 9 | ||||
| -rw-r--r-- | drivers/dma/imx-dma.c | 2 | ||||
| -rw-r--r-- | drivers/dma/imx-sdma.c | 4 | ||||
| -rw-r--r-- | drivers/dma/intel_mid_dma.c | 8 | ||||
| -rw-r--r-- | drivers/dma/ioat/Makefile | 2 | ||||
| -rw-r--r-- | drivers/dma/pch_dma.c | 15 | ||||
| -rw-r--r-- | drivers/dma/ppc4xx/adma.c | 5 |
10 files changed, 32 insertions, 25 deletions
diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile index a8a84f4587f2..64b21f5cd740 100644 --- a/drivers/dma/Makefile +++ b/drivers/dma/Makefile | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | ifeq ($(CONFIG_DMADEVICES_DEBUG),y) | 1 | ifeq ($(CONFIG_DMADEVICES_DEBUG),y) |
| 2 | EXTRA_CFLAGS += -DDEBUG | 2 | ccflags-y += -DDEBUG |
| 3 | endif | 3 | endif |
| 4 | ifeq ($(CONFIG_DMADEVICES_VDEBUG),y) | 4 | ifeq ($(CONFIG_DMADEVICES_VDEBUG),y) |
| 5 | EXTRA_CFLAGS += -DVERBOSE_DEBUG | 5 | ccflags-y += -DVERBOSE_DEBUG |
| 6 | endif | 6 | endif |
| 7 | 7 | ||
| 8 | obj-$(CONFIG_DMA_ENGINE) += dmaengine.o | 8 | obj-$(CONFIG_DMA_ENGINE) += dmaengine.o |
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index a0f3e6a06e06..ea0ee81cff53 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c | |||
| @@ -722,7 +722,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, | |||
| 722 | desc->lli.daddr = mem; | 722 | desc->lli.daddr = mem; |
| 723 | desc->lli.ctrla = ctrla | 723 | desc->lli.ctrla = ctrla |
| 724 | | ATC_DST_WIDTH(mem_width) | 724 | | ATC_DST_WIDTH(mem_width) |
| 725 | | len >> mem_width; | 725 | | len >> reg_width; |
| 726 | desc->lli.ctrlb = ctrlb; | 726 | desc->lli.ctrlb = ctrlb; |
| 727 | 727 | ||
| 728 | if (!first) { | 728 | if (!first) { |
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 286c3ac6bdcc..e5e172d21692 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c | |||
| @@ -50,9 +50,11 @@ static void dma_init(struct fsldma_chan *chan) | |||
| 50 | * EIE - Error interrupt enable | 50 | * EIE - Error interrupt enable |
| 51 | * EOSIE - End of segments interrupt enable (basic mode) | 51 | * EOSIE - End of segments interrupt enable (basic mode) |
| 52 | * EOLNIE - End of links interrupt enable | 52 | * EOLNIE - End of links interrupt enable |
| 53 | * BWC - Bandwidth sharing among channels | ||
| 53 | */ | 54 | */ |
| 54 | DMA_OUT(chan, &chan->regs->mr, FSL_DMA_MR_EIE | 55 | DMA_OUT(chan, &chan->regs->mr, FSL_DMA_MR_BWC |
| 55 | | FSL_DMA_MR_EOLNIE | FSL_DMA_MR_EOSIE, 32); | 56 | | FSL_DMA_MR_EIE | FSL_DMA_MR_EOLNIE |
| 57 | | FSL_DMA_MR_EOSIE, 32); | ||
| 56 | break; | 58 | break; |
| 57 | case FSL_DMA_IP_83XX: | 59 | case FSL_DMA_IP_83XX: |
| 58 | /* Set the channel to below modes: | 60 | /* Set the channel to below modes: |
diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h index cb4d6ff51597..ba9f403c0fbe 100644 --- a/drivers/dma/fsldma.h +++ b/drivers/dma/fsldma.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (C) 2007 Freescale Semiconductor, Inc. All rights reserved. | 2 | * Copyright (C) 2007-2010 Freescale Semiconductor, Inc. All rights reserved. |
| 3 | * | 3 | * |
| 4 | * Author: | 4 | * Author: |
| 5 | * Zhang Wei <wei.zhang@freescale.com>, Jul 2007 | 5 | * Zhang Wei <wei.zhang@freescale.com>, Jul 2007 |
| @@ -36,6 +36,13 @@ | |||
| 36 | #define FSL_DMA_MR_DAHE 0x00002000 | 36 | #define FSL_DMA_MR_DAHE 0x00002000 |
| 37 | #define FSL_DMA_MR_SAHE 0x00001000 | 37 | #define FSL_DMA_MR_SAHE 0x00001000 |
| 38 | 38 | ||
| 39 | /* | ||
| 40 | * Bandwidth/pause control determines how many bytes a given | ||
| 41 | * channel is allowed to transfer before the DMA engine pauses | ||
| 42 | * the current channel and switches to the next channel | ||
| 43 | */ | ||
| 44 | #define FSL_DMA_MR_BWC 0x08000000 | ||
| 45 | |||
| 39 | /* Special MR definition for MPC8349 */ | 46 | /* Special MR definition for MPC8349 */ |
| 40 | #define FSL_DMA_MR_EOTIE 0x00000080 | 47 | #define FSL_DMA_MR_EOTIE 0x00000080 |
| 41 | #define FSL_DMA_MR_PRC_RM 0x00000800 | 48 | #define FSL_DMA_MR_PRC_RM 0x00000800 |
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c index f629e4961af5..e53d438142bb 100644 --- a/drivers/dma/imx-dma.c +++ b/drivers/dma/imx-dma.c | |||
| @@ -379,7 +379,7 @@ static int __init imxdma_probe(struct platform_device *pdev) | |||
| 379 | return 0; | 379 | return 0; |
| 380 | 380 | ||
| 381 | err_init: | 381 | err_init: |
| 382 | while (i-- >= 0) { | 382 | while (--i >= 0) { |
| 383 | struct imxdma_channel *imxdmac = &imxdma->channel[i]; | 383 | struct imxdma_channel *imxdmac = &imxdma->channel[i]; |
| 384 | imx_dma_free(imxdmac->imxdma_channel); | 384 | imx_dma_free(imxdmac->imxdma_channel); |
| 385 | } | 385 | } |
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 0834323a0599..d0602dd5d1b2 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c | |||
| @@ -951,7 +951,7 @@ static struct dma_async_tx_descriptor *sdma_prep_slave_sg( | |||
| 951 | struct sdma_buffer_descriptor *bd = &sdmac->bd[i]; | 951 | struct sdma_buffer_descriptor *bd = &sdmac->bd[i]; |
| 952 | int param; | 952 | int param; |
| 953 | 953 | ||
| 954 | bd->buffer_addr = sgl->dma_address; | 954 | bd->buffer_addr = sg->dma_address; |
| 955 | 955 | ||
| 956 | count = sg->length; | 956 | count = sg->length; |
| 957 | 957 | ||
| @@ -1385,7 +1385,7 @@ static int __init sdma_module_init(void) | |||
| 1385 | { | 1385 | { |
| 1386 | return platform_driver_probe(&sdma_driver, sdma_probe); | 1386 | return platform_driver_probe(&sdma_driver, sdma_probe); |
| 1387 | } | 1387 | } |
| 1388 | subsys_initcall(sdma_module_init); | 1388 | module_init(sdma_module_init); |
| 1389 | 1389 | ||
| 1390 | MODULE_AUTHOR("Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>"); | 1390 | MODULE_AUTHOR("Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>"); |
| 1391 | MODULE_DESCRIPTION("i.MX SDMA driver"); | 1391 | MODULE_DESCRIPTION("i.MX SDMA driver"); |
diff --git a/drivers/dma/intel_mid_dma.c b/drivers/dma/intel_mid_dma.c index 338bc4eed1f3..3109bd94bc4f 100644 --- a/drivers/dma/intel_mid_dma.c +++ b/drivers/dma/intel_mid_dma.c | |||
| @@ -1075,7 +1075,6 @@ static int mid_setup_dma(struct pci_dev *pdev) | |||
| 1075 | if (NULL == dma->dma_pool) { | 1075 | if (NULL == dma->dma_pool) { |
| 1076 | pr_err("ERR_MDMA:pci_pool_create failed\n"); | 1076 | pr_err("ERR_MDMA:pci_pool_create failed\n"); |
| 1077 | err = -ENOMEM; | 1077 | err = -ENOMEM; |
| 1078 | kfree(dma); | ||
| 1079 | goto err_dma_pool; | 1078 | goto err_dma_pool; |
| 1080 | } | 1079 | } |
| 1081 | 1080 | ||
| @@ -1186,7 +1185,6 @@ err_engine: | |||
| 1186 | free_irq(pdev->irq, dma); | 1185 | free_irq(pdev->irq, dma); |
| 1187 | err_irq: | 1186 | err_irq: |
| 1188 | pci_pool_destroy(dma->dma_pool); | 1187 | pci_pool_destroy(dma->dma_pool); |
| 1189 | kfree(dma); | ||
| 1190 | err_dma_pool: | 1188 | err_dma_pool: |
| 1191 | pr_err("ERR_MDMA:setup_dma failed: %d\n", err); | 1189 | pr_err("ERR_MDMA:setup_dma failed: %d\n", err); |
| 1192 | return err; | 1190 | return err; |
| @@ -1413,7 +1411,7 @@ static const struct dev_pm_ops intel_mid_dma_pm = { | |||
| 1413 | .runtime_idle = dma_runtime_idle, | 1411 | .runtime_idle = dma_runtime_idle, |
| 1414 | }; | 1412 | }; |
| 1415 | 1413 | ||
| 1416 | static struct pci_driver intel_mid_dma_pci = { | 1414 | static struct pci_driver intel_mid_dma_pci_driver = { |
| 1417 | .name = "Intel MID DMA", | 1415 | .name = "Intel MID DMA", |
| 1418 | .id_table = intel_mid_dma_ids, | 1416 | .id_table = intel_mid_dma_ids, |
| 1419 | .probe = intel_mid_dma_probe, | 1417 | .probe = intel_mid_dma_probe, |
| @@ -1431,13 +1429,13 @@ static int __init intel_mid_dma_init(void) | |||
| 1431 | { | 1429 | { |
| 1432 | pr_debug("INFO_MDMA: LNW DMA Driver Version %s\n", | 1430 | pr_debug("INFO_MDMA: LNW DMA Driver Version %s\n", |
| 1433 | INTEL_MID_DMA_DRIVER_VERSION); | 1431 | INTEL_MID_DMA_DRIVER_VERSION); |
| 1434 | return pci_register_driver(&intel_mid_dma_pci); | 1432 | return pci_register_driver(&intel_mid_dma_pci_driver); |
| 1435 | } | 1433 | } |
| 1436 | fs_initcall(intel_mid_dma_init); | 1434 | fs_initcall(intel_mid_dma_init); |
| 1437 | 1435 | ||
| 1438 | static void __exit intel_mid_dma_exit(void) | 1436 | static void __exit intel_mid_dma_exit(void) |
| 1439 | { | 1437 | { |
| 1440 | pci_unregister_driver(&intel_mid_dma_pci); | 1438 | pci_unregister_driver(&intel_mid_dma_pci_driver); |
| 1441 | } | 1439 | } |
| 1442 | module_exit(intel_mid_dma_exit); | 1440 | module_exit(intel_mid_dma_exit); |
| 1443 | 1441 | ||
diff --git a/drivers/dma/ioat/Makefile b/drivers/dma/ioat/Makefile index 8997d3fb9051..0ff7270af25b 100644 --- a/drivers/dma/ioat/Makefile +++ b/drivers/dma/ioat/Makefile | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | obj-$(CONFIG_INTEL_IOATDMA) += ioatdma.o | 1 | obj-$(CONFIG_INTEL_IOATDMA) += ioatdma.o |
| 2 | ioatdma-objs := pci.o dma.o dma_v2.o dma_v3.o dca.o | 2 | ioatdma-y := pci.o dma.o dma_v2.o dma_v3.o dca.o |
diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c index 92b679024fed..c064c89420d0 100644 --- a/drivers/dma/pch_dma.c +++ b/drivers/dma/pch_dma.c | |||
| @@ -259,11 +259,6 @@ static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) | |||
| 259 | return; | 259 | return; |
| 260 | } | 260 | } |
| 261 | 261 | ||
| 262 | channel_writel(pd_chan, DEV_ADDR, desc->regs.dev_addr); | ||
| 263 | channel_writel(pd_chan, MEM_ADDR, desc->regs.mem_addr); | ||
| 264 | channel_writel(pd_chan, SIZE, desc->regs.size); | ||
| 265 | channel_writel(pd_chan, NEXT, desc->regs.next); | ||
| 266 | |||
| 267 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> dev_addr: %x\n", | 262 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> dev_addr: %x\n", |
| 268 | pd_chan->chan.chan_id, desc->regs.dev_addr); | 263 | pd_chan->chan.chan_id, desc->regs.dev_addr); |
| 269 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> mem_addr: %x\n", | 264 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> mem_addr: %x\n", |
| @@ -273,10 +268,16 @@ static void pdc_dostart(struct pch_dma_chan *pd_chan, struct pch_dma_desc* desc) | |||
| 273 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> next: %x\n", | 268 | dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> next: %x\n", |
| 274 | pd_chan->chan.chan_id, desc->regs.next); | 269 | pd_chan->chan.chan_id, desc->regs.next); |
| 275 | 270 | ||
| 276 | if (list_empty(&desc->tx_list)) | 271 | if (list_empty(&desc->tx_list)) { |
| 272 | channel_writel(pd_chan, DEV_ADDR, desc->regs.dev_addr); | ||
| 273 | channel_writel(pd_chan, MEM_ADDR, desc->regs.mem_addr); | ||
| 274 | channel_writel(pd_chan, SIZE, desc->regs.size); | ||
| 275 | channel_writel(pd_chan, NEXT, desc->regs.next); | ||
| 277 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_ONESHOT); | 276 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_ONESHOT); |
| 278 | else | 277 | } else { |
| 278 | channel_writel(pd_chan, NEXT, desc->txd.phys); | ||
| 279 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG); | 279 | pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG); |
| 280 | } | ||
| 280 | 281 | ||
| 281 | val = dma_readl(pd, CTL2); | 282 | val = dma_readl(pd, CTL2); |
| 282 | val |= 1 << (DMA_CTL2_START_SHIFT_BITS + pd_chan->chan.chan_id); | 283 | val |= 1 << (DMA_CTL2_START_SHIFT_BITS + pd_chan->chan.chan_id); |
diff --git a/drivers/dma/ppc4xx/adma.c b/drivers/dma/ppc4xx/adma.c index 0d58a4a4487f..cef584533ee8 100644 --- a/drivers/dma/ppc4xx/adma.c +++ b/drivers/dma/ppc4xx/adma.c | |||
| @@ -4449,9 +4449,8 @@ static int __devinit ppc440spe_adma_probe(struct platform_device *ofdev, | |||
| 4449 | 4449 | ||
| 4450 | if (!request_mem_region(res.start, resource_size(&res), | 4450 | if (!request_mem_region(res.start, resource_size(&res), |
| 4451 | dev_driver_string(&ofdev->dev))) { | 4451 | dev_driver_string(&ofdev->dev))) { |
| 4452 | dev_err(&ofdev->dev, "failed to request memory region " | 4452 | dev_err(&ofdev->dev, "failed to request memory region %pR\n", |
| 4453 | "(0x%016llx-0x%016llx)\n", | 4453 | &res); |
| 4454 | (u64)res.start, (u64)res.end); | ||
| 4455 | initcode = PPC_ADMA_INIT_MEMREG; | 4454 | initcode = PPC_ADMA_INIT_MEMREG; |
| 4456 | ret = -EBUSY; | 4455 | ret = -EBUSY; |
| 4457 | goto out; | 4456 | goto out; |
