soundwire: bus: split handling of Device0 events
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 25 Jul 2019 23:40:10 +0000 (18:40 -0500)
committerVinod Koul <vkoul@kernel.org>
Fri, 2 Aug 2019 16:59:38 +0000 (22:29 +0530)
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.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20190725234032.21152-19-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c

index fe745830a261a7c975dc524f3d6a0c5a0a9e7062..49f64b2115b9f45e823fe502f00e1afca0d44c72 100644 (file)
@@ -972,6 +972,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 */