[PATCH i-g-t] tests/intel/km_pm_brightness: Check for flickers with changes in brightness

Sharma, Swati2 swati2.sharma at intel.com
Mon Sep 9 19:01:11 UTC 2024


Hi Santosh,

Please find review comments below

On 06-Sep-24 8:24 AM, Santhosh Reddy Guddati wrote:
>      The test is added to check for flickers on the panel while
This can be rephrased as "New test is added..."

>      changing brightness.
> 
>      If there is any flicker observed on the panel while changing
>      the brightness then crc will change.This patch set is trying
					   ^^
Add space after full stop.

>      to address the flickers observed using crc when brightness
>      is being changed.
> 
>      v3: Addressed review feedback - Kamil , thasleem

Also, what got changed from previous patch is mentioned in commit

There is extra tab in commit message.

Apart from this, fixes are still required in subject. There is no file 
named kms_pm_brightness :/

/s/km_pm_brightness/kms_pm_backlight

Also, subject can be made more meaningful something like
"Add test to detect flickering with brightness changes"

> 
> Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
> ---
>   tests/intel/kms_pm_backlight.c | 41 ++++++++++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
> 
> diff --git a/tests/intel/kms_pm_backlight.c b/tests/intel/kms_pm_backlight.c
> index 140a95bcc..ae0ef8462 100644
> --- a/tests/intel/kms_pm_backlight.c
> +++ b/tests/intel/kms_pm_backlight.c
> @@ -66,6 +66,10 @@
>    * SUBTEST: fade-with-suspend
>    * Description: Test the fade with suspend.
>    * Functionality: backlight, suspend
> + *
> + * SUBTEST: brightness-with-crc
> + * Description: Test the brightness change with CRC.
> + * Functionality: backlight, CRC


This subtest can be added after "SUBTEST: basic-brightness" to club all 
brightness test together and it can be renamed as "basic-crc-brightness".
Functionality as defined in other IGTs is crc. So, /s/CRC/crc.

>    */
>   
>   struct context {
> @@ -257,6 +261,41 @@ static void test_setup(igt_display_t display, igt_output_t *output)
>   	}
>   }
>   
> +static void test_brightness_crc(struct context *context)
> +{
> +	int min = 0;
> +	int max = context->max;
> +	int step = (max - min) / 10;
> +	int brightness;
> +	igt_crc_t out_crc_before, out_crc_after;
> +	igt_display_t *display = context->output->display;
> +	char *crc_str;
> +	igt_pipe_crc_t *ref_crc;
> +	bool crc_ok;
> +
> +	/* create the pipe_crc object for this pipe */

This comment is not required

> +	ref_crc = igt_pipe_crc_new(display->drm_fd, context->output->config.pipe, IGT_PIPE_CRC_SOURCE_AUTO);
> +	igt_assert(ref_crc);
> +
> +	for (brightness = min; brightness <= max; brightness += step) {
> +		igt_pipe_crc_collect_crc(ref_crc, &out_crc_before);
> +		crc_str = igt_crc_to_string(&out_crc_before);
> +		igt_debug("CRC before write: %s\n", crc_str);
> +
> +		igt_assert_eq(backlight_write(brightness, "brightness", context), 0);
> +		igt_debug("Brightness after write: %d\n", brightness);
> +
> +		igt_pipe_crc_collect_crc(ref_crc, &out_crc_after);
> +		crc_str = igt_crc_to_string(&out_crc_after);
> +		igt_debug("CRC after write: %s\n", crc_str);

IMO, all all igt_debug prints are not required.

> +
> +		/* compare the crc values before and after changing brightness */
> +		crc_ok = igt_check_crc_equal(&out_crc_before, &out_crc_after);

In igt_check_crc_equal(), we already have igt_debug to print mismatched 
CRC values.

> +		igt_debug("brightness: %d flicker: %s\n", brightness, crc_ok ? "none" : "detected");
> +		igt_assert_f(crc_ok, "Flicker observed for brightness %d\n", brightness);
> +	}
> +}
> +
>   igt_main
>   {
>   	int fd;
> @@ -277,6 +316,7 @@ igt_main
>   		{ "fade", "test basic fade.", test_fade, TEST_NONE },
>   		{ "fade-with-dpms", "test the fade with DPMS.", test_fade, TEST_DPMS },
>   		{ "fade-with-suspend", "test the fade with suspend.", test_fade, TEST_SUSPEND },
> +		{ "brightness-with-crc", "test the brightness change with CRC.", test_brightness_crc, TEST_NONE },

Move it up. Add after brightness tests.

>   	};
>   
>   	igt_fixture {
> @@ -290,6 +330,7 @@ igt_main
>   		 */
>   		kmstest_set_vt_graphics_mode();
>   		igt_display_require(&display, drm_open_driver(DRIVER_INTEL | DRIVER_XE));
> +		igt_require_pipe_crc(display.drm_fd);
>   
>   		for_each_connected_output(&display, output) {
>   			if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)


More information about the igt-dev mailing list