AOP send ACK immediately before wait thread can start waiting. In this case the probe call is blocked for default time 1sec and causing bootup delay. Reduce the default wait time to 20ms to avoid delay in IRQ miss case. Signed-off-by: Arun Kumar Neelakantam <aneela@xxxxxxxxxxxxxx> --- drivers/soc/qcom/qcom_aoss.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/soc/qcom/qcom_aoss.c b/drivers/soc/qcom/qcom_aoss.c index 006ac40..2cf2393 100644 --- a/drivers/soc/qcom/qcom_aoss.c +++ b/drivers/soc/qcom/qcom_aoss.c @@ -44,6 +44,8 @@ #define QMP_NUM_COOLING_RESOURCES 2 +#define QMP_ACK_TIMEOUT msecs_to_jiffies(10) + static bool qmp_cdev_max_state = 1; struct qmp_cooling_device { @@ -150,7 +152,8 @@ static int qmp_open(struct qmp *qmp) qmp_kick(qmp); - ret = wait_event_timeout(qmp->event, qmp_link_acked(qmp), HZ); + ret = wait_event_timeout(qmp->event, qmp_link_acked(qmp), + QMP_ACK_TIMEOUT); if (!ret) { dev_err(qmp->dev, "ucore didn't ack link\n"); goto timeout_close_link; @@ -160,7 +163,8 @@ static int qmp_open(struct qmp *qmp) qmp_kick(qmp); - ret = wait_event_timeout(qmp->event, qmp_ucore_channel_up(qmp), HZ); + ret = wait_event_timeout(qmp->event, qmp_ucore_channel_up(qmp), + QMP_ACK_TIMEOUT); if (!ret) { dev_err(qmp->dev, "ucore didn't open channel\n"); goto timeout_close_channel; @@ -171,7 +175,8 @@ static int qmp_open(struct qmp *qmp) qmp_kick(qmp); - ret = wait_event_timeout(qmp->event, qmp_mcore_channel_acked(qmp), HZ); + ret = wait_event_timeout(qmp->event, qmp_mcore_channel_acked(qmp), + QMP_ACK_TIMEOUT); if (!ret) { dev_err(qmp->dev, "ucore didn't ack channel\n"); goto timeout_close_channel; -- 1.9.1