Message ID | 20240703051722.328-1-mario.limonciello@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for 'power saving policy' property | expand |
On 7/3/24 01:17, Mario Limonciello wrote: > During the Display Next hackfest 2024 one of the topics discussed > was the need for compositor to be able to relay intention to drivers > that color fidelity is preferred over power savings. > > To accomplish this a new optional DRM property is being introduced called > "power saving policy". This property is a bit mask that can be configured > with requests of "Require color accuracy" or "Require low latency" > that can be configured by the compositor. > > When a driver advertises support for this property and the compositor > sets it to "Require color accuracy" then the driver will disable any power > saving features that can compromise color fidelity. > > In practice the main feature this currently applies to is the > "Adaptive Backlight Modulation" feature within AMD DCN on eDP panels. > > When the compositor has marked the property "Require color accuracy" then > this feature will be disabled and any userspace that tries to turn it on > will get an -EBUSY return code. > > Compositors can also request that low latency is critical which in > practice should cause PSR and PSR2 to be disabled. > > When the compositor has restored the value back to no requirements then > the previous value that would have been programmed will be restored. Applied, thanks! > > v3->v4: > * Fixup for Xaver's reported issue > v2->v3: > * Updates from Leo's comments (see individual patches) > > Mario Limonciello (2): > drm: Introduce 'power saving policy' drm property > drm/amd: Add power_saving_policy drm property to eDP connectors > > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 4 ++ > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 50 +++++++++++++++++-- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 2 + > drivers/gpu/drm/drm_connector.c | 48 ++++++++++++++++++ > include/drm/drm_connector.h | 2 + > include/drm/drm_mode_config.h | 5 ++ > include/uapi/drm/drm_mode.h | 7 +++ > 7 files changed, 113 insertions(+), 5 deletions(-) >