All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: "Dmitry Osipenko" <digetx@gmail.com>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Karol Herbst" <kherbst@redhat.com>, Lyude <lyude@redhat.com>,
	"Daniel Dadap" <ddadap@nvidia.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	Pan@freedesktop.org, Xinhui <Xinhui.Pan@amd.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Gross" <markgross@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>
Cc: Jani Nikula <jani.nikula@intel.com>,
	nouveau@lists.freedesktop.org,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel@lists.freedesktop.org,
	platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org,
	amd-gfx@lists.freedesktop.org, David Airlie <airlied@redhat.com>,
	Len Brown <lenb@kernel.org>
Subject: Re: [Nouveau] [PATCH v5 02/31] drm/i915: Don't register backlight when another backlight should be used (v2)
Date: Tue, 27 Sep 2022 13:04:52 +0200	[thread overview]
Message-ID: <42a5f2c9-a1dc-8fc0-7334-fe6c390ecfbb@redhat.com> (raw)
In-Reply-To: <f914ceb3-94bd-743c-f8b6-0334086e731a@gmail.com>

Hi Dmitry,

On 9/26/22 01:39, Dmitry Osipenko wrote:
> 25.08.2022 17:36, Hans de Goede пишет:
>> Before this commit when we want userspace to use the acpi_video backlight
>> device we register both the GPU's native backlight device and acpi_video's
>> firmware acpi_video# backlight device. This relies on userspace preferring
>> firmware type backlight devices over native ones.
>>
>> Registering 2 backlight devices for a single display really is
>> undesirable, don't register the GPU's native backlight device when
>> another backlight device should be used.
>>
>> Changes in v2:
>> - Use drm_info(drm_dev,  ...) for log messages
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_backlight.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c
>> index 681ebcda97ad..03c7966f68d6 100644
>> --- a/drivers/gpu/drm/i915/display/intel_backlight.c
>> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c
>> @@ -8,6 +8,8 @@
>>  #include <linux/pwm.h>
>>  #include <linux/string_helpers.h>
>>  
>> +#include <acpi/video.h>
>> +
>>  #include "intel_backlight.h"
>>  #include "intel_backlight_regs.h"
>>  #include "intel_connector.h"
>> @@ -952,6 +954,11 @@ int intel_backlight_device_register(struct intel_connector *connector)
>>  
>>  	WARN_ON(panel->backlight.max == 0);
>>  
>> +	if (!acpi_video_backlight_use_native()) {
>> +		drm_info(&i915->drm, "Skipping intel_backlight registration\n");
>> +		return 0;
>> +	}
>> +
>>  	memset(&props, 0, sizeof(props));
>>  	props.type = BACKLIGHT_RAW;
>>  
> 
> This breaks backlight on Acer Chromebook Spin 713 because backlight
> isn't registered anymore. Any ideas how to fix it?

Thank you for reporting this.

Let me start with some background info on this change:

As you may have noticed sometimes on laptops there are multiple
backlights registered under /sys/class/backlight and we just let
userspace figure out which one to use, which is quite bad.

This patch is part of a series fixing this, this is also preparation
for adding a new display brightness control API where the brightness is
a property on the drm_connector object for the panel/display, which
of course requires the kernel to know which backlight control method
to use.

If you are want to know more about the new userspace API see:
https://lore.kernel.org/dri-devel/b61d3eeb-6213-afac-2e70-7b9791c86d2e@redhat.com/

What this series does is on x86/ACPI platforms make all the possible
/sys/class/backlight providers call: acpi_video_get_backlight_type()
(acpi_video_backlight_use_native() is a special wrapper) and only if
that returns their type then have them register their backlight device.

So to fix this we need to make acpi_video_get_backlight_type()
return native on the Acer Chromebook Spin 713.

The heuristics used in acpi_video_get_backlight_type() is
explained by comments in the function:

        /*
         * The below heuristics / detection steps are in order of descending
         * presedence. The commandline takes presedence over anything else.
         */
        /* DMI quirks override any autodetection. */
        /* Special cases such as nvidia_wmi_ec and apple gmux. */

None of these apply here, so we end up in the core of this function:

        /* On systems with ACPI video use either native or ACPI video. */
        if (video_caps & ACPI_VIDEO_BACKLIGHT) {
                /*
                 * Windows 8 and newer no longer use the ACPI video interface,
                 * so it often does not work. If the ACPI tables are written
                 * for win8 and native brightness ctl is available, use that.
                 *
                 * The native check deliberately is inside the if acpi-video
                 * block on older devices without acpi-video support native
                 * is usually not the best choice.
                 */
                if (acpi_osi_is_win8() && native_available)
                        return acpi_backlight_native;
                else
                        return acpi_backlight_video;
        }

        /* No ACPI video (old hw), use vendor specific fw methods. */
        return acpi_backlight_vendor;


The acpi_video_backlight_use_native() wrappers causes native_available to
be true, so one or both of these 2 conditions fail:

1.      if (video_caps & ACPI_VIDEO_BACKLIGHT)
2.	if (acpi_osi_is_win8())

