linux/drivers/gpu
Chris Wilson acd29f7b22 drm/i915: Limit the number of loops for reading a split 64bit register
In I915_READ64_2x32 we attempt to read a 64bit register using 2 32bit
reads. Due to the nature of the registers we try to read in this manner,
they may increment between the two instruction (e.g. a timestamp
counter). To keep the result accurate, we repeat the read if we detect
an overflow (i.e. the upper value varies). However, some hardware is just
plain flaky and may endless loop as the the upper 32bits are not stable.
Just give up after a couple of tries and report whatever we read last.

v2: Use the most recent values when erring out on an unstable register.

Reported-by: russianneuromancer@ya.ru
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91906
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-09-09 11:08:10 +03:00
..
drm drm/i915: Limit the number of loops for reading a split 64bit register 2015-09-09 11:08:10 +03:00
host1x gpu: host1x: mipi: Power down regulators when unused 2015-08-13 13:47:21 +02:00
ipu-v3 GPU: ipu: fix lockup caused by pending chained interrupts 2015-07-10 11:02:46 +02:00
vga vga_switcheroo: Remove unnecessary checks 2015-08-12 17:13:19 +02:00
Makefile