| From 526d27ea308de1db0acc5a4ce7592f62cc1addb2 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 9 Mar 2021 10:48:16 +0000 |
| Subject: soundwire: bus: Fix device found flag correctly |
| |
| From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
| |
| [ Upstream commit f03690f4f6992225d05dbd1171212e5be5a370dd ] |
| |
| found flag is used to indicate SoundWire devices that are |
| both enumerated on the bus and available in the device list. |
| However this flag is not reset correctly after one iteration, |
| This could miss some of the devices that are enumerated on the |
| bus but not in device list. So reset this correctly to fix this issue! |
| |
| Fixes: d52d7a1be02c ("soundwire: Add Slave status handling helpers") |
| Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
| Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Link: https://lore.kernel.org/r/20210309104816.20350-1-srinivas.kandagatla@linaro.org |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/soundwire/bus.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c |
| index 662b3b030246..03ed618ffc59 100644 |
| --- a/drivers/soundwire/bus.c |
| +++ b/drivers/soundwire/bus.c |
| @@ -703,7 +703,7 @@ static int sdw_program_device_num(struct sdw_bus *bus) |
| struct sdw_slave *slave, *_s; |
| struct sdw_slave_id id; |
| struct sdw_msg msg; |
| - bool found = false; |
| + bool found; |
| int count = 0, ret; |
| u64 addr; |
| |
| @@ -735,6 +735,7 @@ static int sdw_program_device_num(struct sdw_bus *bus) |
| |
| sdw_extract_slave_id(bus, addr, &id); |
| |
| + found = false; |
| /* Now compare with entries */ |
| list_for_each_entry_safe(slave, _s, &bus->slaves, node) { |
| if (sdw_compare_devid(slave, id) == 0) { |
| -- |
| 2.30.2 |
| |