public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>,
	igt-dev@lists.freedesktop.org
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t v3 4/6] tests/fbcon_fbt: Enable cursor blinking
Date: Thu, 11 Apr 2019 22:01:53 -0700	[thread overview]
Message-ID: <e3b0b4ae72369676f08d1c5a9020706805eab8dd.camel@intel.com> (raw)
In-Reply-To: <20190410220716.19449-4-jose.souza@intel.com>

On Wed, 2019-04-10 at 15:07 -0700, José Roberto de Souza wrote:
> If cursor blinking is disabled no screen updates will happen and
> fbcon_fbt subtests will fail, so lets enable cursor blink while
> running this test and restore to the previous value when exiting it.

I'd also prefer the test doing a cursor update instead, but don't want to block
this change as it is an improvement.
> 
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  lib/igt_sysfs.c       | 46 +++++++++++++++++++++++++++++++++++++++++++
>  lib/igt_sysfs.h       |  1 +
>  tests/kms_fbcon_fbt.c |  1 +
>  3 files changed, 48 insertions(+)
> 
> diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
> index f806f4fc..904fbd17 100644
> --- a/lib/igt_sysfs.c
> +++ b/lib/igt_sysfs.c
> @@ -610,3 +610,49 @@ void kick_snd_hda_intel(void)
>  out:
>  	close(fd);
>  }
> +
> +static int fbcon_blink_restore_debugfs_fd = -1;
fbcon_cursor_blink_fd? A bit shorter and matches the file name.

> +static uint8_t fbcon_blink_restore_value;
> +
> +static void fbcon_blink_restore(int sig)
> +{
> +	char buffer[4];
> +	int r;
> +
> +	r = snprintf(buffer, sizeof(buffer), "%u", fbcon_blink_restore_value);
> +	write(fbcon_blink_restore_debugfs_fd, buffer, r + 1);
Add an assert here too.

Missing
	close(fbcon_blink_restore_debugfs_fd);

> +}
> +
> +/**
> + * fbcon_blink_enable:
> + * @enable: if true enables the fbcon cursor blinking otherwise disables it
> + *
> + * Enables or disables the cursor blinking in fbcon, it also restores the
> + * previous blinking state when exiting test.
> + *
> + */
> +void fbcon_blink_enable(bool enable)
Having the enable parameter is neat, we can add subtest disabling cursor and
check if PSR remains active.

What'd be really cool though is to verify the blink rate against PSR exit rate.

> +{
> +	const char *cur_blink_path = "/sys/class/graphics/fbcon/cursor_blink";
> +	char buffer[4];
> +	int fd, r;
> +
> +	fd = open(cur_blink_path, O_RDWR);
> +	igt_assert(fd >= 0);
igt_require()
This is a test requirement than a failure of the test itself.


> +
> +	/* Restore original value on exit */
> +	if (fbcon_blink_restore_debugfs_fd == -1) {
> +		r = read(fd, buffer, sizeof(buffer));
> +		if (r > 0) {
> +			fbcon_blink_restore_value = (uint8_t)strtol(buffer,
> +								    NULL, 10);
What is the point of this conversion if we are going to blindly write it back?
Make buffer static instead.

> +			fbcon_blink_restore_debugfs_fd = dup(fd);
> +			igt_assert(fbcon_blink_restore_debugfs_fd >= 0);
> +			igt_install_exit_handler(fbcon_blink_restore);
> +		}
> +	}
> +
> +	r = snprintf(buffer, sizeof(buffer), enable ? "1" : "0");
> +	write(fd, buffer, r + 1);
Assert the return here?

> +	close(fd);
> +}
> diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h
> index c12e36d1..b646df30 100644
> --- a/lib/igt_sysfs.h
> +++ b/lib/igt_sysfs.h
> @@ -57,5 +57,6 @@ bool igt_sysfs_set_boolean(int dir, const char *attr, bool
> value);
>  
>  void bind_fbcon(bool enable);
>  void kick_snd_hda_intel(void);
> +void fbcon_blink_enable(bool enable);
>  
>  #endif /* __IGT_SYSFS_H__ */
> diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
> index a5340d85..5e510db0 100644
> --- a/tests/kms_fbcon_fbt.c
> +++ b/tests/kms_fbcon_fbt.c
> @@ -299,6 +299,7 @@ static void setup_environment(void)
>  	 * is necessary enable it again
>  	 */
>  	bind_fbcon(true);
> +	fbcon_blink_enable(true);
>  }
>  
>  static void teardown_environment(void)

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-04-12  5:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-10 22:07 [igt-dev] [PATCH i-g-t v3 1/6] tests/fbcon_fbt: Use psr_wait_entry() to wait PSR be enabled José Roberto de Souza
2019-04-10 22:07 ` [igt-dev] [PATCH i-g-t v3 2/6] tests/fbcon_fbt: Allow fbcon to bind when running this test José Roberto de Souza
2019-04-12  4:03   ` Dhinakaran Pandiyan
2019-04-10 22:07 ` [igt-dev] [PATCH i-g-t v3 3/6] tests/fbcon_fbt: Add and user psr_long_wait_update() José Roberto de Souza
2019-04-12  4:25   ` Dhinakaran Pandiyan
2019-04-12 15:56     ` Souza, Jose
2019-04-10 22:07 ` [igt-dev] [PATCH i-g-t v3 4/6] tests/fbcon_fbt: Enable cursor blinking José Roberto de Souza
2019-04-12  5:01   ` Dhinakaran Pandiyan [this message]
2019-04-12 16:58     ` Souza, Jose
2019-04-10 22:07 ` [igt-dev] [PATCH i-g-t v3 5/6] tests/fbcon_fbt: Do not try to open the same driver twice as master José Roberto de Souza
2019-04-12  5:45   ` Dhinakaran Pandiyan
2019-04-10 22:07 ` [igt-dev] [PATCH i-g-t v3 6/6] tests/fbcon_fbt: Do not keep opening debugfs_fd at every setup_drm() call José Roberto de Souza
2019-04-12  5:51   ` Dhinakaran Pandiyan
2019-04-10 22:57 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/6] tests/fbcon_fbt: Use psr_wait_entry() to wait PSR be enabled Patchwork
2019-04-11 10:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e3b0b4ae72369676f08d1c5a9020706805eab8dd.camel@intel.com \
    --to=dhinakaran.pandiyan@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=jose.souza@intel.com \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox