Merge tag 'char-misc-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
[linux-block.git] / scripts / mod / file2alias.c
index 7ebabeb1e9c905e3d7410e1361b6f98c557cac26..7c97fa8e36bcd3b95ed942ee443c55db1b3d2085 100644 (file)
@@ -1375,6 +1375,28 @@ static int do_auxiliary_entry(const char *filename, void *symval, char *alias)
        return 1;
 }
 
+/*
+ * Looks like: ssam:dNcNtNiNfN
+ *
+ * N is exactly 2 digits, where each is an upper-case hex digit.
+ */
+static int do_ssam_entry(const char *filename, void *symval, char *alias)
+{
+       DEF_FIELD(symval, ssam_device_id, match_flags);
+       DEF_FIELD(symval, ssam_device_id, domain);
+       DEF_FIELD(symval, ssam_device_id, category);
+       DEF_FIELD(symval, ssam_device_id, target);
+       DEF_FIELD(symval, ssam_device_id, instance);
+       DEF_FIELD(symval, ssam_device_id, function);
+
+       sprintf(alias, "ssam:d%02Xc%02X", domain, category);
+       ADD(alias, "t", match_flags & SSAM_MATCH_TARGET, target);
+       ADD(alias, "i", match_flags & SSAM_MATCH_INSTANCE, instance);
+       ADD(alias, "f", match_flags & SSAM_MATCH_FUNCTION, function);
+
+       return 1;
+}
+
 /* Looks like: dfl:tNfN */
 static int do_dfl_entry(const char *filename, void *symval, char *alias)
 {
@@ -1462,6 +1484,7 @@ static const struct devtable devtable[] = {
        {"wmi", SIZE_wmi_device_id, do_wmi_entry},
        {"mhi", SIZE_mhi_device_id, do_mhi_entry},
        {"auxiliary", SIZE_auxiliary_device_id, do_auxiliary_entry},
+       {"ssam", SIZE_ssam_device_id, do_ssam_entry},
        {"dfl", SIZE_dfl_device_id, do_dfl_entry},
 };