mbox series

[v14,0/2] mtk: add ADSP mailbox controller support for MT8195

Message ID 20220114114633.742-1-allen-kh.cheng@mediatek.com
Headers show
Series mtk: add ADSP mailbox controller support for MT8195 | expand

Message

Allen-KH Cheng Jan. 14, 2022, 11:46 a.m. UTC
From: Allen-KH Cheng <Allen-KH.Cheng@mediatek.com>

Mediatek ADSP IPC is used to send notification or short message between processors with dsp.ยท

It will place the message to the share buffer and will access the ADSP mailbox registers to kick dsp.

Two mailboxes used to send notification or short message between processors with dsp

changes since v13:
- rebase on v5.16-rc8
- add back ptr check from of_device_get_match_data

changes since v12:
- remove of_device_get_match_data ptr check:
  of_device_get_match_data(dev) will never going to return NULL.
  driver probe with compatible mediatek,mt8195-adsp-mbox.

changes since v11:
- remove unuseful MODULE_LICENSE

changes since v10:
- split up v9 into two separate submissions
  https://patchwork.kernel.org/project/linux-mediatek/patch/20220111071011.5964-1-allen-kh.cheng@mediatek.com/

changes since v9:
- rename adsp_mbox_chan_ops to mtk_adsp_mbox_chan_ops

changes since v8:
- remove struct adsp_mbox_ch_info
- add get_mtk_adsp_mbox_priv
- use mtk_adsp_mbox_priv va_mboxreg address in adsp mbox driver
- add struct mtk_adsp_mbox_cfg for DSP mbox register offset
- remove adsp mbox register offset hard code define
- remove mtk-adsp-ipc.h reference in adsp mbox driver

changes since v7:
- add mtk prefix for adsp ipc functions
- rename adsp_mbox_ch_info to mtk_adsp_mbox_ch_info
- remove incorrect reviewers in commit message

changes since v6:
- dt-bindings: change example dtsi node.
- rename config MTK_ADSP_IPC_MBOX to MTK_ADSP_MBOX
- remove unused variable
- add reviewers

changes since v5:
- remove some redundant code

changes since v4:
- use switch ... case in adsp_ipc_recv
- add error handling path for chan_name pointer
- refine some code to be concise

changes since v3:
- reorder MTK_ADSP_IPC_MBOX config
- remove some redundant code
- remove lock in mtk-adsp-mailbox

changes since v2:
- separate adsp_mailbox into two instances

changes since v1:
- fix dt_binding_check error

Allen-KH Cheng (2):
  dt-bindings: mediatek: add adsp-mbox document
  mailbox: mediatek: add support for adsp mailbox controller

 .../bindings/mailbox/mtk,adsp-mbox.yaml       |  52 ++++++
 drivers/mailbox/Kconfig                       |   7 +
 drivers/mailbox/Makefile                      |   2 +
 drivers/mailbox/mtk-adsp-mailbox.c            | 175 ++++++++++++++++++
 4 files changed, 236 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml
 create mode 100644 drivers/mailbox/mtk-adsp-mailbox.c

Comments

Allen-KH Cheng Jan. 17, 2022, 5:45 a.m. UTC | #1
On Fri, 2022-01-14 at 08:57 -0800, Curtis Malainey wrote:
> > +
> > +static struct mtk_adsp_mbox_priv *get_mtk_adsp_mbox_priv(struct
> > mbox_controller *mbox)
> > +{
> > +       return container_of(mbox, struct mtk_adsp_mbox_priv, mbox);
> > +}
> 
> this could probably be inline
> 

Hi Curtis,

I check the symbol table of kernel.

get_mtk_adsp_mbox_priv is decided to inline by compiler.

I think it's ok use inline this function.

on other hand, compile will not use inline definition of
mtk_adsp_mbox_xlate for the mbox_controller's implement 
(I also check the symbole of kernel)

I will update next version for get_mtk_adsp_mbox_priv.

Thank.

> 
> > +
> > +static struct mbox_chan *mtk_adsp_mbox_xlate(struct
> > mbox_controller *mbox,
> > +                                            const struct
> > of_phandle_args *sp)
> > +{
> > +       return mbox->chans;
> > +}
> 
> also could probably benefit from inline