soundwire: bus: don't treat CMD_IGNORED as error on ClockStop
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Wed, 15 Jan 2020 00:08:44 +0000 (18:08 -0600)
committerVinod Koul <vkoul@kernel.org>
Tue, 25 Feb 2020 10:27:02 +0000 (15:57 +0530)
If a SoundWire link is enabled, but there are no Slave devices exposed
in firmware tables for this link, or no Slaves in ATTACHED or ALERT
mode, the CMD_IGNORED/-ENODATA error code on a broadcast write is
perfectly legit.

Filter this case to report errors and let the caller deal with the
CMD_IGNORED case.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200115000844.14695-11-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c

index 3395abd..1388771 100644 (file)
@@ -922,8 +922,12 @@ int sdw_bus_clk_stop(struct sdw_bus *bus)
        ret = sdw_bwrite_no_pm(bus, SDW_BROADCAST_DEV_NUM,
                               SDW_SCP_CTRL, SDW_SCP_CTRL_CLK_STP_NOW);
        if (ret < 0) {
-               dev_err(bus->dev,
-                       "ClockStopNow Broadcast message failed %d", ret);
+               if (ret == -ENODATA)
+                       dev_dbg(bus->dev,
+                               "ClockStopNow Broadcast msg ignored %d", ret);
+               else
+                       dev_err(bus->dev,
+                               "ClockStopNow Broadcast msg failed %d", ret);
                return ret;
        }