OSDN Git Service

drm/i915: Don't read 'HEAD' MMIO register in LRC mode
authorDave Gordon <david.s.gordon@intel.com>
Tue, 18 Nov 2014 20:07:21 +0000 (20:07 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 3 Dec 2014 08:35:11 +0000 (09:35 +0100)
commitd65621c496a2afe6c6724cbd7150e2ec60b42f13
treeef09257b1c43306ddf94cfa3c552e96fb451aee9
parent57e215135f8ad7519fb079a0234e91a94bddd2f9
drm/i915: Don't read 'HEAD' MMIO register in LRC mode

The logical ring code was updating the software ring 'head' value
by reading the hardware 'HEAD' register. In LRC mode, this is not
valid as the hardware is not necessarily executing the same context
that is being processed by the software. Thus reading the h/w HEAD
could put an unrelated (undefined, effectively random) value into
the s/w 'head' -- A Bad Thing for the free space calculations.

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_lrc.c