[igt-dev] [ PATCH i-g-t v1 ] tests/i915/i915_pm_dc: Fix DC9 test

Imre Deak imre.deak at intel.com
Wed Sep 8 18:54:57 UTC 2021


On Wed, Sep 08, 2021 at 04:45:43PM +0530, Jigar Bhatt wrote:
> Currently, check_dc9 is being called with reference
> (previous) counter being read after dpms_off call.
> At this time, already the counter is 0.
> We need to read the counter before dpms_off is called
> so that it holds the previous value which had
> incremented while testing shallow states (DC5 or DC6).
> 
> Signed-off-by: Jigar Bhatt <jigar.bhatt at intel.com>
> ---
>  tests/i915/i915_pm_dc.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
> index 9d0a15d8..d1925e5a 100644
> --- a/tests/i915/i915_pm_dc.c
> +++ b/tests/i915/i915_pm_dc.c
> @@ -400,8 +400,8 @@ static bool check_dc9(uint32_t debugfs_fd, int prev_dc, bool dc6_supported, int
>  	 * so we rely on dc5/dc6 counter reset to check if display engine was in DC9.
>  	 */
>  	return igt_wait(dc6_supported ? read_dc_counter(debugfs_fd, CHECK_DC6) <
> -			prev_dc : read_dc_counter(debugfs_fd, CHECK_DC5) <
> -			prev_dc, seconds, 100);
> +			prev_dc : read_dc_counter(debugfs_fd, CHECK_DC5) < prev_dc
> +			, seconds, 100);
>  }
>  
>  static void setup_dc9_dpms(data_t *data, int prev_dc, bool dc6_supported)
> @@ -418,15 +418,16 @@ static void setup_dc9_dpms(data_t *data, int prev_dc, bool dc6_supported)
>  static void test_dc9_dpms(data_t *data)
>  
>  	bool dc6_supported;

The fix looks good, but while at it could you also make things a bit cleaner by

	int dc_target = support_dc6() ? CHECK_DC6 : CHECK_DC5;

> +	int prev_dc;
>  
>  	require_dc_counter(data->debugfs_fd, CHECK_DC5);
>  	dc6_supported = support_dc6(data->debugfs_fd);
>  	setup_dc9_dpms(data, dc6_supported ? read_dc_counter(data->debugfs_fd, CHECK_DC6) :
>  			read_dc_counter(data->debugfs_fd, CHECK_DC5), dc6_supported);

	setup_dc9_dpms(data, dc_target);

and read out the counter within setup_dc9_dpms().

> +	prev_dc = dc6_supported ? read_dc_counter(data->debugfs_fd, CHECK_DC6) :
> +		read_dc_counter(data->debugfs_fd, CHECK_DC5);

	prev_dc = read_dc_counter(dc_target);

>  	dpms_off(data);
> -	igt_assert_f(check_dc9(data->debugfs_fd, dc6_supported ?
> -				read_dc_counter(data->debugfs_fd, CHECK_DC6) :
> -				read_dc_counter(data->debugfs_fd, CHECK_DC5),
> +	igt_assert_f(check_dc9(data->debugfs_fd, prev_dc,
>  				dc6_supported, 3000), "Not in DC9\n");

		     check_dc9(data->debugfs_fd, target_dc, 3000, ...

and simplify check_dc9() accordingly?

>  	dpms_on(data);
>  }
> -- 
> 2.25.1
> 


More information about the igt-dev mailing list