summaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2017-11-10 19:08:44 +0000
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2017-11-13 15:59:30 +0000
commitdab91783338bd3dd42638f89b5f7e34c57773207 (patch)
tree4da6049f29ac87cf4fa566ece0f7163be29ed52f /include/uapi
parent95690a02fb5d963e62aa16c3796af3dde01f63c9 (diff)
downloadlinux-stable-dab91783338bd3dd42638f89b5f7e34c57773207.tar.gz
linux-stable-dab91783338bd3dd42638f89b5f7e34c57773207.tar.bz2
linux-stable-dab91783338bd3dd42638f89b5f7e34c57773207.zip
drm/i915: expose command stream timestamp frequency to userspace
We use to have this fixed per generation, but starting with CNL userspace cannot tell just off the PCI ID. Let's make this information available. This is particularly useful for performance monitoring where much of the normalization work is done using those timestamps (this include pipeline statistics in both GL & Vulkan as well as OA reports). v2: Use variables for 24MHz/19.2MHz values (Ewelina) Renamed function & coding style (Sagar) v3: Fix frequency read on Broadwell (Sagar) Fix missing divide by 4 on <= gen4 (Sagar) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Tested-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171110190845.32574-7-lionel.g.landwerlin@intel.com
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/drm/i915_drm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index 6c02ced663f8..b57985929553 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -481,6 +481,12 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_HAS_CONTEXT_ISOLATION 50
+/* Frequency of the command streamer timestamps given by the *_TIMESTAMP
+ * registers. This used to be fixed per platform but from CNL onwards, this
+ * might vary depending on the parts.
+ */
+#define I915_PARAM_CS_TIMESTAMP_FREQUENCY 51
+
typedef struct drm_i915_getparam {
__s32 param;
/*