lkml.org 
[lkml]   [2015]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/6] dmaengine: tegra-apb: Only save channel state for those in use
    Date
    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 06063d370272..35723703d4b9 100644
    --- a/drivers/dma/tegra20-apb-dma.c
    +++ b/drivers/dma/tegra20-apb-dma.c
    @@ -1539,6 +1539,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);
    @@ -1572,6 +1578,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


    \
     
     \ /
      Last update: 2015-10-16 11:01    [W:4.270 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site