diff options
author | Bard Liao <yung-chuan.liao@linux.intel.com> | 2021-07-14 05:22:04 +0200 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-08-02 07:38:22 +0200 |
commit | e6645314eb2747bef4d9a375997221dede8ce4ce (patch) | |
tree | 5bb936b6dc53c0f751d23f8f2d44c9c8127ccb28 /drivers/soundwire | |
parent | Merge tag 'asoc-sdw-mockup-codec' into next (diff) | |
download | linux-e6645314eb2747bef4d9a375997221dede8ce4ce.tar.xz linux-e6645314eb2747bef4d9a375997221dede8ce4ce.zip |
soundwire: stream: don't abort bank switch on Command_Ignored/-ENODATA
This change is needed for support of mockup devices, which by
construction will not provide any answer to a bank switch, but it's
also legit for regular cases.
If for some reason a device loses sync and cannot handle a bank
switch, we should go ahead anyways. The devices can always resync
later.
The only case where the error flow should be used is when there is a
Command_Aborted composite answer from SoundWire devices.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Link: https://lore.kernel.org/r/20210714032209.11284-6-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/soundwire')
-rw-r--r-- | drivers/soundwire/stream.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c index 1a18308f4ef4..d84aaf115c13 100644 --- a/drivers/soundwire/stream.c +++ b/drivers/soundwire/stream.c @@ -697,7 +697,7 @@ static int sdw_bank_switch(struct sdw_bus *bus, int m_rt_count) else ret = sdw_transfer(bus, wr_msg); - if (ret < 0) { + if (ret < 0 && ret != -ENODATA) { dev_err(bus->dev, "Slave frame_ctrl reg write failed\n"); goto error; } |