• Daniel Vetter's avatar
    drm/i915/lvds: ditch ->prepare special case · 520c41cf
    Daniel Vetter authored
    LVDS is the first output where dpms on/off and prepare/commit don't
    perfectly match. Now the idea behind this special case seems to be
    that for simple resolution changes on the LVDS we don't need to stop
    the pipe, because (at least on newer chips) we can adjust the panel
    fitter on the fly.
    
    There are a few problems with the current code though:
    - We still stop and restart the pipe unconditionally, because the crtc
      helper code isn't flexible enough.
    - We show some ugly flickering, especially when changing crtcs (this
      the crtc helper would actually take into account, but we don't
      implement the encoder->get_crtc callback required to make this work
      properly).
    
    So it doesn't even work as advertised. I agree that it would be nice
    to do resolution changes on LVDS (and also eDP) whithout blacking the
    screen where the panel fitter allows to do that. But imo we should
    implement this as a special case a few layers up in the mode set code,
    akin to how we already detect simple framebuffer changes (and only
    update the required registers with ->mode_set_base).
    
    Until this is all in place, make our lives easier and just rip it out.
    
    Also note that this seems to fix actual bugs with enabling the lvds
    output, see:
    
    http://lists.freedesktop.org/archives/intel-gfx/2012-July/018614.html
    
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: Giacomo Comes <comes@naic.edu>
    Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Tested-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    520c41cf
intel_lvds.c 31.3 KB