ich_descriptors: Normalize chipset detection

Normalize the fallback paths:
* Always end with the newest, assumed compatible chipset.
* Perform tighter checks when it's about warnings only.
* If two chipsets seem compatible, always return the same
  (this is currently the case for 8/9 series and 300/400
  series which we can't distinguish).

Change-Id: Ic5a5fee870202173b3a9813b03ec261e8ee45155
Signed-off-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/55651
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Original-Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71401
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/ich_descriptors.c b/ich_descriptors.c
index 1de4577..e3e5287 100644
--- a/ich_descriptors.c
+++ b/ich_descriptors.c
@@ -928,15 +928,13 @@
 			return CHIPSET_ICH9;
 		if (content->ISL <= 10)
 			return CHIPSET_ICH10;
-		if (content->ISL <= 16)
-			return CHIPSET_5_SERIES_IBEX_PEAK;
 		if (content->FLMAP2 == 0) {
-			if (content->ISL == 23)
-				return CHIPSET_GEMINI_LAKE;
-			warn_peculiar_desc(content->ISL != 19, "Apollo Lake");
-			return CHIPSET_APOLLO_LAKE;
+			if (content->ISL == 19)
+				return CHIPSET_APOLLO_LAKE;
+			warn_peculiar_desc(content->ISL != 23, "Gemini Lake");
+			return CHIPSET_GEMINI_LAKE;
 		}
-		warn_peculiar_desc(true, "Ibex Peak");
+		warn_peculiar_desc(content->ISL != 16, "Ibex Peak");
 		return CHIPSET_5_SERIES_IBEX_PEAK;
 	} else if (upper->MDTBA == 0x00) {
 		if (content->ICCRIBA < 0x31 && content->FMSBA < 0x30) {
@@ -944,10 +942,8 @@
 				return CHIPSET_BAYTRAIL;
 			if (content->MSL <= 1 && content->ISL <= 18)
 				return CHIPSET_6_SERIES_COUGAR_POINT;
-			if (content->MSL <= 1 && content->ISL <= 21)
-				return CHIPSET_8_SERIES_LYNX_POINT;
-			warn_peculiar_desc(true, "Wildcat Point");
-			return CHIPSET_9_SERIES_WILDCAT_POINT;
+			warn_peculiar_desc(content->MSL != 1 || content->ISL != 21, "Lynx Point");
+			return CHIPSET_8_SERIES_LYNX_POINT;
 		}
 		if (content->NM == 6) {
 			warn_peculiar_desc(content->ICCRIBA > 0x34, "C620 series");