提交 f1239595 编写于 作者: I Imre Deak

drm/i915/lspcon: Remove DPCD compare based resume time workaround

This effectively reverts
commit 489375c8
Author: Imre Deak <imre.deak@intel.com>
Date:   Mon Oct 24 19:33:31 2016 +0300

    drm/i915/lspcon: Add workaround for resuming in PCON mode

The workaround was added without considering that HPD is low during
the failed AUX transfers the WA fixed. Since the previous patch we
wait for HPD to get asserted. My tests also show that this happens
_after_ the DPCD reads start to return correct values. This
suggests that we don't need this WA any more, let's try to remove
it to reduce the clutter.

Cc: Shashank Sharma <shashank.sharma@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: NImre Deak <imre.deak@intel.com>
Reviewed-by: NShashank Sharma <shashank.sharma@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1485509961-9010-4-git-send-email-imre.deak@intel.com
上级 390b4e00
...@@ -1002,7 +1002,6 @@ struct intel_dp { ...@@ -1002,7 +1002,6 @@ struct intel_dp {
struct intel_lspcon { struct intel_lspcon {
bool active; bool active;
enum drm_lspcon_mode mode; enum drm_lspcon_mode mode;
bool desc_valid;
}; };
struct intel_digital_port { struct intel_digital_port {
......
...@@ -162,21 +162,8 @@ static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon) ...@@ -162,21 +162,8 @@ static void lspcon_resume_in_pcon_wa(struct intel_lspcon *lspcon)
struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
unsigned long start = jiffies; unsigned long start = jiffies;
if (!lspcon->desc_valid)
return;
while (1) { while (1) {
struct intel_dp_desc desc; if (intel_digital_port_connected(dev_priv, dig_port)) {
/*
* The w/a only applies in PCON mode and we don't expect any
* AUX errors.
*/
if (!__intel_dp_read_desc(intel_dp, &desc))
return;
if (intel_digital_port_connected(dev_priv, dig_port) &&
!memcmp(&intel_dp->desc, &desc, sizeof(desc))) {
DRM_DEBUG_KMS("LSPCON recovering in PCON mode after %u ms\n", DRM_DEBUG_KMS("LSPCON recovering in PCON mode after %u ms\n",
jiffies_to_msecs(jiffies - start)); jiffies_to_msecs(jiffies - start));
return; return;
...@@ -253,7 +240,7 @@ bool lspcon_init(struct intel_digital_port *intel_dig_port) ...@@ -253,7 +240,7 @@ bool lspcon_init(struct intel_digital_port *intel_dig_port)
return false; return false;
} }
lspcon->desc_valid = intel_dp_read_desc(dp); intel_dp_read_desc(dp);
DRM_DEBUG_KMS("Success: LSPCON init\n"); DRM_DEBUG_KMS("Success: LSPCON init\n");
return true; return true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册