You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.9 KiB

From 6517fa7c8c8a74a9eae9e6192de316ef8952f2a8 Mon Sep 17 00:00:00 2001
From: Jean Delvare <jdelvare@suse.de>
Date: Thu, 14 Sep 2017 10:08:10 +0200
Subject: [PATCH 08/10] dmioem: Sort vendor names alphabetically
Signed-off-by: Jean Delvare <jdelvare@suse.de>
---
dmioem.c | 92 ++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 46 insertions(+), 46 deletions(-)
diff --git a/dmioem.c b/dmioem.c
index a032344..8a72ac9 100644
--- a/dmioem.c
+++ b/dmioem.c
@@ -33,8 +33,8 @@
enum DMI_VENDORS
{
VENDOR_UNKNOWN,
- VENDOR_HP,
VENDOR_ACER,
+ VENDOR_HP,
VENDOR_HPE,
};
@@ -57,12 +57,54 @@ void dmi_set_vendor(const char *s)
while (len && s[len - 1] == ' ')
len--;
- if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0)
+ if (strncmp(s, "Acer", len) == 0)
+ dmi_vendor = VENDOR_ACER;
+ else if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0)
dmi_vendor = VENDOR_HP;
else if (strncmp(s, "HPE", len) == 0 || strncmp(s, "Hewlett Packard Enterprise", len) == 0)
dmi_vendor = VENDOR_HPE;
- else if (strncmp(s, "Acer", len) == 0)
- dmi_vendor = VENDOR_ACER;
+}
+
+/*
+ * Acer-specific data structures are decoded here.
+ */
+
+static int dmi_decode_acer(const struct dmi_header *h)
+{
+ u8 *data = h->data;
+ u16 cap;
+
+ switch (h->type)
+ {
+ case 170:
+ /*
+ * Vendor Specific: Acer Hotkey Function
+ *
+ * Source: acer-wmi kernel driver
+ *
+ * Probably applies to some laptop models of other
+ * brands, including Fujitsu-Siemens, Medion, Lenovo,
+ * and eMachines.
+ */
+ printf("Acer Hotkey Function\n");
+ if (h->length < 0x0F) break;
+ cap = WORD(data + 0x04);
+ printf("\tFunction bitmap for Communication Button: 0x%04hx\n", cap);
+ printf("\t\tWiFi: %s\n", cap & 0x0001 ? "Yes" : "No");
+ printf("\t\t3G: %s\n", cap & 0x0040 ? "Yes" : "No");
+ printf("\t\tWiMAX: %s\n", cap & 0x0080 ? "Yes" : "No");
+ printf("\t\tBluetooth: %s\n", cap & 0x0800 ? "Yes" : "No");
+ printf("\tFunction bitmap for Application Button: 0x%04hx\n", WORD(data + 0x06));
+ printf("\tFunction bitmap for Media Button: 0x%04hx\n", WORD(data + 0x08));
+ printf("\tFunction bitmap for Display Button: 0x%04hx\n", WORD(data + 0x0A));
+ printf("\tFunction bitmap for Others Button: 0x%04hx\n", WORD(data + 0x0C));
+ printf("\tCommunication Function Key Number: %d\n", data[0x0E]);
+ break;
+
+ default:
+ return 0;
+ }
+ return 1;
}
/*
@@ -236,48 +278,6 @@ static int dmi_decode_hp(const struct dmi_header *h)
}
/*
- * Acer-specific data structures are decoded here.
- */
-
-static int dmi_decode_acer(const struct dmi_header *h)
-{
- u8 *data = h->data;
- u16 cap;
-
- switch (h->type)
- {
- case 170:
- /*
- * Vendor Specific: Acer Hotkey Function
- *
- * Source: acer-wmi kernel driver
- *
- * Probably applies to some laptop models of other
- * brands, including Fujitsu-Siemens, Medion, Lenovo,
- * and eMachines.
- */
- printf("Acer Hotkey Function\n");
- if (h->length < 0x0F) break;
- cap = WORD(data + 0x04);
- printf("\tFunction bitmap for Communication Button: 0x%04hx\n", cap);
- printf("\t\tWiFi: %s\n", cap & 0x0001 ? "Yes" : "No");
- printf("\t\t3G: %s\n", cap & 0x0040 ? "Yes" : "No");
- printf("\t\tWiMAX: %s\n", cap & 0x0080 ? "Yes" : "No");
- printf("\t\tBluetooth: %s\n", cap & 0x0800 ? "Yes" : "No");
- printf("\tFunction bitmap for Application Button: 0x%04hx\n", WORD(data + 0x06));
- printf("\tFunction bitmap for Media Button: 0x%04hx\n", WORD(data + 0x08));
- printf("\tFunction bitmap for Display Button: 0x%04hx\n", WORD(data + 0x0A));
- printf("\tFunction bitmap for Others Button: 0x%04hx\n", WORD(data + 0x0C));
- printf("\tCommunication Function Key Number: %d\n", data[0x0E]);
- break;
-
- default:
- return 0;
- }
- return 1;
-}
-
-/*
* Dispatch vendor-specific entries decoding
* Return 1 if decoding was successful, 0 otherwise
*/
--
2.9.5