Upstream thinks the following two kernel patches (currently on drm-intel-staging) might resolve the issue, however they require testing before they'll commit to them:
commit e6793fa5504ac5c09a8f22f907c2b5f4543af7d9
Author: Chris Wilson <email address hidden>
Date: Tue Mar 29 10:40:27 2011 +0100
drm/i915: Disable all outputs early, before KMS takeover
If the outputs are active and continuing to access the GATT when we
teardown the PTEs, then there is a potential for us to hang the GPU.
The hang tends to be a PGTBL_ER with either an invalid host access or
an invalid display plane fetch.
Reported-by: Pekka Enberg <email address hidden>
Signed-off-by: Chris Wilson <email address hidden>
Tested-by: Daniel Vetter <email address hidden> (855GM)
commit b023d74ad16336ea07fb237b52899df6df63e4b2
Author: Chris Wilson <email address hidden>
Date: Tue Mar 29 13:19:09 2011 +0100
drm/i915: Move the irq wait queue initialisation into the ring init
Required so that we don't obliterate the queue if initialising the
rings after the global IRQ handler is installed.
Signed-off-by: Chris Wilson <email address hidden>
Upstream thinks the following two kernel patches (currently on drm-intel-staging) might resolve the issue, however they require testing before they'll commit to them:
commit e6793fa5504ac5c 09a8f22f907c2b5 f4543af7d9
Author: Chris Wilson <email address hidden>
Date: Tue Mar 29 10:40:27 2011 +0100
drm/i915: Disable all outputs early, before KMS takeover
If the outputs are active and continuing to access the GATT when we
teardown the PTEs, then there is a potential for us to hang the GPU.
The hang tends to be a PGTBL_ER with either an invalid host access or
an invalid display plane fetch.
Reported-by: Pekka Enberg <email address hidden>
Signed-off-by: Chris Wilson <email address hidden>
Tested-by: Daniel Vetter <email address hidden> (855GM)
commit b023d74ad16336e a07fb237b52899d f6df63e4b2
Author: Chris Wilson <email address hidden>
Date: Tue Mar 29 13:19:09 2011 +0100
drm/i915: Move the irq wait queue initialisation into the ring init
Required so that we don't obliterate the queue if initialising the
rings after the global IRQ handler is installed.
Signed-off-by: Chris Wilson <email address hidden>