• Rodrigo Vivi's avatar
    drm/i915/cnl: Force DDI_A_4_LANES when needed. · 436009b5
    Rodrigo Vivi authored
    As we faced in BXT, on CNL DDI_A_4_LANES is not
    set as expected when system is boot with multiple
    monitors connected. This result in wrong lane
    setup impacting the max data rate available and
    consequently blocking modeset on eDP, resulting
    in a blank screen.
    
    Most of CNL SKUs don't support DDI-E.
    The only SKU that supports DDI-E is the same
    that supports the full A/E split called DDI-F.
    
    Also when DDI-F is used DDI-E cannot be used because
    they share Interrupts. So DDI-E is almost useless.
    Anyways let's consider this is possible and rely on
    VBT for that.
    
    This patch was initialy start by Clint, but required
    many changes including full commit message. So
    Credits entirely to Clint for finding this.
    
    v2: Extract all messy conditions into a helper function
        as suggested by Ville.
        Along with simplification I removed the debug
        message on the working case since now all conditions
        are grouped.
    v3: Split the conditions even more as suggested by Ville.
        Get's cleaner and easier to add new cases in the
        future.
    Suggested-by: default avatarClint Taylor <clinton.a.taylor@intel.com>
    Cc: Clint Taylor <clinton.a.taylor@intel.com>
    Cc: Mika Kahola <mika.kahola@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171023173920.22890-1-rodrigo.vivi@intel.com
    436009b5
intel_ddi.c 86.2 KB