firmware: coreboot: Generate modalias uevent for devices
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Mon, 12 Feb 2024 14:50:05 +0000 (09:50 -0500)
committerTzung-Bi Shih <tzungbi@kernel.org>
Sat, 17 Feb 2024 00:53:05 +0000 (08:53 +0800)
Generate a modalias uevent for devices in the coreboot bus to allow
userspace to automatically load the corresponding modules.

Acked-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20240212-coreboot-mod-defconfig-v4-1-d14172676f6d@collabora.com
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/firmware/google/coreboot_table.c

index fcdc387ae7aa14fae40bed7e931a0235802ff882..234cebf376d97f950964178355e70c80273320ed 100644 (file)
@@ -53,11 +53,20 @@ static void coreboot_bus_remove(struct device *dev)
                driver->remove(device);
 }
 
+static int coreboot_bus_uevent(const struct device *dev, struct kobj_uevent_env *env)
+{
+       struct coreboot_device *device = CB_DEV(dev);
+       u32 tag = device->entry.tag;
+
+       return add_uevent_var(env, "MODALIAS=coreboot:t%08X", tag);
+}
+
 static const struct bus_type coreboot_bus_type = {
        .name           = "coreboot",
        .match          = coreboot_bus_match,
        .probe          = coreboot_bus_probe,
        .remove         = coreboot_bus_remove,
+       .uevent         = coreboot_bus_uevent,
 };
 
 static void coreboot_device_release(struct device *dev)