• Chris Wilson's avatar
    drm/i915/sdvo: Only set is_lvds if we have a valid fixed mode. · 8545423a
    Chris Wilson authored
    If we have failed to ascertain the fixed mode for the LVDS panel, then
    trust the pixel clock ranges reported for the connection when determing
    valid modes. This makes intel_sdvo_mode_valid() consistent with
    intel_lvds_mode_valid() which is also a no-op is there is no fixed mode
    defined. (Since the mode is both validated by SDVO and LVDS, why are
    checking against an LVDS fixed mode in SDVO...)
    
    By only defining is_lvds to be true when we actually have an LVDS output
    with a fixed mode, we avoid various potential NULL deferences where the
    assumption is made that all LVDS outputs have a fixed mode.
    
    References:
    
      Bug 29449 - [Q35] failure to read EDID/vbios for LVDS, no mode => no output
      https://bugs.freedesktop.org/show_bug.cgi?id=29449
    
    The primary failure in this bug is not finding the EDID and determining
    the correct fixed panel mode. However, this patch should fix the
    secondary issue of not enabling any of the standard modes for the panel
    either.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarEric Anholt <eric@anholt.net>
    8545423a
intel_sdvo.c 80 KB