drm/i915: sanity check IER at wait_request time
authorJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 5 May 2009 23:03:48 +0000 (16:03 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 14 May 2009 23:00:27 +0000 (16:00 -0700)
commit802c7eb646848d769a07704c16f7a3bbec9e5829
tree49cdcc60c01c0d0893d285423f04d39d7eabfb2b
parent0ba0e9e1f173a59ba402a253d356612c821b7a14
drm/i915: sanity check IER at wait_request time

We might sleep here anyway so I hope an extra uncached read is ok to
add.

In #20896 we found that vbetool clobbers the IER.  In KMS mode this is
particularly bad since we don't set the interrupt regs late (in
EnterVT), so we'd fail to get *any* interrupts at all after X started
(since some distros have scripts that call vbetool at X startup
apparently).

So this patch checks IER at wait_request time, and re-enables
interrupts if it's been clobbered.  In a proper config this check
should never be triggered.

This is really a distro issue, but having a sanity check is nice, as
long as it doesn't have a real performance hit.

Tested-by: Mateusz Kaduk <mateusz.kaduk@gmail.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
[anholt: Moved the check inside of the sleeping case to avoid perf cost]
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/i915/i915_gem.c