]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/cnl: Force DDI_A_4_LANES when needed.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 23 Oct 2017 17:39:20 +0000 (10:39 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 24 Oct 2017 17:19:54 +0000 (10:19 -0700)
commitc412ce9c62d513cc150267c41c31b873a7aa4f82
treef8259f0e0c3a8f9812514b34a05faba6d1c024e4
parent45e9de9073799e2d547f86b75c4f5f5554a4c912
drm/i915/cnl: Force DDI_A_4_LANES when needed.

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: Clint 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: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171023173920.22890-1-rodrigo.vivi@intel.com
drivers/gpu/drm/i915/intel_ddi.c