On 3/28/19 9:41 AM, Srinivas Kandagatla wrote:
Looks like there is a typo while checking number of messages, which should be checked in defer pointer rather than message length.
Signed-off-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
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 cb6a331f448a..d41adbc57918 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -434,7 +434,7 @@ cdns_xfer_msg_defer(struct sdw_bus *bus, int cmd = 0, ret;
/* for defer only 1 message is supported */
- if (msg->len > 1)
I am not sure this is a typo.
IRRC the hardware only defer e.g. a single write that can perform bank switches and writes at specific times indicated with an SSP. What's more is that the defer structure is actually modified below this code (not shown in the diff) to set defer>length = msg->len, so testing before the value is set looks more suspicious than the current code.
Vinod, does this ring a bell?
if (defer->length > 1) return -ENOTSUPP;
ret = cdns_prep_msg(cdns, msg, &cmd);