diff options
Diffstat (limited to 'drivers/pnp/pnpacpi/core.c')
| -rw-r--r-- | drivers/pnp/pnpacpi/core.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index 26b5d4b18dd..72e822e17d4 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c @@ -58,7 +58,7 @@ static inline int __init is_exclusive_device(struct acpi_device *dev)  	if (!(('0' <= (c) && (c) <= '9') || ('A' <= (c) && (c) <= 'F'))) \  		return 0  #define TEST_ALPHA(c) \ -	if (!('@' <= (c) || (c) <= 'Z')) \ +	if (!('A' <= (c) && (c) <= 'Z')) \  		return 0  static int __init ispnpidacpi(const char *id)  { @@ -95,6 +95,9 @@ static int pnpacpi_set_resources(struct pnp_dev *dev)  		return -ENODEV;  	} +	if (WARN_ON_ONCE(acpi_dev != dev->data)) +		dev->data = acpi_dev; +  	ret = pnpacpi_build_resource_template(dev, &buffer);  	if (ret)  		return ret; @@ -242,6 +245,10 @@ static int __init pnpacpi_add_device(struct acpi_device *device)  	char *pnpid;  	struct acpi_hardware_id *id; +	/* Skip devices that are already bound */ +	if (device->physical_node_count) +		return 0; +  	/*  	 * If a PnPacpi device is not present , the device  	 * driver should not be loaded.  |