[PATCH 1/2] drm/radeon: Don't hang in radeon_flip_work_func on disabled crtc. (v2)

Michel Dänzer michel at daenzer.net
Fri Feb 19 01:16:42 UTC 2016

On 19.02.2016 10:06, Mario Kleiner wrote:
> This fixes a regression introduced in Linux 4.4.
> Limit the amount of time radeon_flip_work_func can
> delay programming a page flip, by both limiting the
> maximum amount of time per wait cycle and the maximum
> number of wait cycles. Continue the flip if the limit
> is exceeded, even if that may result in a visual or
> timing glitch.
> This is to prevent a hang of page flips, as reported
> in fdo bug #93746: Disconnecting a DisplayPort display
> in parallel to a kms pageflip getting queued can cause
> the following hang of page flips and thereby an unusable
> desktop:
> 1. kms pageflip ioctl() queues pageflip -> queues execution
>    of radeon_flip_work_func.
> 2. Hotunplug of display causes the driver to DPMS OFF
>    the unplugged display. Display engine shuts down,
>    scanout no longer moves, but stays at its resting
>    position at start line of vblank.
> 3. radeon_flip_work_func executes while crtc is off, and
>    due to the non-moving scanout position, the new flip
>    delay code introduced into Linux 4.4 by
>    commit 5b5561b3660d ("drm/radeon: Fixup hw vblank counter/ts..")
>    enters an infinite wait loop.
> 4. After reconnecting the display, the pageflip continues
>    to hang in 3. and the display doesn't update its view
>    of the desktop.
> This patch fixes the Linux 4.4 regression from fdo bug #93746
> <https://bugs.freedesktop.org/show_bug.cgi?id=93746>
> v2: Skip wait immediately if !radeon_crtc->enabled, as
>     suggested by Michel.
> Reported-by: Bernd Steinhauser <linux at bernd-steinhauser.de>
> Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>
> Tested-by: Bernd Steinhauser <linux at bernd-steinhauser.de>
> Cc: <stable at vger.kernel.org> # 4.4+

Both patches are

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer

More information about the dri-devel mailing list