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