Work around for Exynos 5260 misreported as Exynos 5420
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 @@
 					/* 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 @@
 	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 @@
 	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 @@
 	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 @@
 	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 @@
 	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",