On Wed, Oct 15, 2025 at 10:27 AM Tanmay Shah <[email protected]> wrote: > >>> diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c > >>> index 5cd8ae222073..c2e187aa5d22 100644 > >>> --- a/drivers/mailbox/mailbox.c > >>> +++ b/drivers/mailbox/mailbox.c > >>> @@ -35,6 +35,7 @@ static int add_to_rbuf(struct mbox_chan *chan, void > >>> *mssg) > >>> idx = chan->msg_free; > >>> chan->msg_data[idx] = mssg; > >>> chan->msg_count++; > >>> + chan->msg_slot_ro = (MBOX_TX_QUEUE_LEN - chan->msg_count); > >>> > >>> if (idx == MBOX_TX_QUEUE_LEN - 1) > >>> chan->msg_free = 0; > >>> @@ -70,6 +71,7 @@ static void msg_submit(struct mbox_chan *chan) > >>> if (!err) { > >>> chan->active_req = data; > >>> chan->msg_count--; > >>> + chan->msg_slot_ro = (MBOX_TX_QUEUE_LEN - > >>> chan->msg_count); > >>> > >> No, I had suggested adding this info in client structure. > >> There is no point in carrying msg_count and msg_slot_ro in mbox_chan. > >> The client needs this info but can/should not access the chan internals. > >> > > > > Hi Jassi, > > > > If I move msg_slot_ro to mbox_client that means, each channel needs its > > own client structure. But it is possible to map single client to > > multiple channels. > > > > How about if I rename msg_slot_ro to msg_slot_tx_ro -> that says this > > field should be used only for "tx" channel. > > > > Or is it must to map unique client data structure to each channel? If > > so, can I update mbox_client structure documentation ? > > > > Hi Jassi, > > I looked into this further. Looks like it's not possible to introduce > msg_slot_ro in the client data structure as of today. Because multiple > drivers are sharing same client for "tx" and "rx" both channels. > [references: 1, 2, 3] > > so, msg_slot_ro won't be calculated correctly I believe. > I don't see it. Can you please explain how the calculated value could be wrong?
thnx -jassi

