AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
--- I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439
Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2...
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439
Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2...
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 2021-03-19 10:22 a.m., Alex Deucher wrote:
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439%3E%3E%3E Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Yeah, this is a NACK from me as-is for the reasons Alex described.
I agree a whitelist approach might be best.
Is this fix perhaps for OLED panels? If so we could use a different min-value for OLED panels that don't do PWM, but use 12 for everything else.
Harry
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2... drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E _______________________________________________
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E
On Sat, 20 Mar 2021 at 02:10, Harry Wentland harry.wentland@amd.com wrote:
On 2021-03-19 10:22 a.m., Alex Deucher wrote:
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439%3E%3E%3E Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Yeah, this is a NACK from me as-is for the reasons Alex described.
Thanks Harry + Alex,
I agree this solution is not the best.
I agree a whitelist approach might be best.
Do you have any idea what an allowlist could be keyed on? Is the flickering you observed here a function of the panel or the gpu or some other component? Maybe we could move the minimum level into the logic for that hardware.
Is this fix perhaps for OLED panels? If so we could use a different min-value for OLED panels that don't do PWM, but use 12 for everything else.
All the chromebooks I have worked with LCD + LED backlight have been fine with a backlight set to 0. We do have OLED panels too, but I'm not aware of what they do.
Harry
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2... drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E _______________________________________________
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E
On Fri, Mar 19, 2021 at 5:31 PM Evan Benn evanbenn@gmail.com wrote:
On Sat, 20 Mar 2021 at 02:10, Harry Wentland harry.wentland@amd.com wrote:
On 2021-03-19 10:22 a.m., Alex Deucher wrote:
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439%3E%3E%3E Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Yeah, this is a NACK from me as-is for the reasons Alex described.
Thanks Harry + Alex,
I agree this solution is not the best.
I agree a whitelist approach might be best.
Do you have any idea what an allowlist could be keyed on? Is the flickering you observed here a function of the panel or the gpu or some other component? Maybe we could move the minimum level into the logic for that hardware.
Maybe the panel string from the EDID? Either that or something from dmi data? Harry would probably have a better idea.
Alex
Is this fix perhaps for OLED panels? If so we could use a different min-value for OLED panels that don't do PWM, but use 12 for everything else.
All the chromebooks I have worked with LCD + LED backlight have been fine with a backlight set to 0. We do have OLED panels too, but I'm not aware of what they do.
Harry
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2... drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E _______________________________________________
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E
On Sat, Mar 20, 2021 at 8:36 AM Alex Deucher alexdeucher@gmail.com wrote:
On Fri, Mar 19, 2021 at 5:31 PM Evan Benn evanbenn@gmail.com wrote:
On Sat, 20 Mar 2021 at 02:10, Harry Wentland harry.wentland@amd.com wrote:
On 2021-03-19 10:22 a.m., Alex Deucher wrote:
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439%3E%3E%3E Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Yeah, this is a NACK from me as-is for the reasons Alex described.
Thanks Harry + Alex,
I agree this solution is not the best.
I agree a whitelist approach might be best.
Do you have any idea what an allowlist could be keyed on? Is the flickering you observed here a function of the panel or the gpu or some other component? Maybe we could move the minimum level into the logic for that hardware.
Maybe the panel string from the EDID? Either that or something from dmi data? Harry would probably have a better idea.
One problem with keying from panel EDID is that for example the grunt chromebook platform has more than 100 different panels already shipped. Add to that that repair centers or people repairing their own device will use 'compatible' panels. I'm sure the AMD windows laptops have even more variety!
Alex
Is this fix perhaps for OLED panels? If so we could use a different min-value for OLED panels that don't do PWM, but use 12 for everything else.
All the chromebooks I have worked with LCD + LED backlight have been fine with a backlight set to 0. We do have OLED panels too, but I'm not aware of what they do.
Harry
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2... drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E _______________________________________________
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E
On Sun, Mar 21, 2021 at 8:12 PM Evan Benn evanbenn@chromium.org wrote:
On Sat, Mar 20, 2021 at 8:36 AM Alex Deucher alexdeucher@gmail.com wrote:
On Fri, Mar 19, 2021 at 5:31 PM Evan Benn evanbenn@gmail.com wrote:
On Sat, 20 Mar 2021 at 02:10, Harry Wentland harry.wentland@amd.com wrote:
On 2021-03-19 10:22 a.m., Alex Deucher wrote:
On Fri, Mar 19, 2021 at 3:23 AM Evan Benn evanbenn@chromium.org wrote:
AMDGPU_DM_DEFAULT_MIN_BACKLIGHT was set to the value of 12 to ensure no display backlight will flicker at low user brightness settings. However this value is quite bright, so for devices that do not implement the ACPI ATIF ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS functionality the user cannot set the brightness to a low level even if the display would support such a low PWM.
This ATIF feature is not implemented on for example AMD grunt chromebooks.
Signed-off-by: Evan Benn evanbenn@chromium.org
I could not find a justification for the reason for the value. It has caused some noticable regression for users: https://bugzilla.kernel.org/show_bug.cgi?id=203439%3E%3E%3E Maybe this can be either user controlled or userspace configured, but preventing users from turning their backlight dim seems wrong.
My understanding is that some panels flicker if you set the min to a value too low. This was a safe minimum if the platform didn't specify it's own safe minimum. I think we'd just be trading one bug for another (flickering vs not dim enough). Maybe a whitelist or blacklist would be a better solution?
Yeah, this is a NACK from me as-is for the reasons Alex described.
Thanks Harry + Alex,
I agree this solution is not the best.
I agree a whitelist approach might be best.
Do you have any idea what an allowlist could be keyed on? Is the flickering you observed here a function of the panel or the gpu or some other component? Maybe we could move the minimum level into the logic for that hardware.
Maybe the panel string from the EDID? Either that or something from dmi data? Harry would probably have a better idea.
One problem with keying from panel EDID is that for example the grunt chromebook platform has more than 100 different panels already shipped. Add to that that repair centers or people repairing their own device will use 'compatible' panels. I'm sure the AMD windows laptops have even more variety!
Do all of those "compatible" panels work with the min backlight level of 0? If so, maybe something platform specific like a DMI string would make more sense.
Alex
Alex
Is this fix perhaps for OLED panels? If so we could use a different min-value for OLED panels that don't do PWM, but use 12 for everything else.
All the chromebooks I have worked with LCD + LED backlight have been fine with a backlight set to 0. We do have OLED panels too, but I'm not aware of what they do.
Harry
Alex
Also reviewed here: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2... drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 573cf17262da..0129bd69b94e 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3151,7 +3151,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) return 0; }
-#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12 +#define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 0 #define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255 #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
-- 2.31.0.291.g576ba9dcdaf-goog
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E _______________________________________________
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel%3E%3E
dri-devel@lists.freedesktop.org