Skip to content
Commit f390c945 authored by Vignesh Raghavendra's avatar Vignesh Raghavendra Committed by Xulin Sun
Browse files

dmaengine: k3-udma: Add system suspend/resume support

commit 0d12c035ce912a04907d8dd73e36142aaea8d0d8 from
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git

The K3 platforms configure the DMA resources with the
help of the TI's System Firmware's Device Manager(DM)
over TISCI. The group of DMA related Resource Manager[1]
TISCI messages includes: INTA, RINGACC, UDMAP, and PSI-L.
This configuration however, does not persist in the DM
after leaving from Suspend-to-RAM state. We have to restore
the DMA channel configuration over TISCI for all configured
channels when entering suspend.

The TISCI resource management calls for each DMA type (UDMA,
PKTDMA, BCDMA) happen in device_free_chan_resources() and
device_alloc_chan_resources(). In pm_suspend() we store
the current udma_chan_config for channels that still have
attached clients and call device_free_chan_resources().
In pm_resume() restore the udma_channel_config from backup
and call device_alloc_chan_resources() for those channels.
Drivers like CPSW do their own DMA resource management,
so use the late system suspend/resume hooks.

[1] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/index.html#resource-management-rm



Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
[g-vlaev@ti.com: Add udma_chan_config backup]
[g-vlaev@ti.com: Supend only channels with clients]
Signed-off-by: default avatarGeorgi Vlaev <g-vlaev@ti.com>
Signed-off-by: default avatarXulin Sun <xulin.sun@windriver.com>
parent 4a7b47c0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment