Message ID | 20200609131404.17523-28-digetx@gmail.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Introduce memory interconnect for NVIDIA Tegra SoCs | expand |
Hi Dmitry, On 6/9/20 16:13, Dmitry Osipenko wrote: > From: Artur Świgoń <a.swigon@samsung.com> > > This patch relaxes the condition in of_icc_get_from_provider() so that it > is no longer required to set #interconnect-cells = <1> in the DT. In case > of the devfreq driver for exynos-bus, #interconnect-cells is always zero. > > Signed-off-by: Artur Świgoń <a.swigon@samsung.com> > [digetx@gmail.com: added cells_num checking for of_icc_xlate_onecell()] > Signed-off-by: Dmitry Osipenko <digetx@gmail.com> I have already applied the original patch by Artur, so please make the cells_num check a separate patch. Thanks, Georgi > --- > drivers/interconnect/core.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c > index e5f998744501..cb143421ca67 100644 > --- a/drivers/interconnect/core.c > +++ b/drivers/interconnect/core.c > @@ -339,7 +339,7 @@ static struct icc_node *of_icc_get_from_provider(struct of_phandle_args *spec) > struct icc_node *node = ERR_PTR(-EPROBE_DEFER); > struct icc_provider *provider; > > - if (!spec || spec->args_count != 1) > + if (!spec) > return ERR_PTR(-EINVAL); > > mutex_lock(&icc_lock); > @@ -967,6 +967,15 @@ EXPORT_SYMBOL_GPL(icc_nodes_remove); > */ > int icc_provider_add(struct icc_provider *provider) > { > + struct device_node *np = provider->dev->of_node; > + u32 cells_num; > + int err; > + > + err = of_property_read_u32(np, "#interconnect-cells", &cells_num); > + if (WARN_ON(err)) > + return err; > + if (WARN_ON(provider->xlate == of_icc_xlate_onecell && cells_num != 1)) > + return -EINVAL; > if (WARN_ON(!provider->set)) > return -EINVAL; > if (WARN_ON(!provider->xlate)) >
01.07.2020 20:10, Georgi Djakov пишет: > Hi Dmitry, > > On 6/9/20 16:13, Dmitry Osipenko wrote: >> From: Artur Świgoń <a.swigon@samsung.com> >> >> This patch relaxes the condition in of_icc_get_from_provider() so that it >> is no longer required to set #interconnect-cells = <1> in the DT. In case >> of the devfreq driver for exynos-bus, #interconnect-cells is always zero. >> >> Signed-off-by: Artur Świgoń <a.swigon@samsung.com> >> [digetx@gmail.com: added cells_num checking for of_icc_xlate_onecell()] >> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> > > I have already applied the original patch by Artur, so please make the cells_num > check a separate patch. Okay, I'll update this patch! Thank you!
diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c index e5f998744501..cb143421ca67 100644 --- a/drivers/interconnect/core.c +++ b/drivers/interconnect/core.c @@ -339,7 +339,7 @@ static struct icc_node *of_icc_get_from_provider(struct of_phandle_args *spec) struct icc_node *node = ERR_PTR(-EPROBE_DEFER); struct icc_provider *provider; - if (!spec || spec->args_count != 1) + if (!spec) return ERR_PTR(-EINVAL); mutex_lock(&icc_lock); @@ -967,6 +967,15 @@ EXPORT_SYMBOL_GPL(icc_nodes_remove); */ int icc_provider_add(struct icc_provider *provider) { + struct device_node *np = provider->dev->of_node; + u32 cells_num; + int err; + + err = of_property_read_u32(np, "#interconnect-cells", &cells_num); + if (WARN_ON(err)) + return err; + if (WARN_ON(provider->xlate == of_icc_xlate_onecell && cells_num != 1)) + return -EINVAL; if (WARN_ON(!provider->set)) return -EINVAL; if (WARN_ON(!provider->xlate))