diff mbox series

ACPI: video: Improve Chromebook checks

Message ID 20221031105806.370672-1-hdegoede@redhat.com (mailing list archive)
State Mainlined, archived
Headers show
Series ACPI: video: Improve Chromebook checks | expand

Commit Message

Hans de Goede Oct. 31, 2022, 10:58 a.m. UTC
2 improvements for the Chromebook handling in
acpi_video_get_backlight_type():

1. Also check for the "GOOG000C" ACPI HID used on some models
2. Move the Chromebook check to above the ACPI-video check normally
   Chromebooks don't have ACPI video backlight support, but when
   flashed with upstream coreboot builds they may have ACPI video
   backlight support, but native should still be used/preferred then.

Suggested-by: Mr. Chromebox <mrchromebox@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/video_detect.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

Comments

Rafael J. Wysocki Nov. 3, 2022, 6:50 p.m. UTC | #1
On Mon, Oct 31, 2022 at 11:58 AM Hans de Goede <hdegoede@redhat.com> wrote:
>
> 2 improvements for the Chromebook handling in
> acpi_video_get_backlight_type():
>
> 1. Also check for the "GOOG000C" ACPI HID used on some models
> 2. Move the Chromebook check to above the ACPI-video check normally
>    Chromebooks don't have ACPI video backlight support, but when
>    flashed with upstream coreboot builds they may have ACPI video
>    backlight support, but native should still be used/preferred then.
>
> Suggested-by: Mr. Chromebox <mrchromebox@gmail.com>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/acpi/video_detect.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
> index 9cd8797d12bb..841f6213b4de 100644
> --- a/drivers/acpi/video_detect.c
> +++ b/drivers/acpi/video_detect.c
> @@ -670,7 +670,7 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
>
>  static bool google_cros_ec_present(void)
>  {
> -       return acpi_dev_found("GOOG0004");
> +       return acpi_dev_found("GOOG0004") || acpi_dev_found("GOOG000C");
>  }
>
>  /*
> @@ -718,6 +718,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
>         if (apple_gmux_present())
>                 return acpi_backlight_apple_gmux;
>
> +       /* Chromebooks should always use native backlight control. */
> +       if (google_cros_ec_present() && native_available)
> +               return acpi_backlight_native;
> +
>         /* On systems with ACPI video use either native or ACPI video. */
>         if (video_caps & ACPI_VIDEO_BACKLIGHT) {
>                 /*
> @@ -735,13 +739,6 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
>                         return acpi_backlight_video;
>         }
>
> -       /*
> -        * Chromebooks that don't have backlight handle in ACPI table
> -        * are supposed to use native backlight if it's available.
> -        */
> -       if (google_cros_ec_present() && native_available)
> -               return acpi_backlight_native;
> -
>         /* No ACPI video (old hw), use vendor specific fw methods. */
>         return acpi_backlight_vendor;
>  }
> --

Applied as 6.2 material, thanks!
diff mbox series

Patch

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 9cd8797d12bb..841f6213b4de 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -670,7 +670,7 @@  static const struct dmi_system_id video_detect_dmi_table[] = {
 
 static bool google_cros_ec_present(void)
 {
-	return acpi_dev_found("GOOG0004");
+	return acpi_dev_found("GOOG0004") || acpi_dev_found("GOOG000C");
 }
 
 /*
@@ -718,6 +718,10 @@  static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 	if (apple_gmux_present())
 		return acpi_backlight_apple_gmux;
 
+	/* Chromebooks should always use native backlight control. */
+	if (google_cros_ec_present() && native_available)
+		return acpi_backlight_native;
+
 	/* On systems with ACPI video use either native or ACPI video. */
 	if (video_caps & ACPI_VIDEO_BACKLIGHT) {
 		/*
@@ -735,13 +739,6 @@  static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 			return acpi_backlight_video;
 	}
 
-	/*
-	 * Chromebooks that don't have backlight handle in ACPI table
-	 * are supposed to use native backlight if it's available.
-	 */
-	if (google_cros_ec_present() && native_available)
-		return acpi_backlight_native;
-
 	/* No ACPI video (old hw), use vendor specific fw methods. */
 	return acpi_backlight_vendor;
 }