summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobert Foss <robert.foss@collabora.com>2016-12-07 15:07:50 -0500
committerTomeu Vizoso <tomeu.vizoso@collabora.com>2016-12-14 09:24:11 +0100
commit2c16b0b5c88367fe398d4a973f1c8255ddc36b56 (patch)
tree22c090e0febf8b71dd4cacb9937c44a579083ed1 /lib
parent6e836088bc52a288bd649ae7903d776a811e4884 (diff)
lib/sw_sync: Add igt_require_sw_sync to enable skipping on no sw_sync support
Add igt_require_sw_sync to provide tests to skip if sw_sync support isn't available on the host machine. Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/sw_sync.c14
-rw-r--r--lib/sw_sync.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/sw_sync.c b/lib/sw_sync.c
index aa8feefe..276dc795 100644
--- a/lib/sw_sync.c
+++ b/lib/sw_sync.c
@@ -212,3 +212,17 @@ int sync_fence_count_status(int fd, int status)
return count;
}
+
+static bool kernel_has_sw_sync(void)
+{
+ char buf[128];
+
+ igt_ignore_warn(system("/sbin/modprobe -s r sw_sync"));
+
+ return kernel_sw_sync_path(buf, sizeof(buf));
+}
+
+void igt_require_sw_sync(void)
+{
+ igt_require(kernel_has_sw_sync());
+}
diff --git a/lib/sw_sync.h b/lib/sw_sync.h
index cea5a603..82af3378 100644
--- a/lib/sw_sync.h
+++ b/lib/sw_sync.h
@@ -39,6 +39,7 @@ int sync_merge(int fd1, int fd2);
int sync_wait(int fence, int timeout);
int sync_fence_count(int fd);
int sync_fence_count_status(int fd, int status);
+void igt_require_sw_sync(void);
#endif