i3c: Generate aliases for i3c modules
authorBoris Brezillon <boris.brezillon@collabora.com>
Thu, 27 Feb 2020 11:31:08 +0000 (12:31 +0100)
committerBoris Brezillon <boris.brezillon@collabora.com>
Fri, 28 Feb 2020 08:36:00 +0000 (09:36 +0100)
This part was missing, thus preventing user space from loading modules
automatically when MODALIAS uevents are received.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Vitor Soares <vitor.soares@synopsys.com>
Link: https://lore.kernel.org/linux-i3c/79687073b915182e06fccfb18adcedfd0fadbc99.1582796652.git.vitor.soares@synopsys.com
scripts/mod/devicetable-offsets.c
scripts/mod/file2alias.c

index 054405b..d3c237b 100644 (file)
@@ -145,6 +145,13 @@ int main(void)
        DEVID(i2c_device_id);
        DEVID_FIELD(i2c_device_id, name);
 
+       DEVID(i3c_device_id);
+       DEVID_FIELD(i3c_device_id, match_flags);
+       DEVID_FIELD(i3c_device_id, dcr);
+       DEVID_FIELD(i3c_device_id, manuf_id);
+       DEVID_FIELD(i3c_device_id, part_id);
+       DEVID_FIELD(i3c_device_id, extra_info);
+
        DEVID(spi_device_id);
        DEVID_FIELD(spi_device_id, name);
 
index c91eba7..f81cbe0 100644 (file)
@@ -919,6 +919,24 @@ static int do_i2c_entry(const char *filename, void *symval,
        return 1;
 }
 
+static int do_i3c_entry(const char *filename, void *symval,
+                       char *alias)
+{
+       DEF_FIELD(symval, i3c_device_id, match_flags);
+       DEF_FIELD(symval, i3c_device_id, dcr);
+       DEF_FIELD(symval, i3c_device_id, manuf_id);
+       DEF_FIELD(symval, i3c_device_id, part_id);
+       DEF_FIELD(symval, i3c_device_id, extra_info);
+
+       strcpy(alias, "i3c:");
+       ADD(alias, "dcr", match_flags & I3C_MATCH_DCR, dcr);
+       ADD(alias, "manuf", match_flags & I3C_MATCH_MANUF, manuf_id);
+       ADD(alias, "part", match_flags & I3C_MATCH_PART, part_id);
+       ADD(alias, "ext", match_flags & I3C_MATCH_EXTRA_INFO, extra_info);
+
+       return 1;
+}
+
 /* Looks like: spi:S */
 static int do_spi_entry(const char *filename, void *symval,
                        char *alias)
@@ -1386,6 +1404,7 @@ static const struct devtable devtable[] = {
        {"vmbus", SIZE_hv_vmbus_device_id, do_vmbus_entry},
        {"rpmsg", SIZE_rpmsg_device_id, do_rpmsg_entry},
        {"i2c", SIZE_i2c_device_id, do_i2c_entry},
+       {"i3c", SIZE_i3c_device_id, do_i3c_entry},
        {"spi", SIZE_spi_device_id, do_spi_entry},
        {"dmi", SIZE_dmi_system_id, do_dmi_entry},
        {"platform", SIZE_platform_device_id, do_platform_entry},