[PATCH v4 0/5] Move workarounds from intel_dp_dpcd_read_wake() into drm's DP helpers

From: Lyude
Date: Thu Mar 24 2016 - 14:27:35 EST


This series of patches takes all of the workarounds we used in
intel_dp_dpcd_read_wake() for working around misbehaving sinks into drm's DP
aux transaction helpers, so that they can be applied to all aux transactions
across each driver. While this patch series was intended to fix issues with the
ThinkPad T560 not bringing displays connected to it's dock back up properly
after suspend, this should fix a lot of other various DP issues by ensuring
that we retry transactions appropriately in every possible failure scenario.

Changes since v3
- Split the patch that moves the logic out of intel_dp_dpcd_read_wake() into
multiple patches for each workaround that we apply, so that bisecting this
change isn't difficult in the event that this breaks something

- Made sure that drm_dp_dpcd_read() only returns the error it encountered during
the first attempted aux transaction, since the error that following retries
encounter might be different from the original

Changes since v2
- Reworked the patch again to incorporate all of the behavior of
intel_dp_dpcd_read_wake() into drm_dp_dpcd_read() and drm_dp_dpcd_access()

Changes since v1
- Patch has been reworked to take the retry logic out of intel_dp_mst_resume()
and into drm_dp_dpcd_access(), based off a suggestion from Daniel Vetter

- Commit message is much longer and gives a better description of the
issue this was originally intended to workaround.

Lyude (5):
drm/dp_helper: Increase retry interval to 1000us
drm/dp_helper: Always wait before retrying native aux transactions
drm/dp_helper: Retry aux transactions on all errors
drm/dp_helper: Perform throw-away read before actual read in
drm_dp_dpcd_read()
drm/i915: Get rid of intel_dp_dpcd_read_wake()

drivers/gpu/drm/drm_dp_helper.c | 55 ++++++++++++++++------------
drivers/gpu/drm/i915/intel_dp.c | 79 ++++++++++++-----------------------------
2 files changed, 54 insertions(+), 80 deletions(-)

--
2.5.5