From fd41670dd6ae7c216b96467c64ef294086499970 Mon Sep 17 00:00:00 2001 From: Michael Karcher Date: Sun, 14 Mar 2010 17:57:52 +0000 Subject: Skip DMI laptop check if DMI doesn't work Also further removes dead code from dmi.c and adds a missing newline. Corresponding to flashrom svn r936. Signed-off-by: Michael Karcher Acked-by: Carl-Daniel Hailfinger --- dmi.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'dmi.c') diff --git a/dmi.c b/dmi.c index bb285f4..716a7c6 100644 --- a/dmi.c +++ b/dmi.c @@ -24,21 +24,7 @@ #include "flash.h" -enum dmi_strings { - DMI_SYS_MANUFACTURER, - DMI_SYS_PRODUCT, - DMI_SYS_VERSION, - DMI_BB_MANUFACTURER, - DMI_BB_PRODUCT, - DMI_BB_VERSION, - DMI_ID_INVALID, /* This must always be the last entry! */ -}; - -/* - * The short_id for baseboard starts with "m" as in mainboard to leave - * "b" available for BIOS. - */ -const char *dmidecode_names[DMI_ID_INVALID] = { +const char *dmidecode_names[] = { "system-manufacturer", "system-product-name", "system-version", @@ -51,7 +37,7 @@ const char *dmidecode_names[DMI_ID_INVALID] = { const char *dmidecode_command = "dmidecode"; int has_dmi_support = 0; -char *dmistrings[DMI_ID_INVALID]; +char *dmistrings[ARRAY_SIZE(dmidecode_names)]; /* Strings longer than 4096 in DMI are just insane. */ #define DMI_MAX_ANSWER_LEN 4096 @@ -104,17 +90,17 @@ void dmi_init(void) char *chassis_type; has_dmi_support = 1; - for (i = 0; i < DMI_ID_INVALID; i++) { + for (i = 0; i < ARRAY_SIZE(dmidecode_names); i++) { dmistrings[i] = get_dmi_string(dmidecode_names[i]); if (!dmistrings[i]) { has_dmi_support = 0; - break; + return; } } chassis_type = get_dmi_string("chassis-type"); if (chassis_type && !strcmp(chassis_type, "Notebook")) { - printf_debug("Laptop detected via DMI"); + printf_debug("Laptop detected via DMI\n"); is_laptop = 1; } free(chassis_type); @@ -175,7 +161,7 @@ int dmi_match(const char *pattern) if (!has_dmi_support) return 0; - for (i = 0; i < DMI_ID_INVALID; i++) + for (i = 0; i < ARRAY_SIZE(dmidecode_names); i++) if (dmi_compare(dmistrings[i], pattern)) return 1; -- cgit v1.1