Hi Mark Cc: Laurent
Thank you for your feedback
Current Renesas Sound driver requests DMA channel when .probe timing, and release it when .remove timing. And use DMA on .start/.stop But, Audio DMAC power ON was handled when request timing (= .probe), and power OFF was when release timing (= .remove). This means Audio DMAC power is always ON during driver was enabled. This patch fixup to request/release DMA channel each time.
Isn't this something which should be handled by better power management in the DMA driver rather than this?
I discussed about this topic with Laurent. Yes, the best choice is that DMAEngine side should care about it, but, it can't on current DMAEngine design.
# We need to call pm_runtime_get_sync() to power the hardware on # which can't be called in atomic context. # And dma_async_issue_pending() needs to be callable in atomic context # so to fix this we would likely need to extend the DMA engine API
So, current *better* choice is sound driver request/release DMA channel each time.
I will post v2 patch with [1/8] update