[PATCH 2/3] ALSA: hda - Advertise MODALIAS in uevent

Thierry Reding
2015-09-17T10:00:14Z

From: Thierry Reding <treding@nvidia.com>

By setting the MODALIAS variable in uevents, userspace helpers will be
enabled to load modules via the module alias associated with a device.

This information is required to automatically load HDA codec drivers
instead of having to explicitly request the various modules in the HDA
core code.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
sound/hda/hda_bus_type.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/sound/hda/hda_bus_type.c b/sound/hda/hda_bus_type.c
index 89c2711baaaf..5adf24c9f9cc 100644
--- a/sound/hda/hda_bus_type.c
+++ b/sound/hda/hda_bus_type.c
@@ -63,9 +63,21 @@ static int hda_bus_match(struct device *dev, struct device_driver *drv)
return 1;
}

+static int hda_uevent(struct device *dev, struct kobj_uevent_env *env)
+{
+ struct hdac_device *hdev = dev_to_hdac_dev(dev);
+
+ if (add_uevent_var(env, "MODALIAS=snd-hda-codec-id:%08x",
+ hdev->vendor_id))
+ return -ENOMEM;
+
+ return 0;
+}
+
struct bus_type snd_hda_bus_type = {
.name = "hdaudio",
.match = hda_bus_match,
+ .uevent = hda_uevent,
};
EXPORT_SYMBOL_GPL(snd_hda_bus_type);

--
2.5.0