kernel: backport 4.18 patch adding DMI_PRODUCT_SKU
[openwrt/openwrt.git] / target / linux / generic / backport-4.14 / 900-v4.18-firmware-dmi-Add-access-to-the-SKU-ID-string.patch
1 From b23908d3c48a37c46c6a26df2cdeab1610b360ba Mon Sep 17 00:00:00 2001
2 From: Simon Glass <sjg@chromium.org>
3 Date: Sun, 17 Jun 2018 14:09:42 +0200
4 Subject: [PATCH] firmware: dmi: Add access to the SKU ID string
5
6 This is used in some systems from user space for determining the identity
7 of the device.
8
9 Expose this as a file so that that user-space tools don't need to read
10 from /sys/firmware/dmi/tables/DMI
11
12 Signed-off-by: Simon Glass <sjg@chromium.org>
13 Signed-off-by: Jean Delvare <jdelvare@suse.de>
14 ---
15 drivers/firmware/dmi-id.c | 2 ++
16 drivers/firmware/dmi_scan.c | 1 +
17 include/linux/mod_devicetable.h | 1 +
18 3 files changed, 4 insertions(+)
19
20 --- a/drivers/firmware/dmi-id.c
21 +++ b/drivers/firmware/dmi-id.c
22 @@ -47,6 +47,7 @@ DEFINE_DMI_ATTR_WITH_SHOW(product_name,
23 DEFINE_DMI_ATTR_WITH_SHOW(product_version, 0444, DMI_PRODUCT_VERSION);
24 DEFINE_DMI_ATTR_WITH_SHOW(product_serial, 0400, DMI_PRODUCT_SERIAL);
25 DEFINE_DMI_ATTR_WITH_SHOW(product_uuid, 0400, DMI_PRODUCT_UUID);
26 +DEFINE_DMI_ATTR_WITH_SHOW(product_sku, 0444, DMI_PRODUCT_SKU);
27 DEFINE_DMI_ATTR_WITH_SHOW(product_family, 0444, DMI_PRODUCT_FAMILY);
28 DEFINE_DMI_ATTR_WITH_SHOW(board_vendor, 0444, DMI_BOARD_VENDOR);
29 DEFINE_DMI_ATTR_WITH_SHOW(board_name, 0444, DMI_BOARD_NAME);
30 @@ -193,6 +194,7 @@ static void __init dmi_id_init_attr_tabl
31 ADD_DMI_ATTR(product_serial, DMI_PRODUCT_SERIAL);
32 ADD_DMI_ATTR(product_uuid, DMI_PRODUCT_UUID);
33 ADD_DMI_ATTR(product_family, DMI_PRODUCT_FAMILY);
34 + ADD_DMI_ATTR(product_sku, DMI_PRODUCT_SKU);
35 ADD_DMI_ATTR(board_vendor, DMI_BOARD_VENDOR);
36 ADD_DMI_ATTR(board_name, DMI_BOARD_NAME);
37 ADD_DMI_ATTR(board_version, DMI_BOARD_VERSION);
38 --- a/drivers/firmware/dmi_scan.c
39 +++ b/drivers/firmware/dmi_scan.c
40 @@ -435,6 +435,7 @@ static void __init dmi_decode(const stru
41 dmi_save_ident(dm, DMI_PRODUCT_VERSION, 6);
42 dmi_save_ident(dm, DMI_PRODUCT_SERIAL, 7);
43 dmi_save_uuid(dm, DMI_PRODUCT_UUID, 8);
44 + dmi_save_ident(dm, DMI_PRODUCT_SKU, 25);
45 dmi_save_ident(dm, DMI_PRODUCT_FAMILY, 26);
46 break;
47 case 2: /* Base Board Information */
48 --- a/include/linux/mod_devicetable.h
49 +++ b/include/linux/mod_devicetable.h
50 @@ -471,6 +471,7 @@ enum dmi_field {
51 DMI_PRODUCT_VERSION,
52 DMI_PRODUCT_SERIAL,
53 DMI_PRODUCT_UUID,
54 + DMI_PRODUCT_SKU,
55 DMI_PRODUCT_FAMILY,
56 DMI_BOARD_VENDOR,
57 DMI_BOARD_NAME,