[PATCH v2] soundwire: qcom: remove redundant wait for completion

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Feb 25 16:43:47 CET 2022



On 2/25/22 08:45, Srinivas Kandagatla wrote:
> 
> 
> On 25/02/2022 14:44, Srinivasa Rao Mandadapu wrote:
>> Remove wait_for_completion_timeout from soundwire probe as it seems
>> unnecessary and device enumeration is anyway not happening here,
>> hence this api is blocking till it completes max wait time.
>> Also, as device enumeration event is dependent on wcd938x probe to be
>> completed, its of no use waiting here.
>> Waiting here increasing the boot time almost 4 seconds and impacting
>> other modules like touch screen.
>>
>> Fixes: 06dd96738d618 ("soundwire: qcom: wait for enumeration to be
>> complete in probe")
>>
>> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam at quicinc.com>
>> Co-developed-by: Venkata Prasad Potturu <quic_potturu at quicinc.com>
>> Signed-off-by: Venkata Prasad Potturu <quic_potturu at quicinc.com>
> 
> LGTM,
> 
> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla at linaro.org>

I don't get the idea, sorry.

If you look at the code, these are the cases where this 'struct
completion' is used

	struct completion enumeration;
	complete(&ctrl->enumeration);
	/* Enable Auto enumeration */
	init_completion(&ctrl->enumeration);
	wait_for_completion_timeout(&ctrl->enumeration,


so if you remove the wait_for_completeion, then you might just as well
remove the whole thing and revert 06dd96738d618

what am I missing?


>> ---
>>   drivers/soundwire/qcom.c | 2 --
>>   1 file changed, 2 deletions(-)
>>
>> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
>> index 5481341..9a32a24 100644
>> --- a/drivers/soundwire/qcom.c
>> +++ b/drivers/soundwire/qcom.c
>> @@ -1309,8 +1309,6 @@ static int qcom_swrm_probe(struct
>> platform_device *pdev)
>>       }
>>         qcom_swrm_init(ctrl);
>> -    wait_for_completion_timeout(&ctrl->enumeration,
>> -                    msecs_to_jiffies(TIMEOUT_MS));
>>       ret = qcom_swrm_register_dais(ctrl);
>>       if (ret)
>>           goto err_master_add;


More information about the Alsa-devel mailing list