[PATCH v2 1/2] soundwire: qcom: update status from device id 1

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Sep 16 16:22:37 CEST 2022



On 9/16/22 15:53, Srinivas Kandagatla wrote:
> By default autoenumeration is enabled on QCom SoundWire controller
> which means the core should not be dealing with device 0 w.r.t enumeration.
> 
> During Enumeration if SoundWire core sees status[0] as SDW_SLAVE_ATTACHED and
> start programming the device id, however reading DEVID registers return zeros
> which does not match to any of the slaves in the list and the core attempts
> to park this device to Group 13.  This results in adding SoundWire device
> with enumeration address 0:0:0:0
> 
> Fix this by not passing device 0 status to SoundWire core.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>

> ---
> Changes since v1:
> 	- updated change log and split patch in to two as suggested by Pierre
> 
>  drivers/soundwire/qcom.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
> index e7f95c41eb70..d3ce580cdeaf 100644
> --- a/drivers/soundwire/qcom.c
> +++ b/drivers/soundwire/qcom.c
> @@ -448,7 +448,7 @@ static void qcom_swrm_get_device_status(struct qcom_swrm_ctrl *ctrl)
>  	ctrl->reg_read(ctrl, SWRM_MCP_SLV_STATUS, &val);
>  	ctrl->slave_status = val;
>  
> -	for (i = 0; i <= SDW_MAX_DEVICES; i++) {
> +	for (i = 1; i <= SDW_MAX_DEVICES; i++) {
>  		u32 s;
>  
>  		s = (val >> (i * 2));


More information about the Alsa-devel mailing list