[PATCH v2 10/15] rpmsg: qcom_smd: Use mbox_ring_doorbell() instead of NULL message

Douglas Anderson posted 15 patches 1 day, 14 hours ago
[PATCH v2 10/15] rpmsg: qcom_smd: Use mbox_ring_doorbell() instead of NULL message
Posted by Douglas Anderson 1 day, 14 hours ago
As per the patch ("mailbox: Deprecate NULL mbox messages; Introduce
mbox_ring_doorbell()"), we want to switch all users of NULL mailbox
messages to use mbox_ring_doorbell().

This client only ever sent NULL messages, so the transition is
straightforward. We can remove the call to mbox_client_txdone(). The
call didn't do anything for NULL messages and it's now officially
documented not to be called for doorbells.

Also remove the comment about the only cause of errors for
mbox_send_message() being if the framework's FIFO was full since we
don't queue doorbells.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---

(no changes since v1)

 drivers/rpmsg/qcom_smd.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
index 42594f5ee438..afe1177d092e 100644
--- a/drivers/rpmsg/qcom_smd.c
+++ b/drivers/rpmsg/qcom_smd.c
@@ -371,17 +371,10 @@ static void qcom_smd_signal_channel(struct qcom_smd_channel *channel)
 {
 	struct qcom_smd_edge *edge = channel->edge;
 
-	if (edge->mbox_chan) {
-		/*
-		 * We can ignore a failing mbox_send_message() as the only
-		 * possible cause is that the FIFO in the framework is full of
-		 * other writes to the same bit.
-		 */
-		mbox_send_message(edge->mbox_chan, NULL);
-		mbox_client_txdone(edge->mbox_chan, 0);
-	} else {
+	if (edge->mbox_chan)
+		mbox_ring_doorbell(edge->mbox_chan);
+	else
 		regmap_write(edge->ipc_regmap, edge->ipc_offset, BIT(edge->ipc_bit));
-	}
 }
 
 /*
-- 
2.53.0.rc2.204.g2597b5adb4-goog
Re: [PATCH v2 10/15] rpmsg: qcom_smd: Use mbox_ring_doorbell() instead of NULL message
Posted by Bjorn Andersson 3 hours ago
On Sat, Feb 07, 2026 at 08:01:32PM -0800, Douglas Anderson wrote:
> As per the patch ("mailbox: Deprecate NULL mbox messages; Introduce
> mbox_ring_doorbell()"), we want to switch all users of NULL mailbox
> messages to use mbox_ring_doorbell().
> 
> This client only ever sent NULL messages, so the transition is
> straightforward. We can remove the call to mbox_client_txdone(). The
> call didn't do anything for NULL messages and it's now officially
> documented not to be called for doorbells.
> 
> Also remove the comment about the only cause of errors for
> mbox_send_message() being if the framework's FIFO was full since we
> don't queue doorbells.
> 
> Signed-off-by: Douglas Anderson <dianders@chromium.org>

Acked-by: Bjorn Andersson <andersson@kernel.org>

Regards,
Bjorn

> ---
> 
> (no changes since v1)
> 
>  drivers/rpmsg/qcom_smd.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
> index 42594f5ee438..afe1177d092e 100644
> --- a/drivers/rpmsg/qcom_smd.c
> +++ b/drivers/rpmsg/qcom_smd.c
> @@ -371,17 +371,10 @@ static void qcom_smd_signal_channel(struct qcom_smd_channel *channel)
>  {
>  	struct qcom_smd_edge *edge = channel->edge;
>  
> -	if (edge->mbox_chan) {
> -		/*
> -		 * We can ignore a failing mbox_send_message() as the only
> -		 * possible cause is that the FIFO in the framework is full of
> -		 * other writes to the same bit.
> -		 */
> -		mbox_send_message(edge->mbox_chan, NULL);
> -		mbox_client_txdone(edge->mbox_chan, 0);
> -	} else {
> +	if (edge->mbox_chan)
> +		mbox_ring_doorbell(edge->mbox_chan);
> +	else
>  		regmap_write(edge->ipc_regmap, edge->ipc_offset, BIT(edge->ipc_bit));
> -	}
>  }
>  
>  /*
> -- 
> 2.53.0.rc2.204.g2597b5adb4-goog
>