ACPI: video: Prefer native over vendor
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@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
a5df42521f
commit
fb1836c913
1 changed files with 3 additions and 15 deletions
|
@ -776,10 +776,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
|
||||||
return acpi_backlight_video;
|
return acpi_backlight_video;
|
||||||
|
|
||||||
/* Use native if available */
|
/* Use native if available */
|
||||||
if (native_available && prefer_native_over_acpi_video())
|
if (native_available)
|
||||||
return acpi_backlight_native;
|
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;
|
return acpi_backlight_vendor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,18 +791,6 @@ EXPORT_SYMBOL(acpi_video_get_backlight_type);
|
||||||
|
|
||||||
bool acpi_video_backlight_use_native(void)
|
bool acpi_video_backlight_use_native(void)
|
||||||
{
|
{
|
||||||
/*
|
return __acpi_video_get_backlight_type(true) == acpi_backlight_native;
|
||||||
* 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;
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(acpi_video_backlight_use_native);
|
EXPORT_SYMBOL(acpi_video_backlight_use_native);
|
||||||
|
|
Loading…
Add table
Reference in a new issue