This patch series is a final revision of previous patch series for handling
link training failure. This has been polished in terms of the kernel 
documentation
based on review feedback.

One more patch is added to move sink's max link rate and lane count
to intel_dp and compute it at hotplug and only if link training fails else
keept it constant. This greatly simplifies the link train fallback logic
by changing the max link rate/lane count to the fallback values instead
of creating separate fallback values for link rate/lane count.

In general the idea is to if link training fails during or after atomic modeset,
then the driver sets the link-status property to BAD and sends a HOTPLUG
uevent to notify userspace that link status is BAD. The userspace can be 
modified
to be "link-status" property aware and on detecting link-status as BAD, it 
should
revalidate the modes and redo a modeset which in turn will retrain the link
at lower fallback values.

This has been validated and is proved to pass DP compliance uisng DPR-120.

Manasi Navare (4):
  drm: Add a new connector atomic property for link status
  drm/i915: Compute sink's max lane count/link BW at Hotplug
  drm/i915: Find fallback link rate/lane count
  drm/i915: Implement Link Rate fallback on Link training failure

 drivers/gpu/drm/drm_atomic.c                  | 10 ++++
 drivers/gpu/drm/drm_atomic_helper.c           | 15 ++++++
 drivers/gpu/drm/drm_connector.c               | 53 ++++++++++++++++++
 drivers/gpu/drm/i915/intel_dp.c               | 77 ++++++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_dp_link_training.c | 22 +++++++-
 drivers/gpu/drm/i915/intel_drv.h              |  9 ++++
 include/drm/drm_connector.h                   | 19 +++++++
 include/drm/drm_mode_config.h                 |  5 ++
 include/uapi/drm/drm_mode.h                   |  4 ++
 9 files changed, 210 insertions(+), 4 deletions(-)

-- 
1.9.1

Reply via email to