diff options
author | Marat Dukhan <marat@fb.com> | 2018-03-08 13:06:40 -0800 |
---|---|---|
committer | Marat Dukhan <marat@fb.com> | 2018-03-08 13:10:41 -0800 |
commit | ab7f9492d8f971887777c2deb31638db409651d1 (patch) | |
tree | eb59c8ac69f0e4ad000d55cfa484880e0d80c3fe | |
parent | f1662429eba7728f15587593aca092b103cca124 (diff) | |
download | cpuinfo-ab7f9492d8f971887777c2deb31638db409651d1.tar.gz |
Work around for Exynos 5260 misreported as Exynos 5420
-rw-r--r-- | src/arm/linux/chipset.c | 14 | ||||
-rw-r--r-- | test/name/proc-cpuinfo-hardware.cc | 4 | ||||
-rw-r--r-- | test/name/ro-arch.cc | 2 | ||||
-rw-r--r-- | test/name/ro-chipname.cc | 2 | ||||
-rw-r--r-- | test/name/ro-product-board.cc | 2 |
5 files changed, 19 insertions, 5 deletions
diff --git a/src/arm/linux/chipset.c b/src/arm/linux/chipset.c index d803f4b..9f306c2 100644 --- a/src/arm/linux/chipset.c +++ b/src/arm/linux/chipset.c @@ -3077,6 +3077,20 @@ void cpuinfo_arm_fixup_chipset( /* Exynos 4410 was renamed to Exynos 4412 */ chipset->model = 4412; break; + case 5420: + /* Common bug: Exynos 5260 (Hexa-core) reported as Exynos 5420 (Quad-core) */ + switch (cores) { + case 4: + break; + case 6: + cpuinfo_log_info("reinterpreted Exynos 5420 chipset with 6 cores as Exynos 5260"); + chipset->model = 5260; + break; + default: + cpuinfo_log_warning("system reported invalid %"PRIu32"-core Exynos 5420 chipset", cores); + chipset->model = 0; + } + break; case 7580: /* Common bug: Exynos 7578 (Quad-core) reported as Exynos 7580 (Octa-core) */ switch (cores) { diff --git a/test/name/proc-cpuinfo-hardware.cc b/test/name/proc-cpuinfo-hardware.cc index 1808422..cf7ebf2 100644 --- a/test/name/proc-cpuinfo-hardware.cc +++ b/test/name/proc-cpuinfo-hardware.cc @@ -495,7 +495,7 @@ TEST(PROC_CPUINFO_HARDWARE, samsung_exynos) { EXPECT_EQ("Samsung Exynos 4415", parse_proc_cpuinfo_hardware("Samsung EXYNOS4415")); EXPECT_EQ("Samsung Exynos 5420", - parse_proc_cpuinfo_hardware("Samsung EXYNOS5420")); + parse_proc_cpuinfo_hardware("Samsung EXYNOS5420", 4)); EXPECT_EQ("Samsung Exynos 5430", parse_proc_cpuinfo_hardware("Samsung EXYNOS5430")); EXPECT_EQ("Samsung Exynos 5433", @@ -518,7 +518,7 @@ TEST(PROC_CPUINFO_HARDWARE, samsung_universal) { EXPECT_EQ("Samsung Exynos 5410", parse_proc_cpuinfo_hardware("UNIVERSAL5410")); EXPECT_EQ("Samsung Exynos 5420", - parse_proc_cpuinfo_hardware("UNIVERSAL5420")); + parse_proc_cpuinfo_hardware("UNIVERSAL5420", 4)); EXPECT_EQ("Samsung Exynos 5422", parse_proc_cpuinfo_hardware("universal5422")); EXPECT_EQ("Samsung Exynos 5430", diff --git a/test/name/ro-arch.cc b/test/name/ro-arch.cc index cfdb268..af5746c 100644 --- a/test/name/ro-arch.cc +++ b/test/name/ro-arch.cc @@ -37,7 +37,7 @@ TEST(RO_ARCH, samsung_exynos) { EXPECT_EQ("Samsung Exynos 5410", parse_ro_arch("exynos5410")); EXPECT_EQ("Samsung Exynos 5420", - parse_ro_arch("exynos5420")); + parse_ro_arch("exynos5420", 4)); EXPECT_EQ("Samsung Exynos 5422", parse_ro_arch("exynos5422")); EXPECT_EQ("Samsung Exynos 5430", diff --git a/test/name/ro-chipname.cc b/test/name/ro-chipname.cc index 983fcd9..7f82ade 100644 --- a/test/name/ro-chipname.cc +++ b/test/name/ro-chipname.cc @@ -128,7 +128,7 @@ TEST(RO_CHIPNAME, samsung_exynos) { EXPECT_EQ("Samsung Exynos 5410", parse_ro_chipname("exynos5410")); EXPECT_EQ("Samsung Exynos 5420", - parse_ro_chipname("exynos5420")); + parse_ro_chipname("exynos5420", 4)); EXPECT_EQ("Samsung Exynos 5422", parse_ro_chipname("exynos5422")); EXPECT_EQ("Samsung Exynos 5430", diff --git a/test/name/ro-product-board.cc b/test/name/ro-product-board.cc index ae2e8d6..3c99acf 100644 --- a/test/name/ro-product-board.cc +++ b/test/name/ro-product-board.cc @@ -275,7 +275,7 @@ TEST(RO_PRODUCT_BOARD, samsung_universal) { EXPECT_EQ("Samsung Exynos 5410", parse_ro_product_board("universal5410")); EXPECT_EQ("Samsung Exynos 5420", - parse_ro_product_board("universal5420")); + parse_ro_product_board("universal5420", 4)); EXPECT_EQ("Samsung Exynos 5422", parse_ro_product_board("universal5422")); EXPECT_EQ("Samsung Exynos 5430", |