kernel_optimize_test/drivers/soundwire
Pierre-Louis Bossart df40cc8c1c soundwire: master: use pm_runtime_set_active() on add
[ Upstream commit e04e60fce47e61743a8726d76b0149c1f4ad8957 ]

The 'master' device acts as a glue layer used during bus
initialization only, and it needs to be 'transparent' for pm_runtime
management. Its behavior should be that it becomes active when one of
its children becomes active, and suspends when all of its children are
suspended.

In our tests on Intel platforms, we routinely see these sort of
warnings on the initial boot:

[ 21.447345] rt715 sdw:3:25d:715:0: runtime PM trying to activate
child device sdw:3:25d:715:0 but parent (sdw-master-3) is not active

This is root-caused to a missing setup to make the device 'active' on
probe. Since we don't want the device to remain active forever after
the probe, the autosuspend configuration is also enabled at the end of
the probe - the device will actually autosuspend only in the case
where there are no devices physically attached. In practice, the
master device will suspend when all its children are no longer active.

Fixes: bd84256e86 ('soundwire: master: enable pm runtime')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20201124130742.10986-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-30 11:53:28 +01:00
..
bus_type.c soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
bus.c soundwire updates for 5.10-rc1 2020-10-01 22:59:55 +02:00
bus.h soundwire: bus: add enumerated Slave device to device list 2020-09-28 11:17:40 +05:30
cadence_master.c soundwire: cadence: add data port test fail interrupt 2020-09-23 15:29:30 +05:30
cadence_master.h soundwire: cadence: fix race condition between suspend and Slave device alerts 2020-09-09 13:14:42 +05:30
debugfs.c soundwire: debugfs: clarify SDPX license with GPL-2.0-only 2020-05-05 08:51:44 +05:30
generic_bandwidth_allocation.c soundwire: remove an unnecessary NULL check 2020-09-23 15:34:48 +05:30
intel_init.c soundwire: intel_init: use FIELD_{GET|PREP} 2020-09-04 14:46:42 +05:30
intel.c soundwire: intel: enable test modes 2020-09-23 15:29:30 +05:30
intel.h soundwire: intel: pass link_mask information to each master 2020-09-03 16:14:39 +05:30
Kconfig soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
Makefile soundwire: Add generic bandwidth allocation algorithm 2020-09-18 17:48:51 +05:30
master.c soundwire: master: use pm_runtime_set_active() on add 2020-12-30 11:53:28 +01:00
mipi_disco.c soundwire: fix port_ready[] dynamic allocation in mipi_disco 2020-09-03 16:02:29 +05:30
qcom.c soundwire: qcom: Fix build failure when slimbus is module 2020-12-30 11:53:22 +01:00
slave.c soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30
stream.c soundwire updates for 5.10-rc1 2020-10-01 22:59:55 +02:00
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-12-30 11:53:20 +01:00
sysfs_slave.c soundwire: sysfs: add slave status and device number before probe 2020-09-28 11:17:43 +05:30