All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 12/22] flip_test: split the flip handler into logical parts
Date: Tue, 16 Oct 2012 17:34:46 +0300	[thread overview]
Message-ID: <1350398096-3649-13-git-send-email-imre.deak@intel.com> (raw)
In-Reply-To: <1350398096-3649-1-git-send-email-imre.deak@intel.com>

The handler consits of handle_event/run_test/check_state/update_state
logical steps, split the function accordingly. This is needed by the
following patches that need to do part of these steps for both flip and
vblank events.

No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 tests/flip_test.c |   24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/tests/flip_test.c b/tests/flip_test.c
index f554818..790463c 100644
--- a/tests/flip_test.c
+++ b/tests/flip_test.c
@@ -180,16 +180,17 @@ static void page_flip_handler(int fd, unsigned int frame, unsigned int sec,
 			      unsigned int usec, void *data)
 {
 	struct test_output *o = data;
-	unsigned int new_fb_id;
-	struct timeval diff;
-	double usec_interflip;
-	/* for funny reasons page_flip returns -EBUSY on disabled crtcs ... */
-	int expected_einval = o->flags & TEST_MODESET ? -EBUSY : -EINVAL;
 
 	o->current_flip_ts.tv_sec = sec;
 	o->current_flip_ts.tv_usec = usec;
 
 	gettimeofday(&o->current_flip_received, NULL);
+}
+
+static void check_all_state(struct test_output *o)
+{
+	struct timeval diff;
+	double usec_interflip;
 
 	timersub(&o->current_flip_ts, &o->current_flip_received, &diff);
 
@@ -219,6 +220,13 @@ static void page_flip_handler(int fd, unsigned int frame, unsigned int sec,
 			//exit(9);
 		}
 	}
+}
+
+static void run_test_step(struct test_output *o)
+{
+	unsigned int new_fb_id;
+	/* for funny reasons page_flip returns -EBUSY on disabled crtcs ... */
+	int expected_einval = o->flags & TEST_MODESET ? -EBUSY : -EINVAL;
 
 	/* pan before the flip completes */
 	if (o->flags & TEST_PAN) {
@@ -282,7 +290,10 @@ static void page_flip_handler(int fd, unsigned int frame, unsigned int sec,
 
 	if (o->flags & TEST_EINVAL)
 		assert(do_page_flip(o, new_fb_id) == expected_einval);
+}
 
+static void update_all_state(struct test_output *o)
+{
 	o->last_flip_received = o->current_flip_received;
 	o->last_flip_ts = o->current_flip_ts;
 }
@@ -471,6 +482,9 @@ static unsigned event_loop(struct test_output *o, unsigned duration_sec)
 		struct timeval now;
 
 		wait_for_events(o);
+		check_all_state(o);
+		run_test_step(o);
+		update_all_state(o);
 
 		gettimeofday(&now, NULL);
 		if (!timercmp(&now, &end, <))
-- 
1.7.9.5

  parent reply	other threads:[~2012-10-16 14:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-16 14:34 [PATCH 00/22] i-g-t: flip_test: add vblank test cases Imre Deak
2012-10-16 14:34 ` [PATCH 01/22] drmtest: add function to remove an DRM FB Imre Deak
2012-10-16 14:34 ` [PATCH 02/22] flip_test: free FBs after each test run Imre Deak
2012-10-16 14:34 ` [PATCH 03/22] flip_test: reset the state for " Imre Deak
2012-10-16 14:34 ` [PATCH 04/22] flip_test: check drmHandleEvents()' return value Imre Deak
2012-10-16 14:34 ` [PATCH 05/22] test_flip: fix checking for delayed event reception Imre Deak
2012-10-16 14:34 ` [PATCH 06/22] flip_test: store fb width, height in test context object Imre Deak
2012-10-16 14:34 ` [PATCH 07/22] flip_test: factor out drmModePageFlip Imre Deak
2012-10-16 14:34 ` [PATCH 08/22] flip_test: move output panning inside the flip_handler Imre Deak
2012-10-16 14:59   ` Daniel Vetter
2012-10-16 14:34 ` [PATCH 09/22] flip_test: factor out the event loop/wait for event logic Imre Deak
2012-10-16 14:34 ` [PATCH 10/22] flip_test: factor out the final state check Imre Deak
2012-10-16 14:34 ` [PATCH 11/22] flip_test: store current flip/received timestamps in the context obj Imre Deak
2012-10-16 14:34 ` Imre Deak [this message]
2012-10-16 14:34 ` [PATCH 13/22] flip_test: swap the order of check state/run test step Imre Deak
2012-10-16 14:34 ` [PATCH 14/22] flip_test: factor out the event state Imre Deak
2012-10-16 14:34 ` [PATCH 15/22] flip_test: don't skip checks for sequence #1 Imre Deak
2012-10-16 14:34 ` [PATCH 16/22] flip_test: store crtc_idx in the test context obj Imre Deak
2012-10-16 14:34 ` [PATCH 17/22] flip_test: unify the name of the current test in status messages Imre Deak
2012-10-16 14:34 ` [PATCH 18/22] flip_test: make page flip tests conditional Imre Deak
2012-10-16 14:34 ` [PATCH 19/22] flip_test: add logic to track pending events Imre Deak
2012-10-16 14:34 ` [PATCH 20/22] flip_test: add event sequence number tracking Imre Deak
2012-10-16 14:34 ` [PATCH 21/22] flip_test: add check to see if any event has occured Imre Deak
2012-10-16 14:34 ` [PATCH 22/22] flip_test: add wait-for-vblank tests Imre Deak

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=1350398096-3649-13-git-send-email-imre.deak@intel.com \
    --to=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.