[Intel-gfx] [PATCH i-g-t v2 2/7] lib/ioctl_wrappers: Separate ring BSD1 from BSD2 checks
Dave Gordon
david.s.gordon at intel.com
Mon Mar 7 11:56:37 UTC 2016
On 02/03/16 18:10, Derek Morton wrote:
> Some platforms have ring BSD available but no BSD2.
> Because of the current verification, tests involving ring BSD1
> will be skipped if no BSD2 is available.
>
> Decoupling the checks will allow running the BSD1 specific tests
> on these platforms.
>
> Based on a patch originally submitted by Gabriel Feceoru to
> patchwork-hook-test branch.
>
> Signed-off-by: Derek Morton <derek.j.morton at intel.com>
> ---
> lib/ioctl_wrappers.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
> index f42e2c9..a4c6aa4 100644
> --- a/lib/ioctl_wrappers.c
> +++ b/lib/ioctl_wrappers.c
> @@ -1432,8 +1432,10 @@ void gem_require_ring(int fd, int ring_id)
>
> /* silly ABI, the kernel thinks everyone who has BSD also has BSD2 */
> if ((ring_id & ~(3<<13)) == I915_EXEC_BSD) {
> - if (ring_id & (3 << 13))
> + if (ring_id & (2 << 13))
> igt_require(gem_has_bsd2(fd));
> + if (ring_id & (1 << 13))
> + igt_require(gem_has_bsd(fd));
> }
> }
>
Isn't the first (unchanged) line rather unclear?
Why not test for (ring_id & I915_EXEC_BSD)?
And then you only need to additionally test bit 14.
if (ring_id & I915_EXEC_BSD) {
/* require at least one BSD ring */
igt_require(gem_has_bsd(fd));
if (ring_id & (2 << 13)) {
/* specifically require BSD2 */
igt_require(gem_has_bsd2(fd));
}
}
.Dave.
More information about the Intel-gfx
mailing list