mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 07:10:27 +00:00
dmaengine: tegra-apb: Only save channel state for those in use
Currently the tegra-apb DMA driver suspend/resume helpers, save and restore the registers for all channels regardless of whether they are in use or not. Change this so that only channels that have been allocated and configured are saved and restored. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
parent
68ae7a93fb
commit
4aad5be040
@ -1545,6 +1545,10 @@ static int tegra_dma_pm_suspend(struct device *dev)
|
||||
struct tegra_dma_channel *tdc = &tdma->channels[i];
|
||||
struct tegra_dma_channel_regs *ch_reg = &tdc->channel_reg;
|
||||
|
||||
/* Only save the state of DMA channels that are in use */
|
||||
if (!tdc->config_init)
|
||||
continue;
|
||||
|
||||
ch_reg->csr = tdc_read(tdc, TEGRA_APBDMA_CHAN_CSR);
|
||||
ch_reg->ahb_ptr = tdc_read(tdc, TEGRA_APBDMA_CHAN_AHBPTR);
|
||||
ch_reg->apb_ptr = tdc_read(tdc, TEGRA_APBDMA_CHAN_APBPTR);
|
||||
@ -1579,6 +1583,10 @@ static int tegra_dma_pm_resume(struct device *dev)
|
||||
struct tegra_dma_channel *tdc = &tdma->channels[i];
|
||||
struct tegra_dma_channel_regs *ch_reg = &tdc->channel_reg;
|
||||
|
||||
/* Only restore the state of DMA channels that are in use */
|
||||
if (!tdc->config_init)
|
||||
continue;
|
||||
|
||||
if (tdma->chip_data->support_separate_wcount_reg)
|
||||
tdc_write(tdc, TEGRA_APBDMA_CHAN_WCOUNT,
|
||||
ch_reg->wcount);
|
||||
|
Loading…
x
Reference in New Issue
Block a user