mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
soundwire: only compute port params in specific stream states
Currently, sdw_compute_master_ports() is blindly called for every single
Manager runtime. However, we should not take into account the stream's
bandwidth if the stream is just allocated or already deprepared.
Fixes: 25befdf32a
("soundwire: generic_bandwidth_allocation: count the bandwidth of active streams only")
Link: https://github.com/thesofproject/linux/issues/5398
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20250508062029.6596-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
d028b57b77
commit
62ada17a62
@ -204,6 +204,13 @@ static void _sdw_compute_port_params(struct sdw_bus *bus,
|
|||||||
port_bo = 1;
|
port_bo = 1;
|
||||||
|
|
||||||
list_for_each_entry(m_rt, &bus->m_rt_list, bus_node) {
|
list_for_each_entry(m_rt, &bus->m_rt_list, bus_node) {
|
||||||
|
/*
|
||||||
|
* Only runtimes with CONFIGURED, PREPARED, ENABLED, and DISABLED
|
||||||
|
* states should be included in the bandwidth calculation.
|
||||||
|
*/
|
||||||
|
if (m_rt->stream->state > SDW_STREAM_DISABLED ||
|
||||||
|
m_rt->stream->state < SDW_STREAM_CONFIGURED)
|
||||||
|
continue;
|
||||||
sdw_compute_master_ports(m_rt, ¶ms[i], &port_bo, hstop);
|
sdw_compute_master_ports(m_rt, ¶ms[i], &port_bo, hstop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user