summaryrefslogtreecommitdiff
path: root/lib/igt_gt.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2015-02-10 17:46:43 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-02-13 09:35:36 +0100
commit3cd45dec2e4be3edacdfc233089b6bd3651fa595 (patch)
treeae12a86adb402916187eca5bf4715d12546788a4 /lib/igt_gt.h
parent25c4347078f181a938eaaefbed7e2e27c9dc1a3f (diff)
lib/igt_gt: Document and consolidate
Also move forcewake and stop_rings code from igt_debugfs to igt_gt since it fits better. And move the hang injection fork helpers from igt_aux to igt_gt, too. Also push the intel_gen call into igt_hang_ring while at it. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'lib/igt_gt.h')
-rw-r--r--lib/igt_gt.h46
1 files changed, 44 insertions, 2 deletions
diff --git a/lib/igt_gt.h b/lib/igt_gt.h
index 1ed78837..f1e080d3 100644
--- a/lib/igt_gt.h
+++ b/lib/igt_gt.h
@@ -24,12 +24,54 @@
#ifndef IGT_GT_H
#define IGT_GT_H
+#include "igt_debugfs.h"
+
void igt_require_hang_ring(int fd, int ring);
-struct igt_hang_ring {
+typedef struct igt_hang_ring {
unsigned handle;
unsigned ban;
-} igt_hang_ring(int fd, int gen, int ring);
+} igt_hang_ring_t;
+
+struct igt_hang_ring igt_hang_ring(int fd, int ring);
void igt_post_hang_ring(int fd, struct igt_hang_ring data);
+int igt_fork_hang_helper(void);
+void igt_stop_hang_helper(void);
+
+int igt_open_forcewake_handle(void);
+
+/**
+ * stop_ring_flags:
+ * @STOP_RING_NONE: Can be used to clear the pending stop (warning: hang might
+ * be declared already). Returned by igt_get_stop_rings() if there is
+ * no currently stopped rings.
+ * @STOP_RING_RENDER: Render ring
+ * @STOP_RING_BSD: Video encoding/decoding ring
+ * @STOP_RING_BLT: Blitter ring
+ * @STOP_RING_VEBOX: Video enhancement ring
+ * @STOP_RING_ALL: All rings
+ * @STOP_RING_ALLOW_ERRORS: Driver will not omit expected DRM_ERRORS
+ * @STOP_RING_ALLOW_BAN: Driver will use context ban policy
+ * @STOP_RING_DEFAULTS: STOP_RING_ALL | STOP_RING_ALLOW_ERRORS
+ *
+ * Enumeration of all supported flags for igt_set_stop_rings().
+ *
+ */
+enum stop_ring_flags {
+ STOP_RING_NONE = 0x00,
+ STOP_RING_RENDER = (1 << 0),
+ STOP_RING_BSD = (1 << 1),
+ STOP_RING_BLT = (1 << 2),
+ STOP_RING_VEBOX = (1 << 3),
+ STOP_RING_ALL = 0xff,
+ STOP_RING_ALLOW_ERRORS = (1 << 30),
+ STOP_RING_ALLOW_BAN = (1 << 31),
+ STOP_RING_DEFAULTS = STOP_RING_ALL | STOP_RING_ALLOW_ERRORS,
+};
+
+enum stop_ring_flags igt_to_stop_ring_flag(int ring);
+void igt_set_stop_rings(enum stop_ring_flags flags);
+enum stop_ring_flags igt_get_stop_rings(void);
+
#endif /* IGT_GT_H */