diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-11-05 02:11:32 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-11-08 12:10:07 -0500 |
commit | a81a507d487c1696c67d4cd9dc6f11bdd0548e22 (patch) | |
tree | 3939d893722d6c445084da84ed083462f3cca89e | |
parent | b42c60090ce25e141a535ef8ec0a6ffd58c06a94 (diff) |
drm/i915/bdw: Change dp aux timeout to 600us on DDIA
Cc: Art Runyan <arthur.j.runyan@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 46837a0f6f6f..3fec49b91d25 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -405,6 +405,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, | |||
405 | uint32_t status; | 405 | uint32_t status; |
406 | int try, precharge, clock = 0; | 406 | int try, precharge, clock = 0; |
407 | bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev); | 407 | bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev); |
408 | uint32_t timeout; | ||
408 | 409 | ||
409 | /* dp aux is extremely sensitive to irq latency, hence request the | 410 | /* dp aux is extremely sensitive to irq latency, hence request the |
410 | * lowest possible wakeup latency and so prevent the cpu from going into | 411 | * lowest possible wakeup latency and so prevent the cpu from going into |
@@ -419,6 +420,11 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, | |||
419 | else | 420 | else |
420 | precharge = 5; | 421 | precharge = 5; |
421 | 422 | ||
423 | if (IS_BROADWELL(dev) && ch_ctl == DPA_AUX_CH_CTL) | ||
424 | timeout = DP_AUX_CH_CTL_TIME_OUT_600us; | ||
425 | else | ||
426 | timeout = DP_AUX_CH_CTL_TIME_OUT_400us; | ||
427 | |||
422 | intel_aux_display_runtime_get(dev_priv); | 428 | intel_aux_display_runtime_get(dev_priv); |
423 | 429 | ||
424 | /* Try to wait for any previous AUX channel activity */ | 430 | /* Try to wait for any previous AUX channel activity */ |
@@ -454,7 +460,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, | |||
454 | I915_WRITE(ch_ctl, | 460 | I915_WRITE(ch_ctl, |
455 | DP_AUX_CH_CTL_SEND_BUSY | | 461 | DP_AUX_CH_CTL_SEND_BUSY | |
456 | (has_aux_irq ? DP_AUX_CH_CTL_INTERRUPT : 0) | | 462 | (has_aux_irq ? DP_AUX_CH_CTL_INTERRUPT : 0) | |
457 | DP_AUX_CH_CTL_TIME_OUT_400us | | 463 | timeout | |
458 | (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | | 464 | (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | |
459 | (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | | 465 | (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | |
460 | (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | | 466 | (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | |