mbox series

[v5,0/4] drm: Minimum backlight overrides and implementation for amdgpu

Message ID 20240818-amdgpu-min-backlight-quirk-v5-0-b6c0ead0c73d@weissschuh.net (mailing list archive)
Headers show
Series drm: Minimum backlight overrides and implementation for amdgpu | expand

Message

Thomas Weißschuh Aug. 18, 2024, 6:56 a.m. UTC
The value of "min_input_signal" returned from ATIF on a Framework AMD 13
is "12". This leads to a fairly bright minimum display backlight.

Introduce a quirk to override "min_input_signal" to "0" which leads to a
much lower minimum brightness, which is still readable even in daylight.

Tested on a Framework AMD 13 BIOS 3.05 and Framework AMD 16.

One solution would be a fixed firmware version, which was announced but
has no timeline.

---
Changes in v5:
- Forward-declare struct drm_edid
- Reorder patches, quirk entries are last
- Add patch from Dustin for additional quirk entries
- Link to v4: https://lore.kernel.org/r/20240812-amdgpu-min-backlight-quirk-v4-0-56a63ff897b7@weissschuh.net

Changes in v4:
- Switch back to v2 implementation
- Add MODULE_DESCRIPTION()
- Simplify quirk infrastructure to only handle min backlight quirks.
  It can be extended if necessary.
- Expand documentation.
- Link to v3: https://lore.kernel.org/r/20240731-amdgpu-min-backlight-quirk-v3-0-46d40bb21a62@weissschuh.net

Changes in v3:
- Switch to cmdline override parameter
- Link to v2: https://lore.kernel.org/r/20240623-amdgpu-min-backlight-quirk-v2-0-cecf7f49da9b@weissschuh.net

Changes in v2:
- Introduce proper drm backlight quirk infrastructure
- Quirk by EDID and DMI instead of only DMI
- Limit quirk to only single Framework 13 matte panel
- Link to v1: https://lore.kernel.org/r/20240610-amdgpu-min-backlight-quirk-v1-1-8459895a5b2a@weissschuh.net

---
Dustin L. Howett (1):
      drm: panel-backlight-quirks: Add Framework 13 glossy and 2.8k panels

Thomas Weißschuh (3):
      drm: Add panel backlight quirks
      drm/amd/display: Add support for minimum backlight quirk
      drm: panel-backlight-quirks: Add Framework 13 matte panel

 Documentation/gpu/drm-kms-helpers.rst             |  3 +
 drivers/gpu/drm/Kconfig                           |  4 +
 drivers/gpu/drm/Makefile                          |  1 +
 drivers/gpu/drm/amd/amdgpu/Kconfig                |  1 +
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +++
 drivers/gpu/drm/drm_panel_backlight_quirks.c      | 94 +++++++++++++++++++++++
 include/drm/drm_utils.h                           |  4 +
 7 files changed, 117 insertions(+)
---
base-commit: c3f2d783a459980eafd24c5af94ccd56a615961f
change-id: 20240610-amdgpu-min-backlight-quirk-8402fd8e736a

Best regards,

Comments

Mario Limonciello Aug. 21, 2024, 8:45 p.m. UTC | #1
On 8/18/2024 01:56, Thomas Weißschuh wrote:
> The value of "min_input_signal" returned from ATIF on a Framework AMD 13
> is "12". This leads to a fairly bright minimum display backlight.
> 
> Introduce a quirk to override "min_input_signal" to "0" which leads to a
> much lower minimum brightness, which is still readable even in daylight.
> 

Apologies for my delayed response, I've been OOO a while.

An earlier version of this series I had asked if this could be tested 
specifically with panel_power_savings enabled to ensure we're not 
causing a regression with such a low minimum and panel power savings 
turned up to the maximum.  If such a dependency does exist, I believe 
panel power savings will need to get an extra check introduced to 
disable it when the brightness falls below the previous threshold that 
was programmed by the firmware.

Did that ever get checked?

> Tested on a Framework AMD 13 BIOS 3.05 and Framework AMD 16.
> 

As far as I can tell this series doesn't apply any quirks to Framework 
16.  So by testing, do you mean that you tested that it didn't cause 
regressions (which it shouldn't; the panels don't match!).

> One solution would be a fixed firmware version, which was announced but
> has no timeline. >
> ---
> Changes in v5:
> - Forward-declare struct drm_edid
> - Reorder patches, quirk entries are last
> - Add patch from Dustin for additional quirk entries
> - Link to v4: https://lore.kernel.org/r/20240812-amdgpu-min-backlight-quirk-v4-0-56a63ff897b7@weissschuh.net
> 
> Changes in v4:
> - Switch back to v2 implementation
> - Add MODULE_DESCRIPTION()
> - Simplify quirk infrastructure to only handle min backlight quirks.
>    It can be extended if necessary.
> - Expand documentation.
> - Link to v3: https://lore.kernel.org/r/20240731-amdgpu-min-backlight-quirk-v3-0-46d40bb21a62@weissschuh.net
> 
> Changes in v3:
> - Switch to cmdline override parameter
> - Link to v2: https://lore.kernel.org/r/20240623-amdgpu-min-backlight-quirk-v2-0-cecf7f49da9b@weissschuh.net
> 
> Changes in v2:
> - Introduce proper drm backlight quirk infrastructure
> - Quirk by EDID and DMI instead of only DMI
> - Limit quirk to only single Framework 13 matte panel
> - Link to v1: https://lore.kernel.org/r/20240610-amdgpu-min-backlight-quirk-v1-1-8459895a5b2a@weissschuh.net
> 
> ---
> Dustin L. Howett (1):
>        drm: panel-backlight-quirks: Add Framework 13 glossy and 2.8k panels
> 
> Thomas Weißschuh (3):
>        drm: Add panel backlight quirks
>        drm/amd/display: Add support for minimum backlight quirk
>        drm: panel-backlight-quirks: Add Framework 13 matte panel
> 
>   Documentation/gpu/drm-kms-helpers.rst             |  3 +
>   drivers/gpu/drm/Kconfig                           |  4 +
>   drivers/gpu/drm/Makefile                          |  1 +
>   drivers/gpu/drm/amd/amdgpu/Kconfig                |  1 +
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +++
>   drivers/gpu/drm/drm_panel_backlight_quirks.c      | 94 +++++++++++++++++++++++
>   include/drm/drm_utils.h                           |  4 +
>   7 files changed, 117 insertions(+)
> ---
> base-commit: c3f2d783a459980eafd24c5af94ccd56a615961f
> change-id: 20240610-amdgpu-min-backlight-quirk-8402fd8e736a
> 
> Best regards,
Thomas Weißschuh Aug. 22, 2024, 6:09 a.m. UTC | #2
Hi Mario,

(+ a question for Dustin inside)

On 2024-08-21 15:45:46+0000, Mario Limonciello wrote:
> On 8/18/2024 01:56, Thomas Weißschuh wrote:
> > The value of "min_input_signal" returned from ATIF on a Framework AMD 13
> > is "12". This leads to a fairly bright minimum display backlight.
> > 
> > Introduce a quirk to override "min_input_signal" to "0" which leads to a
> > much lower minimum brightness, which is still readable even in daylight.
> > 
> 
> Apologies for my delayed response, I've been OOO a while.

Welcome back!

> An earlier version of this series I had asked if this could be tested
> specifically with panel_power_savings enabled to ensure we're not causing a
> regression with such a low minimum and panel power savings turned up to the
> maximum.  If such a dependency does exist, I believe panel power savings
> will need to get an extra check introduced to disable it when the brightness
> falls below the previous threshold that was programmed by the firmware.
> 
> Did that ever get checked?

No, I forgot to check that. Sorry about that.
I'll check it for v6.
Dustin, maybe you could also test this on the other panels?

> > Tested on a Framework AMD 13 BIOS 3.05 and Framework AMD 16.
> > 
> 
> As far as I can tell this series doesn't apply any quirks to Framework 16.
> So by testing, do you mean that you tested that it didn't cause regressions
> (which it shouldn't; the panels don't match!).

This is a leftover from an earlier revision, which applied to all
Framework devices. I'll drop it.

> 
> > One solution would be a fixed firmware version, which was announced but
> > has no timeline. >
> > ---
> > Changes in v5:
> > - Forward-declare struct drm_edid
> > - Reorder patches, quirk entries are last
> > - Add patch from Dustin for additional quirk entries
> > - Link to v4: https://lore.kernel.org/r/20240812-amdgpu-min-backlight-quirk-v4-0-56a63ff897b7@weissschuh.net
> > 
> > Changes in v4:
> > - Switch back to v2 implementation
> > - Add MODULE_DESCRIPTION()
> > - Simplify quirk infrastructure to only handle min backlight quirks.
> >    It can be extended if necessary.
> > - Expand documentation.
> > - Link to v3: https://lore.kernel.org/r/20240731-amdgpu-min-backlight-quirk-v3-0-46d40bb21a62@weissschuh.net
> > 
> > Changes in v3:
> > - Switch to cmdline override parameter
> > - Link to v2: https://lore.kernel.org/r/20240623-amdgpu-min-backlight-quirk-v2-0-cecf7f49da9b@weissschuh.net
> > 
> > Changes in v2:
> > - Introduce proper drm backlight quirk infrastructure
> > - Quirk by EDID and DMI instead of only DMI
> > - Limit quirk to only single Framework 13 matte panel
> > - Link to v1: https://lore.kernel.org/r/20240610-amdgpu-min-backlight-quirk-v1-1-8459895a5b2a@weissschuh.net
> > 
> > ---
> > Dustin L. Howett (1):
> >        drm: panel-backlight-quirks: Add Framework 13 glossy and 2.8k panels
> > 
> > Thomas Weißschuh (3):
> >        drm: Add panel backlight quirks
> >        drm/amd/display: Add support for minimum backlight quirk
> >        drm: panel-backlight-quirks: Add Framework 13 matte panel
> > 
> >   Documentation/gpu/drm-kms-helpers.rst             |  3 +
> >   drivers/gpu/drm/Kconfig                           |  4 +
> >   drivers/gpu/drm/Makefile                          |  1 +
> >   drivers/gpu/drm/amd/amdgpu/Kconfig                |  1 +
> >   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 10 +++
> >   drivers/gpu/drm/drm_panel_backlight_quirks.c      | 94 +++++++++++++++++++++++
> >   include/drm/drm_utils.h                           |  4 +
> >   7 files changed, 117 insertions(+)
> > ---
> > base-commit: c3f2d783a459980eafd24c5af94ccd56a615961f
> > change-id: 20240610-amdgpu-min-backlight-quirk-8402fd8e736a
> > 
> > Best regards,
>