• Daniel Vetter's avatar
    drm/i915: Don't rely upon encoder->type for infoframe hw state readout · bbd440fb
    Daniel Vetter authored
    encoder->type can change underneath us and doesn't need to reflect
    actual hw state (since we don't construct it from hw state like
    e.g. encoder->crtc crtc->config).
    
    And this can indeed happen:
    1) Boot with plugged-in hdmi screen. Since we only set ->type in the
       probe functions this means we won't detect any infoframes since
       type is still unkown.
    2) First probe sets type to HDMI.
    3) If the first modeset now does _not_ happen on the HDMI pipe with
       infoframes encoder->get_config suddenly sees infoframes and the
       state checker gets angry.
    
    Fix this by only relying on actual hw state when figuring out whether
    the ddi port is in hdmi mode and sends infoframes.
    
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: Paulo Zanoni <przanoni@gmail.com>
    Reported-by: default avatarPaulo Zanoni <przanoni@gmail.com>
    Reviewed-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    bbd440fb
intel_ddi.c 59.7 KB