Skip to content

Commit

Permalink
firmware: dmi_scan: Add DMI_OEM_STRING support to dmi_matches
Browse files Browse the repository at this point in the history
OEM strings are defined by each OEM and they contain customized and
useful OEM information. Supporting it provides more flexible uses of
the dmi_matches function.

Signed-off-by: Alex Hung <alex.hung@canonical.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
  • Loading branch information
Alex Hung authored and Jean Delvare committed Apr 13, 2018
1 parent 90fe6f8 commit de40614
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
10 changes: 9 additions & 1 deletion drivers/firmware/dmi_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,15 @@ static bool dmi_matches(const struct dmi_system_id *dmi)
int s = dmi->matches[i].slot;
if (s == DMI_NONE)
break;
if (dmi_ident[s]) {
if (s == DMI_OEM_STRING) {
/* DMI_OEM_STRING must be exact match */
const struct dmi_device *valid;

valid = dmi_find_device(DMI_DEV_TYPE_OEM_STRING,
dmi->matches[i].substr, NULL);
if (valid)
continue;
} else if (dmi_ident[s]) {
if (dmi->matches[i].exact_match) {
if (!strcmp(dmi_ident[s],
dmi->matches[i].substr))
Expand Down
1 change: 1 addition & 0 deletions include/linux/mod_devicetable.h
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@ enum dmi_field {
DMI_CHASSIS_SERIAL,
DMI_CHASSIS_ASSET_TAG,
DMI_STRING_MAX,
DMI_OEM_STRING, /* special case - will not be in dmi_ident */
};

struct dmi_strmatch {
Expand Down

0 comments on commit de40614

Please sign in to comment.