OSDN Git Service

drm/i915: Do not re-calculate num_rings locally
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 19 Jun 2017 10:59:17 +0000 (11:59 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 20 Jun 2017 11:42:13 +0000 (12:42 +0100)
Since bb8f0f5abdd7 ("drm/i915: Split intel_engine allocation
and initialisation") intel_info->num_rings is set early in the
load sequence and so available to be used direclty in the 2nd
load phase.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170616130339.23015-1-tvrtko.ursulin@linux.intel.com
drivers/gpu/drm/i915/intel_ringbuffer.c

index acd1da9..5224b7a 100644 (file)
@@ -2140,7 +2140,7 @@ static void intel_ring_default_vfuncs(struct drm_i915_private *dev_priv,
 
                engine->emit_breadcrumb = gen6_sema_emit_breadcrumb;
 
-               num_rings = hweight32(INTEL_INFO(dev_priv)->ring_mask) - 1;
+               num_rings = INTEL_INFO(dev_priv)->num_rings - 1;
                if (INTEL_GEN(dev_priv) >= 8) {
                        engine->emit_breadcrumb_sz += num_rings * 6;
                } else {
@@ -2184,8 +2184,7 @@ int intel_init_render_ring_buffer(struct intel_engine_cs *engine)
 
                        engine->semaphore.signal = gen8_rcs_signal;
 
-                       num_rings =
-                               hweight32(INTEL_INFO(dev_priv)->ring_mask) - 1;
+                       num_rings = INTEL_INFO(dev_priv)->num_rings - 1;
                        engine->emit_breadcrumb_sz += num_rings * 8;
                }
        } else if (INTEL_GEN(dev_priv) >= 6) {