From 0013ee06a1814b1a19f69cc3f49f741e8e651f8a Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Fri, 21 Jul 2023 16:59:27 +0800 Subject: [PATCH] rpmsg: rockchip: fix mailbox txdone method to polling Since there is no txdone irq in the Rockchip mailbox IP, invoking mbox_chan_txdone()/mbox_client_txdone() after mbox_send_message() to tick the TX would be free the active request which have not been sent out if the controller returned the EBUSY state before. So amend the txdone method to polling to fix it. The TX polling interval can specify in mailbox DT with set "rockchip,txpoll-period-ms" property to 1 milliseconds. Fixes: b5795e81ec07 ("rpmsg: rockchip: add Rockchip RPMsg Platform Support") Signed-off-by: Steven Liu Change-Id: I9d15ed4a61cda049c7804e2688e79f157de1c5a2 --- drivers/rpmsg/rockchip_rpmsg.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/rpmsg/rockchip_rpmsg.c b/drivers/rpmsg/rockchip_rpmsg.c index be1b202a156b..6912eae4b7e4 100644 --- a/drivers/rpmsg/rockchip_rpmsg.c +++ b/drivers/rpmsg/rockchip_rpmsg.c @@ -114,7 +114,6 @@ static bool rk_rpmsg_notify(struct virtqueue *vq) dev_err(dev, "mbox send failed!\n"); return false; } - mbox_chan_txdone(rpdev->mbox_tx_chan, 0); return true; }