diff mbox series

[v2,2/3] devfreq: exynos-ppmu: simplify parsing event-type from DT

Message ID 20210920071753.38560-2-krzysztof.kozlowski@canonical.com (mailing list archive)
State Accepted
Delegated to: Chanwoo Choi
Headers show
Series devfreq: exynos-ppmu: conform to dt naming convention | expand

Commit Message

Krzysztof Kozlowski Sept. 20, 2021, 7:17 a.m. UTC
When parsing devicetree, the function of_get_devfreq_events(), for each
device child node, iterates over array of possible events "ppmu_events"
till it finds one matching by node name.  When match is found the
ppmu_events[i] points to element having both the name of the event and
the counters ID.

Each PPMU device child node might have an "event-name" property with the
name of the event, however due to the design of devfreq it must be the
same as the device node name.  If it is not the same, the devfreq client
won't be able to use it via devfreq_event_get_edev_by_phandle().

Since PPMU device child node name must be equal to the "event-name"
property (event-name == ppmu_events[i].name), there is no need to find
the counters ID by the "event-name".  Instead use ppmu_events[i].id
which must be equal to it.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 drivers/devfreq/event/exynos-ppmu.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

Chanwoo Choi Sept. 22, 2021, 8:05 a.m. UTC | #1
Hi Krzysztof,

On 21. 9. 20. 오후 4:17, Krzysztof Kozlowski wrote:
> When parsing devicetree, the function of_get_devfreq_events(), for each
> device child node, iterates over array of possible events "ppmu_events"
> till it finds one matching by node name.  When match is found the
> ppmu_events[i] points to element having both the name of the event and
> the counters ID.
> 
> Each PPMU device child node might have an "event-name" property with the
> name of the event, however due to the design of devfreq it must be the
> same as the device node name.  If it is not the same, the devfreq client
> won't be able to use it via devfreq_event_get_edev_by_phandle().
> 
> Since PPMU device child node name must be equal to the "event-name"
> property (event-name == ppmu_events[i].name), there is no need to find
> the counters ID by the "event-name".  Instead use ppmu_events[i].id
> which must be equal to it.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---
>   drivers/devfreq/event/exynos-ppmu.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
> index 541bd13ab61d..9b849d781116 100644
> --- a/drivers/devfreq/event/exynos-ppmu.c
> +++ b/drivers/devfreq/event/exynos-ppmu.c
> @@ -566,13 +566,10 @@ static int of_get_devfreq_events(struct device_node *np,
>   			 * use default if not.
>   			 */
>   			if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) {
> -				int id;
>   				/* Not all registers take the same value for
>   				 * read+write data count.
>   				 */
> -				id = __exynos_ppmu_find_ppmu_id(desc[j].name);
> -
> -				switch (id) {
> +				switch (ppmu_events[i].id) {
>   				case PPMU_PMNCNT0:
>   				case PPMU_PMNCNT1:
>   				case PPMU_PMNCNT2:
> 

Applied it. Thanks.
diff mbox series

Patch

diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
index 541bd13ab61d..9b849d781116 100644
--- a/drivers/devfreq/event/exynos-ppmu.c
+++ b/drivers/devfreq/event/exynos-ppmu.c
@@ -566,13 +566,10 @@  static int of_get_devfreq_events(struct device_node *np,
 			 * use default if not.
 			 */
 			if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) {
-				int id;
 				/* Not all registers take the same value for
 				 * read+write data count.
 				 */
-				id = __exynos_ppmu_find_ppmu_id(desc[j].name);
-
-				switch (id) {
+				switch (ppmu_events[i].id) {
 				case PPMU_PMNCNT0:
 				case PPMU_PMNCNT1:
 				case PPMU_PMNCNT2: