Anton Arapov c2a608
From ee07a1b4249560d620d05194eb8ff61b40d3ce23 Mon Sep 17 00:00:00 2001
Anton Arapov c2a608
From: Jerry Hoemann <jerry.hoemann@hpe.com>
Anton Arapov c2a608
Date: Wed, 13 Sep 2017 15:54:22 -0600
Anton Arapov c2a608
Subject: [PATCH 09/21] dmioem: Reflect HPE's new company name
Anton Arapov c2a608
Anton Arapov c2a608
After Hewlett Packard Enterprise split from Hewlett-Packard, DMI OEM
Anton Arapov c2a608
tables reflect the new company name.  Gen10 and subsequent systems will
Anton Arapov c2a608
use HPE.  Gen9 and prior systems continue to use the old "HP" name.
Anton Arapov c2a608
Anton Arapov c2a608
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Anton Arapov c2a608
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Anton Arapov c2a608
---
Anton Arapov c2a608
 dmioem.c | 32 +++++++++++++++++++-------------
Anton Arapov c2a608
 1 file changed, 19 insertions(+), 13 deletions(-)
Anton Arapov c2a608
Anton Arapov c2a608
diff --git a/dmioem.c b/dmioem.c
Anton Arapov c2a608
index 034ad9f..a032344 100644
Anton Arapov c2a608
--- a/dmioem.c
Anton Arapov c2a608
+++ b/dmioem.c
Anton Arapov c2a608
@@ -35,6 +35,7 @@ enum DMI_VENDORS
Anton Arapov c2a608
 	VENDOR_UNKNOWN,
Anton Arapov c2a608
 	VENDOR_HP,
Anton Arapov c2a608
 	VENDOR_ACER,
Anton Arapov c2a608
+	VENDOR_HPE,
Anton Arapov c2a608
 };
Anton Arapov c2a608
 
Anton Arapov c2a608
 static enum DMI_VENDORS dmi_vendor = VENDOR_UNKNOWN;
Anton Arapov c2a608
@@ -58,12 +59,14 @@ void dmi_set_vendor(const char *s)
Anton Arapov c2a608
 
Anton Arapov c2a608
 	if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0)
Anton Arapov c2a608
 		dmi_vendor = VENDOR_HP;
Anton Arapov c2a608
+	else if (strncmp(s, "HPE", len) == 0 || strncmp(s, "Hewlett Packard Enterprise", len) == 0)
Anton Arapov c2a608
+		dmi_vendor = VENDOR_HPE;
Anton Arapov c2a608
 	else if (strncmp(s, "Acer", len) == 0)
Anton Arapov c2a608
 		dmi_vendor = VENDOR_ACER;
Anton Arapov c2a608
 }
Anton Arapov c2a608
 
Anton Arapov c2a608
 /*
Anton Arapov c2a608
- * HP-specific data structures are decoded here.
Anton Arapov c2a608
+ * HPE-specific data structures are decoded here.
Anton Arapov c2a608
  *
Anton Arapov c2a608
  * Code contributed by John Cagle and Tyler Bell.
Anton Arapov c2a608
  */
Anton Arapov c2a608
@@ -98,14 +101,15 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 	u8 *data = h->data;
Anton Arapov c2a608
 	int nic, ptr;
Anton Arapov c2a608
 	u32 feat;
Anton Arapov c2a608
+	const char *company = (dmi_vendor == VENDOR_HP) ? "HP" : "HPE";
Anton Arapov c2a608
 
Anton Arapov c2a608
 	switch (h->type)
