summaryrefslogtreecommitdiff
path: root/lib/intel_batchbuffer.c
diff options
context:
space:
mode:
authorJeff McGee <jeff.mcgee@intel.com>2015-03-12 10:52:08 -0700
committerThomas Wood <thomas.wood@intel.com>2015-03-25 17:52:11 +0000
commitaef4605f7c42df222761f6735375f499586d9d25 (patch)
treec71b5d3ad2369071b0942145065b14d99475d67e /lib/intel_batchbuffer.c
parent301b9e4bb389a968cfae79a1bea07834436165b8 (diff)
lib: Add media spin
The media spin utility is derived from media fill. The purpose is to create a simple means to keep the render engine (media pipeline) busy for a controlled amount of time. It does so by emitting a batch with a single execution thread that spins in a tight loop the requested number of times. Each spin increments a counter whose final 32-bit value is written to the destination buffer on completion for checking. The implementation supports Gen8, Gen8lp, and Gen9. v2: Apply the recommendations of igt.cocci. Signed-off-by: Jeff McGee <jeff.mcgee@intel.com> Tested-by: Lei Liu <lei.a.liu@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Diffstat (limited to 'lib/intel_batchbuffer.c')
-rw-r--r--lib/intel_batchbuffer.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 1aa4ec34..a1b0643f 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -40,6 +40,7 @@
#include "rendercopy.h"
#include "media_fill.h"
#include "ioctl_wrappers.h"
+#include "media_spin.h"
#include <i915_drm.h>
@@ -788,3 +789,26 @@ igt_fillfunc_t igt_get_gpgpu_fillfunc(int devid)
return fill;
}
+
+/**
+ * igt_get_media_spinfunc:
+ * @devid: pci device id
+ *
+ * Returns:
+ *
+ * The platform-specific media spin function pointer for the device specified
+ * with @devid. Will return NULL when no media spin function is implemented.
+ */
+igt_media_spinfunc_t igt_get_media_spinfunc(int devid)
+{
+ igt_media_spinfunc_t spin = NULL;
+
+ if (IS_GEN9(devid))
+ spin = gen9_media_spinfunc;
+ else if (IS_BROADWELL(devid))
+ spin = gen8_media_spinfunc;
+ else if (IS_CHERRYVIEW(devid))
+ spin = gen8lp_media_spinfunc;
+
+ return spin;
+}