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);
                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);