diff options
| author | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
| commit | 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e (patch) | |
| tree | d57f3a63479a07b4e0cece029886e76e04feb984 /drivers/acpi/glue.c | |
| parent | 5dc63e56a9cf8df0b59c234a505a1653f1bdf885 (diff) | |
| parent | 53bea86b5712c7491bb3dae12e271666df0a308c (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.4 merge window.
Diffstat (limited to 'drivers/acpi/glue.c')
| -rw-r--r-- | drivers/acpi/glue.c | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index 204fe94c7e45..a194f30876c5 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c @@ -75,7 +75,8 @@ static struct acpi_bus_type *acpi_get_bus_type(struct device *dev)  }  #define FIND_CHILD_MIN_SCORE	1 -#define FIND_CHILD_MAX_SCORE	2 +#define FIND_CHILD_MID_SCORE	2 +#define FIND_CHILD_MAX_SCORE	3  static int match_any(struct acpi_device *adev, void *not_used)  { @@ -96,8 +97,17 @@ static int find_child_checks(struct acpi_device *adev, bool check_children)  		return -ENODEV;  	status = acpi_evaluate_integer(adev->handle, "_STA", NULL, &sta); -	if (status == AE_NOT_FOUND) +	if (status == AE_NOT_FOUND) { +		/* +		 * Special case: backlight device objects without _STA are +		 * preferred to other objects with the same _ADR value, because +		 * it is more likely that they are actually useful. +		 */ +		if (adev->pnp.type.backlight) +			return FIND_CHILD_MID_SCORE; +  		return FIND_CHILD_MIN_SCORE; +	}  	if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_ENABLED))  		return -ENODEV;  |