From: Hongbo Zhang <hongbo.zh...@linaro.org>

When per-CPU framework was introduced, it was only implemented on x86,
for other platforms, only the model_str[0] and cpu_hz[0] are set to pass
compile, this patch set all values for model_str[] and cpu_hz[] on the
MIPS platform.

Signed-off-by: Hongbo Zhang <hongbo.zh...@linaro.org>
---
 .../linux-generic/arch/mips64/odp_sysinfo_parse.c  | 24 ++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c 
b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
index bb1d5d8..88c2066 100644
--- a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
@@ -14,14 +14,18 @@ int odp_cpuinfo_parser(FILE *file, odp_system_info_t 
*sysinfo)
        double mhz = 0.0;
        int model = 0;
        int count = 2;
+       int id = 0;
 
        strcpy(sysinfo->cpu_arch_str, "mips64");
-       while (fgets(str, sizeof(str), file) != NULL && count > 0) {
+       while (fgets(str, sizeof(str), file) != NULL && id < MAX_CPU_NUMBER) {
                if (!mhz) {
                        pos = strstr(str, "BogoMIPS");
 
                        if (pos) {
                                sscanf(pos, "BogoMIPS : %lf", &mhz);
+                               /* bogomips seems to be 2x freq */
+                               sysinfo->cpu_hz[id] = \
+                                       (uint64_t)(mhz * 1000000.0 / 2.0);
                                count--;
                        }
                }
@@ -32,18 +36,22 @@ int odp_cpuinfo_parser(FILE *file, odp_system_info_t 
*sysinfo)
                        if (pos) {
                                int len;
                                pos = strchr(str, ':');
-                               strncpy(sysinfo->model_str[0], pos + 2,
-                                       sizeof(sysinfo->model_str[0]));
-                               len = strlen(sysinfo->model_str[0]);
-                               sysinfo->model_str[0][len - 1] = 0;
+                               strncpy(sysinfo->model_str[id], pos + 2,
+                                       sizeof(sysinfo->model_str[id]));
+                               len = strlen(sysinfo->model_str[id]);
+                               sysinfo->model_str[id][len - 1] = 0;
                                model = 1;
                                count--;
                        }
                }
-       }
 
-       /* bogomips seems to be 2x freq */
-       sysinfo->cpu_hz[0] = (uint64_t)(mhz * 1000000.0 / 2.0);
+               if (count == 0) {
+                       mhz = 0.0;
+                       model = 0;
+                       count = 2;
+                       id++;
+               }
+       }
 
        return 0;
 }
-- 
2.1.4

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to