mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps"
This reverts commitab8d66d132
because it breaks codecs using non-continuous masks in source and sink ports. The commit missed the point that port numbers are not used as indices for iterating over prop.sink_ports or prop.source_ports. Soundwire core and existing codecs expect that the array passed as prop.sink_ports and prop.source_ports is continuous. The port mask still might be non-continuous, but that's unrelated. Reported-by: Bard Liao <yung-chuan.liao@linux.intel.com> Closes: https://lore.kernel.org/all/b6c75eee-761d-44c8-8413-2a5b34ee2f98@linux.intel.com/ Fixes:ab8d66d132
("soundwire: stream: fix programming slave ports for non-continous port maps") Acked-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Cc: stable@vger.kernel.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Tested-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20240909164746.136629-1-krzysztof.kozlowski@linaro.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
431c1646e1
commit
233a95fd57
@ -1291,18 +1291,18 @@ struct sdw_dpn_prop *sdw_get_slave_dpn_prop(struct sdw_slave *slave,
|
||||
unsigned int port_num)
|
||||
{
|
||||
struct sdw_dpn_prop *dpn_prop;
|
||||
unsigned long mask;
|
||||
u8 num_ports;
|
||||
int i;
|
||||
|
||||
if (direction == SDW_DATA_DIR_TX) {
|
||||
mask = slave->prop.source_ports;
|
||||
num_ports = hweight32(slave->prop.source_ports);
|
||||
dpn_prop = slave->prop.src_dpn_prop;
|
||||
} else {
|
||||
mask = slave->prop.sink_ports;
|
||||
num_ports = hweight32(slave->prop.sink_ports);
|
||||
dpn_prop = slave->prop.sink_dpn_prop;
|
||||
}
|
||||
|
||||
for_each_set_bit(i, &mask, 32) {
|
||||
for (i = 0; i < num_ports; i++) {
|
||||
if (dpn_prop[i].num == port_num)
|
||||
return &dpn_prop[i];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user