On Sat, Oct 24, 2015 at 02:21:04AM +0530, maruthi srinivas wrote:
On Sat, Oct 24, 2015 at 1:01 AM, Mark Brown broonie@kernel.org wrote:
+static void acp_turnoff_sram_banks(void __iomem *acp_mmio) +{
/* Bank 0 : used for DMA descriptors
* Bank 1 to 4 : used for playback
* Bank 5 to 8 : used for capture
SRAM banks are part of ACP IP. With ACP's runtime PM handling, all blocks within ACP IP can be powered-off and on.
So why can't that cope with these banks then?
Maybe Iam not clear before. I mean that memory banks which wont be needed at all are turned off forever. Using runtime PM, when complete ACP IP gets powered-off all the banks(including the ones used for play/capture) within IP are turned off. When IP is runtime resumed, though all banks gets turned on, the unused banks are turned off again. With this, Iam trying to achieve runtime management.
So the initialisation that's done to power off the unused memory banks somehow gets preserved when the block is powered off during runtime power management? It's really not clear, this looks like it's only called once on init.
Obviously it's also less power efficient than it could be too since it's going to (so far as I can tell) keep the playback and capture areas powered up even when only one is in use.