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
Unified · Split
| @@ -197,7 +197,7 @@ config AMCC_PPC440SPE_ADMA · 196 unmodified lines | ||
| 197 | 197 | |
| 198 | 198 | config TIMB_DMA |
| 199 | 199 | tristate "Timberdale FPGA DMA support" |
| 200 | − depends on MFD_TIMBERDALE || HAS_IOMEM | |
| 200 | + depends on MFD_TIMBERDALE | |
| 201 | 201 | select DMA_ENGINE |
| 202 | 202 | help |
| 203 | 203 | Enable support for the Timberdale FPGA DMA engine. |
| @@ -182,11 +182,13 @@ static void edma_execute(struct edma_chan *echan) · 181 unmodified lines | ||
| 182 | 182 | echan->ecc->dummy_slot); |
| 183 | 183 | } |
| 184 | 184 | |
| 185 | − edma_resume(echan->ch_num); | |
| 186 | − | |
| 187 | 185 | if (edesc->processed <= MAX_NR_SG) { |
| 188 | 186 | dev_dbg(dev, "first transfer starting %d\n", echan->ch_num); |
| 189 | 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 | /* |
| @@ -968,7 +968,17 @@ static struct platform_driver fsl_edma_driver = { · 967 unmodified lines | ||
| 968 | 968 | .remove = fsl_edma_remove, |
| 969 | 969 | }; |
| 970 | 970 | |
| 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); | |
| 972 | 982 | |
| 973 | 983 | MODULE_ALIAS("platform:fsl-edma"); |
| 974 | 984 | MODULE_DESCRIPTION("Freescale eDMA engine driver"); |
| @@ -666,7 +666,7 @@ static struct dma_chan *of_dma_sirfsoc_xlate(struct of_phandle_args *dma_spec, · 665 unmodified lines | ||
| 666 | 666 | struct sirfsoc_dma *sdma = ofdma->of_dma_data; |
| 667 | 667 | unsigned int request = dma_spec->args[0]; |
| 668 | 668 | |
| 669 | − if (request > SIRFSOC_DMA_CHANNELS) | |
| 669 | + if (request >= SIRFSOC_DMA_CHANNELS) | |
| 670 | 670 | return NULL; |
| 671 | 671 | |
| 672 | 672 | return dma_get_slave_channel(&sdma->channels[request].chan); |
| @@ -56,7 +56,7 @@ config VIDEO_VIU · 55 unmodified lines | ||
| 56 | 56 | |
| 57 | 57 | config VIDEO_TIMBERDALE |
| 58 | 58 | tristate "Support for timberdale Video In/LogiWIN" |
| 59 | − depends on VIDEO_V4L2 && I2C && DMADEVICES | |
| 59 | + depends on MFD_TIMBERDALE && VIDEO_V4L2 && I2C && DMADEVICES | |
| 60 | 60 | select DMA_ENGINE |
| 61 | 61 | select TIMB_DMA |
| 62 | 62 | select VIDEO_ADV7180 |