Assigning a device number to a Slave will result in additional events
when it reports its status in a PING frame. There is no point in
dealing with all the other devices in a loop, this can be done when a
non-device0 event happens.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com>
---
 drivers/soundwire/bus.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
index 0a45dc5713df..bca378806d00 100644
--- a/drivers/soundwire/bus.c
+++ b/drivers/soundwire/bus.c
@@ -985,6 +985,11 @@ int sdw_handle_slave_status(struct sdw_bus *bus,
                ret = sdw_program_device_num(bus);
                if (ret)
                        dev_err(bus->dev, "Slave attach failed: %d\n", ret);
+               /*
+                * programming a device number will have side effects,
+                * so we deal with other devices at a later time
+                */
+               return ret;
        }
 
        /* Continue to check other slave statuses */
-- 
2.20.1

Reply via email to