Anton Arapov c2a608
 	{
Anton Arapov c2a608
 		case 204:
Anton Arapov c2a608
 			/*
Anton Arapov c2a608
-			 * Vendor Specific: HP ProLiant System/Rack Locator
Anton Arapov c2a608
+			 * Vendor Specific: HPE ProLiant System/Rack Locator
Anton Arapov c2a608
 			 */
Anton Arapov c2a608
-			printf("HP ProLiant System/Rack Locator\n");
Anton Arapov c2a608
+			printf("%s ProLiant System/Rack Locator\n", company);
Anton Arapov c2a608
 			if (h->length < 0x0B) break;
Anton Arapov c2a608
 			printf("\tRack Name: %s\n", dmi_string(h, data[0x04]));
Anton Arapov c2a608
 			printf("\tEnclosure Name: %s\n", dmi_string(h, data[0x05]));
Anton Arapov c2a608
@@ -119,7 +123,7 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 		case 209:
Anton Arapov c2a608
 		case 221:
Anton Arapov c2a608
 			/*
Anton Arapov c2a608
-			 * Vendor Specific: HP ProLiant NIC MAC Information
Anton Arapov c2a608
+			 * Vendor Specific: HPE ProLiant NIC MAC Information
Anton Arapov c2a608
 			 *
Anton Arapov c2a608
 			 * This prints the BIOS NIC number,
Anton Arapov c2a608
 			 * PCI bus/device/function, and MAC address
Anton Arapov c2a608
@@ -137,9 +141,10 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 			 *
Anton Arapov c2a608
 			 * Type 221: is deprecated in the latest docs
Anton Arapov c2a608
 			 */
Anton Arapov c2a608
-			printf(h->type == 221 ?
Anton Arapov c2a608
-				"HP BIOS iSCSI NIC PCI and MAC Information\n" :
Anton Arapov c2a608
-				"HP BIOS PXE NIC PCI and MAC Information\n");
Anton Arapov c2a608
+			printf("%s %s\n", company,
Anton Arapov c2a608
+				h->type == 221 ?
Anton Arapov c2a608
+					"BIOS iSCSI NIC PCI and MAC Information" :
Anton Arapov c2a608
+					"BIOS PXE NIC PCI and MAC Information");
Anton Arapov c2a608
 			nic = 1;
Anton Arapov c2a608
 			ptr = 4;
Anton Arapov c2a608
 			while (h->length >= ptr + 8)
Anton Arapov c2a608
@@ -155,7 +160,7 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 
Anton Arapov c2a608
 		case 233:
Anton Arapov c2a608
 			/*
Anton Arapov c2a608
-			 * Vendor Specific: HP ProLiant NIC MAC Information
Anton Arapov c2a608
+			 * Vendor Specific: HPE ProLiant NIC MAC Information
Anton Arapov c2a608
 			 *
Anton Arapov c2a608
 			 * This prints the BIOS NIC number,
Anton Arapov c2a608
 			 * PCI bus/device/function, and MAC address
Anton Arapov c2a608
@@ -171,7 +176,7 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 			 *  0x08  |   MAC  | 32B   | MAC addr padded w/ 0s
Anton Arapov c2a608
 			 *  0x28  | Port No| BYTE  | Each NIC maps to a Port
Anton Arapov c2a608
 			 */
Anton Arapov c2a608
-			printf("HP BIOS PXE NIC PCI and MAC Information\n");
Anton Arapov c2a608
+			printf("%s BIOS PXE NIC PCI and MAC Information\n", company);
Anton Arapov c2a608
 			if (h->length < 0x0E) break;
Anton Arapov c2a608
 			/* If the record isn't long enough, we don't have an ID
Anton Arapov c2a608
 			 * use 0xFF to use the internal counter.
Anton Arapov c2a608
@@ -183,11 +188,11 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 
Anton Arapov c2a608
 		case 212:
Anton Arapov c2a608
 			/*
Anton Arapov c2a608
-			 * Vendor Specific: HP 64-bit CRU Information
Anton Arapov c2a608
+			 * Vendor Specific: HPE 64-bit CRU Information
Anton Arapov c2a608
 			 *
Anton Arapov c2a608
 			 * Source: hpwdt kernel driver
Anton Arapov c2a608
 			 */
Anton Arapov c2a608
-			printf("HP 64-bit CRU Information\n");
Anton Arapov c2a608
+			printf("%s 64-bit CRU Information\n", company);
Anton Arapov c2a608
 			if (h->length < 0x18) break;
Anton Arapov c2a608
 			printf("\tSignature: 0x%08x", DWORD(data + 0x04));
Anton Arapov c2a608
 			if (is_printable(data + 0x04, 4))
Anton Arapov c2a608
@@ -208,11 +213,11 @@ static int dmi_decode_hp(const struct dmi_header *h)
Anton Arapov c2a608
 
Anton Arapov c2a608
 		case 219:
Anton Arapov c2a608
 			/*
Anton Arapov c2a608
-			 * Vendor Specific: HP ProLiant Information
Anton Arapov c2a608
+			 * Vendor Specific: HPE ProLiant Information
Anton Arapov c2a608
 			 *
Anton Arapov c2a608
 			 * Source: hpwdt kernel driver
Anton Arapov c2a608
 			 */
Anton Arapov c2a608
-			printf("HP ProLiant Information\n");
Anton Arapov c2a608
+			printf("%s ProLiant Information\n", company);
Anton Arapov c2a608
 			if (h->length < 0x08) break;
Anton Arapov c2a608
 			printf("\tPower Features: 0x%08x\n", DWORD(data + 0x04));
Anton Arapov c2a608
 			if (h->length < 0x0C) break;
Anton Arapov c2a608
@@ -281,6 +286,7 @@ int dmi_decode_oem(const struct dmi_header *h)
Anton Arapov c2a608
 	switch (dmi_vendor)
Anton Arapov c2a608
 	{
Anton Arapov c2a608
 		case VENDOR_HP:
Anton Arapov c2a608
+		case VENDOR_HPE:
Anton Arapov c2a608
 			return dmi_decode_hp(h);
Anton Arapov c2a608
 		case VENDOR_ACER:
Anton Arapov c2a608
 			return dmi_decode_acer(h);
Anton Arapov c2a608
-- 
Anton Arapov c2a608
2.17.1
Anton Arapov c2a608