drm/i915: Add a CMD_PARSER_VERSION getparam
So userspace can query the kernel for command parser support. v2: Add i915_cmd_parser_get_version(), history log, and kerneldoc OTC-Tracker: AXIA-4631 Change-Id: I58af650db9f6753c2dcac9c54ab432fd31db302f Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
		
					parent
					
						
							
								114d4f7008
							
						
					
				
			
			
				commit
				
					
						d728c8ef8b
					
				
			
		
					 4 changed files with 24 additions and 0 deletions
				
			
		|  | @ -896,3 +896,22 @@ int i915_parse_cmds(struct intel_ring_buffer *ring, | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * i915_cmd_parser_get_version() - get the cmd parser version number | ||||||
|  |  * | ||||||
|  |  * The cmd parser maintains a simple increasing integer version number suitable | ||||||
|  |  * for passing to userspace clients to determine what operations are permitted. | ||||||
|  |  * | ||||||
|  |  * Return: the current version number of the cmd parser | ||||||
|  |  */ | ||||||
|  | int i915_cmd_parser_get_version(void) | ||||||
|  | { | ||||||
|  | 	/*
 | ||||||
|  | 	 * Command parser version history | ||||||
|  | 	 * | ||||||
|  | 	 * 1. Initial version. Checks batches and reports violations, but leaves | ||||||
|  | 	 *    hardware parsing enabled (so does not allow new use cases). | ||||||
|  | 	 */ | ||||||
|  | 	return 1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -1017,6 +1017,9 @@ static int i915_getparam(struct drm_device *dev, void *data, | ||||||
| 	case I915_PARAM_HAS_EXEC_HANDLE_LUT: | 	case I915_PARAM_HAS_EXEC_HANDLE_LUT: | ||||||
| 		value = 1; | 		value = 1; | ||||||
| 		break; | 		break; | ||||||
|  | 	case I915_PARAM_CMD_PARSER_VERSION: | ||||||
|  | 		value = i915_cmd_parser_get_version(); | ||||||
|  | 		break; | ||||||
| 	default: | 	default: | ||||||
| 		DRM_DEBUG("Unknown parameter %d\n", param->param); | 		DRM_DEBUG("Unknown parameter %d\n", param->param); | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
|  |  | ||||||
|  | @ -2385,6 +2385,7 @@ void i915_get_extra_instdone(struct drm_device *dev, uint32_t *instdone); | ||||||
| const char *i915_cache_level_str(int type); | const char *i915_cache_level_str(int type); | ||||||
| 
 | 
 | ||||||
| /* i915_cmd_parser.c */ | /* i915_cmd_parser.c */ | ||||||
|  | int i915_cmd_parser_get_version(void); | ||||||
| void i915_cmd_parser_init_ring(struct intel_ring_buffer *ring); | void i915_cmd_parser_init_ring(struct intel_ring_buffer *ring); | ||||||
| bool i915_needs_cmd_parser(struct intel_ring_buffer *ring); | bool i915_needs_cmd_parser(struct intel_ring_buffer *ring); | ||||||
| int i915_parse_cmds(struct intel_ring_buffer *ring, | int i915_parse_cmds(struct intel_ring_buffer *ring, | ||||||
|  |  | ||||||
|  | @ -337,6 +337,7 @@ typedef struct drm_i915_irq_wait { | ||||||
| #define I915_PARAM_HAS_EXEC_NO_RELOC	 25 | #define I915_PARAM_HAS_EXEC_NO_RELOC	 25 | ||||||
| #define I915_PARAM_HAS_EXEC_HANDLE_LUT   26 | #define I915_PARAM_HAS_EXEC_HANDLE_LUT   26 | ||||||
| #define I915_PARAM_HAS_WT     	 	 27 | #define I915_PARAM_HAS_WT     	 	 27 | ||||||
|  | #define I915_PARAM_CMD_PARSER_VERSION	 28 | ||||||
| 
 | 
 | ||||||
| typedef struct drm_i915_getparam { | typedef struct drm_i915_getparam { | ||||||
| 	int param; | 	int param; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Brad Volkin
				Brad Volkin