Message ID | 1424366285-29232-36-git-send-email-John.C.Harrison@Intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 19/02/2015 17:17, John.C.Harrison@Intel.com wrote: > From: John Harrison <John.C.Harrison@Intel.com> > > Updated the *_ring_flush_all_caches() functions to take requests instead of > rings or ringbuf/context pairs. > > For: VIZ-5115 > Signed-off-by: John Harrison <John.C.Harrison@Intel.com> > --- > drivers/gpu/drm/i915/i915_gem.c | 4 ++-- > drivers/gpu/drm/i915/intel_lrc.c | 11 +++++------ > drivers/gpu/drm/i915/intel_lrc.h | 3 +-- > drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ++++--- > drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- > 5 files changed, 13 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 043933b..e8577d7 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2436,9 +2436,9 @@ int __i915_add_request(struct drm_i915_gem_request *request, > */ > if (flush_caches) { > if (i915.enable_execlists) > - ret = logical_ring_flush_all_caches(ringbuf, request->ctx); > + ret = logical_ring_flush_all_caches(request); > else > - ret = intel_ring_flush_all_caches(ring); > + ret = intel_ring_flush_all_caches(request); > if (ret) > return ret; > } > diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c > index 08ed800..d8084a1 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.c > +++ b/drivers/gpu/drm/i915/intel_lrc.c > @@ -768,16 +768,15 @@ void intel_logical_ring_stop(struct intel_engine_cs *ring) > I915_WRITE_MODE(ring, _MASKED_BIT_DISABLE(STOP_RING)); > } > > -int logical_ring_flush_all_caches(struct intel_ringbuffer *ringbuf, > - struct intel_context *ctx) > +int logical_ring_flush_all_caches(struct drm_i915_gem_request *req) > { > - struct intel_engine_cs *ring = ringbuf->ring; > + struct intel_engine_cs *ring = req->ring; > int ret; > > if (!ring->gpu_caches_dirty) > return 0; > > - ret = ring->emit_flush(ringbuf, ctx, 0, I915_GEM_GPU_DOMAINS); > + ret = ring->emit_flush(req->ringbuf, req->ctx, 0, I915_GEM_GPU_DOMAINS); > if (ret) > return ret; > > @@ -1089,7 +1088,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req) > return 0; > > ring->gpu_caches_dirty = true; > - ret = logical_ring_flush_all_caches(ringbuf, req->ctx); > + ret = logical_ring_flush_all_caches(req); > if (ret) > return ret; > > @@ -1107,7 +1106,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req) > intel_logical_ring_advance(ringbuf); > > ring->gpu_caches_dirty = true; > - ret = logical_ring_flush_all_caches(ringbuf, req->ctx); > + ret = logical_ring_flush_all_caches(req); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h > index 77de8ac..40848b0 100644 > --- a/drivers/gpu/drm/i915/intel_lrc.h > +++ b/drivers/gpu/drm/i915/intel_lrc.h > @@ -43,8 +43,7 @@ void intel_logical_ring_stop(struct intel_engine_cs *ring); > void intel_logical_ring_cleanup(struct intel_engine_cs *ring); > int intel_logical_rings_init(struct drm_device *dev); > > -int logical_ring_flush_all_caches(struct intel_ringbuffer *ringbuf, > - struct intel_context *ctx); > +int logical_ring_flush_all_caches(struct drm_i915_gem_request *req); > /** > * intel_logical_ring_advance() - advance the ringbuffer tail > * @ringbuf: Ringbuffer to advance. > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > index d147ffa..91a9131 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -748,7 +748,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req) > return 0; > > ring->gpu_caches_dirty = true; > - ret = intel_ring_flush_all_caches(ring); > + ret = intel_ring_flush_all_caches(req); > if (ret) > return ret; > > @@ -766,7 +766,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req) > intel_ring_advance(ring); > > ring->gpu_caches_dirty = true; > - ret = intel_ring_flush_all_caches(ring); > + ret = intel_ring_flush_all_caches(req); > if (ret) > return ret; > > @@ -2846,8 +2846,9 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev) > } > > int > -intel_ring_flush_all_caches(struct intel_engine_cs *ring) > +intel_ring_flush_all_caches(struct drm_i915_gem_request *req) > { > + struct intel_engine_cs *ring = req->ring; > int ret; > > if (!ring->gpu_caches_dirty) > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h > index b817725..0ef29fb 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.h > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h > @@ -413,7 +413,7 @@ bool intel_ring_stopped(struct intel_engine_cs *ring); > > int __must_check intel_ring_idle(struct intel_engine_cs *ring); > void intel_ring_init_seqno(struct intel_engine_cs *ring, u32 seqno); > -int intel_ring_flush_all_caches(struct intel_engine_cs *ring); > +int intel_ring_flush_all_caches(struct drm_i915_gem_request *req); > int intel_ring_invalidate_all_caches(struct drm_i915_gem_request *req); > > void intel_fini_pipe_control(struct intel_engine_cs *ring); > Reviewed-by: Tomas Elf <tomas.elf@intel.com> Thanks, Tomas
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 043933b..e8577d7 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2436,9 +2436,9 @@ int __i915_add_request(struct drm_i915_gem_request *request, */ if (flush_caches) { if (i915.enable_execlists) - ret = logical_ring_flush_all_caches(ringbuf, request->ctx); + ret = logical_ring_flush_all_caches(request); else - ret = intel_ring_flush_all_caches(ring); + ret = intel_ring_flush_all_caches(request); if (ret) return ret; } diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index 08ed800..d8084a1 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -768,16 +768,15 @@ void intel_logical_ring_stop(struct intel_engine_cs *ring) I915_WRITE_MODE(ring, _MASKED_BIT_DISABLE(STOP_RING)); } -int logical_ring_flush_all_caches(struct intel_ringbuffer *ringbuf, - struct intel_context *ctx) +int logical_ring_flush_all_caches(struct drm_i915_gem_request *req) { - struct intel_engine_cs *ring = ringbuf->ring; + struct intel_engine_cs *ring = req->ring; int ret; if (!ring->gpu_caches_dirty) return 0; - ret = ring->emit_flush(ringbuf, ctx, 0, I915_GEM_GPU_DOMAINS); + ret = ring->emit_flush(req->ringbuf, req->ctx, 0, I915_GEM_GPU_DOMAINS); if (ret) return ret; @@ -1089,7 +1088,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req) return 0; ring->gpu_caches_dirty = true; - ret = logical_ring_flush_all_caches(ringbuf, req->ctx); + ret = logical_ring_flush_all_caches(req); if (ret) return ret; @@ -1107,7 +1106,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req) intel_logical_ring_advance(ringbuf); ring->gpu_caches_dirty = true; - ret = logical_ring_flush_all_caches(ringbuf, req->ctx); + ret = logical_ring_flush_all_caches(req); if (ret) return ret; diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h index 77de8ac..40848b0 100644 --- a/drivers/gpu/drm/i915/intel_lrc.h +++ b/drivers/gpu/drm/i915/intel_lrc.h @@ -43,8 +43,7 @@ void intel_logical_ring_stop(struct intel_engine_cs *ring); void intel_logical_ring_cleanup(struct intel_engine_cs *ring); int intel_logical_rings_init(struct drm_device *dev); -int logical_ring_flush_all_caches(struct intel_ringbuffer *ringbuf, - struct intel_context *ctx); +int logical_ring_flush_all_caches(struct drm_i915_gem_request *req); /** * intel_logical_ring_advance() - advance the ringbuffer tail * @ringbuf: Ringbuffer to advance. diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index d147ffa..91a9131 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -748,7 +748,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req) return 0; ring->gpu_caches_dirty = true; - ret = intel_ring_flush_all_caches(ring); + ret = intel_ring_flush_all_caches(req); if (ret) return ret; @@ -766,7 +766,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req) intel_ring_advance(ring); ring->gpu_caches_dirty = true; - ret = intel_ring_flush_all_caches(ring); + ret = intel_ring_flush_all_caches(req); if (ret) return ret; @@ -2846,8 +2846,9 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev) } int -intel_ring_flush_all_caches(struct intel_engine_cs *ring) +intel_ring_flush_all_caches(struct drm_i915_gem_request *req) { + struct intel_engine_cs *ring = req->ring; int ret; if (!ring->gpu_caches_dirty) diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index b817725..0ef29fb 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -413,7 +413,7 @@ bool intel_ring_stopped(struct intel_engine_cs *ring); int __must_check intel_ring_idle(struct intel_engine_cs *ring); void intel_ring_init_seqno(struct intel_engine_cs *ring, u32 seqno); -int intel_ring_flush_all_caches(struct intel_engine_cs *ring); +int intel_ring_flush_all_caches(struct drm_i915_gem_request *req); int intel_ring_invalidate_all_caches(struct drm_i915_gem_request *req); void intel_fini_pipe_control(struct intel_engine_cs *ring);