linux 6.0.y: misc_additions: Remove soundwire: intel: Initialize clock stop timeout
fix.
Merged upstream with 6.0.13 Fixes https://github.com/Frogging-Family/linux-tkg/issues/664
This commit is contained in:
@@ -388,38 +388,3 @@ index 1fd3cbca20a2..c7bf189d50de 100644
|
|||||||
--
|
--
|
||||||
2.25.1
|
2.25.1
|
||||||
|
|
||||||
From fb23dad87a0bfb6fdfde3dc1d18104da631d050a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sjoerd Simons <sjoerd@collabora.com>
|
|
||||||
Date: Sat, 8 Oct 2022 21:57:51 +0200
|
|
||||||
Subject: [PATCH] soundwire: intel: Initialize clock stop timeout
|
|
||||||
|
|
||||||
The bus->clk_stop_timeout member is only initialized to a non-zero value
|
|
||||||
during the codec driver probe. This can lead to corner cases where this
|
|
||||||
value remains pegged at zero when the bus suspends, which results in an
|
|
||||||
endless loop in sdw_bus_wait_for_clk_prep_deprep().
|
|
||||||
|
|
||||||
Corner cases include configurations with no codecs described in the
|
|
||||||
firmware, or delays in probing codec drivers.
|
|
||||||
|
|
||||||
Initializing the default timeout to the smallest non-zero value avoid this
|
|
||||||
problem and allows for the existing logic to be preserved: the
|
|
||||||
bus->clk_stop_timeout is set as the maximum required by all codecs
|
|
||||||
connected on the bus.
|
|
||||||
|
|
||||||
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
|
|
||||||
---
|
|
||||||
drivers/soundwire/intel.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
|
|
||||||
index af6c1a93372d90..002bc26b525e87 100644
|
|
||||||
--- a/drivers/soundwire/intel.c
|
|
||||||
+++ b/drivers/soundwire/intel.c
|
|
||||||
@@ -1307,6 +1307,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
|
|
||||||
cdns->msg_count = 0;
|
|
||||||
|
|
||||||
bus->link_id = auxdev->id;
|
|
||||||
+ bus->clk_stop_timeout = 1;
|
|
||||||
|
|
||||||
sdw_cdns_probe(cdns);
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user