mailbox: msm_qmp: Wait for link up in mbox_startup
There is a chance a client probe can start before the link is established with the remote processor. Add a wait for link up in the mailbox startup to prevent extra probe deferrrals for clients. Change-Id: Idd53349cd91e810126be62bcf27adc53a98417ec Signed-off-by: Chris Lew <clew@codeaurora.org>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
@@ -337,12 +337,12 @@ static int qmp_startup(struct mbox_chan *chan)
|
|||||||
if (!mbox)
|
if (!mbox)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
mutex_lock(&mbox->state_lock);
|
ret = wait_for_completion_timeout(&mbox->link_complete,
|
||||||
if (!completion_done(&mbox->link_complete)) {
|
msecs_to_jiffies(QMP_TOUT_MS));
|
||||||
mutex_unlock(&mbox->state_lock);
|
if (!ret)
|
||||||
return -EAGAIN;
|
return -EAGAIN;
|
||||||
}
|
|
||||||
|
|
||||||
|
mutex_lock(&mbox->state_lock);
|
||||||
if (mbox->local_state == LINK_CONNECTED) {
|
if (mbox->local_state == LINK_CONNECTED) {
|
||||||
set_mcore_ch(mbox, QMP_MBOX_CH_CONNECTED);
|
set_mcore_ch(mbox, QMP_MBOX_CH_CONNECTED);
|
||||||
mbox->local_state = LOCAL_CONNECTING;
|
mbox->local_state = LOCAL_CONNECTING;
|
||||||
|
|||||||
Reference in New Issue
Block a user