mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 08:07:32 -04:00
soc: qcom: pmic_glink: Switch using rpmsg_send() to avoid random Tx failure
When the remote subsystem is bought out of reset and PMIC Glink channel is opened up, PMIC Glink rpmsg driver is probed after which it instantiates all its child(client) devices. During its probe, these client devices start communicating to the remote subsystem over PMIC Glink channel. However, there is a race condition observed randomly where a transaction from a client is failing because rpmsg_trysend() couldn't send the message to the remote endpoint as the remote subsystem haven't queued up all Rx intents. To make the communication robust for clients, switch to use rpmsg_send() instead of rpmsg_trysend() which will wait until the Rx intents are queued up. Change-Id: Ia632efb420fa76face0aae6e039c3dcbf3e9517a Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
This commit is contained in:
parent
1276e88a08
commit
18e9ef2dda
1 changed files with 1 additions and 1 deletions
|
|
@ -311,7 +311,7 @@ int pmic_glink_write(struct pmic_glink_client *client, void *data,
|
|||
}
|
||||
|
||||
mutex_lock(&client->lock);
|
||||
rc = rpmsg_trysend(client->pgdev->rpdev->ept, data, len);
|
||||
rc = rpmsg_send(client->pgdev->rpdev->ept, data, len);
|
||||
mutex_unlock(&client->lock);
|
||||
|
||||
if (rc < 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue