Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1265659
| From | Jon Hunter <jonathanh@nvidia.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use |
| Date | 2015-11-09 14:30 +0100 |
| Message-ID | <qsUGe-6X1-17@gated-at.bofh.it> (permalink) |
| References | <qsUGe-6X1-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
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(+) 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); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V2 0/6] DMA: tegra-apb: Clean-up Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 3/6] dmaengine: tegra-apb: Save and restore word count Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
Re: [PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Andy Shevchenko <andy.shevchenko@gmail.com> - 2015-11-09 15:00 +0100
Re: [PATCH V2 4/6] dmaengine: tegra-apb: Only save channel state for those in use Jon Hunter <jonathanh@nvidia.com> - 2015-11-10 11:00 +0100
[PATCH V2 2/6] dmaengine: tegra-apb: Use dev_get_drvdata() Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
Re: [PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Andy Shevchenko <andy.shevchenko@gmail.com> - 2015-11-09 15:00 +0100
Re: [PATCH V2 1/6] dmaengine: tegra-apb: Correct runtime-pm usage Jon Hunter <jonathanh@nvidia.com> - 2015-11-10 11:00 +0100
[PATCH V2 6/6] dmaengine: tegra-apb: Free interrupts before killing tasklets Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
[PATCH V2 5/6] dmaengine: tegra-apb: Update driver to use GFP_NOWAIT Jon Hunter <jonathanh@nvidia.com> - 2015-11-09 14:30 +0100
csiph-web