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 : Moves finding unused crtc to a common function Patch 2/3 : Split ddi_pll_select to be able to calculate pll config for DP during upfront link train Patch 3/3 : Upfront implementation for BXT platform 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 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/ Durgadoss R (3): drm/i915: Make finding unused crtc as a generic function 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 | 73 ++++++++++++++ drivers/gpu/drm/i915/intel_display.c | 74 ++++++++------ drivers/gpu/drm/i915/intel_dp.c | 180 +++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_dpll_mgr.c | 166 +++++++++++++++++-------------- drivers/gpu/drm/i915/intel_dpll_mgr.h | 17 ++++ drivers/gpu/drm/i915/intel_drv.h | 7 ++ 6 files changed, 409 insertions(+), 108 deletions(-) -- 1.9.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx