drm/i915: Suppress spurious vblank interrupts
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 31 Jan 2011 10:48:04 +0000 (10:48 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 31 Jan 2011 12:38:47 +0000 (12:38 +0000)
commit78c6e170badd22c86a5b50a7eb038a02024b8f03
tree481dba4a9d30cf25ee25cda443a17cb6e209668c
parent021a8455bedb01750fa8047c8576e19d5af9a99f
drm/i915: Suppress spurious vblank interrupts

Hugh Dickins found that characters in xterm were going missing and oft
delayed. Being the curious type, he managed to associate this with the
new high-precision vblank patches; disabling these he found, restored
the orderliness of his characters.

The oddness begins when one realised that Hugh was not using vblanks at
all on his system (fvwm and some xterms). Instead, all he had to go on
were warning of a pipe underrun, curiously enough at around 60Hz. He
poked and found that in addition to the underrun warning, the hardware
was flagging the start of a new frame, a vblank, which in turn was
kicking off the pending vblank processing code.

There is little we can do for the underruns on Hugh's machine, a
Crestline [965GM], which must have its FIFO watermarks set to 8.
However, we do not need to process the vblank if we know that they are
disabled...

Reported-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/drm_irq.c
drivers/gpu/drm/i915/i915_irq.c
include/drm/drmP.h