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). -- With Best Regards, Andy Shevchenko