linux/drivers/soundwire
Pierre-Louis Bossart f903128811 soundWire: intel_auxdevice: resume 'sdw-master' on startup and system resume
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@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230803065220.3823269-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2023-08-11 07:54:56 +01:00
..
amd_manager.c soundwire: amd: Improve error message in remove callback 2023-05-29 10:49:46 +05:30
amd_manager.h soundwire: amd: handle SoundWire wake enable interrupt 2023-04-12 15:30:36 +05:30
bus_type.c soundwire updates for 6.3 2023-02-24 17:29:52 -08:00
bus.c soundwire: bus: Prevent lockdep asserts when stream has multiple buses 2023-06-21 16:31:44 +05:30
bus.h soundwire: export sdw_compute_slave_ports() function 2023-04-12 15:30:35 +05:30
cadence_master.c soundwire: cadence: revisit parity injection 2023-05-29 10:49:47 +05:30
cadence_master.h soundwire: intel/cadence: update hardware reset sequence 2023-05-29 10:49:47 +05:30
debugfs.c soundwire: debugfs: Add missing SCP registers 2023-06-08 17:10:32 +05:30
dmi-quirks.c soundwire: dmi-quirks: add new mapping for HP Spectre x360 2023-05-27 16:07:47 +05:30
generic_bandwidth_allocation.c soundwire: bandwidth allocation: Remove pointless variable 2023-06-08 17:09:11 +05:30
intel_ace2x_debugfs.c soundwire: intel_ace2x: add debugfs support 2023-05-27 16:06:45 +05:30
intel_ace2x.c soundwire: intel_ace2x: add pre/post bank switch callbacks 2023-05-27 16:06:47 +05:30
intel_auxdevice.c soundWire: intel_auxdevice: resume 'sdw-master' on startup and system resume 2023-08-11 07:54:56 +01:00
intel_auxdevice.h soundwire: intel: split auxdevice to different file 2022-11-23 20:11:49 +05:30
intel_bus_common.c soundwire: intel/cadence: update hardware reset sequence 2023-05-29 10:49:47 +05:30
intel_init.c soundwire: intel_init: use eml_lock parameter 2023-05-27 16:06:45 +05:30
intel.c soundwire: intel: read AC timing control register before updating it 2023-05-27 16:08:48 +05:30
intel.h soundwire: intel_ace2x: add debugfs support 2023-05-27 16:06:45 +05:30
Kconfig soundwire: intel_ace2x: fix SND_SOC_SOF_HDA_MLINK dependency 2023-06-21 16:19:44 +05:30
Makefile soundwire: intel_ace2x: add debugfs support 2023-05-27 16:06:45 +05:30
master.c soundwire: master: use pm_runtime_set_active() on add 2020-12-02 12:49:34 +05:30
mipi_disco.c soundwire: fix port_ready[] dynamic allocation in mipi_disco 2020-09-03 16:02:29 +05:30
qcom.c soundwire: Explicitly include correct DT includes 2023-07-17 12:10:49 +05:30
slave.c Char / Misc driver changes for 6.0-rc1 2022-08-04 11:05:48 -07:00
stream.c soundwire: stream: Make master_list ordered to prevent deadlocks 2023-06-21 16:31:45 +05:30
sysfs_local.h soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
sysfs_slave_dpn.c soundwire: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute 2020-11-24 14:08:51 +05:30
sysfs_slave.c soundwire: sysfs: Constify static struct attribute_group 2021-01-19 20:21:20 +05:30