[Intel-gfx] [PATCH] tests: debugfs_psr_status

Rodrigo Vivi rodrigo.vivi at gmail.com
Tue Oct 1 22:25:58 CEST 2013


On Tue, Oct 1, 2013 at 4:17 PM, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Tue, Oct 01, 2013 at 03:26:43PM -0300, Rodrigo Vivi wrote:
>> Check on debugfs if PSR is supported by panel and matching all conditions in
>> hardware. In this case PSR must be enabled and performance counting increasing
>>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
>
> Does this work if the console is blanked or someone just never enabled the
> screen? I.e. I think we need the usual boilerplate here to make sure that
> the eDP port is lit up on pipe A and dpms is ON ...

in any case source doesn't match all conditions to get PSR enabled,
igt test will skip on this:
 if (!source)
          igt_skip("This Hardware does not support or isn't ready for PSR\n");

> -Daniel
>
>> ---
>>  tests/Makefile.am          |  1 +
>>  tests/debugfs_psr_status.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 80 insertions(+)
>>  create mode 100644 tests/debugfs_psr_status.c
>>
>> diff --git a/tests/Makefile.am b/tests/Makefile.am
>> index 99d98d6..82bc936 100644
>> --- a/tests/Makefile.am
>> +++ b/tests/Makefile.am
>> @@ -116,6 +116,7 @@ TESTS_progs = \
>>       prime_udl \
>>       sysfs_rc6_residency \
>>       sysfs_rps \
>> +     debugfs_psr_status \
>>       $(NULL)
>>
>>  # IMPORTANT: The ZZ_ tests need to be run last!
>> diff --git a/tests/debugfs_psr_status.c b/tests/debugfs_psr_status.c
>> new file mode 100644
>> index 0000000..44b621f
>> --- /dev/null
>> +++ b/tests/debugfs_psr_status.c
>> @@ -0,0 +1,79 @@
>> +/*
>> + * Copyright (c) 2013 Intel Corporation
>> + *
>> + * Permission is hereby granted, free of charge, to any person obtaining a
>> + * copy of this software and associated documentation files (the "Software"),
>> + * to deal in the Software without restriction, including without limitation
>> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
>> + * and/or sell copies of the Software, and to permit persons to whom the
>> + * Software is furnished to do so, subject to the following conditions:
>> + *
>> + * The above copyright notice and this permission notice (including the next
>> + * paragraph) shall be included in all copies or substantial portions of the
>> + * Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
>> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
>> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
>> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
>> + * IN THE SOFTWARE.
>> + *
>> + * Authors:
>> + *    Rodrigo Vivi <rodrigo.vivi at intel.com>
>> + */
>> +
>> +#define _GNU_SOURCE
>> +#include <stdio.h>
>> +#include <stdlib.h>
>> +#include <string.h>
>> +#include <unistd.h>
>> +#include "drmtest.h"
>> +
>> +int main(int argc, char *argv[])
>> +{
>> +     FILE *file;
>> +     int ret, perf;
>> +     int device = drm_get_card();
>> +     char *str;
>> +     bool sink, source, enabled;
>> +
>> +     igt_skip_on_simulation();
>> +
>> +     ret = asprintf(&str, "/sys/kernel/debug/dri/%d/i915_edp_psr_status", device);
>> +     igt_assert(ret != -1);
>> +
>> +     file = fopen(str, "r");
>> +     igt_require(file);
>> +
>> +     ret = fscanf(file, "Sink_Support: %s\n", str);
>> +     if (ret == 0)
>> +         igt_skip("i915_edp_psr_status format not supported by this test case\n");
>> +     sink = strcmp(str, "yes") == 0;
>> +     ret = fscanf(file, "Source_OK: %s\n", str);
>> +     igt_assert(ret != 0);
>> +     source = strcmp(str, "yes") == 0;
>> +     ret = fscanf(file, "Enabled: %s\n", str);
>> +     igt_assert(ret != 0);
>> +     enabled = strcmp(str, "yes") == 0;
>> +     ret = fscanf(file, "Performance_Counter: %i", &perf);
>> +
>> +     if (!sink)
>> +         igt_skip("This panel does not support PSR.\n");
>> +
>> +     if (!source)
>> +         igt_skip("This Hardware does not support or isn't ready for PSR\n");
>> +
>> +     if (!enabled) {
>> +         fprintf(stderr, "PSR should be enabled\n");
>> +         igt_fail(1);
>> +     }
>> +
>> +     if (perf == 0) {
>> +         fprintf(stderr, "PSR state never achieved\n");
>> +         igt_fail(1);
>> +     }
>> +
>> +     igt_success();
>> +}
>> --
>> 1.7.11.7
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br



More information about the Intel-gfx mailing list