lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 08 May 2014 10:22:51 +0900
From:	Jonghwan Choi <jhbird.choi@...sung.com>
To:	'Viresh Kumar' <viresh.kumar@...aro.org>,
	'Nishanth Menon' <nm@...com>
Cc:	'Linux PM list' <linux-pm@...r.kernel.org>,
	'open list' <linux-kernel@...r.kernel.org>,
	"'Rafael J. Wysocki'" <rjw@...ysocki.net>,
	'Len Brown' <len.brown@...el.com>,
	'Amit Daniel Kachhap' <amit.daniel@...sung.com>
Subject: RE: [PATCH 1/3] PM / OPP: Add support for descending order for cpufreq
 table

> @Jonghwan: Please consider doing this:
> - Don't play with the order of frequencies in table.
> - Instead initialize .driver_data filed with values that you need to write
> in the registers for all frequencies. i.e. 0 for highest frequency and
> FREQ_COUNT-1 for lowest one.

-> For that, I changed like this.
For initializing .driver_data, I changed dev_pm_opp_init_cpufreq_table function().


--- a/drivers/base/power/opp.c
+++ b/drivers/base/power/opp.c
@@ -622,12 +622,12 @@ EXPORT_SYMBOL_GPL(dev_pm_opp_disable);
  * or in contexts where mutex locking cannot be used.
  */
 int dev_pm_opp_init_cpufreq_table(struct device *dev,
-                           struct cpufreq_frequency_table **table)
+               struct cpufreq_frequency_table **table, int order)
 {
        struct device_opp *dev_opp;
        struct dev_pm_opp *opp;
        struct cpufreq_frequency_table *freq_table;
-       int i = 0;
+       int i = 0, index = 0;

        /* Pretend as if I am an updater */
        mutex_lock(&dev_opp_list_lock);
@@ -649,16 +649,22 @@ int dev_pm_opp_init_cpufreq_table(struct device *dev,
                return -ENOMEM;
        }

+       if (OPP_TABLE_ORDER_DESCENDING == order)
+               index = dev_pm_opp_get_opp_count(dev) - 1;
+
        list_for_each_entry(opp, &dev_opp->opp_list, node) {
                if (opp->available) {
-                       freq_table[i].driver_data = i;
+                       if (OPP_TABLE_ORDER_DESCENDING == order)
+                               freq_table[i].driver_data = index--;
+                       else
+                               freq_table[i].driver_data = index++;
                        freq_table[i].frequency = opp->rate / 1000;
                        i++;
                }
        }
        mutex_unlock(&dev_opp_list_lock);

-       freq_table[i].driver_data = i;
+       freq_table[i].driver_data = index;
        freq_table[i].frequency = CPUFREQ_TABLE_END;

        *table = &freq_table[0];


Is it acceptiable?

Thanks

Best Regards

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists