mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
drm/i915: Convert 'ring_idle()' to use requests not seqnos
More seqno value to request structure conversions. Note, this change temporarily moves the 'get_seqno()' call inside ring_idle() but this will disappear again in a later patch when i915_seqno_passed() itself is converted. For: VIZ-4377 Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Reviewed-by: Thomas Daniel <Thomas.Daniel@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
74328ee510
commit
44cdd6d219
@ -2749,18 +2749,19 @@ static void gen8_disable_vblank(struct drm_device *dev, int pipe)
|
||||
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
|
||||
}
|
||||
|
||||
static u32
|
||||
ring_last_seqno(struct intel_engine_cs *ring)
|
||||
static struct drm_i915_gem_request *
|
||||
ring_last_request(struct intel_engine_cs *ring)
|
||||
{
|
||||
return list_entry(ring->request_list.prev,
|
||||
struct drm_i915_gem_request, list)->seqno;
|
||||
struct drm_i915_gem_request, list);
|
||||
}
|
||||
|
||||
static bool
|
||||
ring_idle(struct intel_engine_cs *ring, u32 seqno)
|
||||
ring_idle(struct intel_engine_cs *ring)
|
||||
{
|
||||
return (list_empty(&ring->request_list) ||
|
||||
i915_seqno_passed(seqno, ring_last_seqno(ring)));
|
||||
i915_seqno_passed(ring->get_seqno(ring, false),
|
||||
i915_gem_request_get_seqno(ring_last_request(ring))));
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -2980,7 +2981,7 @@ static void i915_hangcheck_elapsed(unsigned long data)
|
||||
acthd = intel_ring_get_active_head(ring);
|
||||
|
||||
if (ring->hangcheck.seqno == seqno) {
|
||||
if (ring_idle(ring, seqno)) {
|
||||
if (ring_idle(ring)) {
|
||||
ring->hangcheck.action = HANGCHECK_IDLE;
|
||||
|
||||
if (waitqueue_active(&ring->irq_queue)) {
|
||||
|
Loading…
Reference in New Issue
Block a user