diff options
| author | Bard Liao <yung-chuan.liao@linux.intel.com> | 2026-04-28 11:46:12 +0300 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2026-05-07 10:33:39 +0300 |
| commit | c368dd5cbd61ffab2b6f8a89b0d5775e2e16cde6 (patch) | |
| tree | f20bcef1f10259d724fa5834e9f2adb68d61449e | |
| parent | 45c7bda7b7440183850012153988e40b300f40d0 (diff) | |
| download | linux-c368dd5cbd61ffab2b6f8a89b0d5775e2e16cde6.tar.xz | |
soundwire: don't program SDW_SCP_BUSCLOCK_SCALE on a unattached Peripheral
The SDW_SCP_BUSCLOCK_SCALE register will be programmed when the
Peripheral is attached. We can and should skip programming the
SDW_SCP_BUSCLOCK_SCALE register when the Peripheral is unattached.
Fixes: 645291cfe5e5 ("Soundwire: stream: program BUSCLOCK_SCALE")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Simon Trimmer <simont@opensource.cirrus.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20260428084612.322701-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
| -rw-r--r-- | drivers/soundwire/stream.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c index c1ef177a0021..cdac009b1a75 100644 --- a/drivers/soundwire/stream.c +++ b/drivers/soundwire/stream.c @@ -697,6 +697,13 @@ static int sdw_program_params(struct sdw_bus *bus, bool prepare) if (scale_index < 0) return scale_index; + /* Skip the unattached Peripherals */ + if (!completion_done(&slave->enumeration_complete)) { + dev_warn(&slave->dev, + "Not enumerated, skip programming BUSCLOCK_SCALE\n"); + continue; + } + ret = sdw_write_no_pm(slave, addr1, scale_index); if (ret < 0) { dev_err(&slave->dev, "SDW_SCP_BUSCLOCK_SCALE register write failed\n"); |
