Rather than require the user to grab a drm_i915_private, allow them to pass anything that we know how to derive such a pointer user to_i915() Note this fixes a macro bug in for_each_engine_masked() which was not using its dev_priv__ parameter. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_drv.h | 18 +++++++++--------- drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 6569ebfe8cf1..0a62354ba53d 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2020,24 +2020,24 @@ static inline struct drm_i915_private *guc_to_i915(struct intel_guc *guc) } /* Simple iterator over all initialised engines */ -#define for_each_engine(engine__, dev_priv__) \ - for ((engine__) = &(dev_priv__)->engine[0]; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine(engine__, ptr__) \ + for ((engine__) = &to_i915(ptr__)->engine[0]; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (intel_engine_initialized(engine__)) /* Iterator with engine_id */ -#define for_each_engine_id(engine__, dev_priv__, id__) \ - for ((engine__) = &(dev_priv__)->engine[0], (id__) = 0; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine_id(engine__, ptr__, id__) \ + for ((engine__) = &to_i915(ptr__)->engine[0], (id__) = 0; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (((id__) = (engine__)->id, \ intel_engine_initialized(engine__))) /* Iterator over subset of engines selected by mask */ -#define for_each_engine_masked(engine__, dev_priv__, mask__) \ - for ((engine__) = &(dev_priv__)->engine[0]; \ - (engine__) < &(dev_priv__)->engine[I915_NUM_ENGINES]; \ +#define for_each_engine_masked(engine__, ptr__, mask__) \ + for ((engine__) = &to_i915(ptr__)->engine[0]; \ + (engine__) < &to_i915(ptr__)->engine[I915_NUM_ENGINES]; \ (engine__)++) \ for_each_if (((mask__) & intel_engine_flag(engine__)) && \ intel_engine_initialized(engine__)) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index e5acc3916f75..b8439971c9bb 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -553,7 +553,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags) intel_ring_emit(engine, MI_LOAD_REGISTER_IMM(num_rings)); - for_each_engine(signaller, to_i915(engine->dev)) { + for_each_engine(signaller, engine->dev) { if (signaller == engine) continue; @@ -583,7 +583,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags) intel_ring_emit(engine, MI_LOAD_REGISTER_IMM(num_rings)); - for_each_engine(signaller, to_i915(engine->dev)) { + for_each_engine(signaller, engine->dev) { if (signaller == engine) continue; -- 2.8.0.rc3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx