mirror of
https://github.com/torvalds/linux
synced 2024-10-04 10:26:40 +00:00
soundwire: qcom: wait for enumeration to be complete in probe
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20210330144719.13284-10-srinivas.kandagatla@linaro.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
a6e6581942
commit
06dd96738d
|
@ -123,6 +123,7 @@ struct qcom_swrm_ctrl {
|
|||
struct regmap *regmap;
|
||||
void __iomem *mmio;
|
||||
struct completion broadcast;
|
||||
struct completion enumeration;
|
||||
struct work_struct slave_work;
|
||||
/* Port alloc/free lock */
|
||||
struct mutex port_lock;
|
||||
|
@ -418,6 +419,7 @@ static int qcom_swrm_enumerate(struct sdw_bus *bus)
|
|||
}
|
||||
}
|
||||
|
||||
complete(&ctrl->enumeration);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1139,6 +1141,7 @@ static int qcom_swrm_probe(struct platform_device *pdev)
|
|||
dev_set_drvdata(&pdev->dev, ctrl);
|
||||
mutex_init(&ctrl->port_lock);
|
||||
init_completion(&ctrl->broadcast);
|
||||
init_completion(&ctrl->enumeration);
|
||||
|
||||
ctrl->bus.ops = &qcom_swrm_ops;
|
||||
ctrl->bus.port_ops = &qcom_swrm_port_ops;
|
||||
|
@ -1185,6 +1188,8 @@ 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;
|
||||
|
|
Loading…
Reference in a new issue