Re: [PATCH] PM: domains: Drop the unused pm_genpd_opp_to_performance_state()

From: Rafael J. Wysocki
Date: Mon Dec 11 2023 - 15:44:22 EST


On Mon, Nov 27, 2023 at 4:19 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
>
> Since commit 7c41cdcd3bbe ("OPP: Simplify the over-designed pstate <->
> level dance"), there is no longer any users of the
> pm_genpd_opp_to_performance_state() API. Let's therefore drop it and its
> corresponding ->opp_to_performance_state() callback, which also no longer
> has any users.
>
> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>

I can take this in principle, but I'm wondering if you'd prefer to
apply patches modifying domain.c yourself? They are definitely
related to the pmdomain tree.

> ---
> drivers/base/power/domain.c | 32 --------------------------------
> include/linux/pm_domain.h | 12 ------------
> 2 files changed, 44 deletions(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index da1777e39eaa..cf65b5a9783c 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -3042,38 +3042,6 @@ int of_genpd_parse_idle_states(struct device_node *dn,
> }
> EXPORT_SYMBOL_GPL(of_genpd_parse_idle_states);
>
> -/**
> - * pm_genpd_opp_to_performance_state - Gets performance state of the genpd from its OPP node.
> - *
> - * @genpd_dev: Genpd's device for which the performance-state needs to be found.
> - * @opp: struct dev_pm_opp of the OPP for which we need to find performance
> - * state.
> - *
> - * Returns performance state encoded in the OPP of the genpd. This calls
> - * platform specific genpd->opp_to_performance_state() callback to translate
> - * power domain OPP to performance state.
> - *
> - * Returns performance state on success and 0 on failure.
> - */
> -unsigned int pm_genpd_opp_to_performance_state(struct device *genpd_dev,
> - struct dev_pm_opp *opp)
> -{
> - struct generic_pm_domain *genpd = NULL;
> - int state;
> -
> - genpd = container_of(genpd_dev, struct generic_pm_domain, dev);
> -
> - if (unlikely(!genpd->opp_to_performance_state))
> - return 0;
> -
> - genpd_lock(genpd);
> - state = genpd->opp_to_performance_state(genpd, opp);
> - genpd_unlock(genpd);
> -
> - return state;
> -}
> -EXPORT_SYMBOL_GPL(pm_genpd_opp_to_performance_state);
> -
> static int __init genpd_bus_init(void)
> {
> return bus_register(&genpd_bus_type);
> diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
> index 34663d0d5c55..b97c5e9820f9 100644
> --- a/include/linux/pm_domain.h
> +++ b/include/linux/pm_domain.h
> @@ -118,7 +118,6 @@ struct genpd_power_state {
> };
>
> struct genpd_lock_ops;
> -struct dev_pm_opp;
> struct opp_table;
>
> struct generic_pm_domain {
> @@ -146,8 +145,6 @@ struct generic_pm_domain {
> int (*power_on)(struct generic_pm_domain *domain);
> struct raw_notifier_head power_notifiers; /* Power on/off notifiers */
> struct opp_table *opp_table; /* OPP table of the genpd */
> - unsigned int (*opp_to_performance_state)(struct generic_pm_domain *genpd,
> - struct dev_pm_opp *opp);
> int (*set_performance_state)(struct generic_pm_domain *genpd,
> unsigned int state);
> struct gpd_dev_ops dev_ops;
> @@ -348,8 +345,6 @@ int of_genpd_remove_subdomain(struct of_phandle_args *parent_spec,
> struct generic_pm_domain *of_genpd_remove_last(struct device_node *np);
> int of_genpd_parse_idle_states(struct device_node *dn,
> struct genpd_power_state **states, int *n);
> -unsigned int pm_genpd_opp_to_performance_state(struct device *genpd_dev,
> - struct dev_pm_opp *opp);
>
> int genpd_dev_pm_attach(struct device *dev);
> struct device *genpd_dev_pm_attach_by_id(struct device *dev,
> @@ -395,13 +390,6 @@ static inline int of_genpd_parse_idle_states(struct device_node *dn,
> return -ENODEV;
> }
>
> -static inline unsigned int
> -pm_genpd_opp_to_performance_state(struct device *genpd_dev,
> - struct dev_pm_opp *opp)
> -{
> - return 0;
> -}
> -
> static inline int genpd_dev_pm_attach(struct device *dev)
> {
> return 0;
> --
> 2.34.1
>