Commit e96190da authored by René Rebe's avatar René Rebe Committed by Rafael J. Wysocki
Browse files

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: default avatarRené Rebe <rene@exactco.de>
[ rjw: Subject edits ]
Link: https://patch.msgid.link/20251118.145942.1445519082574147037.rene@exactco.de


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 6a23ae0a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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,