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@xxxxxxxxxxxxxxxxxx> Assuming zero was previously unused. Reviewed-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > --- > 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx