Messages in this thread | | | Subject | Re: [PATCH 2/6] interconnect: qcom: Implement xlate_extended() to parse tags | From | Sibi Sankar <> | Date | Mon, 27 Jul 2020 20:17:35 +0530 |
| |
Hey Georgi,
Thanks for the patch!
On 7/23/20 6:39 PM, Georgi Djakov wrote: > 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 <georgi.djakov@linaro.org> > --- > 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); > +
you could probably skip ^^ check
Tested-by: Sibi Sankar <sibis@codeaurora.org> Reviewed-by: Sibi Sankar <sibis@codeaurora.org>
> + 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]; > + > + return ndata; > +} > +EXPORT_SYMBOL_GPL(qcom_icc_xlate_extended); > + > /** > * qcom_icc_bcm_init - populates bcm aux data and connect qnodes > * @bcm: bcm to be initialized > diff --git a/drivers/interconnect/qcom/icc-rpmh.h b/drivers/interconnect/qcom/icc-rpmh.h > index 903d25e61984..1dac39bc255d 100644 > --- a/drivers/interconnect/qcom/icc-rpmh.h > +++ b/drivers/interconnect/qcom/icc-rpmh.h > @@ -143,6 +143,7 @@ struct qcom_icc_desc { > int qcom_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw, > u32 peak_bw, u32 *agg_avg, u32 *agg_peak); > int qcom_icc_set(struct icc_node *src, struct icc_node *dst); > +struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data); > int qcom_icc_bcm_init(struct qcom_icc_bcm *bcm, struct device *dev); > void qcom_icc_pre_aggregate(struct icc_node *node); > > > >
-- Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc, is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
| |