[PATCH v2 3/4] tests/amdgpu/amd_abm: Add support for panel_power_saving property
Leo Li
sunpeng.li at amd.com
Tue Jun 18 20:20:16 UTC 2024
Thanks for the tests! FYI IGT patches should also cc igt-dev at lists.freedesktop.org
Some comments inline:
On 2024-05-22 18:08, Mario Limonciello wrote:
> From: Mario Limonciello <superm1 at ubuntu.com>
>
> When the "panel power saving" property is set to forbidden the
> compositor has indicated that userspace prefers to have color
> accuracy and fidelity instead of power saving.
>
> Verify that the sysfs file behaves as expected in this situation.
>
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
> tests/amdgpu/amd_abm.c | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/tests/amdgpu/amd_abm.c b/tests/amdgpu/amd_abm.c
> index f74c3012c..3fa1366fa 100644
> --- a/tests/amdgpu/amd_abm.c
> +++ b/tests/amdgpu/amd_abm.c
> @@ -365,6 +365,43 @@ static void abm_gradual(data_t *data)
> }
> }
>
> +
> +static void abm_forbidden(data_t *data)
> +{
> + igt_output_t *output;
> + enum pipe pipe;
> + int target, r;
> +
> + for_each_pipe_with_valid_output(&data->display, pipe, output) {
> + if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
> + continue;
> +
> + r = clear_power_saving_policy(data->drm_fd, output);
> + if (r == -ENODEV) {
> + igt_skip("No power saving policy prop\n");
> + return;
> + }
> + igt_assert_eq(r, 0);
> +
> + target = 3;
> + r = set_abm_level(data, output, target);
> + igt_assert_eq(r, 0);
> +
> + r = set_panel_power_saving_policy(data->drm_fd, output, DRM_MODE_REQUIRE_COLOR_ACCURACY);
> + igt_assert_eq(r, 0);
> +
> + target = 0;
Is there a purpose of setting target abm to 0 (disabled) here?
I suppose it should fail given that we've set REQUIRE_COLOR_ACCURACY. Though I'm
not sure why we can't keep target = 3.
Thanks,
Leo
> + r = set_abm_level(data, output, target);
> + igt_assert_eq(r, -1);
> +
> + r = clear_power_saving_policy(data->drm_fd, output);
> + igt_assert_eq(r, 0);
> +
> + r = set_abm_level(data, output, target);
> + igt_assert_eq(r, 0);
> + }
> +}
> +
> igt_main
> {
> data_t data = {};
> @@ -393,6 +430,8 @@ igt_main
> abm_enabled(&data);
> igt_subtest("abm_gradual")
> abm_gradual(&data);
> + igt_subtest("abm_forbidden")
> + abm_forbidden(&data);
>
> igt_fixture {
> igt_display_fini(&data.display);
More information about the dri-devel
mailing list