Re: FW: [PATCH v20 2/4] mailbox: mediatek: Add Mediatek CMDQ driver
From: Jassi Brar
Date: Thu Jan 18 2018 - 03:01:34 EST
On Mon, Jan 8, 2018 at 2:08 PM, houlong wei <houlong.wei@xxxxxxxxxxxx> wrote:
> Hi Jassi,
>
> Sorry for reply so late.
> According to previous discussion, there are two methods to move
> dma_map_single() outside of spin_lock.
> (1) put in mtk-cmdq-helper.c, as described by HS on 2017-02-09.
> > I think a trade-off solution is to put in mtk-cmdq-helper.c.
> > Although it is a mailbox client, it is not a CMDQ client.
> > We can include mailbox_controller.h in mtk-cmdq-helper.c (instead of
> mtk-cmdq.h), and then map dma at cmdq_pkt_flush_async before
> mbox_send_message.
>
> > pkt->pa_base = dma_map_single(client->chan->mbox->dev, pkt->va_base,
> > pkt->cmd_buf_size, DMA_TO_DEVICE);
> (2) schedule a tasklet in send_data().
>
> After internal discussion with HS and other experts, now we prefer
> method (1).
> How do you think about it?
>
I don't exactly see how you mean but please remember send_data()
callback is supposed to be atomic ... it is protected by
spin_lock_irqsave/restore in drivers/mailbox/mailbox.c:msg_submit()
BTW, how many requests max can be queued in the GCE h/w buffer?
And since it's been over a year now, could you please resubmit after
checking for checkpatch with the --strict option?
Thanks.