Re: [PATCH] Revert "dmaengine: dw: Enable runtime PM"

From: Cezary Rojewski
Date: Wed Feb 03 2021 - 14:24:16 EST


On 2021-02-03 6:08 PM, Andy Shevchenko wrote:
On Wed, Feb 3, 2021 at 7:06 PM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:

On Wed, Feb 3, 2021 at 5:53 PM Cezary Rojewski
<cezary.rojewski@xxxxxxxxx> wrote:

This reverts commit 842067940a3e3fc008a60fee388e000219b32632.
For some solutions e.g. sound/soc/intel/catpt, DW DMA is part of a
compound device (in that very example, domains: ADSP, SSP0, SSP1, DMA0
and DMA1 are part of a single entity) rather than being a standalone
one. Driver for said device may enlist DMA to transfer data during
suspend or resume sequences.

Manipulating RPM explicitly in dw's DMA request and release channel
functions causes suspend() to also invoke resume() for the exact same
device. Similar situation occurs for resume() sequence. Effectively
renders device dysfunctional after first suspend() attempt. Revert the
change to address the problem.

I kinda had the mixed feelings about this, thanks for the report.

Side note: the better solution in general seems to have a specific
power domain for the ASoC multi-function devices (if ever you move to
use auxiliary bus, it may be done easier I think).

This is an area I haven't touched yet. Will definitely check it out.

Thanks for the recommendations, Andy. Much appreciated.

Regards,
Czarek