[Intel-gfx] [PATCH] drm/i915: Report command parser version 0 if disabled
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Wed May 4 16:08:37 UTC 2016
On ke, 2016-05-04 at 14:25 +0100, Chris Wilson wrote:
> If the command parser is not active, then it is appropriate to report it
> as operating at version 0 as no higher mode is supported. This greatly
> simplifies userspace querying for the command parser as we then do not
> need to second guess when it will be active (a mixture of module
> parameters and generational support, which may change over time).
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Assuming zero was previously unused.
Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
> drivers/gpu/drm/i915/i915_cmd_parser.c | 15 ++++++++++++++-
> drivers/gpu/drm/i915/i915_dma.c | 2 +-
> drivers/gpu/drm/i915/i915_drv.h | 2 +-
> 3 files changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
> index a337f33bec5b..17831fac49f5 100644
> --- a/drivers/gpu/drm/i915/i915_cmd_parser.c
> +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
> @@ -1275,8 +1275,21 @@ int i915_parse_cmds(struct intel_engine_cs *engine,
> *
> * Return: the current version number of the cmd parser
> */
> -int i915_cmd_parser_get_version(void)
> +int i915_cmd_parser_get_version(struct drm_i915_private *dev_priv)
> {
> + struct intel_engine_cs *engine;
> + bool active = false;
> +
> + /* If the comand parser is not enabled, report 0 - unsupported */
> + for_each_engine(engine, dev_priv) {
> + if (i915_needs_cmd_parser(engine)) {
> + active = true;
> + break;
> + }
> + }
> + if (!active)
> + return 0;
> +
> /*
> * Command parser version history
> *
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index c91387f1aedd..ad7abe517700 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -204,7 +204,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
> value = 1;
> break;
> case I915_PARAM_CMD_PARSER_VERSION:
> - value = i915_cmd_parser_get_version();
> + value = i915_cmd_parser_get_version(dev_priv);
> break;
> case I915_PARAM_HAS_COHERENT_PHYS_GTT:
> value = 1;
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 75a1675ea6ce..d5496aba1cd5 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -3442,7 +3442,7 @@ void i915_get_extra_instdone(struct drm_device *dev, uint32_t *instdone);
> const char *i915_cache_level_str(struct drm_i915_private *i915, int type);
>
> /* i915_cmd_parser.c */
> -int i915_cmd_parser_get_version(void);
> +int i915_cmd_parser_get_version(struct drm_i915_private *dev_priv);
> int i915_cmd_parser_init_ring(struct intel_engine_cs *engine);
> void i915_cmd_parser_fini_ring(struct intel_engine_cs *engine);
> bool i915_needs_cmd_parser(struct intel_engine_cs *engine);
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the Intel-gfx
mailing list