From: Robert Foss <robert.foss@collabora.com>
To: daniel.vetter@ffwll.ch, daniel.stone@collabora.com,
ville.syrjala@linux.intel.com, jani.nikula@intel.com,
chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH i-g-t v5 7/7] kms_flip: Change __wait_for_vblank to use helper function.
Date: Tue, 17 May 2016 10:48:02 -0400 [thread overview]
Message-ID: <573B2F22.4090804@collabora.com> (raw)
In-Reply-To: <20160517103227.GA8717@mcvlad-wk.rb.intel.com>
On 2016-05-17 06:32 AM, Marius Vlad wrote:
> On Mon, May 16, 2016 at 09:38:32AM -0400, robert.foss@collabora.com wrote:
>> From: Robert Foss <robert.foss@collabora.com>
>>
>> Change __wait_for_vblank() to use kmstest_get_vbl_flag() helper function.
>>
>> Signed-off-by: Robert Foss <robert.foss@collabora.com>
>> ---
>> tests/kms_flip.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
>> index eda2fcc..0ecca07 100644
>> --- a/tests/kms_flip.c
>> +++ b/tests/kms_flip.c
>> @@ -481,15 +481,15 @@ static int __wait_for_vblank(unsigned int flags, int crtc_idx,
>> {
>> drmVBlank wait_vbl;
>> int ret;
>> - unsigned crtc_idx_mask;
>> + uint32_t pipe_id_flag;
>> bool event = !(flags & TEST_VBLANK_BLOCK);
>>
>> memset(&wait_vbl, 0, sizeof(wait_vbl));
>>
>> - crtc_idx_mask = crtc_idx << DRM_VBLANK_HIGH_CRTC_SHIFT;
>> - igt_assert(!(crtc_idx_mask & ~DRM_VBLANK_HIGH_CRTC_MASK));
> If crtc_idx is 1 (pipe B), crtc_idx_mask = (1 << DRM_VBLANK_HIGH_CRTC_SHIFT) = 2.
>> + pipe_id_flag = kmstest_get_vbl_flag(crtc_idx);
>> + igt_assert(!(pipe_id_flag & ~DRM_VBLANK_HIGH_CRTC_MASK));
> If crtc_idx is 1 (pipe B), kmstest_get_vbl_flag(crtc_idx) = DRM_VBLANK_SECONDARY = 0x20000000
>
> And the assertion fails as !(0x20000000 & ~0x0000003e) = 0.
>
> Should kmstest_get_vbl_flag() always return pipe_id << 1?
From re-reading the pipe id parsing code in drm_irq.c drm_wait_vblank()
it would seem to me that the assertion is incorrect, specifically for
the case of _DRM_VBLANK_SECONDARY.
Supplying the flag _DRM_VBLANK_SECONDARY and setting the high crtc id
field to 1 fboth seem to be valid ways to communicate the same thing.
flags = vblwait->request.type & _DRM_VBLANK_FLAGS_MASK;
high_pipe = (vblwait->request.type &_DRM_VBLANK_HIGH_CRTC_MASK);
if (high_pipe)
pipe = high_pipe >> _DRM_VBLANK_HIGH_CRTC_SHIFT;
else
pipe = flags & _DRM_VBLANK_SECONDARY ? 1 : 0;
Maybe adding correct and more thorough assertion to
kmstest_get_vbl_flag() and removing the failing assertion is the way
forward.
>
>>
>> - wait_vbl.request.type = crtc_idx_mask;
>> + wait_vbl.request.type = pipe_id_flag;
>> if (flags & TEST_VBLANK_ABSOLUTE)
>> wait_vbl.request.type |= DRM_VBLANK_ABSOLUTE;
>> else
>> --
>> 2.7.4
>>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-05-17 14:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-16 13:38 [PATCH i-g-t v5 0/7] kms_flip_event_leak and kms_vblank fixes for robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 1/7] lib/igt_kms: Add support for up to 10 planes robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 2/7] lib/igt_kms: Fix plane counting in igt_display_init robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 3/7] lib/igt_kms: Switch to verbose assert robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 4/7] lib/igt_kms: Added pipe_id_to_vbl_flag() to igt_kms robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 5/7] kms_vblank: Switch from using crtc0 statically to explicitly setting mode robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 6/7] igt_kms: Change igt_wait_for_vblank to use helper function robert.foss
2016-05-16 13:38 ` [PATCH i-g-t v5 7/7] kms_flip: Change __wait_for_vblank " robert.foss
2016-05-17 10:32 ` Marius Vlad
2016-05-17 14:48 ` Robert Foss [this message]
2016-05-17 22:37 ` Marius Vlad
2016-05-24 11:19 ` [PATCH i-g-t v5 0/7] kms_flip_event_leak and kms_vblank fixes for Marius Vlad
2016-05-24 13:20 ` Robert Foss
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=573B2F22.4090804@collabora.com \
--to=robert.foss@collabora.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.stone@collabora.com \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=ville.syrjala@linux.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