Message ID | 20160603152841.20213-1-thierry.reding@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/03/2016 08:58 PM, Thierry Reding wrote: > From: Thierry Reding <treding@nvidia.com> > > 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 | 16 ++++++++++++++++ > include/drm/drm_mipi_dsi.h | 2 ++ > 2 files changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c > index f5d80839a90c..2181699d5b3b 100644 > --- a/drivers/gpu/drm/drm_mipi_dsi.c > +++ b/drivers/gpu/drm/drm_mipi_dsi.c > @@ -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, > }; > > diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h > index 7a9840f8b38e..765c04348b7f 100644 > --- a/include/drm/drm_mipi_dsi.h > +++ b/include/drm/drm_mipi_dsi.h > @@ -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); >
On Wed, Jun 08, 2016 at 10:10:29AM +0530, Archit Taneja wrote: > > > On 06/03/2016 08:58 PM, Thierry Reding wrote: > > From: Thierry Reding <treding@nvidia.com> > > > > 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> Applied to topic/drm-misc. Thierry
diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c index f5d80839a90c..2181699d5b3b 100644 --- a/drivers/gpu/drm/drm_mipi_dsi.c +++ b/drivers/gpu/drm/drm_mipi_dsi.c @@ -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, }; diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index 7a9840f8b38e..765c04348b7f 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -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);