[PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

Subsystems: remote processor (remoteproc) subsystem, the rest

STALE1304d

5 messages, 4 authors, 2023-01-17 · open the first message on its own page

[PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

From: Iuliana Prodan (OSS) <hidden>
Date: 2023-01-16 22:55:00

From: Iuliana Prodan <redacted>

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 <redacted>
---
 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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

RE: [PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

From: S.J. Wang <hidden>
Date: 2023-01-17 07:36:59

quoted hunk
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 <redacted>
---
 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)
Can we use a close bit with REMOTE_IS_READY,  like BIT(1)?

Best regards
Wang Shengjiu
quoted hunk
 #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

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

From: Iuliana Prodan <hidden>
Date: 2023-01-17 09:16:58

On 1/17/2023 9:36 AM, S.J. Wang wrote:
quoted
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 <redacted>
---
  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)
Can we use a close bit with REMOTE_IS_READY,  like BIT(1)?
Sure, I'll send a v2.

Thanks,

Iulia


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

From: Daniel Baluta <hidden>
Date: 2023-01-17 09:30:48

On Tue, Jan 17, 2023 at 1:21 AM Iuliana Prodan (OSS)
[off-list ref] wrote:
From: Iuliana Prodan <redacted>

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.
I think that ignore_dsp_ready would be a clearer name flag.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] remoteproc: imx_dsp_rproc: add module parameter to ignore ready flag from remote processor

From: Iuliana Prodan <hidden>
Date: 2023-01-17 11:06:52

On 1/17/2023 11:28 AM, Daniel Baluta wrote:
On Tue, Jan 17, 2023 at 1:21 AM Iuliana Prodan (OSS)
[off-list ref] wrote:
quoted
From: Iuliana Prodan <redacted>

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.
I think that ignore_dsp_ready would be a clearer name flag.
Done, I've sent a v3.

Thanks,

Iulia


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help