diff mbox

[V2,4/6] dmaengine: tegra-apb: Only save channel state for those in use

Message ID 1447075429-27311-5-git-send-email-jonathanh@nvidia.com
State Superseded, archived
Headers show

Commit Message

Jon Hunter Nov. 9, 2015, 1:23 p.m. UTC
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>
---
 drivers/dma/tegra20-apb-dma.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Andy Shevchenko Nov. 9, 2015, 1:58 p.m. UTC | #1
On Mon, Nov 9, 2015 at 3:23 PM, Jon Hunter <jonathanh@nvidia.com> wrote:
> 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.

Nitpick

> +               /*
> +                * Only save the state of DMA channels that are in use.
> +                */

One line?

> +               /*
> +                * Only restore the state of DMA channels that are in use.
> +                */

Same.
Jon Hunter Nov. 10, 2015, 9:57 a.m. UTC | #2
On 09/11/15 13:58, Andy Shevchenko wrote:
> On Mon, Nov 9, 2015 at 3:23 PM, Jon Hunter <jonathanh@nvidia.com> wrote:
>> 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.
> 
> Nitpick
> 
>> +               /*
>> +                * Only save the state of DMA channels that are in use.
>> +                */
> 
> One line?
> 
>> +               /*
>> +                * Only restore the state of DMA channels that are in use.
>> +                */
> 
> Same.

Ok.

Jon

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 94f59c3fcdca..4fc0851069cd 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -1544,6 +1544,12 @@  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);
@@ -1577,6 +1583,12 @@  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);