On 04/16/2012 01:40 PM, Peter Ujfalusi wrote:
Because we need to write registers (configure McPBSP).
I don't know immediately does this require any major changes for McBSP register access that are done in function calls before omap_mcbsp_start (IRCC hwmod might set already ICLK gating for register access) but some code is needed to deal with McBSP register cache restore (due OMAP OFFMODE that might be hit) and most probably for McBSP FIFO draining as well.
I meant above if hwmod has already set ICLK so (was it autogating?) that manual enable/disable cycle for ICLK may not be needed for register access if clock is automatically gated. I have vague memory that I saw something like this in hwmod for some block but I'm not sure about this.
But that reminds me that did we have some use-case where FCLK was needed during register access?
What we need to do is to have proper register store/restore for McBSP to support suspend during audio activity. But. Even with that if the McBSP is hitting OFF mode we will loose the McBSP FIFO content (invalidated). This means we are going to have missing samples. Probably the user will not going to notice it, but it is going to happen.
For register store/restore there is already much implemented thanks to Janusz's register cache workaround for OMAP1510 :-)
For FIFO I was thinking, if possible, to drain it out before going to suspend.