History

Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine fixes from Vinod Koul: "Back from long weekend here in India and now the time to send fixes for slave dmaengine. - Dan's fix of sirf xlate code - Jean's fix for timberland - edma fixes by Sekhar for SG handling and Yuan for changing init call" * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma: dma: fix eDMA driver as a subsys_initcall dmaengine: sirf: off by one in of_dma_sirfsoc_xlate() platform: Fix timberdale dependencies dma: edma: fix incorrect SG list handling

Linus Torvalds committed 12 years ago

Commit 372feac2 parents 5269519 8edc51c5 files · +18 −6Browse files

Unified · Split

5 files
  1. drivers/dma/Kconfig +1 −1
  2. drivers/dma/edma.c +4 −2
  3. drivers/dma/fsl-edma.c +11 −1
  4. drivers/dma/sirf-dma.c +1 −1
  5. drivers/media/platform/Kconfig +1 −1
drivers/dma/Kconfig+1−1
@@ -197,7 +197,7 @@ config AMCC_PPC440SPE_ADMA · 196 unmodified lines
197197
198198 config TIMB_DMA
199199 tristate "Timberdale FPGA DMA support"
200− depends on MFD_TIMBERDALE || HAS_IOMEM
200+ depends on MFD_TIMBERDALE
201201 select DMA_ENGINE
202202 help
203203 Enable support for the Timberdale FPGA DMA engine.
drivers/dma/edma.c+4−2
@@ -182,11 +182,13 @@ static void edma_execute(struct edma_chan *echan) · 181 unmodified lines
182182 echan->ecc->dummy_slot);
183183 }
184184
185− edma_resume(echan->ch_num);
186−
187185 if (edesc->processed <= MAX_NR_SG) {
188186 dev_dbg(dev, "first transfer starting %d\n", echan->ch_num);
189187 edma_start(echan->ch_num);
188+ } else {
189+ dev_dbg(dev, "chan: %d: completed %d elements, resuming\n",
190+ echan->ch_num, edesc->processed);
191+ edma_resume(echan->ch_num);
190192 }
191193
192194 /*
drivers/dma/fsl-edma.c+11−1
@@ -968,7 +968,17 @@ static struct platform_driver fsl_edma_driver = { · 967 unmodified lines
968968 .remove = fsl_edma_remove,
969969 };
970970
971−module_platform_driver(fsl_edma_driver);
971+static int __init fsl_edma_init(void)
972+{
973+ return platform_driver_register(&fsl_edma_driver);
974+}
975+subsys_initcall(fsl_edma_init);
976+
977+static void __exit fsl_edma_exit(void)
978+{
979+ platform_driver_unregister(&fsl_edma_driver);
980+}
981+module_exit(fsl_edma_exit);
972982
973983 MODULE_ALIAS("platform:fsl-edma");
974984 MODULE_DESCRIPTION("Freescale eDMA engine driver");
drivers/dma/sirf-dma.c+1−1
@@ -666,7 +666,7 @@ static struct dma_chan *of_dma_sirfsoc_xlate(struct of_phandle_args *dma_spec, · 665 unmodified lines
666666 struct sirfsoc_dma *sdma = ofdma->of_dma_data;
667667 unsigned int request = dma_spec->args[0];
668668
669− if (request > SIRFSOC_DMA_CHANNELS)
669+ if (request >= SIRFSOC_DMA_CHANNELS)
670670 return NULL;
671671
672672 return dma_get_slave_channel(&sdma->channels[request].chan);
drivers/media/platform/Kconfig+1−1
@@ -56,7 +56,7 @@ config VIDEO_VIU · 55 unmodified lines
5656
5757 config VIDEO_TIMBERDALE
5858 tristate "Support for timberdale Video In/LogiWIN"
59− depends on VIDEO_V4L2 && I2C && DMADEVICES
59+ depends on MFD_TIMBERDALE && VIDEO_V4L2 && I2C && DMADEVICES
6060 select DMA_ENGINE
6161 select TIMB_DMA
6262 select VIDEO_ADV7180