mirror of https://github.com/torvalds/linux.git
PNP: Fix ISAPNP to generate uevents to auto-load modules
Currently ISAPNP devices do not generate an uevent for udev to auto-load the driver modules for Creative SoundBlaster or Gravis UltraSound to just work. Signed-off-by: René Rebe <rene@exactco.de> [ rjw: Subject edits ] Link: https://patch.msgid.link/20251118.145942.1445519082574147037.rene@exactco.de Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
6a23ae0a96
commit
e96190da17
|
|
@ -150,6 +150,24 @@ static void pnp_device_shutdown(struct device *dev)
|
|||
drv->shutdown(pnp_dev);
|
||||
}
|
||||
|
||||
static int pnp_uevent(const struct device *dev, struct kobj_uevent_env *env)
|
||||
{
|
||||
struct pnp_id *pos;
|
||||
const struct pnp_dev *pnp_dev = to_pnp_dev(dev);
|
||||
|
||||
if (!dev)
|
||||
return -ENODEV;
|
||||
|
||||
pos = pnp_dev->id;
|
||||
while (pos) {
|
||||
if (add_uevent_var(env, "MODALIAS=pnp:d%s", pos->id))
|
||||
return -ENOMEM;
|
||||
pos = pos->next;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pnp_bus_match(struct device *dev, const struct device_driver *drv)
|
||||
{
|
||||
struct pnp_dev *pnp_dev = to_pnp_dev(dev);
|
||||
|
|
@ -259,6 +277,7 @@ static const struct dev_pm_ops pnp_bus_dev_pm_ops = {
|
|||
const struct bus_type pnp_bus_type = {
|
||||
.name = "pnp",
|
||||
.match = pnp_bus_match,
|
||||
.uevent = pnp_uevent,
|
||||
.probe = pnp_device_probe,
|
||||
.remove = pnp_device_remove,
|
||||
.shutdown = pnp_device_shutdown,
|
||||
|
|
|
|||
Loading…
Reference in New Issue