From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Siddharth Gupta <sidgup@codeaurora.org>
Cc: agross@kernel.org, ohad@wizery.com,
Rishabh Bhatnagar <rishabhb@codeaurora.org>,
linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tsoni@codeaurora.org,
psodagud@codeaurora.org
Subject: Re: [PATCH v2 4/6] remoteproc: qcom: Add name field for every subdevice
Date: Wed, 22 Apr 2020 17:54:47 -0700 [thread overview]
Message-ID: <20200423005447.GM1868936@builder.lan> (raw)
In-Reply-To: <1586389003-26675-5-git-send-email-sidgup@codeaurora.org>
On Wed 08 Apr 16:36 PDT 2020, Siddharth Gupta wrote:
> From: Rishabh Bhatnagar <rishabhb@codeaurora.org>
>
> When a client driver wishes to utilize functionality from a particular
> subdevice of a remoteproc, it cannot differentiate between the subdevices
> that have been added. This patch allows the client driver to distinguish
> between subdevices and thus utilize their functionality.
>
As noted in patch 5, this invites driver authors to traverse the rproc
subdev list outside the remoteproc core. So I would like to avoid this.
Regards,
Bjorn
> Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
> Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
> ---
> drivers/remoteproc/qcom_common.c | 6 ++++++
> include/linux/remoteproc.h | 2 ++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c
> index 60650bc..1d2351b 100644
> --- a/drivers/remoteproc/qcom_common.c
> +++ b/drivers/remoteproc/qcom_common.c
> @@ -56,6 +56,7 @@ void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
> return;
>
> glink->dev = dev;
> + glink->subdev.name = kstrdup("glink", GFP_KERNEL);
> glink->subdev.start = glink_subdev_start;
> glink->subdev.stop = glink_subdev_stop;
>
> @@ -73,6 +74,7 @@ void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glin
> if (!glink->node)
> return;
>
> + kfree(glink->subdev.name);
> rproc_remove_subdev(rproc, &glink->subdev);
> of_node_put(glink->node);
> }
> @@ -152,6 +154,7 @@ void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> return;
>
> smd->dev = dev;
> + smd->subdev.name = kstrdup("smd", GFP_KERNEL);
> smd->subdev.start = smd_subdev_start;
> smd->subdev.stop = smd_subdev_stop;
>
> @@ -169,6 +172,7 @@ void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> if (!smd->node)
> return;
>
> + kfree(smd->subdev.name);
> rproc_remove_subdev(rproc, &smd->subdev);
> of_node_put(smd->node);
> }
> @@ -220,6 +224,7 @@ void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
> const char *ssr_name)
> {
> ssr->name = ssr_name;
> + ssr->subdev.name = kstrdup("ssr_notifs", GFP_KERNEL);
> ssr->subdev.unprepare = ssr_notify_unprepare;
>
> rproc_add_subdev(rproc, &ssr->subdev);
> @@ -233,6 +238,7 @@ EXPORT_SYMBOL_GPL(qcom_add_ssr_subdev);
> */
> void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr)
> {
> + kfree(ssr->subdev.name);
> rproc_remove_subdev(rproc, &ssr->subdev);
> }
> EXPORT_SYMBOL_GPL(qcom_remove_ssr_subdev);
> diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
> index c5d36e6..687e1eb 100644
> --- a/include/linux/remoteproc.h
> +++ b/include/linux/remoteproc.h
> @@ -523,6 +523,7 @@ struct rproc {
> /**
> * struct rproc_subdev - subdevice tied to a remoteproc
> * @node: list node related to the rproc subdevs list
> + * @name: name of the subdevice
> * @prepare: prepare function, called before the rproc is started
> * @start: start function, called after the rproc has been started
> * @stop: stop function, called before the rproc is stopped; the @crashed
> @@ -531,6 +532,7 @@ struct rproc {
> */
> struct rproc_subdev {
> struct list_head node;
> + char *name;
>
> int (*prepare)(struct rproc_subdev *subdev);
> int (*start)(struct rproc_subdev *subdev);
> --
> Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Siddharth Gupta <sidgup@codeaurora.org>
Cc: agross@kernel.org, ohad@wizery.com,
Rishabh Bhatnagar <rishabhb@codeaurora.org>,
linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tsoni@codeaurora.org,
psodagud@codeaurora.org
Subject: Re: [PATCH v2 4/6] remoteproc: qcom: Add name field for every subdevice
Date: Wed, 22 Apr 2020 17:54:50 -0700 [thread overview]
Message-ID: <20200423005447.GM1868936@builder.lan> (raw)
In-Reply-To: <1586389003-26675-5-git-send-email-sidgup@codeaurora.org>
On Wed 08 Apr 16:36 PDT 2020, Siddharth Gupta wrote:
> From: Rishabh Bhatnagar <rishabhb@codeaurora.org>
>
> When a client driver wishes to utilize functionality from a particular
> subdevice of a remoteproc, it cannot differentiate between the subdevices
> that have been added. This patch allows the client driver to distinguish
> between subdevices and thus utilize their functionality.
>
As noted in patch 5, this invites driver authors to traverse the rproc
subdev list outside the remoteproc core. So I would like to avoid this.
Regards,
Bjorn
> Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
> Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
> ---
> drivers/remoteproc/qcom_common.c | 6 ++++++
> include/linux/remoteproc.h | 2 ++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c
> index 60650bc..1d2351b 100644
> --- a/drivers/remoteproc/qcom_common.c
> +++ b/drivers/remoteproc/qcom_common.c
> @@ -56,6 +56,7 @@ void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
> return;
>
> glink->dev = dev;
> + glink->subdev.name = kstrdup("glink", GFP_KERNEL);
> glink->subdev.start = glink_subdev_start;
> glink->subdev.stop = glink_subdev_stop;
>
> @@ -73,6 +74,7 @@ void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glin
> if (!glink->node)
> return;
>
> + kfree(glink->subdev.name);
> rproc_remove_subdev(rproc, &glink->subdev);
> of_node_put(glink->node);
> }
> @@ -152,6 +154,7 @@ void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> return;
>
> smd->dev = dev;
> + smd->subdev.name = kstrdup("smd", GFP_KERNEL);
> smd->subdev.start = smd_subdev_start;
> smd->subdev.stop = smd_subdev_stop;
>
> @@ -169,6 +172,7 @@ void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> if (!smd->node)
> return;
>
> + kfree(smd->subdev.name);
> rproc_remove_subdev(rproc, &smd->subdev);
> of_node_put(smd->node);
> }
> @@ -220,6 +224,7 @@ void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
> const char *ssr_name)
> {
> ssr->name = ssr_name;
> + ssr->subdev.name = kstrdup("ssr_notifs", GFP_KERNEL);
> ssr->subdev.unprepare = ssr_notify_unprepare;
>
> rproc_add_subdev(rproc, &ssr->subdev);
> @@ -233,6 +238,7 @@ EXPORT_SYMBOL_GPL(qcom_add_ssr_subdev);
> */
> void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr)
> {
> + kfree(ssr->subdev.name);
> rproc_remove_subdev(rproc, &ssr->subdev);
> }
> EXPORT_SYMBOL_GPL(qcom_remove_ssr_subdev);
> diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
> index c5d36e6..687e1eb 100644
> --- a/include/linux/remoteproc.h
> +++ b/include/linux/remoteproc.h
> @@ -523,6 +523,7 @@ struct rproc {
> /**
> * struct rproc_subdev - subdevice tied to a remoteproc
> * @node: list node related to the rproc subdevs list
> + * @name: name of the subdevice
> * @prepare: prepare function, called before the rproc is started
> * @start: start function, called after the rproc has been started
> * @stop: stop function, called before the rproc is stopped; the @crashed
> @@ -531,6 +532,7 @@ struct rproc {
> */
> struct rproc_subdev {
> struct list_head node;
> + char *name;
>
> int (*prepare)(struct rproc_subdev *subdev);
> int (*start)(struct rproc_subdev *subdev);
> --
> Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Siddharth Gupta <sidgup@codeaurora.org>
Cc: ohad@wizery.com, tsoni@codeaurora.org,
linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org,
linux-kernel@vger.kernel.org, agross@kernel.org,
Rishabh Bhatnagar <rishabhb@codeaurora.org>,
psodagud@codeaurora.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 4/6] remoteproc: qcom: Add name field for every subdevice
Date: Wed, 22 Apr 2020 17:54:47 -0700 [thread overview]
Message-ID: <20200423005447.GM1868936@builder.lan> (raw)
In-Reply-To: <1586389003-26675-5-git-send-email-sidgup@codeaurora.org>
On Wed 08 Apr 16:36 PDT 2020, Siddharth Gupta wrote:
> From: Rishabh Bhatnagar <rishabhb@codeaurora.org>
>
> When a client driver wishes to utilize functionality from a particular
> subdevice of a remoteproc, it cannot differentiate between the subdevices
> that have been added. This patch allows the client driver to distinguish
> between subdevices and thus utilize their functionality.
>
As noted in patch 5, this invites driver authors to traverse the rproc
subdev list outside the remoteproc core. So I would like to avoid this.
Regards,
Bjorn
> Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
> Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
> ---
> drivers/remoteproc/qcom_common.c | 6 ++++++
> include/linux/remoteproc.h | 2 ++
> 2 files changed, 8 insertions(+)
>
> diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c
> index 60650bc..1d2351b 100644
> --- a/drivers/remoteproc/qcom_common.c
> +++ b/drivers/remoteproc/qcom_common.c
> @@ -56,6 +56,7 @@ void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
> return;
>
> glink->dev = dev;
> + glink->subdev.name = kstrdup("glink", GFP_KERNEL);
> glink->subdev.start = glink_subdev_start;
> glink->subdev.stop = glink_subdev_stop;
>
> @@ -73,6 +74,7 @@ void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glin
> if (!glink->node)
> return;
>
> + kfree(glink->subdev.name);
> rproc_remove_subdev(rproc, &glink->subdev);
> of_node_put(glink->node);
> }
> @@ -152,6 +154,7 @@ void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> return;
>
> smd->dev = dev;
> + smd->subdev.name = kstrdup("smd", GFP_KERNEL);
> smd->subdev.start = smd_subdev_start;
> smd->subdev.stop = smd_subdev_stop;
>
> @@ -169,6 +172,7 @@ void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd)
> if (!smd->node)
> return;
>
> + kfree(smd->subdev.name);
> rproc_remove_subdev(rproc, &smd->subdev);
> of_node_put(smd->node);
> }
> @@ -220,6 +224,7 @@ void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
> const char *ssr_name)
> {
> ssr->name = ssr_name;
> + ssr->subdev.name = kstrdup("ssr_notifs", GFP_KERNEL);
> ssr->subdev.unprepare = ssr_notify_unprepare;
>
> rproc_add_subdev(rproc, &ssr->subdev);
> @@ -233,6 +238,7 @@ EXPORT_SYMBOL_GPL(qcom_add_ssr_subdev);
> */
> void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr)
> {
> + kfree(ssr->subdev.name);
> rproc_remove_subdev(rproc, &ssr->subdev);
> }
> EXPORT_SYMBOL_GPL(qcom_remove_ssr_subdev);
> diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
> index c5d36e6..687e1eb 100644
> --- a/include/linux/remoteproc.h
> +++ b/include/linux/remoteproc.h
> @@ -523,6 +523,7 @@ struct rproc {
> /**
> * struct rproc_subdev - subdevice tied to a remoteproc
> * @node: list node related to the rproc subdevs list
> + * @name: name of the subdevice
> * @prepare: prepare function, called before the rproc is started
> * @start: start function, called after the rproc has been started
> * @stop: stop function, called before the rproc is stopped; the @crashed
> @@ -531,6 +532,7 @@ struct rproc {
> */
> struct rproc_subdev {
> struct list_head node;
> + char *name;
>
> int (*prepare)(struct rproc_subdev *subdev);
> int (*start)(struct rproc_subdev *subdev);
> --
> Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-04-23 0:54 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-08 23:36 [PATCH v2 0/6] remoteproc: qcom: Add callbacks for remoteproc events Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-08 23:36 ` [PATCH v2 1/6] remoteproc: sysmon: Add ability to send type of notification Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 17:03 ` Mathieu Poirier
2020-04-15 17:03 ` Mathieu Poirier
2020-04-20 7:05 ` Bjorn Andersson
2020-04-20 7:05 ` Bjorn Andersson
2020-04-20 7:05 ` Bjorn Andersson
2020-04-08 23:36 ` [PATCH v2 2/6] remoteproc: sysmon: Add notifications for events Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 17:03 ` Mathieu Poirier
2020-04-15 17:03 ` Mathieu Poirier
2020-04-20 7:05 ` Bjorn Andersson
2020-04-20 7:05 ` Bjorn Andersson
2020-04-20 7:05 ` Bjorn Andersson
2020-04-08 23:36 ` [PATCH v2 3/6] remoteproc: sysmon: Inform current rproc about all active rprocs Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 17:16 ` Mathieu Poirier
2020-04-15 17:16 ` Mathieu Poirier
2020-04-20 7:09 ` Bjorn Andersson
2020-04-20 7:09 ` Bjorn Andersson
2020-04-20 7:09 ` Bjorn Andersson
2020-04-08 23:36 ` [PATCH v2 4/6] remoteproc: qcom: Add name field for every subdevice Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 18:11 ` Mathieu Poirier
2020-04-15 18:11 ` Mathieu Poirier
2020-04-23 0:54 ` Bjorn Andersson [this message]
2020-04-23 0:54 ` Bjorn Andersson
2020-04-23 0:54 ` Bjorn Andersson
2020-04-08 23:36 ` [PATCH v2 5/6] remoteproc: qcom: Add per subsystem SSR notification Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 18:07 ` Mathieu Poirier
2020-04-15 18:07 ` Mathieu Poirier
2020-04-23 0:53 ` Bjorn Andersson
2020-04-23 0:53 ` Bjorn Andersson
2020-04-23 0:53 ` Bjorn Andersson
2020-04-08 23:36 ` [PATCH v2 6/6] remoteproc: qcom: Add notification types to SSR Siddharth Gupta
2020-04-08 23:36 ` Siddharth Gupta
2020-04-15 18:10 ` Mathieu Poirier
2020-04-15 18:10 ` Mathieu Poirier
2020-04-23 0:58 ` Bjorn Andersson
2020-04-23 0:58 ` Bjorn Andersson
2020-04-23 0:58 ` Bjorn Andersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200423005447.GM1868936@builder.lan \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=ohad@wizery.com \
--cc=psodagud@codeaurora.org \
--cc=rishabhb@codeaurora.org \
--cc=sidgup@codeaurora.org \
--cc=tsoni@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.