]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commit
dmaengine-dma: tegra210-adma: Fix channel restoration
authorJon Hunter <jonathanh@nvidia.com>
Wed, 10 Jan 2018 14:27:45 +0000 (14:27 +0000)
committermobile promotions <svcmobile_promotions@nvidia.com>
Mon, 22 Jan 2018 17:01:09 +0000 (09:01 -0800)
commit87bbe240a25101ccf408b972f1bfaf5ab796d024
tree53b103ae33b8e6a4b737176cdf74dcdec61c3102
parent87b38f9a8deffec0b87c0cbe11073ea176992c96
dmaengine-dma: tegra210-adma: Fix channel restoration

The ADMA CMD register state is not saved and restored during system
suspend. This register contains the enable bit for the channel. The
sound core will pause DMA channels during suspend rather than
terminate the DMA transfer if this is supported by the DMA
controller. When an ADMA channel is paused, the enable bit in the CMD
register is still set and if suspend is entered with a channel paused
it is not re-enabled during the restoration of the channels during
the system resume. Fix this by saving and restoring the CMD register
state when suspending the ADMA controller.

Bug 200363507

Change-Id: I822b551f024e44b2a1500e0378850b09e7a1ea69
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1636469
Reviewed-by: Mohan Kumar D <mkumard@nvidia.com>
Reviewed-by: Asha Talambedu <atalambedu@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
drivers/dma/tegra210-adma.c