[Intel-gfx] [RFC DP-typeC 0/2] Support USB typeC based DP on BXT

Jani Nikula jani.nikula at linux.intel.com
Wed Sep 16 02:48:03 PDT 2015


On Tue, 15 Sep 2015, Durgadoss R <durgadoss.r at intel.com> wrote:
> This is an RFC series to start the review/discussion on approach
> to support USB type C based DP panel.
>
> To support USB type C alternate DP mode, the display driver needs to
> know the number of lanes required by the DP panel as well as number
> of lanes that can be supported by the type-C cable. Sometimes, the
> type-C cable may limit the bandwidth even if Panel can support
> more lanes.
>
> The goal is to find out the number of lanes which can be supported
> using a particular cable so that we can cap 'max_available_lanes'
> to that number during modeset.
>
> These two patches are based on 4.2-rc2 and tested only on
> a BXT A1 platform for now.
>
> Brief summary of the approach taken:
> -----------------------------------
> 1.As soon as DP-hotplug is detected, driver starts link training
>   with highest number of lanes/bandwidth possible. If it fails,
>   driver retries link training with lane/2 for same bandwidth.
>   We continue this procedure until we find a working configuration
>   of lane/bandwidth values. This 'number of lanes' is then
>   set as the 'max_available_lanes', so that the following
>   intel_dp_compute_config() during modeset picks it up as
>   max_lane_count (instead of 4 always, from DPCD).

Would all of this work automatically if our link training sequence
followed the DP spec to the letter wrt degrading the link on failures?

BR,
Jani.


>
> 2.Since we do only link training on hotplug, only the port
>   and its PLLs are enabled/disabled without touching pipe/
>   planes etc.
>
> 3.For scenarios where we boot with DP connected (along with
>   an LFP like MIPI/eDP) we disable the crtc and then start
>   link training, since BIOS brings up DP. The crtc is
>   enabled back during subsequent modeset. This needs some
>   changes for latest -nightly branch since we do not have
>   intel_crtc_control() anymore.
>
> 4.Since we are doing the link training on hotplug (as
>   opposed to during modeset) we named the function
>   '{chv/bxt/*}_upfront_link_train'. We can also think
>   of a virtual func for this, inside intel_encoder.
>
> Durgadoss R (2):
>   drm/i915/dp: Make bxt_ddi_pll_select non-static
>   drm/i915/dp: Enable Upfront link training for type-C DP support
>
>  drivers/gpu/drm/i915/intel_ddi.c     |  11 +--
>  drivers/gpu/drm/i915/intel_display.c | 130 +++++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_dp.c      |  22 ++++++
>  drivers/gpu/drm/i915/intel_drv.h     |   6 ++
>  4 files changed, 165 insertions(+), 4 deletions(-)
>
> -- 
> 1.9.1
>

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list