aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2013-09-20 09:42:15 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-05 10:13:11 -0400
commitd113feebb1081c4baa720c5fc99c984fb4e2e598 (patch)
tree75d7a1b495bf84f78b4d26368306ef25319202ed /drivers/gpu/drm
parent3ef7d935f87406489889c792ebc1218feaeaab44 (diff)
drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER
commit 8d16f258217f2f583af1fd57c5144aa4bbe73e48 upstream. There is no clear cut rules or specs for the retry interval, as there are many factors that affect overall response time. Increase the interval, and even more so on branch devices which may have limited i2c bit rates. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=60263 Tested-by: Nicolas Suzor <nic@suzor.com> Reviewed-by: Todd Previte <tprevite@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 70789b1b5642..80feaec88d2b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -604,7 +604,18 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
604 DRM_DEBUG_KMS("aux_ch native nack\n"); 604 DRM_DEBUG_KMS("aux_ch native nack\n");
605 return -EREMOTEIO; 605 return -EREMOTEIO;
606 case AUX_NATIVE_REPLY_DEFER: 606 case AUX_NATIVE_REPLY_DEFER:
607 udelay(100); 607 /*
608 * For now, just give more slack to branch devices. We
609 * could check the DPCD for I2C bit rate capabilities,
610 * and if available, adjust the interval. We could also
611 * be more careful with DP-to-Legacy adapters where a
612 * long legacy cable may force very low I2C bit rates.
613 */
614 if (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] &
615 DP_DWN_STRM_PORT_PRESENT)
616 usleep_range(500, 600);
617 else
618 usleep_range(300, 400);
608 continue; 619 continue;
609 default: 620 default:
610 DRM_ERROR("aux_ch invalid native reply 0x%02x\n", 621 DRM_ERROR("aux_ch invalid native reply 0x%02x\n",