Commit 1ce589ad authored by Boris Brezillon's avatar Boris Brezillon
Browse files

i3c: Generate aliases for i3c modules



This part was missing, thus preventing user space from loading modules
automatically when MODALIAS uevents are received.

Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: default avatarVitor Soares <vitor.soares@synopsys.com>
Link: https://lore.kernel.org/linux-i3c/79687073b915182e06fccfb18adcedfd0fadbc99.1582796652.git.vitor.soares@synopsys.com
parent 7ec0ddb0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);

+19 −0
Original line number Diff line number Diff line
@@ -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},