Manjunath, "G, Manjunath Kondaiah" <manjugk@xxxxxx> writes: > While using pm runtime API's with DMA, it was observed that, during > omap_free_dma, pm_runtime_put_sync is called which results in warning > dump. It looks like, when cpu idle patch is under processing, DMA > interrupt gets fired which inturn call omap_free_dma which results > multiple spin_locks. > > The DMA driver uses *_get_sync during omap_request_dma and *_put_sync during > omap_free_dma. > > Environment: > Kernel: > git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git > Branch: master > Commit: 99cf630 Linux-omap rebuilt: Fixed omap4 kernel panic without nosmp, > updated to -rc7 > + > DMA hwmod patches > > defconfig: omap2plus_defconfig > board: OMAP3630 Zoom3 > > Is this a known issue or issue with pm runtime API usage in DMA driver? It's an issue in the runtime PM usage in DMA driver. Specifically, the _sync versions of the API cannot be used from interrupt context because they can sleep. Are the _sync versions really needed at that point? Without having the code, I cannot tell, but I susupect that the async versions could be used there instead. If not, then the code will need to be reworked so the ISR is not doing the actual work, but instead is scheduling work to be done later in process context. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html