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
197 197
198config TIMB_DMA198config TIMB_DMA
199 tristate "Timberdale FPGA DMA support"199 tristate "Timberdale FPGA DMA support"
200 depends on MFD_TIMBERDALE || HAS_IOMEM200 depends on MFD_TIMBERDALE
201 select DMA_ENGINE201 select DMA_ENGINE
202 help202 help
203 Enable support for the Timberdale FPGA DMA engine.203 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
182 echan->ecc->dummy_slot);182 echan->ecc->dummy_slot);
183 }183 }
184 184
185 edma_resume(echan->ch_num);
186
187 if (edesc->processed <= MAX_NR_SG) {185 if (edesc->processed <= MAX_NR_SG) {
188 dev_dbg(dev, "first transfer starting %d\n", echan->ch_num);186 dev_dbg(dev, "first transfer starting %d\n", echan->ch_num);
189 edma_start(echan->ch_num);187 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);
190 }192 }
191 193
192 /*194 /*
drivers/dma/fsl-edma.c+11−1
@@ -968,7 +968,17 @@ static struct platform_driver fsl_edma_driver = { · 967 unmodified lines
968 .remove = fsl_edma_remove,968 .remove = fsl_edma_remove,
969};969};
970 970
971module_platform_driver(fsl_edma_driver);971static int __init fsl_edma_init(void)
972{
973 return platform_driver_register(&fsl_edma_driver);
974}
975subsys_initcall(fsl_edma_init);
976
977static void __exit fsl_edma_exit(void)
978{
979 platform_driver_unregister(&fsl_edma_driver);
980}
981module_exit(fsl_edma_exit);
972 982
973MODULE_ALIAS("platform:fsl-edma");983MODULE_ALIAS("platform:fsl-edma");
974MODULE_DESCRIPTION("Freescale eDMA engine driver");984MODULE_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
666 struct sirfsoc_dma *sdma = ofdma->of_dma_data;666 struct sirfsoc_dma *sdma = ofdma->of_dma_data;
667 unsigned int request = dma_spec->args[0];667 unsigned int request = dma_spec->args[0];
668 668
669 if (request > SIRFSOC_DMA_CHANNELS)669 if (request >= SIRFSOC_DMA_CHANNELS)
670 return NULL;670 return NULL;
671 671
672 return dma_get_slave_channel(&sdma->channels[request].chan);672 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
56 56
57config VIDEO_TIMBERDALE57config VIDEO_TIMBERDALE
58 tristate "Support for timberdale Video In/LogiWIN"58 tristate "Support for timberdale Video In/LogiWIN"
59 depends on VIDEO_V4L2 && I2C && DMADEVICES59 depends on MFD_TIMBERDALE && VIDEO_V4L2 && I2C && DMADEVICES
60 select DMA_ENGINE60 select DMA_ENGINE
61 select TIMB_DMA61 select TIMB_DMA
62 select VIDEO_ADV718062 select VIDEO_ADV7180