[PATCH v6 5/5] mailbox: Add support for i.MX7D messaging unit
From: aisheng.dong@nxp.com (A.s. Dong)
Date: 2018-07-24 02:09:40
Also in:
linux-devicetree
From: aisheng.dong@nxp.com (A.s. Dong)
Date: 2018-07-24 02:09:40
Also in:
linux-devicetree
-----Original Message----- From: Lucas Stach [mailto:l.stach at pengutronix.de] Sent: Tuesday, July 24, 2018 1:20 AM To: Oleksij Rempel <o.rempel@pengutronix.de>; Shawn Guo [off-list ref]; Fabio Estevam [off-list ref]; Rob Herring [off-list ref]; Mark Rutland [off-list ref]; A.s. Dong [off-list ref]; Vladimir Zapolskiy [off-list ref] Cc: dl-linux-imx <redacted>; linux-arm-kernel at lists.infradead.org; kernel at pengutronix.de; devicetree at vger.kernel.org Subject: Re: [PATCH v6 5/5] mailbox: Add support for i.MX7D messaging unit
[...]
quoted
+} + +static int imx_mu_send_data(struct mbox_chan *chan, void *data) {quoted
+ struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox); + struct imx_mu_con_priv *cp = chan->con_priv; + u32 *arg = data;+quoted
+ if (!imx_mu_last_tx_done(chan)) + return -EBUSY;+quoted
+ imx_mu_write(priv, *arg, IMX_MU_xTRn(cp->idx));+ imx_mu_rmw(priv, IMX_MU_xCR, IMX_MU_xSR_TEn(cp->idx), 0);In multi-channel mode this RMW cycle needs some kind of locking. As this register is also changed from the irq handler, this probably needs to be a irqsave spinlock.
Good catch! They do need to be protected. Regards Dong Aisheng