lkml.org 
[lkml]   [2023]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor
Date
From: Iuliana Prodan <iuliana.prodan@nxp.com>

There are cases when we want to test a simple "hello world"
application on the DSP and we don't have IPC between the cores.
Therefore, skip the wait for remote processor to start.

Added "ignoreready" flag while inserting the module to ignore
remote processor reply after start.
By default, this is off - do not ignore reply from rproc.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
---
drivers/remoteproc/imx_dsp_rproc.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
index 95da1cbefacf..ec298f8b019f 100644
--- a/drivers/remoteproc/imx_dsp_rproc.c
+++ b/drivers/remoteproc/imx_dsp_rproc.c
@@ -26,9 +26,20 @@
#include "remoteproc_elf_helpers.h"
#include "remoteproc_internal.h"

+#define IMX_DSP_IGNORE_REMOTE_READY 0
+
+/*
+ * Module parameters
+ */
+static unsigned int imx_dsp_rproc_ignoreready = IMX_DSP_IGNORE_REMOTE_READY;
+module_param_named(ignoreready, imx_dsp_rproc_ignoreready, int, 0644);
+MODULE_PARM_DESC(ignoreready,
+ "Ignore remote proc reply after start, default is 0 (off).");
+
#define DSP_RPROC_CLK_MAX 5

#define REMOTE_IS_READY BIT(0)
+#define REMOTE_SKIP_WAIT BIT(31)
#define REMOTE_READY_WAIT_MAX_RETRIES 500

/* att flags */
@@ -285,6 +296,9 @@ static int imx_dsp_rproc_ready(struct rproc *rproc)
if (!priv->rxdb_ch)
return 0;

+ if (priv->flags & REMOTE_SKIP_WAIT)
+ return 0;
+
for (i = 0; i < REMOTE_READY_WAIT_MAX_RETRIES; i++) {
if (priv->flags & REMOTE_IS_READY)
return 0;
@@ -903,6 +917,9 @@ static int imx_dsp_rproc_probe(struct platform_device *pdev)
priv->rproc = rproc;
priv->dsp_dcfg = dsp_dcfg;

+ if (imx_dsp_rproc_ignoreready)
+ priv->flags |= REMOTE_SKIP_WAIT;
+
dev_set_drvdata(dev, rproc);

INIT_WORK(&priv->rproc_work, imx_dsp_rproc_vq_work);
--
2.17.1
\
 
 \ /
  Last update: 2023-03-26 23:43    [W:0.048 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site