From: Rafael J. Wysocki Date: Thu, 18 Dec 2014 17:42:56 +0000 (+0100) Subject: Merge branches 'acpi-scan', 'acpi-utils' and 'acpi-pm' X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=be10f60d29433f712bf0887431efb80975e64438;p=openwrt%2Fstaging%2Fblogic.git Merge branches 'acpi-scan', 'acpi-utils' and 'acpi-pm' * acpi-scan: ACPI / scan: Change the level of _DEP-related messages to KERN_DEBUG * acpi-utils: ACPI / utils: Drop error messages from acpi_evaluate_reference() * acpi-pm: ACPI / PM: Do not disable wakeup GPEs that have not been enabled --- be10f60d29433f712bf0887431efb80975e64438 diff --cc drivers/acpi/scan.c index 1b1cf558d3d3,d838b2f83e21,0476e90b2091,0476e90b2091..16914cc30882 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@@@@ -2201,59 -2094,59 -2086,6 -2086,6 +2201,59 @@@@@ static void acpi_scan_init_hotplug(stru } } ++static void acpi_device_dep_initialize(struct acpi_device *adev) ++{ ++ struct acpi_dep_data *dep; ++ struct acpi_handle_list dep_devices; ++ acpi_status status; ++ int i; ++ ++ if (!acpi_has_method(adev->handle, "_DEP")) ++ return; ++ ++ status = acpi_evaluate_reference(adev->handle, "_DEP", NULL, ++ &dep_devices); ++ if (ACPI_FAILURE(status)) { - dev_err(&adev->dev, "Failed to evaluate _DEP.\n"); + ++ dev_dbg(&adev->dev, "Failed to evaluate _DEP.\n"); ++ return; ++ } ++ ++ for (i = 0; i < dep_devices.count; i++) { ++ struct acpi_device_info *info; ++ int skip; ++ ++ status = acpi_get_object_info(dep_devices.handles[i], &info); ++ if (ACPI_FAILURE(status)) { - dev_err(&adev->dev, "Error reading device info\n"); + ++ dev_dbg(&adev->dev, "Error reading _DEP device info\n"); ++ continue; ++ } ++ ++ /* ++ * Skip the dependency of Windows System Power ++ * Management Controller ++ */ ++ skip = info->valid & ACPI_VALID_HID && ++ !strcmp(info->hardware_id.string, "INT3396"); ++ ++ kfree(info); ++ ++ if (skip) ++ continue; ++ ++ dep = kzalloc(sizeof(struct acpi_dep_data), GFP_KERNEL); ++ if (!dep) ++ return; ++ ++ dep->master = dep_devices.handles[i]; ++ dep->slave = adev->handle; ++ adev->dep_unmet++; ++ ++ mutex_lock(&acpi_dep_list_lock); ++ list_add_tail(&dep->node , &acpi_dep_list); ++ mutex_unlock(&acpi_dep_list_lock); ++ } ++} ++ static acpi_status acpi_bus_check_add(acpi_handle handle, u32 lvl_not_used, void *not_used, void **return_value) {