[PATCH] Revert "cpupower: Revert library ABI changes from commit ae2917093fb60bdc1ed3e"
authorSalvatore Bonaccorso <carnil@debian.org>
Wed, 12 Feb 2020 19:38:54 +0000 (20:38 +0100)
committerSalvatore Bonaccorso <carnil@debian.org>
Thu, 13 Feb 2020 05:14:49 +0000 (05:14 +0000)
This reverts upstream commit 41ddb7e1f79693d904502ae9bea609837973eff8
and allows to maintain library ABI stable for the 5.4 series.

Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Revert-cpupower-Revert-library-ABI-changes-from-comm.patch

tools/power/cpupower/lib/cpufreq.c
tools/power/cpupower/lib/cpufreq.h
tools/power/cpupower/utils/cpufreq-info.c

index 6e04304560caa7db409b85bd7993505e6c0899bb..2f55d4d234465320fc575a2a587763593eb90804 100644 (file)
@@ -332,74 +332,21 @@ void cpufreq_put_available_governors(struct cpufreq_available_governors *any)
 }
 
 
-struct cpufreq_available_frequencies
-*cpufreq_get_available_frequencies(unsigned int cpu)
+struct cpufreq_frequencies
+*cpufreq_get_frequencies(const char *type, unsigned int cpu)
 {
-       struct cpufreq_available_frequencies *first = NULL;
-       struct cpufreq_available_frequencies *current = NULL;
+       struct cpufreq_frequencies *first = NULL;
+       struct cpufreq_frequencies *current = NULL;
        char one_value[SYSFS_PATH_MAX];
        char linebuf[MAX_LINE_LEN];
+       char fname[MAX_LINE_LEN];
        unsigned int pos, i;
        unsigned int len;
 
-       len = sysfs_cpufreq_read_file(cpu, "scaling_available_frequencies",
-                                     linebuf, sizeof(linebuf));
-       if (len == 0)
-               return NULL;
+       snprintf(fname, MAX_LINE_LEN, "scaling_%s_frequencies", type);
 
-       pos = 0;
-       for (i = 0; i < len; i++) {
-               if (linebuf[i] == ' ' || linebuf[i] == '\n') {
-                       if (i - pos < 2)
-                               continue;
-                       if (i - pos >= SYSFS_PATH_MAX)
-                               goto error_out;
-                       if (current) {
-                               current->next = malloc(sizeof(*current));
-                               if (!current->next)
-                                       goto error_out;
-                               current = current->next;
-                       } else {
-                               first = malloc(sizeof(*first));
-                               if (!first)
-                                       goto error_out;
-                               current = first;
-                       }
-                       current->first = first;
-                       current->next = NULL;
-
-                       memcpy(one_value, linebuf + pos, i - pos);
-                       one_value[i - pos] = '\0';
-                       if (sscanf(one_value, "%lu", &current->frequency) != 1)
-                               goto error_out;
-
-                       pos = i + 1;
-               }
-       }
-
-       return first;
-
- error_out:
-       while (first) {
-               current = first->next;
-               free(first);
-               first = current;
-       }
-       return NULL;
-}
-
-struct cpufreq_available_frequencies
-*cpufreq_get_boost_frequencies(unsigned int cpu)
-{
-       struct cpufreq_available_frequencies *first = NULL;
-       struct cpufreq_available_frequencies *current = NULL;
-       char one_value[SYSFS_PATH_MAX];
-       char linebuf[MAX_LINE_LEN];
-       unsigned int pos, i;
-       unsigned int len;
-
-       len = sysfs_cpufreq_read_file(cpu, "scaling_boost_frequencies",
-                                     linebuf, sizeof(linebuf));
+       len = sysfs_cpufreq_read_file(cpu, fname,
+                               linebuf, sizeof(linebuf));
        if (len == 0)
                return NULL;
 
@@ -444,9 +391,9 @@ struct cpufreq_available_frequencies
        return NULL;
 }
 
-void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any)
+void cpufreq_put_frequencies(struct cpufreq_frequencies *any)
 {
-       struct cpufreq_available_frequencies *tmp, *next;
+       struct cpufreq_frequencies *tmp, *next;
 
        if (!any)
                return;
@@ -459,11 +406,6 @@ void cpufreq_put_available_frequencies(struct cpufreq_available_frequencies *any
        }
 }
 
