* [PATCH 0/9] PM / devfreq: Remove deprecated 'devfreq' and 'devfreq-events' properties [not found] <CGME20191217055105epcas1p365e306f27fd53852b793155c929ee634@epcas1p3.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi [not found] ` <CGME20191217055105epcas1p3bacbf54550c52979fe819ab33bb21d30@epcas1p3.samsung.com> ` (8 more replies) 0 siblings, 9 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip The devfreq and devfreq-event subsystem provided the following two properties: - Provide 'devfreq' property in order to get the parent devfreq device by devfreq_get_devfreq_by_phandle() if devfreq device use passive governor. - Provide 'devfreq-events' property in order to get the devfreq-event device by devfreq_event_get_edev_by_phandle(). But, two properties name is not proper expressing the h/w and 'devfreq' word is name of linux subsystem intead of any h/w name. Hand over the rights for deciding the property name for getting the devfreq/devfreq-event device on devicetree, to each devfreq driver. So, replace 'devfreq' and 'devfreq-events' property with following property name according to each devfreq driver: -------------------------------------------------------------------- Old property | New propert | Device driver name | -------------------------------------------------------------------- devfreq | exynos,parent-bus | exynos-bus.c | | | | devfreq-events| exynos,ppmu-device | exynos-bus.c, exynos5422-dmc.c| | rockchip,dfi-device| rk3399_dmc.c | -------------------------------------------------------------------- Chanwoo Choi (8): PM / devfreq: Remove devfreq_get_devfreq_by_phandle function PM / devfreq: event: Add devfreq_event_get_edev_by_node function PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property PM / devfreq: exynos-bus: Replace deprecated 'devfreq-events' property PM / devfreq: rk3399_dmc: Replace deprecated 'devfreq-events' property memory: samsung: exynos5422-dmc: Replace deprecated 'devfreq-events' property ARM: dts: exynos: Replace deprecated property for Exynos bus and DMC arm64: dts: exynos: Replace deprecated property for Exynos bus Leonard Crestez (1): PM / devfreq: Add devfreq_get_devfreq_by_node function .../bindings/devfreq/exynos-bus.txt | 22 +++---- .../bindings/devfreq/rk3399_dmc.txt | 4 +- .../memory-controllers/exynos5422-dmc.txt | 6 +- arch/arm/boot/dts/exynos3250-monk.dts | 2 +- arch/arm/boot/dts/exynos3250-rinato.dts | 18 +++--- .../boot/dts/exynos4412-itop-scp-core.dtsi | 16 ++--- arch/arm/boot/dts/exynos4412-midas.dtsi | 18 +++--- .../boot/dts/exynos4412-odroid-common.dtsi | 18 +++--- arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 34 +++++------ .../dts/exynos/exynos5433-tm2-common.dtsi | 20 +++---- drivers/devfreq/devfreq-event.c | 53 +++-------------- drivers/devfreq/devfreq.c | 25 +++----- drivers/devfreq/exynos-bus.c | 58 ++++++++++++++++--- drivers/devfreq/rk3399_dmc.c | 16 ++++- drivers/memory/samsung/exynos5422-dmc.c | 37 ++++++++++-- include/linux/devfreq-event.h | 14 ++--- include/linux/devfreq.h | 6 +- 17 files changed, 197 insertions(+), 170 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055105epcas1p3bacbf54550c52979fe819ab33bb21d30@epcas1p3.samsung.com>]
* [PATCH 1/9] PM / devfreq: Add devfreq_get_devfreq_by_node function [not found] ` <CGME20191217055105epcas1p3bacbf54550c52979fe819ab33bb21d30@epcas1p3.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip From: Leonard Crestez <leonard.crestez@nxp.com> Split off part of devfreq_get_devfreq_by_phandle into a separate function. This allows callers to fetch devfreq instances by enumerating devicetree instead of explicit phandles. Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> [cw00.choi: Export devfreq_get_devfreq_by_node function and add function to devfreq.h when CONFIG_PM_DEVFREQ is enabled.] Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- drivers/devfreq/devfreq.c | 46 +++++++++++++++++++++++++++++---------- include/linux/devfreq.h | 6 +++++ 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 89260b17598f..cb8ca81c8973 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -966,6 +966,32 @@ struct devfreq *devm_devfreq_add_device(struct device *dev, EXPORT_SYMBOL(devm_devfreq_add_device); #ifdef CONFIG_OF +/* + * devfreq_get_devfreq_by_node - Get the devfreq device from devicetree + * @node - pointer to device_node + * + * return the instance of devfreq device + */ +struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) +{ + struct devfreq *devfreq; + + if (!node) + return ERR_PTR(-EINVAL); + + mutex_lock(&devfreq_list_lock); + list_for_each_entry(devfreq, &devfreq_list, node) { + if (devfreq->dev.parent + && devfreq->dev.parent->of_node == node) { + mutex_unlock(&devfreq_list_lock); + return devfreq; + } + } + mutex_unlock(&devfreq_list_lock); + + return ERR_PTR(-ENODEV); +} + /* * devfreq_get_devfreq_by_phandle - Get the devfreq device from devicetree * @dev - instance to the given device @@ -988,26 +1014,24 @@ struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) if (!node) return ERR_PTR(-ENODEV); - mutex_lock(&devfreq_list_lock); - list_for_each_entry(devfreq, &devfreq_list, node) { - if (devfreq->dev.parent - && devfreq->dev.parent->of_node == node) { - mutex_unlock(&devfreq_list_lock); - of_node_put(node); - return devfreq; - } - } - mutex_unlock(&devfreq_list_lock); + devfreq = devfreq_get_devfreq_by_node(node); of_node_put(node); - return ERR_PTR(-EPROBE_DEFER); + return devfreq; } + #else +struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) +{ + return ERR_PTR(-ENODEV); +} + struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) { return ERR_PTR(-ENODEV); } #endif /* CONFIG_OF */ +EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_node); EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_phandle); /** diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h index c6f82d4bec9f..e3633ae43349 100644 --- a/include/linux/devfreq.h +++ b/include/linux/devfreq.h @@ -253,6 +253,7 @@ extern void devm_devfreq_unregister_notifier(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list); +extern struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node); extern struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index); @@ -407,6 +408,11 @@ static inline void devm_devfreq_unregister_notifier(struct device *dev, { } +struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) +{ + return ERR_PTR(-ENODEV); +} + static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) { -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055105epcas1p2d2930402a559e381a7854f515a683d15@epcas1p2.samsung.com>]
* [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function [not found] ` <CGME20191217055105epcas1p2d2930402a559e381a7854f515a683d15@epcas1p2.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 2019-12-17 14:33 ` Leonard Crestez 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Previously, devfreq core support 'devfreq' property in order to get the devfreq device by phandle. But, 'devfreq' property name is not proper on devicetree binding because this name doesn't mean the any h/w attribute. The devfreq core hand over the right to decide the property name for getting the devfreq device on devicetree. Each devfreq driver will decide the property name on devicetree binding and then get the devfreq device by using devfreq_get_devfreq_by_node(). Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- drivers/devfreq/devfreq.c | 35 ----------------------------------- drivers/devfreq/exynos-bus.c | 14 ++++++++++++-- include/linux/devfreq.h | 8 -------- 3 files changed, 12 insertions(+), 45 deletions(-) diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index cb8ca81c8973..c3d3c7c802a0 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -991,48 +991,13 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) return ERR_PTR(-ENODEV); } - -/* - * devfreq_get_devfreq_by_phandle - Get the devfreq device from devicetree - * @dev - instance to the given device - * @index - index into list of devfreq - * - * return the instance of devfreq device - */ -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) -{ - struct device_node *node; - struct devfreq *devfreq; - - if (!dev) - return ERR_PTR(-EINVAL); - - if (!dev->of_node) - return ERR_PTR(-EINVAL); - - node = of_parse_phandle(dev->of_node, "devfreq", index); - if (!node) - return ERR_PTR(-ENODEV); - - devfreq = devfreq_get_devfreq_by_node(node); - of_node_put(node); - - return devfreq; -} - #else struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) { return ERR_PTR(-ENODEV); } - -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) -{ - return ERR_PTR(-ENODEV); -} #endif /* CONFIG_OF */ EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_node); -EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_phandle); /** * devm_devfreq_remove_device() - Resource-managed devfreq_remove_device() diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index 7f5917d59072..9aac2db956d5 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -146,6 +146,16 @@ static int exynos_bus_get_dev_status(struct device *dev, return ret; } +static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) +{ + struct device_node *node = of_parse_phandle(np, "devfreq", 0); + + if (!node) + return ERR_PTR(-ENODEV); + + return devfreq_get_devfreq_by_node(node); +} + static void exynos_bus_exit(struct device *dev) { struct exynos_bus *bus = dev_get_drvdata(dev); @@ -353,8 +363,8 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, profile->exit = exynos_bus_passive_exit; /* Get the instance of parent devfreq device */ - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); - if (IS_ERR(parent_devfreq)) + parent_devfreq = get_parent_devfreq_by_node(dev->of_node); + if (IS_ERR(parent_devfreq)) { return -EPROBE_DEFER; passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h index e3633ae43349..3ed96426302e 100644 --- a/include/linux/devfreq.h +++ b/include/linux/devfreq.h @@ -254,8 +254,6 @@ extern void devm_devfreq_unregister_notifier(struct device *dev, struct notifier_block *nb, unsigned int list); extern struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node); -extern struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, - int index); #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) /** @@ -413,12 +411,6 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) return ERR_PTR(-ENODEV); } -static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, - int index) -{ - return ERR_PTR(-ENODEV); -} - static inline int devfreq_update_stats(struct devfreq *df) { return -EINVAL; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function 2019-12-17 5:57 ` [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function Chanwoo Choi @ 2019-12-17 14:33 ` Leonard Crestez 2019-12-18 2:59 ` Chanwoo Choi 0 siblings, 1 reply; 21+ messages in thread From: Leonard Crestez @ 2019-12-17 14:33 UTC (permalink / raw) To: Chanwoo Choi, krzk, robh+dt Cc: mark.rutland, heiko, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On 17.12.2019 07:51, Chanwoo Choi wrote: > Previously, devfreq core support 'devfreq' property in order to get > the devfreq device by phandle. But, 'devfreq' property name is not proper > on devicetree binding because this name doesn't mean the any h/w attribute. > > The devfreq core hand over the right to decide the property name > for getting the devfreq device on devicetree. Each devfreq driver > will decide the property name on devicetree binding and then get > the devfreq device by using devfreq_get_devfreq_by_node(). > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > drivers/devfreq/devfreq.c | 35 ----------------------------------- > drivers/devfreq/exynos-bus.c | 14 ++++++++++++-- > include/linux/devfreq.h | 8 -------- > 3 files changed, 12 insertions(+), 45 deletions(-) > > diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c > index cb8ca81c8973..c3d3c7c802a0 100644 > --- a/drivers/devfreq/devfreq.c > +++ b/drivers/devfreq/devfreq.c > @@ -991,48 +991,13 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) > > return ERR_PTR(-ENODEV); > } > - > -/* > - * devfreq_get_devfreq_by_phandle - Get the devfreq device from devicetree > - * @dev - instance to the given device > - * @index - index into list of devfreq > - * > - * return the instance of devfreq device > - */ > -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) > -{ > - struct device_node *node; > - struct devfreq *devfreq; > - > - if (!dev) > - return ERR_PTR(-EINVAL); > - > - if (!dev->of_node) > - return ERR_PTR(-EINVAL); > - > - node = of_parse_phandle(dev->of_node, "devfreq", index); > - if (!node) > - return ERR_PTR(-ENODEV); > - > - devfreq = devfreq_get_devfreq_by_node(node); > - of_node_put(node); > - > - return devfreq; > -} > - > #else > struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) > { > return ERR_PTR(-ENODEV); > } > - > -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) > -{ > - return ERR_PTR(-ENODEV); > -} > #endif /* CONFIG_OF */ > EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_node); > -EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_phandle); > > /** > * devm_devfreq_remove_device() - Resource-managed devfreq_remove_device() > diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c > index 7f5917d59072..9aac2db956d5 100644 > --- a/drivers/devfreq/exynos-bus.c > +++ b/drivers/devfreq/exynos-bus.c > @@ -146,6 +146,16 @@ static int exynos_bus_get_dev_status(struct device *dev, > return ret; > } > > +static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) > +{ > + struct device_node *node = of_parse_phandle(np, "devfreq", 0); > + > + if (!node) > + return ERR_PTR(-ENODEV); > + > + return devfreq_get_devfreq_by_node(node); > +} The _by_node suffix here is confusing because it actually fetches a property of the node unlike devfreq_get_devfreq_by_node. Maybe call this get_parent_devfreq_from_node? Since it's a static function it could just be called get_parent_devfreq? > + > static void exynos_bus_exit(struct device *dev) > { > struct exynos_bus *bus = dev_get_drvdata(dev); > @@ -353,8 +363,8 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, > profile->exit = exynos_bus_passive_exit; > > /* Get the instance of parent devfreq device */ > - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); > - if (IS_ERR(parent_devfreq)) > + parent_devfreq = get_parent_devfreq_by_node(dev->of_node); > + if (IS_ERR(parent_devfreq)) { > return -EPROBE_DEFER; > > passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); > diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h > index e3633ae43349..3ed96426302e 100644 > --- a/include/linux/devfreq.h > +++ b/include/linux/devfreq.h > @@ -254,8 +254,6 @@ extern void devm_devfreq_unregister_notifier(struct device *dev, > struct notifier_block *nb, > unsigned int list); > extern struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node); > -extern struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, > - int index); > > #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) > /** > @@ -413,12 +411,6 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) > return ERR_PTR(-ENODEV); > } > > -static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, > - int index) > -{ > - return ERR_PTR(-ENODEV); > -} > - > static inline int devfreq_update_stats(struct devfreq *df) > { > return -EINVAL; > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function 2019-12-17 14:33 ` Leonard Crestez @ 2019-12-18 2:59 ` Chanwoo Choi 2019-12-18 3:20 ` Chanwoo Choi 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-18 2:59 UTC (permalink / raw) To: Leonard Crestez, krzk, robh+dt Cc: mark.rutland, heiko, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On 12/17/19 11:33 PM, Leonard Crestez wrote: > On 17.12.2019 07:51, Chanwoo Choi wrote: >> Previously, devfreq core support 'devfreq' property in order to get >> the devfreq device by phandle. But, 'devfreq' property name is not proper >> on devicetree binding because this name doesn't mean the any h/w attribute. >> >> The devfreq core hand over the right to decide the property name >> for getting the devfreq device on devicetree. Each devfreq driver >> will decide the property name on devicetree binding and then get >> the devfreq device by using devfreq_get_devfreq_by_node(). >> >> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> >> --- >> drivers/devfreq/devfreq.c | 35 ----------------------------------- >> drivers/devfreq/exynos-bus.c | 14 ++++++++++++-- >> include/linux/devfreq.h | 8 -------- >> 3 files changed, 12 insertions(+), 45 deletions(-) >> >> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c >> index cb8ca81c8973..c3d3c7c802a0 100644 >> --- a/drivers/devfreq/devfreq.c >> +++ b/drivers/devfreq/devfreq.c >> @@ -991,48 +991,13 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >> >> return ERR_PTR(-ENODEV); >> } >> - >> -/* >> - * devfreq_get_devfreq_by_phandle - Get the devfreq device from devicetree >> - * @dev - instance to the given device >> - * @index - index into list of devfreq >> - * >> - * return the instance of devfreq device >> - */ >> -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) >> -{ >> - struct device_node *node; >> - struct devfreq *devfreq; >> - >> - if (!dev) >> - return ERR_PTR(-EINVAL); >> - >> - if (!dev->of_node) >> - return ERR_PTR(-EINVAL); >> - >> - node = of_parse_phandle(dev->of_node, "devfreq", index); >> - if (!node) >> - return ERR_PTR(-ENODEV); >> - >> - devfreq = devfreq_get_devfreq_by_node(node); >> - of_node_put(node); >> - >> - return devfreq; >> -} >> - >> #else >> struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >> { >> return ERR_PTR(-ENODEV); >> } >> - >> -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) >> -{ >> - return ERR_PTR(-ENODEV); >> -} >> #endif /* CONFIG_OF */ >> EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_node); >> -EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_phandle); >> >> /** >> * devm_devfreq_remove_device() - Resource-managed devfreq_remove_device() >> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c >> index 7f5917d59072..9aac2db956d5 100644 >> --- a/drivers/devfreq/exynos-bus.c >> +++ b/drivers/devfreq/exynos-bus.c >> @@ -146,6 +146,16 @@ static int exynos_bus_get_dev_status(struct device *dev, >> return ret; >> } >> >> +static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) >> +{ >> + struct device_node *node = of_parse_phandle(np, "devfreq", 0); >> + >> + if (!node) >> + return ERR_PTR(-ENODEV); >> + >> + return devfreq_get_devfreq_by_node(node); >> +} > > The _by_node suffix here is confusing because it actually fetches a > property of the node unlike devfreq_get_devfreq_by_node. Maybe call this > get_parent_devfreq_from_node? > > Since it's a static function it could just be called get_parent_devfreq? OK. > >> + >> static void exynos_bus_exit(struct device *dev) >> { >> struct exynos_bus *bus = dev_get_drvdata(dev); >> @@ -353,8 +363,8 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, >> profile->exit = exynos_bus_passive_exit; >> >> /* Get the instance of parent devfreq device */ >> - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); >> - if (IS_ERR(parent_devfreq)) >> + parent_devfreq = get_parent_devfreq_by_node(dev->of_node); >> + if (IS_ERR(parent_devfreq)) { >> return -EPROBE_DEFER; >> >> passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); >> diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h >> index e3633ae43349..3ed96426302e 100644 >> --- a/include/linux/devfreq.h >> +++ b/include/linux/devfreq.h >> @@ -254,8 +254,6 @@ extern void devm_devfreq_unregister_notifier(struct device *dev, >> struct notifier_block *nb, >> unsigned int list); >> extern struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node); >> -extern struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, >> - int index); >> >> #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) >> /** >> @@ -413,12 +411,6 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >> return ERR_PTR(-ENODEV); >> } >> >> -static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, >> - int index) >> -{ >> - return ERR_PTR(-ENODEV); >> -} >> - >> static inline int devfreq_update_stats(struct devfreq *df) >> { >> return -EINVAL; >> > > > -- Best Regards, Chanwoo Choi Samsung Electronics ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function 2019-12-18 2:59 ` Chanwoo Choi @ 2019-12-18 3:20 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-18 3:20 UTC (permalink / raw) To: Leonard Crestez, krzk, robh+dt Cc: mark.rutland, heiko, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On 12/18/19 11:59 AM, Chanwoo Choi wrote: > On 12/17/19 11:33 PM, Leonard Crestez wrote: >> On 17.12.2019 07:51, Chanwoo Choi wrote: >>> Previously, devfreq core support 'devfreq' property in order to get >>> the devfreq device by phandle. But, 'devfreq' property name is not proper >>> on devicetree binding because this name doesn't mean the any h/w attribute. >>> >>> The devfreq core hand over the right to decide the property name >>> for getting the devfreq device on devicetree. Each devfreq driver >>> will decide the property name on devicetree binding and then get >>> the devfreq device by using devfreq_get_devfreq_by_node(). >>> >>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> >>> --- >>> drivers/devfreq/devfreq.c | 35 ----------------------------------- >>> drivers/devfreq/exynos-bus.c | 14 ++++++++++++-- >>> include/linux/devfreq.h | 8 -------- >>> 3 files changed, 12 insertions(+), 45 deletions(-) >>> >>> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c >>> index cb8ca81c8973..c3d3c7c802a0 100644 >>> --- a/drivers/devfreq/devfreq.c >>> +++ b/drivers/devfreq/devfreq.c >>> @@ -991,48 +991,13 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >>> >>> return ERR_PTR(-ENODEV); >>> } >>> - >>> -/* >>> - * devfreq_get_devfreq_by_phandle - Get the devfreq device from devicetree >>> - * @dev - instance to the given device >>> - * @index - index into list of devfreq >>> - * >>> - * return the instance of devfreq device >>> - */ >>> -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) >>> -{ >>> - struct device_node *node; >>> - struct devfreq *devfreq; >>> - >>> - if (!dev) >>> - return ERR_PTR(-EINVAL); >>> - >>> - if (!dev->of_node) >>> - return ERR_PTR(-EINVAL); >>> - >>> - node = of_parse_phandle(dev->of_node, "devfreq", index); >>> - if (!node) >>> - return ERR_PTR(-ENODEV); >>> - >>> - devfreq = devfreq_get_devfreq_by_node(node); >>> - of_node_put(node); >>> - >>> - return devfreq; >>> -} >>> - >>> #else >>> struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >>> { >>> return ERR_PTR(-ENODEV); >>> } >>> - >>> -struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, int index) >>> -{ >>> - return ERR_PTR(-ENODEV); >>> -} >>> #endif /* CONFIG_OF */ >>> EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_node); >>> -EXPORT_SYMBOL_GPL(devfreq_get_devfreq_by_phandle); >>> >>> /** >>> * devm_devfreq_remove_device() - Resource-managed devfreq_remove_device() >>> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c >>> index 7f5917d59072..9aac2db956d5 100644 >>> --- a/drivers/devfreq/exynos-bus.c >>> +++ b/drivers/devfreq/exynos-bus.c >>> @@ -146,6 +146,16 @@ static int exynos_bus_get_dev_status(struct device *dev, >>> return ret; >>> } >>> >>> +static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) >>> +{ >>> + struct device_node *node = of_parse_phandle(np, "devfreq", 0); >>> + >>> + if (!node) >>> + return ERR_PTR(-ENODEV); >>> + >>> + return devfreq_get_devfreq_by_node(node); >>> +} >> >> The _by_node suffix here is confusing because it actually fetches a >> property of the node unlike devfreq_get_devfreq_by_node. Maybe call this >> get_parent_devfreq_from_node? >> >> Since it's a static function it could just be called get_parent_devfreq? > > OK. I'll rename as following because all functions of exynos-bus.c which used 'exynos_bus_' prefix. - exynos_bus_get_parent_devfreq() > >> >>> + >>> static void exynos_bus_exit(struct device *dev) >>> { >>> struct exynos_bus *bus = dev_get_drvdata(dev); >>> @@ -353,8 +363,8 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, >>> profile->exit = exynos_bus_passive_exit; >>> >>> /* Get the instance of parent devfreq device */ >>> - parent_devfreq = devfreq_get_devfreq_by_phandle(dev, 0); >>> - if (IS_ERR(parent_devfreq)) >>> + parent_devfreq = get_parent_devfreq_by_node(dev->of_node); >>> + if (IS_ERR(parent_devfreq)) { >>> return -EPROBE_DEFER; >>> >>> passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); >>> diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h >>> index e3633ae43349..3ed96426302e 100644 >>> --- a/include/linux/devfreq.h >>> +++ b/include/linux/devfreq.h >>> @@ -254,8 +254,6 @@ extern void devm_devfreq_unregister_notifier(struct device *dev, >>> struct notifier_block *nb, >>> unsigned int list); >>> extern struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node); >>> -extern struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, >>> - int index); >>> >>> #if IS_ENABLED(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) >>> /** >>> @@ -413,12 +411,6 @@ struct devfreq *devfreq_get_devfreq_by_node(struct device_node *node) >>> return ERR_PTR(-ENODEV); >>> } >>> >>> -static inline struct devfreq *devfreq_get_devfreq_by_phandle(struct device *dev, >>> - int index) >>> -{ >>> - return ERR_PTR(-ENODEV); >>> -} >>> - >>> static inline int devfreq_update_stats(struct devfreq *df) >>> { >>> return -EINVAL; >>> >> >> >> > > -- Best Regards, Chanwoo Choi Samsung Electronics ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p3e77268d200006921dfa736b2c7550a04@epcas1p3.samsung.com>]
* [PATCH 3/9] PM / devfreq: event: Add devfreq_event_get_edev_by_node function [not found] ` <CGME20191217055106epcas1p3e77268d200006921dfa736b2c7550a04@epcas1p3.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Previously, devfreq-event core supports 'devfreq-events' property in order to get the devfreq_event_dev device by phandle. But, 'devfreq-events' property name is not proper on devicetree binding because this name doesn't mean the any h/w attribute. The devfreq-event core hands over the rights of which decide the property name for getting the devfreq device on devicetree, to each devfreq device driver. Each devfreq driver will decide the property name on devicetree binding and then get the devfreq device by using devfreq_event_get_edev_by_node(). And Remove devfreq_event_get_edev_count() function used 'devfreq-events'. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- drivers/devfreq/devfreq-event.c | 53 ++++--------------------- drivers/devfreq/exynos-bus.c | 16 +++++++- drivers/devfreq/rk3399_dmc.c | 13 +++++- drivers/memory/samsung/exynos5422-dmc.c | 16 ++++++-- include/linux/devfreq-event.h | 14 ++----- 5 files changed, 50 insertions(+), 62 deletions(-) diff --git a/drivers/devfreq/devfreq-event.c b/drivers/devfreq/devfreq-event.c index 8c31b0f2e28f..d0c989acbf93 100644 --- a/drivers/devfreq/devfreq-event.c +++ b/drivers/devfreq/devfreq-event.c @@ -210,25 +210,18 @@ int devfreq_event_reset_event(struct devfreq_event_dev *edev) EXPORT_SYMBOL_GPL(devfreq_event_reset_event); /** - * devfreq_event_get_edev_by_phandle() - Get the devfreq-event dev from - * devicetree. - * @dev : the pointer to the given device - * @index : the index into list of devfreq-event device + * devfreq_event_get_edev_by_node() - Get the devfreq-event dev from devicetree + * @node : the pointer to device_node * * Note that this function return the pointer of devfreq-event device. */ -struct devfreq_event_dev *devfreq_event_get_edev_by_phandle(struct device *dev, - int index) +struct devfreq_event_dev *devfreq_event_get_edev_by_node( + struct device_node *node) { - struct device_node *node; struct devfreq_event_dev *edev; - if (!dev->of_node) - return ERR_PTR(-EINVAL); - - node = of_parse_phandle(dev->of_node, "devfreq-events", index); if (!node) - return ERR_PTR(-ENODEV); + return ERR_PTR(-EINVAL); mutex_lock(&devfreq_event_list_lock); list_for_each_entry(edev, &devfreq_event_list, node) { @@ -244,44 +237,12 @@ struct devfreq_event_dev *devfreq_event_get_edev_by_phandle(struct device *dev, out: mutex_unlock(&devfreq_event_list_lock); - if (!edev) { - of_node_put(node); + if (!edev) return ERR_PTR(-ENODEV); - } - - of_node_put(node); return edev; } -EXPORT_SYMBOL_GPL(devfreq_event_get_edev_by_phandle); - -/** - * devfreq_event_get_edev_count() - Get the count of devfreq-event dev - * @dev : the pointer to the given device - * - * Note that this function return the count of devfreq-event devices. - */ -int devfreq_event_get_edev_count(struct device *dev) -{ - int count; - - if (!dev->of_node) { - dev_err(dev, "device does not have a device node entry\n"); - return -EINVAL; - } - - count = of_property_count_elems_of_size(dev->of_node, "devfreq-events", - sizeof(u32)); - if (count < 0) { - dev_err(dev, - "failed to get the count of devfreq-event in %pOF node\n", - dev->of_node); - return count; - } - - return count; -} -EXPORT_SYMBOL_GPL(devfreq_event_get_edev_count); +EXPORT_SYMBOL_GPL(devfreq_event_get_edev_by_node); static void devfreq_event_release_edev(struct device *dev) { diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index 9aac2db956d5..7893c3b99e60 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -156,6 +156,17 @@ static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) return devfreq_get_devfreq_by_node(node); } +static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, + int index) +{ + struct device_node *node = of_parse_phandle(np, "devfreq-events", + index); + + if (!node) + return ERR_PTR(-ENODEV); + return devfreq_event_get_edev_by_node(node); +} + static void exynos_bus_exit(struct device *dev) { struct exynos_bus *bus = dev_get_drvdata(dev); @@ -202,7 +213,8 @@ static int exynos_bus_parent_parse_of(struct device_node *np, * Get the devfreq-event devices to get the current utilization of * buses. This raw data will be used in devfreq ondemand governor. */ - count = devfreq_event_get_edev_count(dev); + count = of_property_count_elems_of_size(dev->of_node, + "devfreq-events", sizeof(u32)); if (count < 0) { dev_err(dev, "failed to get the count of devfreq-event dev\n"); ret = count; @@ -218,7 +230,7 @@ static int exynos_bus_parent_parse_of(struct device_node *np, } for (i = 0; i < count; i++) { - bus->edev[i] = devfreq_event_get_edev_by_phandle(dev, i); + bus->edev[i] = get_edev_by_node(dev->of_node, i); if (IS_ERR(bus->edev[i])) { ret = -EPROBE_DEFER; goto err_regulator; diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c index 2f1027c5b647..796272a208a8 100644 --- a/drivers/devfreq/rk3399_dmc.c +++ b/drivers/devfreq/rk3399_dmc.c @@ -303,6 +303,17 @@ static int of_get_ddr_timings(struct dram_timing *timing, return ret; } +static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, + int index) +{ + struct device_node *node = of_parse_phandle(np, "devfreq-events", + index); + + if (!node) + return ERR_PTR(-ENODEV); + return devfreq_event_get_edev_by_node(node); +} + static int rk3399_dmcfreq_probe(struct platform_device *pdev) { struct arm_smccc_res res; @@ -339,7 +350,7 @@ static int rk3399_dmcfreq_probe(struct platform_device *pdev) return PTR_ERR(data->dmc_clk); } - data->edev = devfreq_event_get_edev_by_phandle(dev, 0); + data->edev = get_edev_by_node(dev->of_node, 0); if (IS_ERR(data->edev)) return -EPROBE_DEFER; diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c index 47dbf6d1789f..c3195111d646 100644 --- a/drivers/memory/samsung/exynos5422-dmc.c +++ b/drivers/memory/samsung/exynos5422-dmc.c @@ -1267,6 +1267,16 @@ static int exynos5_dmc_init_clks(struct exynos5_dmc *dmc) return 0; } +static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, + int index) +{ + struct device_node *node = of_parse_phandle(np, "devfreq-events", + index); + if (!node) + return ERR_PTR(-ENODEV); + return devfreq_event_get_edev_by_node(node); +} + /** * exynos5_performance_counters_init() - Initializes performance DMC's counters * @dmc: DMC for which it does the setup @@ -1281,7 +1291,8 @@ static int exynos5_performance_counters_init(struct exynos5_dmc *dmc) int counters_size; int ret, i; - dmc->num_counters = devfreq_event_get_edev_count(dmc->dev); + dmc->num_counters = of_property_count_elems_of_size(dmc->dev->of_node, + "devfreq-events", sizeof(u32)); if (dmc->num_counters < 0) { dev_err(dmc->dev, "could not get devfreq-event counters\n"); return dmc->num_counters; @@ -1293,8 +1304,7 @@ static int exynos5_performance_counters_init(struct exynos5_dmc *dmc) return -ENOMEM; for (i = 0; i < dmc->num_counters; i++) { - dmc->counter[i] = - devfreq_event_get_edev_by_phandle(dmc->dev, i); + dmc->counter[i] = get_edev_by_node(dmc->dev->of_node, i); if (IS_ERR_OR_NULL(dmc->counter[i])) return -EPROBE_DEFER; } diff --git a/include/linux/devfreq-event.h b/include/linux/devfreq-event.h index f14f17f8cb7f..967414ac6f7c 100644 --- a/include/linux/devfreq-event.h +++ b/include/linux/devfreq-event.h @@ -105,9 +105,8 @@ extern int devfreq_event_set_event(struct devfreq_event_dev *edev); extern int devfreq_event_get_event(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); extern int devfreq_event_reset_event(struct devfreq_event_dev *edev); -extern struct devfreq_event_dev *devfreq_event_get_edev_by_phandle( - struct device *dev, int index); -extern int devfreq_event_get_edev_count(struct device *dev); +extern struct devfreq_event_dev *devfreq_event_get_edev_by_node( + struct device_node *node); extern struct devfreq_event_dev *devfreq_event_add_edev(struct device *dev, struct devfreq_event_desc *desc); extern int devfreq_event_remove_edev(struct devfreq_event_dev *edev); @@ -151,17 +150,12 @@ static inline int devfreq_event_reset_event(struct devfreq_event_dev *edev) return -EINVAL; } -static inline struct devfreq_event_dev *devfreq_event_get_edev_by_phandle( - struct device *dev, int index) +static inline struct devfreq_event_dev *devfreq_event_get_edev_by_node( + struct device_node *node) { return ERR_PTR(-EINVAL); } -static inline int devfreq_event_get_edev_count(struct device *dev) -{ - return -EINVAL; -} - static inline struct devfreq_event_dev *devfreq_event_add_edev(struct device *dev, struct devfreq_event_desc *desc) { -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p11f2bc81d6bb2db3fc4bc257d78c337b9@epcas1p1.samsung.com>]
* [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property [not found] ` <CGME20191217055106epcas1p11f2bc81d6bb2db3fc4bc257d78c337b9@epcas1p1.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 2019-12-26 21:01 ` Rob Herring 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip In order to remove the deprecated 'devfreq' property, replace with new 'exynos,parent-bus' property in order to get the parent devfreq device in devicetree file instead of 'devfreq' property. But, to guarantee the backward-compatibility, keep the support 'devfreq' property. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- .../bindings/devfreq/exynos-bus.txt | 16 +++++++-------- drivers/devfreq/exynos-bus.c | 20 ++++++++++++------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt index e71f752cc18f..c948cee01124 100644 --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt @@ -45,7 +45,7 @@ Required properties only for parent bus device: of buses. Required properties only for passive bus device: -- devfreq: the parent bus device. +- exynos,parent-bus: the parent bus device. Optional properties only for parent bus device: - exynos,saturation-ratio: the percentage value which is used to calibrate @@ -386,36 +386,36 @@ Example2 : }; &bus_rightbus { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_lcd0 { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mcuisp { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_isp { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_peril { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index 7893c3b99e60..60d61b168153 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -148,11 +148,17 @@ static int exynos_bus_get_dev_status(struct device *dev, static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) { - struct device_node *node = of_parse_phandle(np, "devfreq", 0); - - if (!node) - return ERR_PTR(-ENODEV); - + struct device_node *node = of_parse_phandle(np, "exynos,parent-bus", 0); + + if (!node) { + /* + * Check the deprecated 'devfreq' property + * to support backward-compatibility. + */ + node = of_parse_phandle(np, "devfreq", 0); + if (!node) + return ERR_PTR(-ENODEV); + } return devfreq_get_devfreq_by_node(node); } @@ -376,7 +382,7 @@ static int exynos_bus_profile_init_passive(struct exynos_bus *bus, /* Get the instance of parent devfreq device */ parent_devfreq = get_parent_devfreq_by_node(dev->of_node); - if (IS_ERR(parent_devfreq)) { + if (IS_ERR(parent_devfreq)) return -EPROBE_DEFER; passive_data = devm_kzalloc(dev, sizeof(*passive_data), GFP_KERNEL); @@ -423,7 +429,7 @@ static int exynos_bus_probe(struct platform_device *pdev) if (!profile) return -ENOMEM; - node = of_parse_phandle(dev->of_node, "devfreq", 0); + node = of_parse_phandle(dev->of_node, "exynos,parent-bus", 0); if (node) { of_node_put(node); passive = true; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property 2019-12-17 5:57 ` [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property Chanwoo Choi @ 2019-12-26 21:01 ` Rob Herring 2019-12-27 0:09 ` Chanwoo Choi 0 siblings, 1 reply; 21+ messages in thread From: Rob Herring @ 2019-12-26 21:01 UTC (permalink / raw) To: Chanwoo Choi Cc: krzk, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On Tue, Dec 17, 2019 at 02:57:33PM +0900, Chanwoo Choi wrote: > In order to remove the deprecated 'devfreq' property, replace with > new 'exynos,parent-bus' property in order to get the parent devfreq device > in devicetree file instead of 'devfreq' property. But, to guarantee the > backward-compatibility, keep the support 'devfreq' property. > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > .../bindings/devfreq/exynos-bus.txt | 16 +++++++-------- > drivers/devfreq/exynos-bus.c | 20 ++++++++++++------- > 2 files changed, 21 insertions(+), 15 deletions(-) > > diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > index e71f752cc18f..c948cee01124 100644 > --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > @@ -45,7 +45,7 @@ Required properties only for parent bus device: > of buses. > > Required properties only for passive bus device: > -- devfreq: the parent bus device. > +- exynos,parent-bus: the parent bus device. If you are going to do something new, why not use the interconnect binding here? Rob ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property 2019-12-26 21:01 ` Rob Herring @ 2019-12-27 0:09 ` Chanwoo Choi 2020-01-06 1:38 ` Chanwoo Choi 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-27 0:09 UTC (permalink / raw) To: Rob Herring Cc: krzk, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On 12/27/19 6:01 AM, Rob Herring wrote: > On Tue, Dec 17, 2019 at 02:57:33PM +0900, Chanwoo Choi wrote: >> In order to remove the deprecated 'devfreq' property, replace with >> new 'exynos,parent-bus' property in order to get the parent devfreq device >> in devicetree file instead of 'devfreq' property. But, to guarantee the >> backward-compatibility, keep the support 'devfreq' property. >> >> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> >> --- >> .../bindings/devfreq/exynos-bus.txt | 16 +++++++-------- >> drivers/devfreq/exynos-bus.c | 20 ++++++++++++------- >> 2 files changed, 21 insertions(+), 15 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> index e71f752cc18f..c948cee01124 100644 >> --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >> @@ -45,7 +45,7 @@ Required properties only for parent bus device: >> of buses. >> >> Required properties only for passive bus device: >> -- devfreq: the parent bus device. >> +- exynos,parent-bus: the parent bus device. > > If you are going to do something new, why not use the interconnect > binding here? As I knew, interconnect make the data path among multiple nodes and set the average and peak bandwidth to the specific data path. It means that some data will be flowed from node_a to node_d or the reverse way because each node has the tightly coupled dependency for data flow. node_a <-> node_b <-> node_c <-> node_d On the other hand, exynos-bus.c driver is not related to 'data path'. Each bus just need to control the their own frequency and voltage. But, share the power line (regulator) between exynos-bus device even if there are no any dependency of data flow. 'exynos,parent-bus' property just indicate the specific devfreq device(parent bus device) which controls the shared power line(regulator) in order to prevent the h/w problem due to the wrong pair of frequency and voltage. 'exynos,parent-bus' property is only used to catch the change timing of shared power line. And, as you commented, there are some data path among the exynos-bus devices for the display h/w as following: bus_display -> bus_leftbus -> bus_dmc In order to make the data path between bus devices, interconnect binding is required. This approach[1] was posted. [1] https://patchwork.kernel.org/cover/11305265/ - [RFC,v3,0/7] PM / devfreq: Simple QoS for exynos-bus using interconnect -- Best Regards, Chanwoo Choi Samsung Electronics ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property 2019-12-27 0:09 ` Chanwoo Choi @ 2020-01-06 1:38 ` Chanwoo Choi 2020-01-14 18:57 ` Chanwoo Choi 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2020-01-06 1:38 UTC (permalink / raw) To: Rob Herring Cc: krzk, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Hi Rob, Gently Ping. On 12/27/19 9:09 AM, Chanwoo Choi wrote: > On 12/27/19 6:01 AM, Rob Herring wrote: >> On Tue, Dec 17, 2019 at 02:57:33PM +0900, Chanwoo Choi wrote: >>> In order to remove the deprecated 'devfreq' property, replace with >>> new 'exynos,parent-bus' property in order to get the parent devfreq device >>> in devicetree file instead of 'devfreq' property. But, to guarantee the >>> backward-compatibility, keep the support 'devfreq' property. >>> >>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> >>> --- >>> .../bindings/devfreq/exynos-bus.txt | 16 +++++++-------- >>> drivers/devfreq/exynos-bus.c | 20 ++++++++++++------- >>> 2 files changed, 21 insertions(+), 15 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >>> index e71f752cc18f..c948cee01124 100644 >>> --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >>> +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt >>> @@ -45,7 +45,7 @@ Required properties only for parent bus device: >>> of buses. >>> >>> Required properties only for passive bus device: >>> -- devfreq: the parent bus device. >>> +- exynos,parent-bus: the parent bus device. >> >> If you are going to do something new, why not use the interconnect >> binding here? > > As I knew, interconnect make the data path among multiple nodes > and set the average and peak bandwidth to the specific data path. > > It means that some data will be flowed from node_a to node_d > or the reverse way because each node has the tightly coupled > dependency for data flow. > > node_a <-> node_b <-> node_c <-> node_d > > > On the other hand, exynos-bus.c driver is not related to 'data path'. > Each bus just need to control the their own frequency and voltage. > But, share the power line (regulator) between exynos-bus device > even if there are no any dependency of data flow. > > 'exynos,parent-bus' property just indicate the specific > devfreq device(parent bus device) which controls > the shared power line(regulator) in order to prevent > the h/w problem due to the wrong pair of frequency and voltage. > > 'exynos,parent-bus' property is only used to catch > the change timing of shared power line. > > > And, > as you commented, there are some data path among the exynos-bus > devices for the display h/w as following: > > bus_display -> bus_leftbus -> bus_dmc > > In order to make the data path between bus devices, > interconnect binding is required. This approach[1] was posted. > [1] https://patchwork.kernel.org/cover/11305265/ > - [RFC,v3,0/7] PM / devfreq: Simple QoS for exynos-bus using interconnect > Are there any other commentss? -- Best Regards, Chanwoo Choi Samsung Electronics ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property 2020-01-06 1:38 ` Chanwoo Choi @ 2020-01-14 18:57 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2020-01-14 18:57 UTC (permalink / raw) To: Chanwoo Choi Cc: Rob Herring, Krzysztof Kozlowski, Mark Rutland, Heiko Stübner, Leonard Crestez, lukasz.luba, Artur Świgoń, Marek Szyprowski, Kukjin Kim, MyungJoo Ham, Kyungmin Park, Linux PM list, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, open list:ARM/Rockchip SoC... Hi Rob, On Mon, Jan 6, 2020 at 10:32 AM Chanwoo Choi <cw00.choi@samsung.com> wrote: > > Hi Rob, > > Gently Ping. Once again, ping. Could you please review? On v2[1], made separate patches for dt-binding. [1] https://patchwork.kernel.org/cover/11304545/ > > On 12/27/19 9:09 AM, Chanwoo Choi wrote: > > On 12/27/19 6:01 AM, Rob Herring wrote: > >> On Tue, Dec 17, 2019 at 02:57:33PM +0900, Chanwoo Choi wrote: > >>> In order to remove the deprecated 'devfreq' property, replace with > >>> new 'exynos,parent-bus' property in order to get the parent devfreq device > >>> in devicetree file instead of 'devfreq' property. But, to guarantee the > >>> backward-compatibility, keep the support 'devfreq' property. > >>> > >>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > >>> --- > >>> .../bindings/devfreq/exynos-bus.txt | 16 +++++++-------- > >>> drivers/devfreq/exynos-bus.c | 20 ++++++++++++------- > >>> 2 files changed, 21 insertions(+), 15 deletions(-) > >>> > >>> diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > >>> index e71f752cc18f..c948cee01124 100644 > >>> --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > >>> +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt > >>> @@ -45,7 +45,7 @@ Required properties only for parent bus device: > >>> of buses. > >>> > >>> Required properties only for passive bus device: > >>> -- devfreq: the parent bus device. > >>> +- exynos,parent-bus: the parent bus device. > >> > >> If you are going to do something new, why not use the interconnect > >> binding here? > > > > As I knew, interconnect make the data path among multiple nodes > > and set the average and peak bandwidth to the specific data path. > > > > It means that some data will be flowed from node_a to node_d > > or the reverse way because each node has the tightly coupled > > dependency for data flow. > > > > node_a <-> node_b <-> node_c <-> node_d > > > > > > On the other hand, exynos-bus.c driver is not related to 'data path'. > > Each bus just need to control the their own frequency and voltage. > > But, share the power line (regulator) between exynos-bus device > > even if there are no any dependency of data flow. > > > > 'exynos,parent-bus' property just indicate the specific > > devfreq device(parent bus device) which controls > > the shared power line(regulator) in order to prevent > > the h/w problem due to the wrong pair of frequency and voltage. > > > > 'exynos,parent-bus' property is only used to catch > > the change timing of shared power line. > > > > > > And, > > as you commented, there are some data path among the exynos-bus > > devices for the display h/w as following: > > > > bus_display -> bus_leftbus -> bus_dmc > > > > In order to make the data path between bus devices, > > interconnect binding is required. This approach[1] was posted. > > [1] https://patchwork.kernel.org/cover/11305265/ > > - [RFC,v3,0/7] PM / devfreq: Simple QoS for exynos-bus using interconnect > > > > Are there any other commentss? > > > -- > Best Regards, > Chanwoo Choi > Samsung Electronics -- Best Regards, Chanwoo Choi ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p4b50ca647af9b54465e5c0a0bebb165b8@epcas1p4.samsung.com>]
* [PATCH 5/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq-events' property [not found] ` <CGME20191217055106epcas1p4b50ca647af9b54465e5c0a0bebb165b8@epcas1p4.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip In order to remove the deprecated 'devfreq-events' property, replace with new 'exynos,ppmu-device' property in order to get the devfreq-event device in devicetree file instead of 'devfreq-events' property. But, to guarantee the backward-compatibility, keep the support 'devfreq-events' property. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- .../bindings/devfreq/exynos-bus.txt | 6 ++-- drivers/devfreq/exynos-bus.c | 32 ++++++++++++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt index c948cee01124..c6c2dd0e77c8 100644 --- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt +++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt @@ -41,7 +41,7 @@ Required properties for all bus devices: Required properties only for parent bus device: - vdd-supply: the regulator to provide the buses with the voltage. -- devfreq-events: the devfreq-event device to monitor the current utilization +- exynos,ppmu-device: the devfreq-event device to monitor the current utilization of buses. Required properties only for passive bus device: @@ -374,13 +374,13 @@ Example2 : in exynos3250-rinato.dts is listed below: &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; /* VDD_MIF */ status = "okay"; }; &bus_leftbus { - devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + exynos,ppmu-device = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; vdd-supply = <&buck3_reg>; status = "okay"; }; diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c index 60d61b168153..0683bee64eb6 100644 --- a/drivers/devfreq/exynos-bus.c +++ b/drivers/devfreq/exynos-bus.c @@ -165,11 +165,18 @@ static struct devfreq *get_parent_devfreq_by_node(struct device_node *np) static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, int index) { - struct device_node *node = of_parse_phandle(np, "devfreq-events", - index); + struct device_node *node = of_parse_phandle(np, + "exynos,ppmu-device", index); - if (!node) - return ERR_PTR(-ENODEV); + if (!node) { + /* + * Check the deprecated 'devfreq-events' property + * to support backward-compatibility. + */ + node = of_parse_phandle(np, "devfreq-events", index); + if (!node) + return ERR_PTR(-ENODEV); + } return devfreq_event_get_edev_by_node(node); } @@ -220,11 +227,20 @@ static int exynos_bus_parent_parse_of(struct device_node *np, * buses. This raw data will be used in devfreq ondemand governor. */ count = of_property_count_elems_of_size(dev->of_node, - "devfreq-events", sizeof(u32)); + "exynos,ppmu-device", sizeof(u32)); if (count < 0) { - dev_err(dev, "failed to get the count of devfreq-event dev\n"); - ret = count; - goto err_regulator; + /* + * Check the deprecated 'devfreq-events' property + * to support backward-compatibility. + */ + count = of_property_count_elems_of_size(dev->of_node, + "devfreq-events", sizeof(u32)); + if (count < 0) { + dev_err(dev, + "failed to get the count of devfreq-event dev\n"); + ret = count; + goto err_regulator; + } } bus->edev_count = count; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p156b1323f4ec9f7c35fed825d56e577ff@epcas1p1.samsung.com>]
* [PATCH 6/9] PM / devfreq: rk3399_dmc: Replace deprecated 'devfreq-events' property [not found] ` <CGME20191217055106epcas1p156b1323f4ec9f7c35fed825d56e577ff@epcas1p1.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 0 siblings, 0 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip In order to remove the deprecated 'devfreq-events' property, replace with new 'rockchip,dfi-device' property in order to get the devfreq-event device in devicetree file instead of 'devfreq-events' property. But, to guarantee the backward-compatibility, keep the support 'devfreq-events' property. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt | 4 ++-- drivers/devfreq/rk3399_dmc.c | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt b/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt index 0ec68141f85a..e484768a4077 100644 --- a/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt +++ b/Documentation/devicetree/bindings/devfreq/rk3399_dmc.txt @@ -2,7 +2,7 @@ Required properties: - compatible: Must be "rockchip,rk3399-dmc". -- devfreq-events: Node to get DDR loading, Refer to +- rockchip,dfi-device: Node to get DDR loading, Refer to Documentation/devicetree/bindings/devfreq/event/ rockchip-dfi.txt - clocks: Phandles for clock specified in "clock-names" property @@ -173,7 +173,7 @@ Example: dmc: dmc { compatible = "rockchip,rk3399-dmc"; - devfreq-events = <&dfi>; + rockchip,dfi-device = <&dfi>; interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cru SCLK_DDRCLK>; clock-names = "dmc_clk"; diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c index 796272a208a8..5d007cb0643b 100644 --- a/drivers/devfreq/rk3399_dmc.c +++ b/drivers/devfreq/rk3399_dmc.c @@ -306,11 +306,14 @@ static int of_get_ddr_timings(struct dram_timing *timing, static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, int index) { - struct device_node *node = of_parse_phandle(np, "devfreq-events", + struct device_node *node = of_parse_phandle(np, "rockchip,dfi-device", index); - if (!node) - return ERR_PTR(-ENODEV); + if (!node) { + node = of_parse_phandle(np, "devfreq-events", index); + if (!node) + return ERR_PTR(-ENODEV); + } return devfreq_event_get_edev_by_node(node); } -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p2c43a45e34983c1b3e60cc6fd842dd33e@epcas1p2.samsung.com>]
* [PATCH 7/9] memory: samsung: exynos5422-dmc: Replace deprecated 'devfreq-events' property [not found] ` <CGME20191217055106epcas1p2c43a45e34983c1b3e60cc6fd842dd33e@epcas1p2.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 2019-12-17 11:03 ` Lukasz Luba 2019-12-19 20:19 ` Krzysztof Kozlowski 0 siblings, 2 replies; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip In order to remove the deprecated 'devfreq-events' property, replace with new 'exynos,ppmu-device' property in order to get the devfreq-event device in devicetree file instead of 'devfreq-events' property. But, to guarantee the backward-compatibility, keep the support 'devfreq-events' property. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- .../memory-controllers/exynos5422-dmc.txt | 6 ++-- drivers/memory/samsung/exynos5422-dmc.c | 29 +++++++++++++++---- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt index 02e4a1f862f1..1e1b3702f045 100644 --- a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt +++ b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt @@ -17,14 +17,14 @@ Required properties for DMC device for Exynos5422: - clock-names : should include "fout_spll", "mout_sclk_spll", "ff_dout_spll2", "fout_bpll", "mout_bpll", "sclk_bpll", "mout_mx_mspll_ccore", "mout_mclk_cdrex" entries -- devfreq-events : phandles for PPMU devices connected to this DMC. +- exynos,ppmu-device : phandles for PPMU devices connected to this DMC. - vdd-supply : phandle for voltage regulator which is connected. - reg : registers of two CDREX controllers. - operating-points-v2 : phandle for OPPs described in v2 definition. - device-handle : phandle of the connected DRAM memory device. For more information please refer to documentation file: Documentation/devicetree/bindings/ddr/lpddr3.txt -- devfreq-events : phandles of the PPMU events used by the controller. +- exynos,ppmu-device : phandles of the PPMU events used by the controller. - samsung,syscon-clk : phandle of the clock register set used by the controller, these registers are used for enabling a 'pause' feature and are not exposed by clock framework but they must be used in a safe way. @@ -73,7 +73,7 @@ Example: "mout_mx_mspll_ccore", "mout_mclk_cdrex"; operating-points-v2 = <&dmc_opp_table>; - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, + exynos,ppmu-device = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; device-handle = <&samsung_K3QF2F20DB>; vdd-supply = <&buck1_reg>; diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c index c3195111d646..96593f37a478 100644 --- a/drivers/memory/samsung/exynos5422-dmc.c +++ b/drivers/memory/samsung/exynos5422-dmc.c @@ -1270,10 +1270,17 @@ static int exynos5_dmc_init_clks(struct exynos5_dmc *dmc) static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, int index) { - struct device_node *node = of_parse_phandle(np, "devfreq-events", + struct device_node *node = of_parse_phandle(np, "exynos,ppmu-device", index); - if (!node) - return ERR_PTR(-ENODEV); + if (!node) { + /* + * Check the deprecated 'devfreq-events' property + * to support backward-compatibility. + */ + node = of_parse_phandle(np, "devfreq-events", index); + if (!node) + return ERR_PTR(-ENODEV); + } return devfreq_event_get_edev_by_node(node); } @@ -1292,10 +1299,20 @@ static int exynos5_performance_counters_init(struct exynos5_dmc *dmc) int ret, i; dmc->num_counters = of_property_count_elems_of_size(dmc->dev->of_node, - "devfreq-events", sizeof(u32)); + "exynos,ppmu-device", sizeof(u32)); if (dmc->num_counters < 0) { - dev_err(dmc->dev, "could not get devfreq-event counters\n"); - return dmc->num_counters; + /* + * Check the deprecated 'devfreq-events' property + * to support backward-compatibility. + */ + dmc->num_counters = of_property_count_elems_of_size( + dmc->dev->of_node, + "devfreq-events", sizeof(u32)); + if (dmc->num_counters < 0) { + dev_err(dmc->dev, + "could not get devfreq-event counters\n"); + return dmc->num_counters; + } } counters_size = sizeof(struct devfreq_event_dev) * dmc->num_counters; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 7/9] memory: samsung: exynos5422-dmc: Replace deprecated 'devfreq-events' property 2019-12-17 5:57 ` [PATCH 7/9] memory: samsung: exynos5422-dmc: " Chanwoo Choi @ 2019-12-17 11:03 ` Lukasz Luba 2019-12-19 20:19 ` Krzysztof Kozlowski 1 sibling, 0 replies; 21+ messages in thread From: Lukasz Luba @ 2019-12-17 11:03 UTC (permalink / raw) To: Chanwoo Choi, krzk, robh+dt, mark.rutland, heiko, leonard.crestez Cc: a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Hi Chanwoo, On 12/17/19 5:57 AM, Chanwoo Choi wrote: > In order to remove the deprecated 'devfreq-events' property, replace with > new 'exynos,ppmu-device' property in order to get the devfreq-event device > in devicetree file instead of 'devfreq-events' property. But, to guarantee > the backward-compatibility, keep the support 'devfreq-events' property. > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > .../memory-controllers/exynos5422-dmc.txt | 6 ++-- > drivers/memory/samsung/exynos5422-dmc.c | 29 +++++++++++++++---- > 2 files changed, 26 insertions(+), 9 deletions(-) > > diff --git a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > index 02e4a1f862f1..1e1b3702f045 100644 > --- a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > +++ b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > @@ -17,14 +17,14 @@ Required properties for DMC device for Exynos5422: > - clock-names : should include "fout_spll", "mout_sclk_spll", "ff_dout_spll2", > "fout_bpll", "mout_bpll", "sclk_bpll", "mout_mx_mspll_ccore", > "mout_mclk_cdrex" entries > -- devfreq-events : phandles for PPMU devices connected to this DMC. > +- exynos,ppmu-device : phandles for PPMU devices connected to this DMC. > - vdd-supply : phandle for voltage regulator which is connected. > - reg : registers of two CDREX controllers. > - operating-points-v2 : phandle for OPPs described in v2 definition. > - device-handle : phandle of the connected DRAM memory device. For more > information please refer to documentation file: > Documentation/devicetree/bindings/ddr/lpddr3.txt > -- devfreq-events : phandles of the PPMU events used by the controller. > +- exynos,ppmu-device : phandles of the PPMU events used by the controller. > - samsung,syscon-clk : phandle of the clock register set used by the controller, > these registers are used for enabling a 'pause' feature and are not > exposed by clock framework but they must be used in a safe way. > @@ -73,7 +73,7 @@ Example: > "mout_mx_mspll_ccore", > "mout_mclk_cdrex"; > operating-points-v2 = <&dmc_opp_table>; > - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, > + exynos,ppmu-device = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, > <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; > device-handle = <&samsung_K3QF2F20DB>; > vdd-supply = <&buck1_reg>; > diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c > index c3195111d646..96593f37a478 100644 > --- a/drivers/memory/samsung/exynos5422-dmc.c > +++ b/drivers/memory/samsung/exynos5422-dmc.c > @@ -1270,10 +1270,17 @@ static int exynos5_dmc_init_clks(struct exynos5_dmc *dmc) > static struct devfreq_event_dev *get_edev_by_node(struct device_node *np, > int index) > { > - struct device_node *node = of_parse_phandle(np, "devfreq-events", > + struct device_node *node = of_parse_phandle(np, "exynos,ppmu-device", > index); > - if (!node) > - return ERR_PTR(-ENODEV); > + if (!node) { > + /* > + * Check the deprecated 'devfreq-events' property > + * to support backward-compatibility. > + */ > + node = of_parse_phandle(np, "devfreq-events", index); > + if (!node) > + return ERR_PTR(-ENODEV); > + } > return devfreq_event_get_edev_by_node(node); > } > > @@ -1292,10 +1299,20 @@ static int exynos5_performance_counters_init(struct exynos5_dmc *dmc) > int ret, i; > > dmc->num_counters = of_property_count_elems_of_size(dmc->dev->of_node, > - "devfreq-events", sizeof(u32)); > + "exynos,ppmu-device", sizeof(u32)); > if (dmc->num_counters < 0) { > - dev_err(dmc->dev, "could not get devfreq-event counters\n"); > - return dmc->num_counters; > + /* > + * Check the deprecated 'devfreq-events' property > + * to support backward-compatibility. > + */ > + dmc->num_counters = of_property_count_elems_of_size( > + dmc->dev->of_node, > + "devfreq-events", sizeof(u32)); > + if (dmc->num_counters < 0) { > + dev_err(dmc->dev, > + "could not get devfreq-event counters\n"); > + return dmc->num_counters; > + } > } > > counters_size = sizeof(struct devfreq_event_dev) * dmc->num_counters; > Looks good to me. The fallback with backward-compatibility is a good idea in my opinion. Thank you for the change and feel free to and my: Reviewed-by: Lukasz Luba <lukasz.luba@arm.com> Regarding the whole patch set, for the first glance it looks reasonable and good. AIRC some developers were arguing for the "devfreq-events" entry in DT. Now it should be fine. I will spend more time today for reviewing the whole patch set. Regards, Lukasz ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 7/9] memory: samsung: exynos5422-dmc: Replace deprecated 'devfreq-events' property 2019-12-17 5:57 ` [PATCH 7/9] memory: samsung: exynos5422-dmc: " Chanwoo Choi 2019-12-17 11:03 ` Lukasz Luba @ 2019-12-19 20:19 ` Krzysztof Kozlowski 1 sibling, 0 replies; 21+ messages in thread From: Krzysztof Kozlowski @ 2019-12-19 20:19 UTC (permalink / raw) To: Chanwoo Choi Cc: robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On Tue, Dec 17, 2019 at 02:57:36PM +0900, Chanwoo Choi wrote: > In order to remove the deprecated 'devfreq-events' property, replace with > new 'exynos,ppmu-device' property in order to get the devfreq-event device > in devicetree file instead of 'devfreq-events' property. But, to guarantee > the backward-compatibility, keep the support 'devfreq-events' property. > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > .../memory-controllers/exynos5422-dmc.txt | 6 ++-- > drivers/memory/samsung/exynos5422-dmc.c | 29 +++++++++++++++---- > 2 files changed, 26 insertions(+), 9 deletions(-) In general looks good for me but I need an ack from Rob. Patch should be also split and sent as one of first in the series (before code). > > diff --git a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > index 02e4a1f862f1..1e1b3702f045 100644 > --- a/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > +++ b/Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt > @@ -17,14 +17,14 @@ Required properties for DMC device for Exynos5422: > - clock-names : should include "fout_spll", "mout_sclk_spll", "ff_dout_spll2", > "fout_bpll", "mout_bpll", "sclk_bpll", "mout_mx_mspll_ccore", > "mout_mclk_cdrex" entries > -- devfreq-events : phandles for PPMU devices connected to this DMC. > +- exynos,ppmu-device : phandles for PPMU devices connected to this DMC. > - vdd-supply : phandle for voltage regulator which is connected. > - reg : registers of two CDREX controllers. > - operating-points-v2 : phandle for OPPs described in v2 definition. > - device-handle : phandle of the connected DRAM memory device. For more > information please refer to documentation file: > Documentation/devicetree/bindings/ddr/lpddr3.txt > -- devfreq-events : phandles of the PPMU events used by the controller. > +- exynos,ppmu-device : phandles of the PPMU events used by the controller. > - samsung,syscon-clk : phandle of the clock register set used by the controller, > these registers are used for enabling a 'pause' feature and are not > exposed by clock framework but they must be used in a safe way. > @@ -73,7 +73,7 @@ Example: > "mout_mx_mspll_ccore", > "mout_mclk_cdrex"; > operating-points-v2 = <&dmc_opp_table>; > - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, > + exynos,ppmu-device = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, > <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; Indentation is broken here. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055106epcas1p4c0f65bec74e53b38d95e984e146bf8b6@epcas1p4.samsung.com>]
* [PATCH 8/9] ARM: dts: exynos: Replace deprecated property for Exynos bus and DMC [not found] ` <CGME20191217055106epcas1p4c0f65bec74e53b38d95e984e146bf8b6@epcas1p4.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 2019-12-19 20:21 ` Krzysztof Kozlowski 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Replace the property related to devfreq and devfreq-event device to remove the deprecated property name. - Replace 'devfreq' with 'exynos,parent-bus' property for getting the parent devfreq device of exynos-bus. - Replace 'devfreq-events' with 'exynos,ppmu-device' property for getting the devfreq-event device to monitor bus utilization. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- arch/arm/boot/dts/exynos3250-monk.dts | 2 +- arch/arm/boot/dts/exynos3250-rinato.dts | 18 +++++----- .../boot/dts/exynos4412-itop-scp-core.dtsi | 16 ++++----- arch/arm/boot/dts/exynos4412-midas.dtsi | 18 +++++----- .../boot/dts/exynos4412-odroid-common.dtsi | 18 +++++----- arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 34 +++++++++---------- 6 files changed, 53 insertions(+), 53 deletions(-) diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts index 248bd372fe70..c6b1fcd4ba97 100644 --- a/arch/arm/boot/dts/exynos3250-monk.dts +++ b/arch/arm/boot/dts/exynos3250-monk.dts @@ -158,7 +158,7 @@ }; &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; status = "okay"; }; diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts index 86c26a4edfd7..7ad80354d8df 100644 --- a/arch/arm/boot/dts/exynos3250-rinato.dts +++ b/arch/arm/boot/dts/exynos3250-rinato.dts @@ -153,49 +153,49 @@ }; &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; status = "okay"; }; &bus_leftbus { - devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + exynos,ppmu-device = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; vdd-supply = <&buck3_reg>; status = "okay"; }; &bus_rightbus { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_lcd0 { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mcuisp { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_isp { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_peril { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi index dfceb155b3a7..e275a52eb0d3 100644 --- a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi +++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi @@ -70,44 +70,44 @@ }; &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; status = "okay"; }; &bus_acp { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_c2c { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_leftbus { - devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + exynos,ppmu-device = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; vdd-supply = <&buck3_reg>; status = "okay"; }; &bus_rightbus { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_peri { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; diff --git a/arch/arm/boot/dts/exynos4412-midas.dtsi b/arch/arm/boot/dts/exynos4412-midas.dtsi index 83be3a797411..1869eed05167 100644 --- a/arch/arm/boot/dts/exynos4412-midas.dtsi +++ b/arch/arm/boot/dts/exynos4412-midas.dtsi @@ -288,49 +288,49 @@ }; &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; status = "okay"; }; &bus_acp { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_c2c { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_leftbus { - devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + exynos,ppmu-device = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; vdd-supply = <&buck3_reg>; status = "okay"; }; &bus_rightbus { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_display { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_peri { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi index ea55f377d17c..bb5a7cbcc308 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi @@ -88,49 +88,49 @@ }; &bus_dmc { - devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; + exynos,ppmu-device = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; vdd-supply = <&buck1_reg>; status = "okay"; }; &bus_acp { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_c2c { - devfreq = <&bus_dmc>; + exynos,parent-bus = <&bus_dmc>; status = "okay"; }; &bus_leftbus { - devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; + exynos,ppmu-device = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; vdd-supply = <&buck3_reg>; status = "okay"; }; &bus_rightbus { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_display { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_peri { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_leftbus>; + exynos,parent-bus = <&bus_leftbus>; status = "okay"; }; diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi index 059fa32d1a8f..8510e2787a9c 100644 --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi @@ -134,7 +134,7 @@ }; &bus_wcore { - devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>, + exynos,ppmu-device = <&nocp_mem0_0>, <&nocp_mem0_1>, <&nocp_mem1_0>, <&nocp_mem1_1>; vdd-supply = <&buck3_reg>; exynos,saturation-ratio = <100>; @@ -142,77 +142,77 @@ }; &bus_noc { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_fsys_apb { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_fsys { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_fsys2 { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_gen { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_peri { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_g2d { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_g2d_acp { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_jpeg { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_jpeg_apb { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_disp1_fimd { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_disp1 { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_gscl_scaler { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; &bus_mscl { - devfreq = <&bus_wcore>; + exynos,parent-bus = <&bus_wcore>; status = "okay"; }; @@ -225,7 +225,7 @@ }; &dmc { - devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, + exynos,ppmu-device = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, <&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; device-handle = <&samsung_K3QF2F20DB>; operating-points-v2 = <&dmc_opp_table>; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 8/9] ARM: dts: exynos: Replace deprecated property for Exynos bus and DMC 2019-12-17 5:57 ` [PATCH 8/9] ARM: dts: exynos: Replace deprecated property for Exynos bus and DMC Chanwoo Choi @ 2019-12-19 20:21 ` Krzysztof Kozlowski 0 siblings, 0 replies; 21+ messages in thread From: Krzysztof Kozlowski @ 2019-12-19 20:21 UTC (permalink / raw) To: Chanwoo Choi Cc: robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On Tue, Dec 17, 2019 at 02:57:37PM +0900, Chanwoo Choi wrote: > Replace the property related to devfreq and devfreq-event device > to remove the deprecated property name. > - Replace 'devfreq' with 'exynos,parent-bus' property > for getting the parent devfreq device of exynos-bus. > - Replace 'devfreq-events' with 'exynos,ppmu-device' property > for getting the devfreq-event device to monitor bus utilization. > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > arch/arm/boot/dts/exynos3250-monk.dts | 2 +- > arch/arm/boot/dts/exynos3250-rinato.dts | 18 +++++----- > .../boot/dts/exynos4412-itop-scp-core.dtsi | 16 ++++----- > arch/arm/boot/dts/exynos4412-midas.dtsi | 18 +++++----- > .../boot/dts/exynos4412-odroid-common.dtsi | 18 +++++----- > arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 34 +++++++++---------- > 6 files changed, 53 insertions(+), 53 deletions(-) > It will have to wait till next release, after driver changes get accepted. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <CGME20191217055107epcas1p44d46bdea7b326b86689f326742f5444a@epcas1p4.samsung.com>]
* [PATCH 9/9] arm64: dts: exynos: Replace deprecated property for Exynos bus [not found] ` <CGME20191217055107epcas1p44d46bdea7b326b86689f326742f5444a@epcas1p4.samsung.com> @ 2019-12-17 5:57 ` Chanwoo Choi 2019-12-19 20:22 ` Krzysztof Kozlowski 0 siblings, 1 reply; 21+ messages in thread From: Chanwoo Choi @ 2019-12-17 5:57 UTC (permalink / raw) To: krzk, robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba Cc: a.swigon, m.szyprowski, kgene, cw00.choi, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip Replace the property related to devfreq and devfreq-event device to remove the deprecated property name. - Replace 'devfreq' with 'exynos,parent-bus' property for getting the parent devfreq device of exynos-bus. - Replace 'devfreq-events' with 'exynos,ppmu-device' property for getting the devfreq-event device to monitor bus utilization. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> --- .../dts/exynos/exynos5433-tm2-common.dtsi | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi index 6f90b0e62cba..6bdd5b0940a5 100644 --- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi @@ -166,54 +166,54 @@ }; &bus_g2d_400 { - devfreq-events = <&ppmu_event0_d0_general>, <&ppmu_event0_d1_general>; + exynos,ppmu-device = <&ppmu_event0_d0_general>, <&ppmu_event0_d1_general>; vdd-supply = <&buck4_reg>; exynos,saturation-ratio = <10>; status = "okay"; }; &bus_g2d_266 { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_gscl { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_hevc { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_jpeg { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_mfc { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_mscl { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_noc0 { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_noc1 { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; &bus_noc2 { - devfreq = <&bus_g2d_400>; + exynos,parent-bus = <&bus_g2d_400>; status = "okay"; }; -- 2.17.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 9/9] arm64: dts: exynos: Replace deprecated property for Exynos bus 2019-12-17 5:57 ` [PATCH 9/9] arm64: dts: exynos: Replace deprecated property for Exynos bus Chanwoo Choi @ 2019-12-19 20:22 ` Krzysztof Kozlowski 0 siblings, 0 replies; 21+ messages in thread From: Krzysztof Kozlowski @ 2019-12-19 20:22 UTC (permalink / raw) To: Chanwoo Choi Cc: robh+dt, mark.rutland, heiko, leonard.crestez, lukasz.luba, a.swigon, m.szyprowski, kgene, myungjoo.ham, kyungmin.park, linux-pm, linux-samsung-soc, devicetree, linux-arm-kernel, linux-kernel, linux-rockchip On Tue, Dec 17, 2019 at 02:57:38PM +0900, Chanwoo Choi wrote: > Replace the property related to devfreq and devfreq-event device > to remove the deprecated property name. > - Replace 'devfreq' with 'exynos,parent-bus' property > for getting the parent devfreq device of exynos-bus. > - Replace 'devfreq-events' with 'exynos,ppmu-device' property > for getting the devfreq-event device to monitor bus utilization. > > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> > --- > .../dts/exynos/exynos5433-tm2-common.dtsi | 20 +++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) I'll pick it up the next cycle after driver get merged. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2020-01-14 18:58 UTC | newest] Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CGME20191217055105epcas1p365e306f27fd53852b793155c929ee634@epcas1p3.samsung.com> 2019-12-17 5:57 ` [PATCH 0/9] PM / devfreq: Remove deprecated 'devfreq' and 'devfreq-events' properties Chanwoo Choi [not found] ` <CGME20191217055105epcas1p3bacbf54550c52979fe819ab33bb21d30@epcas1p3.samsung.com> 2019-12-17 5:57 ` [PATCH 1/9] PM / devfreq: Add devfreq_get_devfreq_by_node function Chanwoo Choi [not found] ` <CGME20191217055105epcas1p2d2930402a559e381a7854f515a683d15@epcas1p2.samsung.com> 2019-12-17 5:57 ` [PATCH 2/9] PM / devfreq: Remove devfreq_get_devfreq_by_phandle function Chanwoo Choi 2019-12-17 14:33 ` Leonard Crestez 2019-12-18 2:59 ` Chanwoo Choi 2019-12-18 3:20 ` Chanwoo Choi [not found] ` <CGME20191217055106epcas1p3e77268d200006921dfa736b2c7550a04@epcas1p3.samsung.com> 2019-12-17 5:57 ` [PATCH 3/9] PM / devfreq: event: Add devfreq_event_get_edev_by_node function Chanwoo Choi [not found] ` <CGME20191217055106epcas1p11f2bc81d6bb2db3fc4bc257d78c337b9@epcas1p1.samsung.com> 2019-12-17 5:57 ` [PATCH 4/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq' property Chanwoo Choi 2019-12-26 21:01 ` Rob Herring 2019-12-27 0:09 ` Chanwoo Choi 2020-01-06 1:38 ` Chanwoo Choi 2020-01-14 18:57 ` Chanwoo Choi [not found] ` <CGME20191217055106epcas1p4b50ca647af9b54465e5c0a0bebb165b8@epcas1p4.samsung.com> 2019-12-17 5:57 ` [PATCH 5/9] PM / devfreq: exynos-bus: Replace deprecated 'devfreq-events' property Chanwoo Choi [not found] ` <CGME20191217055106epcas1p156b1323f4ec9f7c35fed825d56e577ff@epcas1p1.samsung.com> 2019-12-17 5:57 ` [PATCH 6/9] PM / devfreq: rk3399_dmc: " Chanwoo Choi [not found] ` <CGME20191217055106epcas1p2c43a45e34983c1b3e60cc6fd842dd33e@epcas1p2.samsung.com> 2019-12-17 5:57 ` [PATCH 7/9] memory: samsung: exynos5422-dmc: " Chanwoo Choi 2019-12-17 11:03 ` Lukasz Luba 2019-12-19 20:19 ` Krzysztof Kozlowski [not found] ` <CGME20191217055106epcas1p4c0f65bec74e53b38d95e984e146bf8b6@epcas1p4.samsung.com> 2019-12-17 5:57 ` [PATCH 8/9] ARM: dts: exynos: Replace deprecated property for Exynos bus and DMC Chanwoo Choi 2019-12-19 20:21 ` Krzysztof Kozlowski [not found] ` <CGME20191217055107epcas1p44d46bdea7b326b86689f326742f5444a@epcas1p4.samsung.com> 2019-12-17 5:57 ` [PATCH 9/9] arm64: dts: exynos: Replace deprecated property for Exynos bus Chanwoo Choi 2019-12-19 20:22 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).