mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 03:48:59 +00:00
remoteproc: imx_rproc: Allow setting of the mailbox transmit mode
Current mailbox is blocking by default, but there are cases where we don't need to wait for a response. Linux just needs to send data to the remote processor, so let's allow tx_block mode to be set (true/false) depending on usecase. No functional changes. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Link: https://lore.kernel.org/r/20240822-imx_rproc-v3-1-6d943723945d@nxp.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
parent
8fa052c29e
commit
d9dbd7149c
@ -90,7 +90,7 @@ struct imx_rproc_mem {
|
||||
#define ATT_CORE_MASK 0xffff
|
||||
#define ATT_CORE(I) BIT((I))
|
||||
|
||||
static int imx_rproc_xtr_mbox_init(struct rproc *rproc);
|
||||
static int imx_rproc_xtr_mbox_init(struct rproc *rproc, bool tx_block);
|
||||
static void imx_rproc_free_mbox(struct rproc *rproc);
|
||||
|
||||
struct imx_rproc {
|
||||
@ -369,7 +369,7 @@ static int imx_rproc_start(struct rproc *rproc)
|
||||
struct arm_smccc_res res;
|
||||
int ret;
|
||||
|
||||
ret = imx_rproc_xtr_mbox_init(rproc);
|
||||
ret = imx_rproc_xtr_mbox_init(rproc, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -629,7 +629,7 @@ static void imx_rproc_kick(struct rproc *rproc, int vqid)
|
||||
|
||||
static int imx_rproc_attach(struct rproc *rproc)
|
||||
{
|
||||
return imx_rproc_xtr_mbox_init(rproc);
|
||||
return imx_rproc_xtr_mbox_init(rproc, true);
|
||||
}
|
||||
|
||||
static int imx_rproc_detach(struct rproc *rproc)
|
||||
@ -794,7 +794,7 @@ static void imx_rproc_rx_callback(struct mbox_client *cl, void *msg)
|
||||
queue_work(priv->workqueue, &priv->rproc_work);
|
||||
}
|
||||
|
||||
static int imx_rproc_xtr_mbox_init(struct rproc *rproc)
|
||||
static int imx_rproc_xtr_mbox_init(struct rproc *rproc, bool tx_block)
|
||||
{
|
||||
struct imx_rproc *priv = rproc->priv;
|
||||
struct device *dev = priv->dev;
|
||||
@ -817,7 +817,7 @@ static int imx_rproc_xtr_mbox_init(struct rproc *rproc)
|
||||
|
||||
cl = &priv->cl;
|
||||
cl->dev = dev;
|
||||
cl->tx_block = true;
|
||||
cl->tx_block = tx_block;
|
||||
cl->tx_tout = 100;
|
||||
cl->knows_txdone = false;
|
||||
cl->rx_callback = imx_rproc_rx_callback;
|
||||
@ -1083,7 +1083,7 @@ static int imx_rproc_probe(struct platform_device *pdev)
|
||||
|
||||
INIT_WORK(&priv->rproc_work, imx_rproc_vq_work);
|
||||
|
||||
ret = imx_rproc_xtr_mbox_init(rproc);
|
||||
ret = imx_rproc_xtr_mbox_init(rproc, true);
|
||||
if (ret)
|
||||
goto err_put_wkq;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user