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 PowerPC platform.
Signed-off-by: Hongbo Zhang <hongbo.zh...@linaro.org> --- .../linux-generic/arch/powerpc/odp_sysinfo_parse.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c index e221f10..1d122cc 100644 --- a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c @@ -14,14 +14,17 @@ 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, "powerpc"); - 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, "clock"); if (pos) { sscanf(pos, "clock : %lf", &mhz); + sysinfo->cpu_hz[id] = \ + (uint64_t)(mhz * 1000000.0); count--; } } @@ -33,16 +36,21 @@ int odp_cpuinfo_parser(FILE *file, odp_system_info_t *sysinfo) 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--; } } - sysinfo->cpu_hz[0] = (uint64_t)(mhz * 1000000.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