On 9/17/22 17:48, Richard Fitzgerald wrote: > _cdns_xfer_msg() returns an sdw_command_response value, not a > negative error code. > > Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> we've got other issues like this such as enum sdw_command_response cdns_xfer_msg_defer(struct sdw_bus *bus, struct sdw_msg *msg, struct sdw_defer *defer) { struct sdw_cdns *cdns = bus_to_cdns(bus); int cmd = 0, ret; /* for defer only 1 message is supported */ if (msg->len > 1) return -ENOTSUPP; <<< that's not right We should probably double-check that all functions return enums don't return negative values. > --- > drivers/soundwire/cadence_master.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c > index ca241bbeadd9..3543a923ee6b 100644 > --- a/drivers/soundwire/cadence_master.c > +++ b/drivers/soundwire/cadence_master.c > @@ -708,7 +708,7 @@ cdns_xfer_msg(struct sdw_bus *bus, struct sdw_msg *msg) > for (i = 0; i < msg->len / CDNS_MCP_CMD_LEN; i++) { > ret = _cdns_xfer_msg(cdns, msg, cmd, i * CDNS_MCP_CMD_LEN, > CDNS_MCP_CMD_LEN, false); > - if (ret < 0) > + if (ret != SDW_CMD_OK) > goto exit; > } >