diff options
Diffstat (limited to 'drivers/acpi/scan.c')
| -rw-r--r-- | drivers/acpi/scan.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 189cbc2585f..0338f513a01 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -4,6 +4,7 @@  #include <linux/module.h>  #include <linux/init.h> +#include <linux/slab.h>  #include <linux/kernel.h>  #include <linux/acpi.h>  #include <linux/signal.h> @@ -1080,12 +1081,6 @@ static void acpi_device_set_id(struct acpi_device *device)  		if (ACPI_IS_ROOT_DEVICE(device)) {  			acpi_add_id(device, ACPI_SYSTEM_HID);  			break; -		} else if (ACPI_IS_ROOT_DEVICE(device->parent)) { -			/* \_SB_, the only root-level namespace device */ -			acpi_add_id(device, ACPI_BUS_HID); -			strcpy(device->pnp.device_name, ACPI_BUS_DEVICE_NAME); -			strcpy(device->pnp.device_class, ACPI_BUS_CLASS); -			break;  		}  		status = acpi_get_object_info(device->handle, &info); @@ -1120,6 +1115,12 @@ static void acpi_device_set_id(struct acpi_device *device)  			acpi_add_id(device, ACPI_DOCK_HID);  		else if (!acpi_ibm_smbus_match(device))  			acpi_add_id(device, ACPI_SMBUS_IBM_HID); +		else if (!acpi_device_hid(device) && +			 ACPI_IS_ROOT_DEVICE(device->parent)) { +			acpi_add_id(device, ACPI_BUS_HID); /* \_SB, LNXSYBUS */ +			strcpy(device->pnp.device_name, ACPI_BUS_DEVICE_NAME); +			strcpy(device->pnp.device_class, ACPI_BUS_CLASS); +		}  		break;  	case ACPI_BUS_TYPE_POWER:  |