[PATCH 6/6][SRU][OEM-6.0] ACPI: video: Prefer native over vendor

Andrei Gherzan andrei.gherzan at canonical.com
Fri Apr 28 10:00:57 UTC 2023


On 23/04/27 03:41PM, AceLan Kao wrote:
> From: Hans de Goede <hdegoede at redhat.com>
> 
> BugLink: https://launchpad.net/bugs/2017774
> 
> When available prefer native backlight control over vendor backlight
> control.
> 
> Testing has shown that there are quite a few laptop models which rely
> on native backlight control (they don't have ACPI video bus backlight
> control) and on which acpi_osi_is_win8() returns false.
> 
> Currently __acpi_video_get_backlight_type() returns vendor on these
> laptops, leading to an empty /sys/class/backlight.
> 
> As a workaround for this acpi_video_backlight_use_native() has been
> temporarily changed to always return true.
> 
> This re-introduces the problem of having multiple backlight
> devices under /sys/class/backlight for a single panel.
> 
> Change __acpi_video_get_backlight_type() to prefer native over vendor
> when available. So that it returns native on these models.
> 
> And change acpi_video_backlight_use_native() back to only return
> true when __acpi_video_get_backlight_type() returns native.
> 
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
> (cherry picked from commit fb1836c91317e0770950260dfa91eb9b2170cb27)

There are two follow-up fixes with DMI quirks:
9dcb34234b8235144c96103266317da33321077e
e6b3086fddc0065a5ffb947d4d29dd0e6efc327b

I think it would make sense to pull them too.

> Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao at canonical.com>
> ---
>  drivers/acpi/video_detect.c | 18 +++---------------
>  1 file changed, 3 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
> index 37aaf541bca1..3c29d003a3a8 100644
> --- a/drivers/acpi/video_detect.c
> +++ b/drivers/acpi/video_detect.c
> @@ -680,10 +680,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
>  		return acpi_backlight_video;
>  
>  	/* Use native if available */
> -	if (native_available && prefer_native_over_acpi_video())
> +	if (native_available)
>  		return acpi_backlight_native;
>  
> -	/* No ACPI video (old hw), use vendor specific fw methods. */
> +	/* No ACPI video/native (old hw), use vendor specific fw methods. */
>  	return acpi_backlight_vendor;
>  }
>  
> @@ -695,19 +695,7 @@ EXPORT_SYMBOL(acpi_video_get_backlight_type);
>  
>  bool acpi_video_backlight_use_native(void)
>  {
> -	/*
> -	 * Call __acpi_video_get_backlight_type() to let it know that
> -	 * a native backlight is available.
> -	 */
> -	__acpi_video_get_backlight_type(true);
> -
> -	/*
> -	 * For now just always return true. There is a whole bunch of laptop
> -	 * models where (video_caps & ACPI_VIDEO_BACKLIGHT) is false causing
> -	 * __acpi_video_get_backlight_type() to return vendor, while these
> -	 * models only have a native backlight control.
> -	 */
> -	return true;
> +	return __acpi_video_get_backlight_type(true) == acpi_backlight_native;
>  }
>  EXPORT_SYMBOL(acpi_video_backlight_use_native);
>  
> -- 
> 2.34.1

-- 
Andrei Gherzan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20230428/0340832a/attachment.sig>


More information about the kernel-team mailing list