dma: shdma: transfer based runtime PM
Currently the shdma dmaengine driver uses runtime PM to save power, when no channel on the specific controller is requested by a user. This patch switches the driver to count individual DMA transfers. That way the controller can be powered down between transfers, even if some of its channels are in use. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
This commit is contained in:
committed by
Vinod Koul
parent
b4dae6e1ad
commit
7a1cd9ad87
@@ -23,6 +23,12 @@
|
||||
|
||||
struct device;
|
||||
|
||||
enum dmae_pm_state {
|
||||
DMAE_PM_ESTABLISHED,
|
||||
DMAE_PM_BUSY,
|
||||
DMAE_PM_PENDING,
|
||||
};
|
||||
|
||||
struct sh_dmae_chan {
|
||||
dma_cookie_t completed_cookie; /* The maximum cookie completed */
|
||||
spinlock_t desc_lock; /* Descriptor operation lock */
|
||||
@@ -38,6 +44,7 @@ struct sh_dmae_chan {
|
||||
u32 __iomem *base;
|
||||
char dev_id[16]; /* unique name per DMAC of channel */
|
||||
int pm_error;
|
||||
enum dmae_pm_state pm_state;
|
||||
};
|
||||
|
||||
struct sh_dmae_device {
|
||||
|
||||
Reference in New Issue
Block a user