diff options
author | Claudiu Beznea <claudiu.beznea@microchip.com> | 2023-02-14 16:18:22 +0100 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2023-04-12 19:48:44 +0200 |
commit | e53957e1ec5196671e49a48f90a5c9555153189a (patch) | |
tree | a823ad07ace04ac1a9dbeaef91e4f07e385037a6 /drivers/dma/ipu | |
parent | dmaengine: at_xdmac: disable/enable clock directly on suspend/resume (diff) | |
download | linux-e53957e1ec5196671e49a48f90a5c9555153189a.tar.xz linux-e53957e1ec5196671e49a48f90a5c9555153189a.zip |
dmaengine: at_xdmac: fix imbalanced runtime PM reference counter
In case there are channels not paused during suspend (which on AT91 case
is valid for serial driver when no_console_suspend boot argument is used)
the at_xdmac_runtime_suspend_descriptors() was called more than
one time due to at_xdmac_off(). To fix this add a new argument to
at_xdmac_off() to specify if runtime PM reference counter needs to be
decremented for queued active descriptors. Along with it moved the
at_xdmac_runtime_suspend_descriptors() call under at_xdmac_chan_is_paused()
check on suspend path as for the rest of channels the suspend is delayed
by atmel_xdmac_prepare() in case channel is enabled. Same approach has
been applied on resume path.
Fixes: 650b0e990cbd ("dmaengine: at_xdmac: add runtime pm support")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20230214151827.1050280-3-claudiu.beznea@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/ipu')
0 files changed, 0 insertions, 0 deletions