drm/i915: Do not overflow the MMADDR write FIFO
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 4 Mar 2011 19:22:40 +0000 (19:22 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 6 Mar 2011 09:07:46 +0000 (09:07 +0000)
commit91355834646328e7edc6bd25176ae44bcd7386c7
tree24539f6a0d2ba30f5973a78d7a639f6ce140091d
parent0ee537abbd10a9abf11e1c22ee32a68e8c12ed4a
drm/i915: Do not overflow the MMADDR write FIFO

Whilst the GT is powered down (rc6), writes to MMADDR are placed in a
FIFO by the System Agent. This is a limited resource, only 64 entries, of
which 20 are reserved for Display and PCH writes, and so we must take
care not to queue up too many writes. To avoid this, there is counter
which we can poll to ensure there are sufficient free entries in the
fifo.

"Issuing a write to a full FIFO is not supported; at worst it could
result in corruption or a system hang."

Reported-and-Tested-by: Matt Turner <mattst88@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34056
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_ringbuffer.h