Re: [PATCH 5/6] remoteproc: imx_rproc: allow tx_block to be set

From: Mathieu Poirier
Date: Tue Jul 16 2024 - 11:47:02 EST


On Fri, Jul 12, 2024 at 04:34:58PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@xxxxxxx>
>
> 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@xxxxxxx>
> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
> ---
> 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
>