• Daniel Vetter's avatar
    drm/i915: no longer call drm_helper_resume_force_mode · 9dc10f37
    Daniel Vetter authored
    Since this only calls crtc helper functions, of which a shocking
    amount are NULL.
    
    Now the curious thing is how the new modeset code worked with this
    function call still present:
    
    Thanks to the hw state readout and the suspend fixes to properly
    quiescent the register state, nothing is actually enabled at resume
    (if the bios doesn't set up anything). Which means resume_force_mode
    doesn't actually do anything and hence nothing blows up at resume
    time.
    
    The other reason things do work is that the fbcon layer has it's own
    resume notifier callback, which restores the mode. And thanks to the
    force vt switch at suspend/resume, that then forces X to restore it's
    own mode.
    
    Hence everything still worked (as long as the bios doesn't enable
    anything). And we can just kill the call to resume_force_mode.
    
    The upside of both this patch and the preceeding patch to quiescent
    the modeset state is that our resume path is much simpler:
    - We now longer restore bogus register values (which most often would
      enable the backlight a bit and a few ports), causing flickering.
    - We now longer call resume_force_mode to restore a mode that the
      fbcon layer would overwrite right away anyway.
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    9dc10f37
i915_drv.c 34.5 KB