diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 13 |
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 9770160c0085..60d2006fe15d 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -673,7 +673,18 @@ intel_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode, | |||
673 | DRM_DEBUG_KMS("aux_ch native nack\n"); | 673 | DRM_DEBUG_KMS("aux_ch native nack\n"); |
674 | return -EREMOTEIO; | 674 | return -EREMOTEIO; |
675 | case AUX_NATIVE_REPLY_DEFER: | 675 | case AUX_NATIVE_REPLY_DEFER: |
676 | udelay(100); | 676 | /* |
677 | * For now, just give more slack to branch devices. We | ||
678 | * could check the DPCD for I2C bit rate capabilities, | ||
679 | * and if available, adjust the interval. We could also | ||
680 | * be more careful with DP-to-Legacy adapters where a | ||
681 | * long legacy cable may force very low I2C bit rates. | ||
682 | */ | ||
683 | if (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & | ||
684 | DP_DWN_STRM_PORT_PRESENT) | ||
685 | usleep_range(500, 600); | ||
686 | else | ||
687 | usleep_range(300, 400); | ||
677 | continue; | 688 | continue; |
678 | default: | 689 | default: |
679 | DRM_ERROR("aux_ch invalid native reply 0x%02x\n", | 690 | DRM_ERROR("aux_ch invalid native reply 0x%02x\n", |