[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