Re: [PATCH 2/2] soundWire: intel_auxdevice: resume 'sdw-master' on startup and system resume

From: Charles Keepax
Date: Fri Aug 04 2023 - 05:45:21 EST


On Thu, Aug 03, 2023 at 02:52:20PM +0800, Bard Liao wrote:
> From: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
>
> The SoundWire bus is handled with a dedicated device, which is placed
> between the Intel auxiliary device and peripheral devices, e.g.
>
> soundwire_intel.link.0/sdw-master-0/sdw:0:025d:0711:01
>
> The functionality of this 'sdw-master' device is limited, specifically
> for pm_runtime the ASoC framework will not rely on
> pm_runtime_get_sync() since it does not register any components. It
> will only change status thanks to the parent-child relationship which
> guarantees that the 'sdw-master' device will be pm_runtime resumed
> before any peripheral device.
>
> However on startup and system resume it's possible that only the
> auxiliary device is pm_runtime active, and the peripheral will only
> become active during its io_init routine, leading to another
> occurrence of the error reported by the pm_runtime framework:
>
> rt711 sdw:0:025d:0711:00: runtime PM trying to activate child device
> sdw:0:025d:0711:00 but parent (sdw-master-0) is not active
>
> This patch suggests aligning the sdw-master device status to that of
> the auxiliary device. The difference between the two is completely
> notional and their pm_status shouldn't be different during the startup
> and system resume steps.
>
> This problem was exposed by recent changes in the timing of the bus
> reset, but was present in this driver since we introduced pm_runtime
> support.
>
> Closes: https://github.com/thesofproject/linux/issues/4328
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx>
> Reviewed-by: Rander Wang <rander.wang@xxxxxxxxx>
> Signed-off-by: Bard Liao <yung-chuan.liao@xxxxxxxxxxxxxxx>
> ---

Tested-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx>

Thanks,
Charles