I assume that 2. will actually likely fail on quite a few chromebooks.
So to fix this you could do something like this:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..660ea46fbee8 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromebook(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -724,7 +730,7 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 		 * block on older devices without acpi-video support native
 		 * is usually not the best choice.
 		 */
-		if (acpi_osi_is_win8() && native_available)
+		if (native_available && (acpi_osi_is_win8() || is_chromebook()))
 			return acpi_backlight_native;
 		else
 			return acpi_backlight_video;

The ACPI video bus is a pretty standard thing (and part of the ACPI standard),
still I would not be surprised if it is missing from the ACPI tables on some
Chromebooks, so a slightly bigger hammer approach would be:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..ff950be472a7 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromeos_firmware(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -713,6 +719,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 	if (apple_gmux_present())
 		return acpi_backlight_apple_gmux;
 
+	/* On Chromebooks always use native if available */
+	if (is_chromeos_firmware() && native_available)
+		return acpi_backlight_native;
+
 	/* On systems with ACPI video use either native or ACPI video. */
 	if (video_caps & ACPI_VIDEO_BACKLIGHT) {
 		/*

I assume you are more familiar with Chromebooks ACPI tables (or at least
are better capable to sample a couple of them) so I will leave which
approach to take is best up to you.

Regards,

Hans


WARNING: multiple messages have this Message-ID (diff)
From: Hans de Goede <hdegoede@redhat.com>
To: "Dmitry Osipenko" <digetx@gmail.com>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Karol Herbst" <kherbst@redhat.com>, Lyude <lyude@redhat.com>,
	"Daniel Dadap" <ddadap@nvidia.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	Pan@freedesktop.org, Xinhui <Xinhui.Pan@amd.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Gross" <markgross@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>
Cc: Jani Nikula <jani.nikula@intel.com>,
	nouveau@lists.freedesktop.org,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel@lists.freedesktop.org,
	platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org,
	amd-gfx@lists.freedesktop.org, David Airlie <airlied@redhat.com>,
	Len Brown <lenb@kernel.org>
Subject: Re: [PATCH v5 02/31] drm/i915: Don't register backlight when another backlight should be used (v2)
Date: Tue, 27 Sep 2022 13:04:52 +0200	[thread overview]
Message-ID: <42a5f2c9-a1dc-8fc0-7334-fe6c390ecfbb@redhat.com> (raw)
In-Reply-To: <f914ceb3-94bd-743c-f8b6-0334086e731a@gmail.com>

Hi Dmitry,

On 9/26/22 01:39, Dmitry Osipenko wrote:
> 25.08.2022 17:36, Hans de Goede пишет:
>> Before this commit when we want userspace to use the acpi_video backlight
>> device we register both the GPU's native backlight device and acpi_video's
>> firmware acpi_video# backlight device. This relies on userspace preferring
>> firmware type backlight devices over native ones.
>>
>> Registering 2 backlight devices for a single display really is
>> undesirable, don't register the GPU's native backlight device when
>> another backlight device should be used.
>>
>> Changes in v2:
>> - Use drm_info(drm_dev,  ...) for log messages
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_backlight.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c
>> index 681ebcda97ad..03c7966f68d6 100644
>> --- a/drivers/gpu/drm/i915/display/intel_backlight.c
>> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c
>> @@ -8,6 +8,8 @@
>>  #include <linux/pwm.h>
>>  #include <linux/string_helpers.h>
>>  
>> +#include <acpi/video.h>
>> +
>>  #include "intel_backlight.h"
>>  #include "intel_backlight_regs.h"
>>  #include "intel_connector.h"
>> @@ -952,6 +954,11 @@ int intel_backlight_device_register(struct intel_connector *connector)
>>  
>>  	WARN_ON(panel->backlight.max == 0);
>>  
>> +	if (!acpi_video_backlight_use_native()) {
>> +		drm_info(&i915->drm, "Skipping intel_backlight registration\n");
>> +		return 0;
>> +	}
>> +
>>  	memset(&props, 0, sizeof(props));
>>  	props.type = BACKLIGHT_RAW;
>>  
> 
> This breaks backlight on Acer Chromebook Spin 713 because backlight
> isn't registered anymore. Any ideas how to fix it?

Thank you for reporting this.

Let me start with some background info on this change:

As you may have noticed sometimes on laptops there are multiple
backlights registered under /sys/class/backlight and we just let
userspace figure out which one to use, which is quite bad.

This patch is part of a series fixing this, this is also preparation
for adding a new display brightness control API where the brightness is
a property on the drm_connector object for the panel/display, which
of course requires the kernel to know which backlight control method
to use.

If you are want to know more about the new userspace API see:
https://lore.kernel.org/dri-devel/b61d3eeb-6213-afac-2e70-7b9791c86d2e@redhat.com/

What this series does is on x86/ACPI platforms make all the possible
/sys/class/backlight providers call: acpi_video_get_backlight_type()
(acpi_video_backlight_use_native() is a special wrapper) and only if
that returns their type then have them register their backlight device.

So to fix this we need to make acpi_video_get_backlight_type()
return native on the Acer Chromebook Spin 713.

The heuristics used in acpi_video_get_backlight_type() is
explained by comments in the function:

        /*
         * The below heuristics / detection steps are in order of descending
         * presedence. The commandline takes presedence over anything else.
         */
        /* DMI quirks override any autodetection. */
        /* Special cases such as nvidia_wmi_ec and apple gmux. */

None of these apply here, so we end up in the core of this function:

        /* On systems with ACPI video use either native or ACPI video. */
        if (video_caps & ACPI_VIDEO_BACKLIGHT) {
                /*
                 * Windows 8 and newer no longer use the ACPI video interface,
                 * so it often does not work. If the ACPI tables are written
                 * for win8 and native brightness ctl is available, use that.
                 *
                 * The native check deliberately is inside the if acpi-video
                 * block on older devices without acpi-video support native
                 * is usually not the best choice.
                 */
                if (acpi_osi_is_win8() && native_available)
                        return acpi_backlight_native;
                else
                        return acpi_backlight_video;
        }

        /* No ACPI video (old hw), use vendor specific fw methods. */
        return acpi_backlight_vendor;


The acpi_video_backlight_use_native() wrappers causes native_available to
be true, so one or both of these 2 conditions fail:

1.      if (video_caps & ACPI_VIDEO_BACKLIGHT)
2.	if (acpi_osi_is_win8())

I assume that 2. will actually likely fail on quite a few chromebooks.
So to fix this you could do something like this:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..660ea46fbee8 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromebook(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -724,7 +730,7 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 		 * block on older devices without acpi-video support native
 		 * is usually not the best choice.
 		 */
-		if (acpi_osi_is_win8() && native_available)
+		if (native_available && (acpi_osi_is_win8() || is_chromebook()))
 			return acpi_backlight_native;
 		else
 			return acpi_backlight_video;

The ACPI video bus is a pretty standard thing (and part of the ACPI standard),
still I would not be surprised if it is missing from the ACPI tables on some
Chromebooks, so a slightly bigger hammer approach would be:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..ff950be472a7 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromeos_firmware(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -713,6 +719,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 	if (apple_gmux_present())
 		return acpi_backlight_apple_gmux;
 
+	/* On Chromebooks always use native if available */
+	if (is_chromeos_firmware() && native_available)
+		return acpi_backlight_native;
+
 	/* On systems with ACPI video use either native or ACPI video. */
 	if (video_caps & ACPI_VIDEO_BACKLIGHT) {
 		/*

I assume you are more familiar with Chromebooks ACPI tables (or at least
are better capable to sample a couple of them) so I will leave which
approach to take is best up to you.

Regards,

Hans


WARNING: multiple messages have this Message-ID (diff)
From: Hans de Goede <hdegoede@redhat.com>
To: "Dmitry Osipenko" <digetx@gmail.com>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Karol Herbst" <kherbst@redhat.com>, Lyude <lyude@redhat.com>,
	"Daniel Dadap" <ddadap@nvidia.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	Pan@freedesktop.org, Xinhui <Xinhui.Pan@amd.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Gross" <markgross@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>
Cc: Jani Nikula <jani.nikula@intel.com>,
	nouveau@lists.freedesktop.org,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel@lists.freedesktop.org,
	platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org,
	amd-gfx@lists.freedesktop.org, David Airlie <airlied@redhat.com>,
	Len Brown <lenb@kernel.org>
Subject: Re: [Intel-gfx] [PATCH v5 02/31] drm/i915: Don't register backlight when another backlight should be used (v2)
Date: Tue, 27 Sep 2022 13:04:52 +0200	[thread overview]
Message-ID: <42a5f2c9-a1dc-8fc0-7334-fe6c390ecfbb@redhat.com> (raw)
In-Reply-To: <f914ceb3-94bd-743c-f8b6-0334086e731a@gmail.com>

Hi Dmitry,

On 9/26/22 01:39, Dmitry Osipenko wrote:
> 25.08.2022 17:36, Hans de Goede пишет:
>> Before this commit when we want userspace to use the acpi_video backlight
>> device we register both the GPU's native backlight device and acpi_video's
>> firmware acpi_video# backlight device. This relies on userspace preferring
>> firmware type backlight devices over native ones.
>>
>> Registering 2 backlight devices for a single display really is
>> undesirable, don't register the GPU's native backlight device when
>> another backlight device should be used.
>>
>> Changes in v2:
>> - Use drm_info(drm_dev,  ...) for log messages
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_backlight.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c
>> index 681ebcda97ad..03c7966f68d6 100644
>> --- a/drivers/gpu/drm/i915/display/intel_backlight.c
>> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c
>> @@ -8,6 +8,8 @@
>>  #include <linux/pwm.h>
>>  #include <linux/string_helpers.h>
>>  
>> +#include <acpi/video.h>
>> +
>>  #include "intel_backlight.h"
>>  #include "intel_backlight_regs.h"
>>  #include "intel_connector.h"
>> @@ -952,6 +954,11 @@ int intel_backlight_device_register(struct intel_connector *connector)
>>  
>>  	WARN_ON(panel->backlight.max == 0);
>>  
>> +	if (!acpi_video_backlight_use_native()) {
>> +		drm_info(&i915->drm, "Skipping intel_backlight registration\n");
>> +		return 0;
>> +	}
>> +
>>  	memset(&props, 0, sizeof(props));
>>  	props.type = BACKLIGHT_RAW;
>>  
> 
> This breaks backlight on Acer Chromebook Spin 713 because backlight
> isn't registered anymore. Any ideas how to fix it?

Thank you for reporting this.

Let me start with some background info on this change:

As you may have noticed sometimes on laptops there are multiple
backlights registered under /sys/class/backlight and we just let
userspace figure out which one to use, which is quite bad.

This patch is part of a series fixing this, this is also preparation
for adding a new display brightness control API where the brightness is
a property on the drm_connector object for the panel/display, which
of course requires the kernel to know which backlight control method
to use.

If you are want to know more about the new userspace API see:
https://lore.kernel.org/dri-devel/b61d3eeb-6213-afac-2e70-7b9791c86d2e@redhat.com/

What this series does is on x86/ACPI platforms make all the possible
/sys/class/backlight providers call: acpi_video_get_backlight_type()
(acpi_video_backlight_use_native() is a special wrapper) and only if
that returns their type then have them register their backlight device.

So to fix this we need to make acpi_video_get_backlight_type()
return native on the Acer Chromebook Spin 713.

The heuristics used in acpi_video_get_backlight_type() is
explained by comments in the function:

        /*
         * The below heuristics / detection steps are in order of descending
         * presedence. The commandline takes presedence over anything else.
         */
        /* DMI quirks override any autodetection. */
        /* Special cases such as nvidia_wmi_ec and apple gmux. */

None of these apply here, so we end up in the core of this function:

        /* On systems with ACPI video use either native or ACPI video. */
        if (video_caps & ACPI_VIDEO_BACKLIGHT) {
                /*
                 * Windows 8 and newer no longer use the ACPI video interface,
                 * so it often does not work. If the ACPI tables are written
                 * for win8 and native brightness ctl is available, use that.
                 *
                 * The native check deliberately is inside the if acpi-video
                 * block on older devices without acpi-video support native
                 * is usually not the best choice.
                 */
                if (acpi_osi_is_win8() && native_available)
                        return acpi_backlight_native;
                else
                        return acpi_backlight_video;
        }

        /* No ACPI video (old hw), use vendor specific fw methods. */
        return acpi_backlight_vendor;


The acpi_video_backlight_use_native() wrappers causes native_available to
be true, so one or both of these 2 conditions fail:

1.      if (video_caps & ACPI_VIDEO_BACKLIGHT)
2.	if (acpi_osi_is_win8())

I assume that 2. will actually likely fail on quite a few chromebooks.
So to fix this you could do something like this:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..660ea46fbee8 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromebook(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -724,7 +730,7 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 		 * block on older devices without acpi-video support native
 		 * is usually not the best choice.
 		 */
-		if (acpi_osi_is_win8() && native_available)
+		if (native_available && (acpi_osi_is_win8() || is_chromebook()))
 			return acpi_backlight_native;
 		else
 			return acpi_backlight_video;

The ACPI video bus is a pretty standard thing (and part of the ACPI standard),
still I would not be surprised if it is missing from the ACPI tables on some
Chromebooks, so a slightly bigger hammer approach would be:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..ff950be472a7 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromeos_firmware(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -713,6 +719,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 	if (apple_gmux_present())
 		return acpi_backlight_apple_gmux;
 
+	/* On Chromebooks always use native if available */
+	if (is_chromeos_firmware() && native_available)
+		return acpi_backlight_native;
+
 	/* On systems with ACPI video use either native or ACPI video. */
 	if (video_caps & ACPI_VIDEO_BACKLIGHT) {
 		/*

I assume you are more familiar with Chromebooks ACPI tables (or at least
are better capable to sample a couple of them) so I will leave which
approach to take is best up to you.

Regards,

Hans


WARNING: multiple messages have this Message-ID (diff)
From: Hans de Goede <hdegoede@redhat.com>
To: "Dmitry Osipenko" <digetx@gmail.com>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Karol Herbst" <kherbst@redhat.com>, Lyude <lyude@redhat.com>,
	"Daniel Dadap" <ddadap@nvidia.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Jani Nikula" <jani.nikula@linux.intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	Pan@freedesktop.org, Xinhui <Xinhui.Pan@amd.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Gross" <markgross@kernel.org>,
	"Andy Shevchenko" <andy@kernel.org>
Cc: linux-acpi@vger.kernel.org, Jani Nikula <jani.nikula@intel.com>,
	nouveau@lists.freedesktop.org,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel@lists.freedesktop.org,
	platform-driver-x86@vger.kernel.org,
	amd-gfx@lists.freedesktop.org, David Airlie <airlied@redhat.com>,
	Len Brown <lenb@kernel.org>
Subject: Re: [PATCH v5 02/31] drm/i915: Don't register backlight when another backlight should be used (v2)
Date: Tue, 27 Sep 2022 13:04:52 +0200	[thread overview]
Message-ID: <42a5f2c9-a1dc-8fc0-7334-fe6c390ecfbb@redhat.com> (raw)
In-Reply-To: <f914ceb3-94bd-743c-f8b6-0334086e731a@gmail.com>

Hi Dmitry,

On 9/26/22 01:39, Dmitry Osipenko wrote:
> 25.08.2022 17:36, Hans de Goede пишет:
>> Before this commit when we want userspace to use the acpi_video backlight
>> device we register both the GPU's native backlight device and acpi_video's
>> firmware acpi_video# backlight device. This relies on userspace preferring
>> firmware type backlight devices over native ones.
>>
>> Registering 2 backlight devices for a single display really is
>> undesirable, don't register the GPU's native backlight device when
>> another backlight device should be used.
>>
>> Changes in v2:
>> - Use drm_info(drm_dev,  ...) for log messages
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_backlight.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c
>> index 681ebcda97ad..03c7966f68d6 100644
>> --- a/drivers/gpu/drm/i915/display/intel_backlight.c
>> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c
>> @@ -8,6 +8,8 @@
>>  #include <linux/pwm.h>
>>  #include <linux/string_helpers.h>
>>  
>> +#include <acpi/video.h>
>> +
>>  #include "intel_backlight.h"
>>  #include "intel_backlight_regs.h"
>>  #include "intel_connector.h"
>> @@ -952,6 +954,11 @@ int intel_backlight_device_register(struct intel_connector *connector)
>>  
>>  	WARN_ON(panel->backlight.max == 0);
>>  
>> +	if (!acpi_video_backlight_use_native()) {
>> +		drm_info(&i915->drm, "Skipping intel_backlight registration\n");
>> +		return 0;
>> +	}
>> +
>>  	memset(&props, 0, sizeof(props));
>>  	props.type = BACKLIGHT_RAW;
>>  
> 
> This breaks backlight on Acer Chromebook Spin 713 because backlight
> isn't registered anymore. Any ideas how to fix it?

Thank you for reporting this.

Let me start with some background info on this change:

As you may have noticed sometimes on laptops there are multiple
backlights registered under /sys/class/backlight and we just let
userspace figure out which one to use, which is quite bad.

This patch is part of a series fixing this, this is also preparation
for adding a new display brightness control API where the brightness is
a property on the drm_connector object for the panel/display, which
of course requires the kernel to know which backlight control method
to use.

If you are want to know more about the new userspace API see:
https://lore.kernel.org/dri-devel/b61d3eeb-6213-afac-2e70-7b9791c86d2e@redhat.com/

What this series does is on x86/ACPI platforms make all the possible
/sys/class/backlight providers call: acpi_video_get_backlight_type()
(acpi_video_backlight_use_native() is a special wrapper) and only if
that returns their type then have them register their backlight device.

So to fix this we need to make acpi_video_get_backlight_type()
return native on the Acer Chromebook Spin 713.

The heuristics used in acpi_video_get_backlight_type() is
explained by comments in the function:

        /*
         * The below heuristics / detection steps are in order of descending
         * presedence. The commandline takes presedence over anything else.
         */
        /* DMI quirks override any autodetection. */
        /* Special cases such as nvidia_wmi_ec and apple gmux. */

None of these apply here, so we end up in the core of this function:

        /* On systems with ACPI video use either native or ACPI video. */
        if (video_caps & ACPI_VIDEO_BACKLIGHT) {
                /*
                 * Windows 8 and newer no longer use the ACPI video interface,
                 * so it often does not work. If the ACPI tables are written
                 * for win8 and native brightness ctl is available, use that.
                 *
                 * The native check deliberately is inside the if acpi-video
                 * block on older devices without acpi-video support native
                 * is usually not the best choice.
                 */
                if (acpi_osi_is_win8() && native_available)
                        return acpi_backlight_native;
                else
                        return acpi_backlight_video;
        }

        /* No ACPI video (old hw), use vendor specific fw methods. */
        return acpi_backlight_vendor;


The acpi_video_backlight_use_native() wrappers causes native_available to
be true, so one or both of these 2 conditions fail:

1.      if (video_caps & ACPI_VIDEO_BACKLIGHT)
2.	if (acpi_osi_is_win8())

I assume that 2. will actually likely fail on quite a few chromebooks.
So to fix this you could do something like this:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..660ea46fbee8 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromebook(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -724,7 +730,7 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 		 * block on older devices without acpi-video support native
 		 * is usually not the best choice.
 		 */
-		if (acpi_osi_is_win8() && native_available)
+		if (native_available && (acpi_osi_is_win8() || is_chromebook()))
 			return acpi_backlight_native;
 		else
 			return acpi_backlight_video;

The ACPI video bus is a pretty standard thing (and part of the ACPI standard),
still I would not be surprised if it is missing from the ACPI tables on some
Chromebooks, so a slightly bigger hammer approach would be:

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d9064a9804c..ff950be472a7 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -75,6 +75,12 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
 	return AE_OK;
 }
 
+static bool is_chromeos_firmware(void)
+{
+	// FIXME return true when running under ChromeOS (coreboot) firmware
+	return false;
+}
+
 /* This depends on ACPI_WMI which is X86 only */
 #ifdef CONFIG_X86
 static bool nvidia_wmi_ec_supported(void)
@@ -713,6 +719,10 @@ static enum acpi_backlight_type __acpi_video_get_backlight_type(bool native)
 	if (apple_gmux_present())
 		return acpi_backlight_apple_gmux;
 
+	/* On Chromebooks always use native if available */
+	if (is_chromeos_firmware() && native_available)
+		return acpi_backlight_native;
+
 	/* On systems with ACPI video use either native or ACPI video. */
 	if (video_caps & ACPI_VIDEO_BACKLIGHT) {
 		/*

I assume you are more familiar with Chromebooks ACPI tables (or at least
are better capable to sample a couple of them) so I will leave which
approach to take is best up to you.

Regards,

Hans


  reply	other threads:[~2022-09-27 11:05 UTC|newest]

Thread overview: 300+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-25 14:36 [Nouveau] [PATCH v5 00/31] drm/kms: Stop registering multiple /sys/class/backlight devs for a single display Hans de Goede
2022-08-25 14:36 ` Hans de Goede
2022-08-25 14:36 ` Hans de Goede
2022-08-25 14:36 ` [Intel-gfx] " Hans de Goede
2022-08-25 14:36 ` Hans de Goede
2022-08-25 14:36 ` [Nouveau] [PATCH v5 01/31] ACPI: video: Add acpi_video_backlight_use_native() helper Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:36 ` [Nouveau] [PATCH v5 02/31] drm/i915: Don't register backlight when another backlight should be used (v2) Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` [Intel-gfx] " Hans de Goede
2022-09-25 23:39   ` Dmitry Osipenko
2022-09-25 23:39     ` [Intel-gfx] " Dmitry Osipenko
2022-09-25 23:39     ` Dmitry Osipenko
2022-09-25 23:39     ` [Nouveau] " Dmitry Osipenko
2022-09-27 11:04     ` Hans de Goede [this message]
2022-09-27 11:04       ` Hans de Goede
2022-09-27 11:04       ` [Intel-gfx] " Hans de Goede
2022-09-27 11:04       ` Hans de Goede
2022-10-24 20:30       ` [Nouveau] " Matthew Garrett
2022-10-24 20:30         ` Matthew Garrett
2022-10-24 20:30         ` Matthew Garrett
2022-10-24 20:30         ` [Intel-gfx] " Matthew Garrett
2022-10-24 20:30         ` Matthew Garrett
2022-10-25 18:50         ` Hans de Goede
2022-10-25 18:50           ` Hans de Goede
2022-10-25 18:50           ` [Intel-gfx] " Hans de Goede
2022-10-25 18:50           ` Hans de Goede
2022-10-25 18:50           ` [Nouveau] " Hans de Goede
2022-10-25 19:32           ` Matthew Garrett
2022-10-25 19:32             ` Matthew Garrett
2022-10-25 19:32             ` [Intel-gfx] " Matthew Garrett
2022-10-25 19:32             ` Matthew Garrett
2022-10-25 19:32             ` [Nouveau] " Matthew Garrett
2022-10-25 20:25             ` Hans de Goede
2022-10-25 20:25               ` Hans de Goede
2022-10-25 20:25               ` [Intel-gfx] " Hans de Goede
2022-10-25 20:25               ` Hans de Goede
2022-10-25 20:25               ` [Nouveau] " Hans de Goede
2022-10-25 20:31               ` Limonciello, Mario
2022-10-25 20:31                 ` [Intel-gfx] " Limonciello, Mario
2022-10-25 20:31                 ` Limonciello, Mario
2022-10-25 20:31                 ` Limonciello, Mario
2022-10-25 20:31                 ` [Nouveau] " Limonciello, Mario
2022-10-25 20:32               ` Hans de Goede
2022-10-25 20:32                 ` Hans de Goede
2022-10-25 20:32                 ` [Intel-gfx] " Hans de Goede
2022-10-25 20:32                 ` Hans de Goede
2022-10-25 20:32                 ` [Nouveau] " Hans de Goede
2022-10-25 20:40               ` Matthew Garrett
2022-10-25 20:40                 ` Matthew Garrett
2022-10-25 20:40                 ` [Intel-gfx] " Matthew Garrett
2022-10-25 20:40                 ` Matthew Garrett
2022-10-25 20:40                 ` [Nouveau] " Matthew Garrett
2022-10-25 23:27                 ` Hans de Goede
2022-10-25 23:27                   ` Hans de Goede
2022-10-25 23:27                   ` Hans de Goede
2022-10-25 23:27                   ` [Nouveau] " Hans de Goede
2022-10-25 23:27                   ` [Intel-gfx] " Hans de Goede
2022-10-25 23:40                   ` [Nouveau] " Matthew Garrett
2022-10-25 23:40                     ` Matthew Garrett
2022-10-25 23:40                     ` Matthew Garrett
2022-10-25 23:40                     ` [Intel-gfx] " Matthew Garrett
2022-10-25 23:40                     ` Matthew Garrett
2022-10-26  9:59                     ` Hans de Goede
2022-10-26  9:59                       ` Hans de Goede
2022-10-26  9:59                       ` [Intel-gfx] " Hans de Goede
2022-10-26  9:59                       ` Hans de Goede
2022-10-26  9:59                       ` [Nouveau] " Hans de Goede
2022-10-26 20:49                       ` Matthew Garrett
2022-10-26 20:49                         ` Matthew Garrett
2022-10-26 20:49                         ` [Intel-gfx] " Matthew Garrett
2022-10-26 20:49                         ` Matthew Garrett
2022-10-26 20:49                         ` [Nouveau] " Matthew Garrett
2022-10-27  8:51                         ` Hans de Goede
2022-10-27  8:51                           ` Hans de Goede
2022-10-27  8:51                           ` [Intel-gfx] " Hans de Goede
2022-10-27  8:51                           ` Hans de Goede
2022-10-27  8:51                           ` [Nouveau] " Hans de Goede
2022-10-27  9:11                           ` Matthew Garrett
2022-10-27  9:11                             ` Matthew Garrett
2022-10-27  9:11                             ` Matthew Garrett
2022-10-27  9:11                             ` Matthew Garrett
2022-10-27  9:11                             ` [Intel-gfx] " Matthew Garrett
2022-10-27  9:39                             ` Hans de Goede
2022-10-27  9:39                               ` Hans de Goede
2022-10-27  9:39                               ` [Intel-gfx] " Hans de Goede
2022-10-27  9:39                               ` Hans de Goede
2022-10-27  9:39                               ` [Nouveau] " Hans de Goede
2022-10-27  9:52                               ` Matthew Garrett
2022-10-27  9:52                                 ` Matthew Garrett
2022-10-27  9:52                                 ` [Intel-gfx] " Matthew Garrett
2022-10-27  9:52                                 ` Matthew Garrett
2022-10-27  9:52                                 ` [Nouveau] " Matthew Garrett
2022-10-27 10:37                                 ` Hans de Goede
2022-10-27 10:37                                   ` Hans de Goede
2022-10-27 10:37                                   ` [Intel-gfx] " Hans de Goede
2022-10-27 10:37                                   ` Hans de Goede
2022-10-27 10:37                                   ` [Nouveau] " Hans de Goede
2022-10-27 12:09                                   ` Rafael J. Wysocki
2022-10-27 12:09                                     ` Rafael J. Wysocki
2022-10-27 12:09                                     ` [Intel-gfx] " Rafael J. Wysocki
2022-10-27 12:09                                     ` Rafael J. Wysocki
2022-10-27 12:09                                     ` [Nouveau] " Rafael J. Wysocki
2022-10-27 12:17                                     ` Hans de Goede
2022-10-27 12:17                                       ` Hans de Goede
2022-10-27 12:17                                       ` [Intel-gfx] " Hans de Goede
2022-10-27 12:17                                       ` Hans de Goede
2022-10-27 12:17                                       ` [Nouveau] " Hans de Goede
2022-10-27 12:19                                       ` Rafael J. Wysocki
2022-10-27 12:19                                         ` Rafael J. Wysocki
2022-10-27 12:19                                         ` [Intel-gfx] " Rafael J. Wysocki
2022-10-27 12:19                                         ` Rafael J. Wysocki
2022-10-27 12:19                                         ` [Nouveau] " Rafael J. Wysocki
2022-11-04 16:23                                     ` Hans de Goede
2022-11-04 16:23                                       ` Hans de Goede
2022-11-04 16:23                                       ` [Intel-gfx] " Hans de Goede
2022-11-04 16:23                                       ` Hans de Goede
2022-11-04 16:23                                       ` [Nouveau] " Hans de Goede
2022-08-25 14:36 ` [Nouveau] [PATCH v5 03/31] drm/amdgpu: Don't register backlight when another backlight should be used (v3) Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:36 ` [PATCH v5 04/31] drm/radeon: " Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:36   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:36   ` [Nouveau] " Hans de Goede
2022-08-25 14:36   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 05/31] drm/nouveau: Don't register backlight when another backlight should be used (v2) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 06/31] ACPI: video: Drop backlight_device_get_by_type() call from acpi_video_get_backlight_type() Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 07/31] ACPI: video: Remove acpi_video_bus from list before tearing it down Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 08/31] ACPI: video: Simplify acpi_video_unregister_backlight() Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 09/31] ACPI: video: Make backlight class device registration a separate step (v2) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 10/31] ACPI: video: Remove code to unregister acpi_video backlight when a native backlight registers Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 11/31] drm/i915: Call acpi_video_register_backlight() (v3) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-09-02 13:20   ` Jani Nikula
2022-09-02 13:20     ` Jani Nikula
2022-09-02 13:20     ` Jani Nikula
2022-09-02 13:20     ` [Intel-gfx] " Jani Nikula
2022-09-02 13:20     ` Jani Nikula
2022-08-25 14:37 ` [PATCH v5 12/31] drm/nouveau: Register ACPI video backlight when nv_backlight registration fails (v2) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 13/31] drm/amdgpu: Register ACPI video backlight when skipping amdgpu backlight registration Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 14/31] drm/radeon: Register ACPI video backlight when skipping radeon " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 15/31] platform/x86: nvidia-wmi-ec-backlight: Move fw interface definitions to a header (v2) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 22:11   ` Daniel Dadap
2022-08-25 22:11     ` Daniel Dadap
2022-08-25 22:11     ` [Intel-gfx] " Daniel Dadap
2022-08-25 22:11     ` Daniel Dadap
2022-08-25 22:11     ` [Nouveau] " Daniel Dadap
2022-08-25 14:37 ` [Nouveau] [PATCH v5 16/31] ACPI: video: Refactor acpi_video_get_backlight_type() a bit Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 17/31] ACPI: video: Add Nvidia WMI EC brightness control detection (v3) Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 22:21   ` Daniel Dadap
2022-08-25 22:21     ` Daniel Dadap
2022-08-25 22:21     ` [Intel-gfx] " Daniel Dadap
2022-08-25 22:21     ` Daniel Dadap
2022-08-25 22:21     ` [Nouveau] " Daniel Dadap
2022-08-29 11:41     ` Hans de Goede
2022-08-29 11:41       ` Hans de Goede
2022-08-29 11:41       ` Hans de Goede
2022-08-29 11:41       ` [Intel-gfx] " Hans de Goede
2022-08-29 11:41       ` Hans de Goede
2022-08-29 16:43       ` Daniel Dadap
2022-08-29 16:43         ` Daniel Dadap
2022-08-29 16:43         ` [Intel-gfx] " Daniel Dadap
2022-08-29 16:43         ` Daniel Dadap
2022-08-29 16:43         ` [Nouveau] " Daniel Dadap
2022-08-25 14:37 ` [PATCH v5 18/31] ACPI: video: Add Apple GMUX brightness control detection Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 19/31] platform/x86: nvidia-wmi-ec-backlight: Use acpi_video_get_backlight_type() Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 20/31] platform/x86: apple-gmux: Stop calling acpi/video.h functions Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 21/31] platform/x86: toshiba_acpi: Stop using acpi_video_set_dmi_backlight_type() Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 22/31] platform/x86: acer-wmi: Move backlight DMI quirks to acpi/video_detect.c Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 23/31] platform/x86: asus-wmi: Drop DMI chassis-type check from backlight handling Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [Nouveau] [PATCH v5 24/31] platform/x86: asus-wmi: Move acpi_backlight=vendor quirks to ACPI video_detect.c Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 25/31] platform/x86: asus-wmi: Move acpi_backlight=native " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 26/31] platform/x86: samsung-laptop: Move acpi_backlight=[vendor|native] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37 ` [PATCH v5 27/31] ACPI: video: Remove acpi_video_set_dmi_backlight_type() Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 28/31] ACPI: video: Drop "Samsung X360" acpi_backlight=native quirk Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 29/31] ACPI: video: Drop NL5x?U, PF4NU1F and PF5?U?? acpi_backlight=native quirks Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 30/31] ACPI: video: Fix indentation of video_detect_dmi_table[] entries Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 14:37 ` [PATCH v5 31/31] drm/todo: Add entry about dealing with brightness control on devices with > 1 panel Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Intel-gfx] " Hans de Goede
2022-08-25 14:37   ` Hans de Goede
2022-08-25 14:37   ` [Nouveau] " Hans de Goede
2022-08-25 16:09 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/kms: Stop registering multiple /sys/class/backlight devs for a single display Patchwork
2022-08-25 16:09 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-08-25 16:30 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-29 22:13 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2022-09-27 17:17 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/kms: Stop registering multiple /sys/class/backlight devs for a single display (rev2) Patchwork
2022-10-25 20:43 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/kms: Stop registering multiple /sys/class/backlight devs for a single display (rev3) Patchwork
2022-10-26  0:31 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/kms: Stop registering multiple /sys/class/backlight devs for a single display (rev4) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42a5f2c9-a1dc-8fc0-7334-fe6c390ecfbb@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=Pan@freedesktop.org \
    --cc=Xinhui.Pan@amd.com \
    --cc=airlied@redhat.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=andy@kernel.org \
    --cc=bskeggs@redhat.com \
    --cc=christian.koenig@amd.com \
    --cc=ddadap@nvidia.com \
    --cc=digetx@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kherbst@redhat.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=lyude@redhat.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=markgross@kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=nouveau@lists.freedesktop.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=tvrtko.ursulin@linux.intel.com \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.