drm/dsi: Add uevent callback
authorThierry Reding <treding@nvidia.com>
Fri, 3 Jun 2016 12:23:00 +0000 (14:23 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 13 Jun 2016 08:45:57 +0000 (10:45 +0200)
Implement a uevent callback for devices on the MIPI DSI bus. This
callback will append MODALIAS information to the uevent and allow
modules to be loaded when devices are added to the bus.

Reviewed-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/drm_mipi_dsi.c
include/drm/drm_mipi_dsi.h

index 7938ce7ebed8b2a9a91487032079d2ab8b996952..49311fc61d5d504f9aacb7f6ae80cc6155c4784c 100644 (file)
@@ -60,6 +60,21 @@ static int mipi_dsi_device_match(struct device *dev, struct device_driver *drv)
        return 0;
 }
 
+static int mipi_dsi_uevent(struct device *dev, struct kobj_uevent_env *env)
+{
+       struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev);
+       int err;
+
+       err = of_device_uevent_modalias(dev, env);
+       if (err != -ENODEV)
+               return err;
+
+       add_uevent_var(env, "MODALIAS=%s%s", MIPI_DSI_MODULE_PREFIX,
+                      dsi->name);
+
+       return 0;
+}
+
 static const struct dev_pm_ops mipi_dsi_device_pm_ops = {
        .runtime_suspend = pm_generic_runtime_suspend,
        .runtime_resume = pm_generic_runtime_resume,
@@ -74,6 +89,7 @@ static const struct dev_pm_ops mipi_dsi_device_pm_ops = {
 static struct bus_type mipi_dsi_bus_type = {
        .name = "mipi-dsi",
        .match = mipi_dsi_device_match,
+       .uevent = mipi_dsi_uevent,
        .pm = &mipi_dsi_device_pm_ops,
 };
 
index ec552854a8f89f0c5f19bac141f7892d3913e2c5..72f5b15e07383326eeeb1c19243f1ef232e6bb76 100644 (file)
@@ -180,6 +180,8 @@ struct mipi_dsi_device {
        unsigned long mode_flags;
 };
 
+#define MIPI_DSI_MODULE_PREFIX "mipi-dsi:"
+
 static inline struct mipi_dsi_device *to_mipi_dsi_device(struct device *dev)
 {
        return container_of(dev, struct mipi_dsi_device, dev);