Commit 372feacb authored by Linus Torvalds's avatar Linus Torvalds

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
parents 5269519f 8edc51c1
...@@ -197,7 +197,7 @@ config AMCC_PPC440SPE_ADMA ...@@ -197,7 +197,7 @@ config AMCC_PPC440SPE_ADMA
config TIMB_DMA config TIMB_DMA
tristate "Timberdale FPGA DMA support" tristate "Timberdale FPGA DMA support"
depends on MFD_TIMBERDALE || HAS_IOMEM depends on MFD_TIMBERDALE
select DMA_ENGINE select DMA_ENGINE
help help
Enable support for the Timberdale FPGA DMA engine. Enable support for the Timberdale FPGA DMA engine.
......
...@@ -182,11 +182,13 @@ static void edma_execute(struct edma_chan *echan) ...@@ -182,11 +182,13 @@ static void edma_execute(struct edma_chan *echan)
echan->ecc->dummy_slot); echan->ecc->dummy_slot);
} }
edma_resume(echan->ch_num);
if (edesc->processed <= MAX_NR_SG) { if (edesc->processed <= MAX_NR_SG) {
dev_dbg(dev, "first transfer starting %d\n", echan->ch_num); dev_dbg(dev, "first transfer starting %d\n", echan->ch_num);
edma_start(echan->ch_num); edma_start(echan->ch_num);
} else {
dev_dbg(dev, "chan: %d: completed %d elements, resuming\n",
echan->ch_num, edesc->processed);
edma_resume(echan->ch_num);
} }
/* /*
......
...@@ -968,7 +968,17 @@ static struct platform_driver fsl_edma_driver = { ...@@ -968,7 +968,17 @@ static struct platform_driver fsl_edma_driver = {
.remove = fsl_edma_remove, .remove = fsl_edma_remove,
}; };
module_platform_driver(fsl_edma_driver); static int __init fsl_edma_init(void)
{
return platform_driver_register(&fsl_edma_driver);
}
subsys_initcall(fsl_edma_init);
static void __exit fsl_edma_exit(void)
{
platform_driver_unregister(&fsl_edma_driver);
}
module_exit(fsl_edma_exit);
MODULE_ALIAS("platform:fsl-edma"); MODULE_ALIAS("platform:fsl-edma");
MODULE_DESCRIPTION("Freescale eDMA engine driver"); MODULE_DESCRIPTION("Freescale eDMA engine driver");
......
...@@ -666,7 +666,7 @@ static struct dma_chan *of_dma_sirfsoc_xlate(struct of_phandle_args *dma_spec, ...@@ -666,7 +666,7 @@ static struct dma_chan *of_dma_sirfsoc_xlate(struct of_phandle_args *dma_spec,
struct sirfsoc_dma *sdma = ofdma->of_dma_data; struct sirfsoc_dma *sdma = ofdma->of_dma_data;
unsigned int request = dma_spec->args[0]; unsigned int request = dma_spec->args[0];
if (request > SIRFSOC_DMA_CHANNELS) if (request >= SIRFSOC_DMA_CHANNELS)
return NULL; return NULL;
return dma_get_slave_channel(&sdma->channels[request].chan); return dma_get_slave_channel(&sdma->channels[request].chan);
......
...@@ -56,7 +56,7 @@ config VIDEO_VIU ...@@ -56,7 +56,7 @@ config VIDEO_VIU
config VIDEO_TIMBERDALE config VIDEO_TIMBERDALE
tristate "Support for timberdale Video In/LogiWIN" tristate "Support for timberdale Video In/LogiWIN"
depends on VIDEO_V4L2 && I2C && DMADEVICES depends on MFD_TIMBERDALE && VIDEO_V4L2 && I2C && DMADEVICES
select DMA_ENGINE select DMA_ENGINE
select TIMB_DMA select TIMB_DMA
select VIDEO_ADV7180 select VIDEO_ADV7180
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment