Re: [PATCH] irqchip/qcom-mpm: Fix missing mailbox TX done acknowledgment

From: Doug Anderson

Date: Tue Mar 10 2026 - 11:57:04 EST


Hi,

On Mon, Mar 9, 2026 at 7:23 PM <jassisinghbrar@xxxxxxxxx> wrote:
>
> From: Jassi Brar <jassisinghbrar@xxxxxxxxx>
>
> The mbox_client for qcom-mpm sends NULL doorbell messages via
> mbox_send_message() but never signals TX completion.
> Set knows_txdone=true and call mbox_client_txdone() after a
> successful send, matching the pattern used by other Qualcomm
> mailbox clients (smp2p, smsm, qcom_aoss etc) of similar controller.
>
> Fixes: a6199bb514d8a6 "irqchip: Add Qualcomm MPM controller driver"
> Signed-off-by: Jassi Brar <jassisinghbrar@xxxxxxxxx>
> ---
> drivers/irqchip/irq-qcom-mpm.c | 3 +++
> 1 file changed, 3 insertions(+)

It's up to you, but according to all the research I did w/ NULL
messages, the mbox_client_txdone() didn't really do anything useful in
this case so we don't _really_ need to add it. The fact that it
historically did nothing is one reason why the new
mbox_ring_doorbell() series explicitly documents that you need not
(and, ideally, should not) call txdone() for doorbells.

Specifically, mbox_client_txdone() will just call tx_tick(). That will
set `chan->active_req` to NULL (it already was). It will call
msg_submit() which likely doesn't do anything (since we don't queue
NULL messages in normal situations). It will notice that `mssg` is
NULL so it will return before calling tx_done() or signalling the
completion.

If we make this change, then I'll need to spin my mbox_ring_doorbell()
series to delete the code. That's OK with me if that's what you want
to do, but I don't see a lot of benefit.

-Doug