diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_cmd_parser.c | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | include/uapi/drm/i915_drm.h | 1 |
4 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c index a8f00dbc0dde..bae7c2f33692 100644 --- a/drivers/gpu/drm/i915/i915_cmd_parser.c +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c | |||
@@ -896,3 +896,22 @@ int i915_parse_cmds(struct intel_ring_buffer *ring, | |||
896 | 896 | ||
897 | return ret; | 897 | return ret; |
898 | } | 898 | } |
899 | |||
900 | /** | ||
901 | * i915_cmd_parser_get_version() - get the cmd parser version number | ||
902 | * | ||
903 | * The cmd parser maintains a simple increasing integer version number suitable | ||
904 | * for passing to userspace clients to determine what operations are permitted. | ||
905 | * | ||
906 | * Return: the current version number of the cmd parser | ||
907 | */ | ||
908 | int i915_cmd_parser_get_version(void) | ||
909 | { | ||
910 | /* | ||
911 | * Command parser version history | ||
912 | * | ||
913 | * 1. Initial version. Checks batches and reports violations, but leaves | ||
914 | * hardware parsing enabled (so does not allow new use cases). | ||
915 | */ | ||
916 | return 1; | ||
917 | } | ||
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 96177eec0a0e..0b38f88c35f0 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -1017,6 +1017,9 @@ static int i915_getparam(struct drm_device *dev, void *data, | |||
1017 | case I915_PARAM_HAS_EXEC_HANDLE_LUT: | 1017 | case I915_PARAM_HAS_EXEC_HANDLE_LUT: |
1018 | value = 1; | 1018 | value = 1; |
1019 | break; | 1019 | break; |
1020 | case I915_PARAM_CMD_PARSER_VERSION: | ||
1021 | value = i915_cmd_parser_get_version(); | ||
1022 | break; | ||
1020 | default: | 1023 | default: |
1021 | DRM_DEBUG("Unknown parameter %d\n", param->param); | 1024 | DRM_DEBUG("Unknown parameter %d\n", param->param); |
1022 | return -EINVAL; | 1025 | return -EINVAL; |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 8e1576cf6d63..0801e157a7ff 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -2385,6 +2385,7 @@ void i915_get_extra_instdone(struct drm_device *dev, uint32_t *instdone); | |||
2385 | const char *i915_cache_level_str(int type); | 2385 | const char *i915_cache_level_str(int type); |
2386 | 2386 | ||
2387 | /* i915_cmd_parser.c */ | 2387 | /* i915_cmd_parser.c */ |
2388 | int i915_cmd_parser_get_version(void); | ||
2388 | void i915_cmd_parser_init_ring(struct intel_ring_buffer *ring); | 2389 | void i915_cmd_parser_init_ring(struct intel_ring_buffer *ring); |
2389 | bool i915_needs_cmd_parser(struct intel_ring_buffer *ring); | 2390 | bool i915_needs_cmd_parser(struct intel_ring_buffer *ring); |
2390 | int i915_parse_cmds(struct intel_ring_buffer *ring, | 2391 | int i915_parse_cmds(struct intel_ring_buffer *ring, |
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 126bfaa8bb6b..8a3e4ef00c3d 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h | |||
@@ -337,6 +337,7 @@ typedef struct drm_i915_irq_wait { | |||
337 | #define I915_PARAM_HAS_EXEC_NO_RELOC 25 | 337 | #define I915_PARAM_HAS_EXEC_NO_RELOC 25 |
338 | #define I915_PARAM_HAS_EXEC_HANDLE_LUT 26 | 338 | #define I915_PARAM_HAS_EXEC_HANDLE_LUT 26 |
339 | #define I915_PARAM_HAS_WT 27 | 339 | #define I915_PARAM_HAS_WT 27 |
340 | #define I915_PARAM_CMD_PARSER_VERSION 28 | ||
340 | 341 | ||
341 | typedef struct drm_i915_getparam { | 342 | typedef struct drm_i915_getparam { |
342 | int param; | 343 | int param; |