Message ID | 20240712-imx_rproc-v1-5-7bcf6732d328@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | remoteproc: imx_rproc: various patches for misc | expand |
On Fri, Jul 12, 2024 at 04:34:58PM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > Current tx_block is set to true, but there is case that no need to wait > response. Linux just needs to send data to remote processor, so let's > allow tx_block could be set to false. Ok, maybe - but this patch doesn't use the new functionality, i.e nothing changes. > > Reviewed-by: Jacky Bai <ping.bai@nxp.com> > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/remoteproc/imx_rproc.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c > index 552fccebf7e2..01cf1dfb2e87 100644 > --- a/drivers/remoteproc/imx_rproc.c > +++ b/drivers/remoteproc/imx_rproc.c > @@ -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; > > > -- > 2.37.1 >
> Subject: Re: [PATCH 5/6] remoteproc: imx_rproc: allow tx_block to be > set > > On Fri, Jul 12, 2024 at 04:34:58PM +0800, Peng Fan (OSS) wrote: > > From: Peng Fan <peng.fan@nxp.com> > > > > Current tx_block is set to true, but there is case that no need to > > wait response. Linux just needs to send data to remote processor, so > > let's allow tx_block could be set to false. > > Ok, maybe - but this patch doesn't use the new functionality, i.e > nothing changes. > Will update commit log to add: "No functional changes" Thanks, Peng.
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index 552fccebf7e2..01cf1dfb2e87 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -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;