Re: [PATCH 2/6] interconnect: qcom: Implement xlate_extended() to parse tags
From: Matthias Kaehlcke <mka@chromium.org>
Date: 2020-07-27 20:19:59
Also in:
linux-pm, lkml
On Thu, Jul 23, 2020 at 04:09:38PM +0300, Georgi Djakov wrote:
quoted hunk ↗ jump to hunk
Implement a function to parse the arguments of the "interconnects" DT property and populate the interconnect path tags if this information is available. Signed-off-by: Georgi Djakov <redacted> --- drivers/interconnect/qcom/icc-rpmh.c | 27 +++++++++++++++++++++++++++ drivers/interconnect/qcom/icc-rpmh.h | 1 + 2 files changed, 28 insertions(+)diff --git a/drivers/interconnect/qcom/icc-rpmh.c b/drivers/interconnect/qcom/icc-rpmh.c index 3ac5182c9ab2..44144fabec32 100644 --- a/drivers/interconnect/qcom/icc-rpmh.c +++ b/drivers/interconnect/qcom/icc-rpmh.c@@ -6,6 +6,8 @@ #include <linux/interconnect.h> #include <linux/interconnect-provider.h> #include <linux/module.h> +#include <linux/of.h> +#include <linux/slab.h> #include "bcm-voter.h" #include "icc-rpmh.h"@@ -92,6 +94,31 @@ int qcom_icc_set(struct icc_node *src, struct icc_node *dst) } EXPORT_SYMBOL_GPL(qcom_icc_set); +struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data) +{ + struct icc_node_data *ndata; + struct icc_node *node; + + if (!spec) + return ERR_PTR(-EINVAL); + + node = of_icc_xlate_onecell(spec, data); + if (IS_ERR(node)) + return ERR_CAST(node); + + ndata = kzalloc(sizeof(*ndata), GFP_KERNEL); + if (!ndata) + return ERR_PTR(-ENOMEM); + + ndata->node = node; + + if (spec->args_count == 2) + ndata->tag = spec->args[1];
Would a higher number of arguments (currently) be an error? Is so, should it be reported?