• L
    drm/amdgpu: Don't fail resume process if resuming atomic state fails · c7ca8e94
    Lyude Paul 提交于
    commit 2d1af6a11cb9d88e0e3dd10258904c437fe1b315 upstream.
    
    This is an ugly one unfortunately. Currently, all DRM drivers supporting
    atomic modesetting will save the state that userspace had set before
    suspending, then attempt to restore that state on resume. This probably
    worked very well at one point, like many other things, until DP MST came
    into the picture. While it's easy to restore state on normal display
    connectors that were disconnected during suspend regardless of their
    state post-resume, this can't really be done with MST because of the
    fact that setting up a downstream sink requires performing sideband
    transactions between the source and the MST hub, sending out the ACT
    packets, etc.
    
    Because of this, there isn't really a guarantee that we can restore the
    atomic state we had before suspend once we've resumed. This sucks pretty
    bad, but so far I haven't run into any compositors that this actually
    causes serious issues with. Most compositors will notice the hotplug we
    send afterwards, and then reprobe state.
    
    Since nouveau and i915 also don't fail the suspend/resume process due to
    failing to restore the atomic state, let's make amdgpu match this
    behavior. Better to resume the GPU properly, then to stop the process
    half way because of a potentially unavoidable atomic commit failure.
    
    Eventually, we'll have a real fix for this problem on the DRM level. But
    we've got some more important low-hanging fruit to deal with first.
    Signed-off-by: NLyude Paul <lyude@redhat.com>
    Reviewed-by: NHarry Wentland <harry.wentland@amd.com>
    Cc: Jerry Zuo <Jerry.Zuo@amd.com>
    Cc: <stable@vger.kernel.org> # v4.15+
    Link: https://patchwork.freedesktop.org/patch/msgid/20190108211133.32564-3-lyude@redhat.comSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c7ca8e94
amdgpu_dm.c 147.1 KB