[alsa-devel] OMAP-McBSP driver not allowing suspend/resume

Aggarwal, Anuj anuj.aggarwal at ti.com
Fri Nov 6 15:24:10 CET 2009

> -----Original Message-----
> From: Dasgupta, Romit
> Sent: Friday, November 06, 2009 7:22 PM
> To: Aggarwal, Anuj; linux-omap at vger.kernel.org; alsa-devel at alsa-
> project.org
> Subject: RE: OMAP-McBSP driver not allowing suspend/resume
> > As can be seen from the log, both the CORE and PER power domains
> > are not going to the suspend state.
> >
> > On further debug, I found that McBSP 2 instance belongs to the
> > PER domain whereas SDMA belongs to CORE domain. And at least
> > McBSP driver (on l-o tip) doesn't allow disabling of the clocks
> > unless McBSP instance itself is freed. Because of this, when
> > McBSP is stopped after receiving the suspend request, the
> > clocks are still ON and the PER domain is not allowed to enter
> > to the desired low-power state.
> >
> Yes, the McBSP clocks are enabled when the PCM substream is opened and
> released only when the pcm substream is closed. There are no
> .suspend/.resume callbacks in the mcbsp driver today. You need to save
> context of McBSP and disable clocks on suspend and enable clocks and
> restore context on resume.
Ok, I got that. And I think the same needs to be done for sdma as well.
I can see omap_dma_global_context_save/ omap_dma_global_context_restore being called from omap3_core_save_context/omap3_core_restore_context 
which is saving the global sdma configuration registers. But I think sdma channel specific registers need to be saved too for the active channels.

More information about the Alsa-devel mailing list