[alsa-devel] [PATCH 2/4] soundwire: cdns: fix check for number of messages

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Thu Mar 28 15:03:56 CET 2019


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 at 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);
> 



More information about the Alsa-devel mailing list