summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/device/pnp_device.c9
-rw-r--r--src/include/device/pnp.h2
2 files changed, 7 insertions, 4 deletions
diff --git a/src/device/pnp_device.c b/src/device/pnp_device.c
index ba05c82d5e..5600231207 100644
--- a/src/device/pnp_device.c
+++ b/src/device/pnp_device.c
@@ -386,10 +386,13 @@ void pnp_enable_devices(struct device *base_dev, struct device_operations *ops,
if (dev->ops)
continue;
- if (info[i].ops == 0)
- dev->ops = ops;
- else
+ /* use LDN-specific ops override from corresponding pnp_info
+ entry if not NULL */
+ if (info[i].ops)
dev->ops = info[i].ops;
+ /* else use device ops */
+ else
+ dev->ops = ops;
get_resources(dev, &info[i]);
}
diff --git a/src/include/device/pnp.h b/src/include/device/pnp.h
index e3839c6e71..d7530131d9 100644
--- a/src/include/device/pnp.h
+++ b/src/include/device/pnp.h
@@ -31,7 +31,7 @@ extern struct device_operations pnp_ops;
/* PNP helper operations */
struct pnp_info {
- struct device_operations *ops;
+ struct device_operations *ops; /* LDN-specific ops override */
unsigned int function; /* Must be at least 16 bits (virtual LDNs)! */
unsigned int flags;
#define PNP_IO0 0x000001