diff --git a/ich_descriptors.c b/ich_descriptors.c
index e3e5287..9813836 100644
--- a/ich_descriptors.c
+++ b/ich_descriptors.c
@@ -907,10 +907,8 @@
 	msg_pdbg2("\n");
 }
 
-static inline void warn_peculiar_desc(const bool warn_if, const char *const name)
+static inline void warn_peculiar_desc(const char *const name)
 {
-	if (!warn_if)
-		return;
 	msg_pwarn("Peculiar flash descriptor, assuming %s compatibility.\n", name);
 }
 
@@ -928,13 +926,17 @@
 			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 == 19)
 				return CHIPSET_APOLLO_LAKE;
-			warn_peculiar_desc(content->ISL != 23, "Gemini Lake");
+			if (content->ISL == 23)
+				return CHIPSET_GEMINI_LAKE;
+			warn_peculiar_desc("Gemini Lake");
 			return CHIPSET_GEMINI_LAKE;
 		}
-		warn_peculiar_desc(content->ISL != 16, "Ibex Peak");
+		warn_peculiar_desc("Ibex Peak");
 		return CHIPSET_5_SERIES_IBEX_PEAK;
 	} else if (upper->MDTBA == 0x00) {
 		if (content->ICCRIBA < 0x31 && content->FMSBA < 0x30) {
@@ -942,18 +944,25 @@
 				return CHIPSET_BAYTRAIL;
 			if (content->MSL <= 1 && content->ISL <= 18)
 				return CHIPSET_6_SERIES_COUGAR_POINT;
-			warn_peculiar_desc(content->MSL != 1 || content->ISL != 21, "Lynx Point");
+			if (content->MSL <= 1 && content->ISL <= 21)
+				return CHIPSET_8_SERIES_LYNX_POINT;
+			warn_peculiar_desc("Lynx Point");
 			return CHIPSET_8_SERIES_LYNX_POINT;
 		}
 		if (content->NM == 6) {
-			warn_peculiar_desc(content->ICCRIBA > 0x34, "C620 series");
+			if (content->ICCRIBA <= 0x34)
+				return CHIPSET_C620_SERIES_LEWISBURG;
+			warn_peculiar_desc("C620 series");
 			return CHIPSET_C620_SERIES_LEWISBURG;
 		}
-		warn_peculiar_desc(content->ICCRIBA != 0x31, "100 series");
+		if (content->ICCRIBA == 0x31)
+			return CHIPSET_100_SERIES_SUNRISE_POINT;
+		warn_peculiar_desc("100 series");
 		return CHIPSET_100_SERIES_SUNRISE_POINT;
 	} else {
-		if (content->ICCRIBA != 0x34)
-			msg_pwarn("Unknown flash descriptor, assuming 300 series compatibility.\n");
+		if (content->ICCRIBA == 0x34)
+			return CHIPSET_300_SERIES_CANNON_POINT;
+		msg_pwarn("Unknown flash descriptor, assuming 300 series compatibility.\n");
 		return CHIPSET_300_SERIES_CANNON_POINT;
 	}
 }
