[PATCHv7 0/5] Add USB typeC based DP support for BXT platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series adds upfront link training support to enable
USB type C based DP on BXT platform.

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.

Patch   1-3/5 : Refactor ddi_pll code so that upfront link
                training does not need crtc_state.
Patch   4/5 :   Split ddi_pll_select to be able to calculate
                pll config for DP during upfront link train.
Patch   5/5 :   Upfront implementation for BXT platform.

Changes since v6:
* Use link_rate (and not link_bw) for upfront (Ville)
* Make intel_dp_upfront*() as a vfunc (Ander)
Changes from v5:
* Moved the retry logic from upfront code to intel_dp.c
Changes from v4:
* Don't use crtc_state in upfront link train
* Use separate variables to track max lane count
  and link bw obtained through upfront link train
Changes from v3:
* Used an earlier patch from Ander that splits ddi_pll_select
  to be able to use it from upfront link train logic.
Changes from v2:
* Rebased on top of intel_dpll_mgr.c code.
* Use drm_atomic_commit instead of atomic_helper_dpms, since the
  later uses crtc->acquire_ctx used also in legacy paths.
* Using a drm_atomic_state helps in using the shared_dpll APIs
  as is, thus keeping the upfront code away from changing pll
  internals directly.
* Fixed locking/retry/backoff logic in upfront according to
  atomic implementation.
Changes from v1:
* Using atomic_helper_dpms() to do DPMS off for upfront link
  training, instead of using load detect functions.
* Made intel_get_shared_dpll handle non-atomic paths by
  duplicating the required shared_dpll_config and then working
  on top of it. This helps in upfront link train code not
  directly touch the 'pll/pll->config' internals.
* Fixed the link_bw update logic in intel_dp_get_link_retry_params()
  for non-HBR2 panels.
* As per comments on earlier version, merged few patches
  (that added new functions) with the upfront link train patch,
  to facilitate easy review.

Link for v6:    https://patchwork.freedesktop.org/patch/88189/
Link for v5:    https://patchwork.freedesktop.org/patch/87327/
Link for v4:    https://patchwork.freedesktop.org/patch/81656/
Link for v3:    https://patchwork.freedesktop.org/patch/79792/
Link for v2:    https://patchwork.freedesktop.org/patch/72207/
Link for v1:    https://patchwork.freedesktop.org/patch/67784/
Link for RFCv2: https://patchwork.freedesktop.org/patch/61776/
Link for RFCv1: https://patchwork.freedesktop.org/patch/59589/

Ander Conselvan de Oliveira (3):
  drm/i915: Don't pass crtc_state to intel_dp_set_link_params()
  drm/i915: Remove ddi_pll_sel from intel_crtc_state
  drm/i915: Split intel_ddi_pre_enable() into DP and HDMI versions

Durgadoss R (2):
  drm/i915: Split bxt_ddi_pll_select()
  drm/i915/dp: Enable Upfront link training for typeC DP support on BXT

 drivers/gpu/drm/i915/intel_ddi.c              | 162 ++++++++++++++++------
 drivers/gpu/drm/i915/intel_display.c          |  43 ++----
 drivers/gpu/drm/i915/intel_dp.c               | 164 ++++++++++++++++++++--
 drivers/gpu/drm/i915/intel_dp_link_training.c |   7 +-
 drivers/gpu/drm/i915/intel_dp_mst.c           |   7 +-
 drivers/gpu/drm/i915/intel_dpll_mgr.c         | 192 ++++++++++++++------------
 drivers/gpu/drm/i915/intel_dpll_mgr.h         |   3 +
 drivers/gpu/drm/i915/intel_drv.h              |  25 ++--
 8 files changed, 414 insertions(+), 189 deletions(-)

-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux