While adding support for "performance states" in the OPP and genpd core,
it was decided to set the `pstate` field via genpd's
pm_genpd_opp_to_performance_state() helper, to allow platforms to set
`pstate` even if they don't have a corresponding `level` field in the DT
OPP tables (More details are present in commit 
6e41766a6a50 ("PM /
Domain: Implement of_genpd_opp_to_performance_state()")).
Revisiting that five years later clearly suggests that it was
over-designed as all current users are eventually using the `level`
value only.
The previous commit already added necessary checks to make sure pstate
is only used for genpd tables. Lets now simplify this a little, and use
`level` directly and remove `pstate` field altogether.
Suggested-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
                return 0;
        }
 
-       return opp->required_opps[index]->pstate;
+       return opp->required_opps[index]->level;
 }
 EXPORT_SYMBOL_GPL(dev_pm_opp_get_required_pstate);
 
 static int _set_performance_state(struct device *dev, struct device *pd_dev,
                                  struct dev_pm_opp *opp, int i)
 {
-       unsigned int pstate = likely(opp) ? opp->required_opps[i]->pstate : 0;
+       unsigned int pstate = likely(opp) ? opp->required_opps[i]->level: 0;
        int ret;
 
        if (!pd_dev)
        mutex_lock(&src_table->lock);
 
        list_for_each_entry(opp, &src_table->opp_list, node) {
-               if (opp->pstate == pstate) {
-                       dest_pstate = opp->required_opps[i]->pstate;
+               if (opp->level == pstate) {
+                       dest_pstate = opp->required_opps[i]->level;
                        goto unlock;
                }
        }
 
        debugfs_create_ulong("clock_latency_ns", S_IRUGO, d,
                             &opp->clock_latency_ns);
 
-       if (opp_table->is_genpd)
-               debugfs_create_u32("performance_state", S_IRUGO, d, &opp->pstate);
-
        opp->of_name = of_node_full_name(opp->np);
        debugfs_create_str("of_name", S_IRUGO, d, (char **)&opp->of_name);
 
 
        if (ret)
                goto free_required_opps;
 
-       if (opp_table->is_genpd)
-               new_opp->pstate = pm_genpd_opp_to_performance_state(dev, new_opp);
-
        ret = _opp_add(dev, new_opp, opp_table);
        if (ret) {
                /* Don't return error for duplicate OPPs */
 
        opp = _find_opp_of_np(opp_table, required_np);
        if (opp) {
-               pstate = opp->pstate;
+               pstate = opp->level;
                dev_pm_opp_put(opp);
        }
 
 
  * @turbo:     true if turbo (boost) OPP
  * @suspend:   true if suspend OPP
  * @removed:   flag indicating that OPP's reference is dropped by OPP core.
- * @pstate: Device's power domain's performance state.
  * @rates:     Frequencies in hertz
  * @level:     Performance level
  * @supplies:  Power supplies voltage/current values
        bool turbo;
        bool suspend;
        bool removed;
-       unsigned int pstate;
        unsigned long *rates;
        unsigned int level;