• Daniel Vetter's avatar
    drm/i915: consolidate and tighten encoder cloning checks · accfc0c5
    Daniel Vetter authored
    Only lvds/tv did actually check for cloning or not, but many more
    places should.
    
    Notices because my ivb tried to enable both cpu edp and vga on the
    first crtc - the resulting confusion between has_pch_encoder,
    has_dp_encoder but not actually being a pch dp encoder resulting in
    hilarity (hitting a BUG).
    
    We _really_ need an igt to random-walk our modeset space more
    exhaustively.
    
    The bug seems to have been exposed due to a race in the hw load
    detection support for VGA: Right after a hotplug VGA was still
    detected as connected, but obviously reading the EDID wasn't possible
    any more. Hence why restarting X a bit later fixed things. Due to the
    1024x756 fallback resolution suddenly more outputs had the same
    resolution.
    
    On top of that SNA was confused with the possible_clones mask, trying
    to clone outputs which cannot be cloned. That bug is now fixed with
    
    commit fc1e0702b25e647cb423851fb7228989fec28bd6
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Wed May 29 11:25:28 2013 +0100
    
        sna: fixup up possible_clones kms->X impedance mismatch
    
    v2: Kill intel_encoder_check_is_cloned, spotted by Paulo.
    
    v3: Drop the now unused pipe param.
    
    v4: Kill the stray printk Chris spotted.
    
    v5: Elaborate on how the bug in userspace happened and why it was racy
    to reproduce.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    accfc0c5
intel_tv.c 47.9 KB