summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-04-03 17:58:35 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-09 21:53:30 +0200
commit14667a4bde4361b7ac420d68a2e9e9b9b2df5231 (patch)
tree2a26ed34eb36153d485d7f385be64aa365dc5cc8 /drivers/gpu/drm/i915/intel_dp.c
parentb2a71642b8bfa1965700ba248a99016e4d6b685d (diff)
downloadop-kernel-dev-14667a4bde4361b7ac420d68a2e9e9b9b2df5231.zip
op-kernel-dev-14667a4bde4361b7ac420d68a2e9e9b9b2df5231.tar.gz
drm/i915: Finish any pending operations on the framebuffer before disabling
Similar to the case where we are changing from one framebuffer to another, we need to be sure that there are no pending WAIT_FOR_EVENTs on the pipe for the current framebuffer before switching. If we disable the pipe, and then try to execute a WAIT_FOR_EVENT it will block indefinitely and cause a GPU hang. We attempted to fix this in commit 85345517fe6d4de27b0d6ca19fef9d28ac947c4a (drm/i915: Retire any pending operations on the old scanout when switching) for the case of mode switching, but this leaves the condition where we are switching off the pipe vulnerable. There still remains the race condition were a display may be unplugged, switched off by the core, a uevent sent to notify the DDX and the DDX may issue a WAIT_FOR_EVENT before it processes the uevent. This window does not exist if the pipe is only switched off in response to the uevent. Time to make sure that is so... Reported-by: Francis Leblanc <Francis.Leblanc-Lebeau@verint.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36515 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45413 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> [danvet: fixup spelling in comment, noticed by Eugeni.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud