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
@ -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…
x
Reference in New Issue
Block a user