-void cpufreq_put_boost_frequencies(struct cpufreq_available_frequencies *any)
-{
-       cpufreq_put_available_frequencies(any);
-}
-
 static struct cpufreq_affected_cpus *sysfs_get_cpu_list(unsigned int cpu,
                                                        const char *file)
 {
index 95f4fd9e2656c31f09dbf3ee37cd3851090790a3..a55f0d19215bd3b2a892ec8539f2770c3f8acbdf 100644 (file)
@@ -20,10 +20,10 @@ struct cpufreq_available_governors {
        struct cpufreq_available_governors *first;
 };
 
-struct cpufreq_available_frequencies {
+struct cpufreq_frequencies {
        unsigned long frequency;
-       struct cpufreq_available_frequencies *next;
-       struct cpufreq_available_frequencies *first;
+       struct cpufreq_frequencies *next;
+       struct cpufreq_frequencies *first;
 };
 
 
@@ -124,17 +124,11 @@ void cpufreq_put_available_governors(
  * cpufreq_put_frequencies after use.
  */
 
-struct cpufreq_available_frequencies
-*cpufreq_get_available_frequencies(unsigned int cpu);
+struct cpufreq_frequencies
+*cpufreq_get_frequencies(const char *type, unsigned int cpu);
 
-void cpufreq_put_available_frequencies(
-               struct cpufreq_available_frequencies *first);
-
-struct cpufreq_available_frequencies
-*cpufreq_get_boost_frequencies(unsigned int cpu);
-
-void cpufreq_put_boost_frequencies(
-               struct cpufreq_available_frequencies *first);
+void cpufreq_put_frequencies(
+               struct cpufreq_frequencies *first);
 
 
 /* determine affected CPUs
index 6efc0f6b1b113f0ee6980f60511a675b047c44cc..e63cf55f81cf1edf32d04218382b464a9fd51cd8 100644 (file)
@@ -244,14 +244,14 @@ static int get_boost_mode_x86(unsigned int cpu)
 
 static int get_boost_mode(unsigned int cpu)
 {
-       struct cpufreq_available_frequencies *freqs;
+       struct cpufreq_frequencies *freqs;
 
        if (cpupower_cpu_info.vendor == X86_VENDOR_AMD ||
            cpupower_cpu_info.vendor == X86_VENDOR_HYGON ||
            cpupower_cpu_info.vendor == X86_VENDOR_INTEL)
                return get_boost_mode_x86(cpu);
 
-       freqs = cpufreq_get_boost_frequencies(cpu);
+       freqs = cpufreq_get_frequencies("boost", cpu);
        if (freqs) {
                printf(_("  boost frequency steps: "));
                while (freqs->next) {
@@ -261,7 +261,7 @@ static int get_boost_mode(unsigned int cpu)
                }
                print_speed(freqs->frequency);
                printf("\n");
-               cpufreq_put_available_frequencies(freqs);
+               cpufreq_put_frequencies(freqs);
        }
 
        return 0;
@@ -475,7 +475,7 @@ static int get_latency(unsigned int cpu, unsigned int human)
 
 static void debug_output_one(unsigned int cpu)
 {
-       struct cpufreq_available_frequencies *freqs;
+       struct cpufreq_frequencies *freqs;
 
        get_driver(cpu);
        get_related_cpus(cpu);
@@ -483,7 +483,7 @@ static void debug_output_one(unsigned int cpu)
        get_latency(cpu, 1);
        get_hardware_limits(cpu, 1);
 
-       freqs = cpufreq_get_available_frequencies(cpu);
+       freqs = cpufreq_get_frequencies("available", cpu);
        if (freqs) {
                printf(_("  available frequency steps:  "));
                while (freqs->next) {
@@ -493,7 +493,7 @@ static void debug_output_one(unsigned int cpu)
                }
                print_speed(freqs->frequency);
                printf("\n");
-               cpufreq_put_available_frequencies(freqs);
+               cpufreq_put_frequencies(freqs);
        }
 
        get_available_governors(cpu);