public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] drm/i915: DP link training optimization
@ 2015-04-29  6:17 Mika Kahola
  2015-04-29  6:17 ` [PATCH v4 1/2] " Mika Kahola
  2015-04-29  6:17 ` [PATCH v4 2/2] " Mika Kahola
  0 siblings, 2 replies; 7+ messages in thread
From: Mika Kahola @ 2015-04-29  6:17 UTC (permalink / raw)
  To: intel-gfx

This is patch series optimizes DP link training by reusing
the link parameter settings if DP link has bee previously
trained. In case we are not able to train the link by reusing
the known values, the link training parameters are set
to zero and training is restarted.

The first patch is for eDP only where we reuse
the previously trained link training values from cache
i.e. voltage swing and pre-emphasis levels.

The second patch is a generalization to cover DP case.

Mika Kahola (2):
  drm/i915: DP link training optimization
  drm/i915: DP link training optimization

 drivers/gpu/drm/i915/intel_dp.c  | 29 ++++++++++++++++++++++++++---
 drivers/gpu/drm/i915/intel_drv.h |  1 +
 2 files changed, 27 insertions(+), 3 deletions(-)

-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v4 1/2] drm/i915: DP link training optimization
  2015-04-29  6:17 [PATCH v4 0/2] drm/i915: DP link training optimization Mika Kahola
@ 2015-04-29  6:17 ` Mika Kahola
  2015-04-29  6:26   ` Sivakumar Thulasimani
  2015-04-29  6:17 ` [PATCH v4 2/2] " Mika Kahola
  1 sibling, 1 reply; 7+ messages in thread
From: Mika Kahola @ 2015-04-29  6:17 UTC (permalink / raw)
  To: intel-gfx

This is a first of series patches that optimize DP link
training. The first patch is for eDP only where we reuse
the previously trained link training values from cache
i.e. voltage swing and pre-emphasis levels.

In case we are not able to train the link by reusing
the known values, the link training parameters are set
to zero and training is restarted.

V2:
- flag that indicates if DP link is trained and valid
  renamed from 'link_trained' to 'train_set_valid'
- removed routine 'intel_dp_reuse_link_train'

V3:
- rebased against the latest drm-intel-nightly

V4:
- removed HPD long pulse handling for eDP case to clear the
  flag that indicates to reuse the current link training
  parameters. (based on Sivakumar's comment)

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c  | 27 ++++++++++++++++++++++++---
 drivers/gpu/drm/i915/intel_drv.h |  1 +
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 937ba31..e0b35cb 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3547,7 +3547,8 @@ static bool
 intel_dp_reset_link_train(struct intel_dp *intel_dp, uint32_t *DP,
 			uint8_t dp_train_pat)
 {
-	memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
+	if (!intel_dp->train_set_valid)
+		memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
 	intel_dp_set_signal_levels(intel_dp, DP);
 	return intel_dp_set_link_train(intel_dp, DP, dp_train_pat);
 }
@@ -3660,6 +3661,23 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
 			break;
 		}
 
+		/*
+		 * if we used previously trained voltage and pre-emphasis values
+		 * and we don't get clock recovery, reset link training values
+		 */
+		if (intel_dp->train_set_valid) {
+			DRM_DEBUG_KMS("clock recovery not ok, reset");
+			/* clear the flag as we are not reusing train set */
+			intel_dp->train_set_valid = false;
+			if (!intel_dp_reset_link_train(intel_dp, &DP,
+						       DP_TRAINING_PATTERN_1 |
+						       DP_LINK_SCRAMBLING_DISABLE)) {
+				DRM_ERROR("failed to enable link training\n");
+				return;
+			}
+			continue;
+		}
+
 		/* Check to see if we've tried the max voltage */
 		for (i = 0; i < intel_dp->lane_count; i++)
 			if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0)
@@ -3737,6 +3755,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
 
 		/* Make sure clock is still ok */
 		if (!drm_dp_clock_recovery_ok(link_status, intel_dp->lane_count)) {
+			intel_dp->train_set_valid = false;
 			intel_dp_start_link_train(intel_dp);
 			intel_dp_set_link_train(intel_dp, &DP,
 						training_pattern |
@@ -3752,6 +3771,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
 
 		/* Try 5 times, then try clock recovery if that fails */
 		if (tries > 5) {
+			intel_dp->train_set_valid = false;
 			intel_dp_start_link_train(intel_dp);
 			intel_dp_set_link_train(intel_dp, &DP,
 						training_pattern |
@@ -3773,9 +3793,10 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
 
 	intel_dp->DP = DP;
 
-	if (channel_eq)
+	if (channel_eq) {
+		intel_dp->train_set_valid = is_edp(intel_dp);
 		DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n");
-
+	}
 }
 
 void intel_dp_stop_link_train(struct intel_dp *intel_dp)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 43fe003..94197bd 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -736,6 +736,7 @@ struct intel_dp {
 				     bool has_aux_irq,
 				     int send_bytes,
 				     uint32_t aux_clock_divider);
+	bool train_set_valid;
 
 	/* Displayport compliance testing */
 	unsigned long compliance_test_type;
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v4 2/2] drm/i915: DP link training optimization
  2015-04-29  6:17 [PATCH v4 0/2] drm/i915: DP link training optimization Mika Kahola
  2015-04-29  6:17 ` [PATCH v4 1/2] " Mika Kahola
@ 2015-04-29  6:17 ` Mika Kahola
  2015-04-29  6:27   ` Sivakumar Thulasimani
  2015-04-30 10:50   ` shuang.he
  1 sibling, 2 replies; 7+ messages in thread
From: Mika Kahola @ 2015-04-29  6:17 UTC (permalink / raw)
  To: intel-gfx

This patch adds DP link training optimization by reusing the
previously trained values.

v2:
- rebase

V3:
- rebase

V4:
- when HPD long pulse is received, the flag is cleared
  that indicates if DP link training is required or not
  (based on Sivakumar's comment)

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index e0b35cb..bb1a8d0 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3794,7 +3794,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
 	intel_dp->DP = DP;
 
 	if (channel_eq) {
-		intel_dp->train_set_valid = is_edp(intel_dp);
+		intel_dp->train_set_valid = true;
 		DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n");
 	}
 }
@@ -4843,6 +4843,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 	intel_display_power_get(dev_priv, power_domain);
 
 	if (long_hpd) {
+		/* indicate that we need to restart link training */
+		intel_dp->train_set_valid = false;
 
 		if (HAS_PCH_SPLIT(dev)) {
 			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 1/2] drm/i915: DP link training optimization
  2015-04-29  6:17 ` [PATCH v4 1/2] " Mika Kahola
@ 2015-04-29  6:26   ` Sivakumar Thulasimani
  2015-05-06  9:44     ` Daniel Vetter
  0 siblings, 1 reply; 7+ messages in thread
From: Sivakumar Thulasimani @ 2015-04-29  6:26 UTC (permalink / raw)
  To: Mika Kahola, intel-gfx

Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>

On 4/29/2015 11:47 AM, Mika Kahola wrote:
> This is a first of series patches that optimize DP link
> training. The first patch is for eDP only where we reuse
> the previously trained link training values from cache
> i.e. voltage swing and pre-emphasis levels.
>
> In case we are not able to train the link by reusing
> the known values, the link training parameters are set
> to zero and training is restarted.
>
> V2:
> - flag that indicates if DP link is trained and valid
>    renamed from 'link_trained' to 'train_set_valid'
> - removed routine 'intel_dp_reuse_link_train'
>
> V3:
> - rebased against the latest drm-intel-nightly
>
> V4:
> - removed HPD long pulse handling for eDP case to clear the
>    flag that indicates to reuse the current link training
>    parameters. (based on Sivakumar's comment)
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_dp.c  | 27 ++++++++++++++++++++++++---
>   drivers/gpu/drm/i915/intel_drv.h |  1 +
>   2 files changed, 25 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 937ba31..e0b35cb 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -3547,7 +3547,8 @@ static bool
>   intel_dp_reset_link_train(struct intel_dp *intel_dp, uint32_t *DP,
>   			uint8_t dp_train_pat)
>   {
> -	memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
> +	if (!intel_dp->train_set_valid)
> +		memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
>   	intel_dp_set_signal_levels(intel_dp, DP);
>   	return intel_dp_set_link_train(intel_dp, DP, dp_train_pat);
>   }
> @@ -3660,6 +3661,23 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
>   			break;
>   		}
>   
> +		/*
> +		 * if we used previously trained voltage and pre-emphasis values
> +		 * and we don't get clock recovery, reset link training values
> +		 */
> +		if (intel_dp->train_set_valid) {
> +			DRM_DEBUG_KMS("clock recovery not ok, reset");
> +			/* clear the flag as we are not reusing train set */
> +			intel_dp->train_set_valid = false;
> +			if (!intel_dp_reset_link_train(intel_dp, &DP,
> +						       DP_TRAINING_PATTERN_1 |
> +						       DP_LINK_SCRAMBLING_DISABLE)) {
> +				DRM_ERROR("failed to enable link training\n");
> +				return;
> +			}
> +			continue;
> +		}
> +
>   		/* Check to see if we've tried the max voltage */
>   		for (i = 0; i < intel_dp->lane_count; i++)
>   			if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0)
> @@ -3737,6 +3755,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
>   
>   		/* Make sure clock is still ok */
>   		if (!drm_dp_clock_recovery_ok(link_status, intel_dp->lane_count)) {
> +			intel_dp->train_set_valid = false;
>   			intel_dp_start_link_train(intel_dp);
>   			intel_dp_set_link_train(intel_dp, &DP,
>   						training_pattern |
> @@ -3752,6 +3771,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
>   
>   		/* Try 5 times, then try clock recovery if that fails */
>   		if (tries > 5) {
> +			intel_dp->train_set_valid = false;
>   			intel_dp_start_link_train(intel_dp);
>   			intel_dp_set_link_train(intel_dp, &DP,
>   						training_pattern |
> @@ -3773,9 +3793,10 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
>   
>   	intel_dp->DP = DP;
>   
> -	if (channel_eq)
> +	if (channel_eq) {
> +		intel_dp->train_set_valid = is_edp(intel_dp);
>   		DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n");
> -
> +	}
>   }
>   
>   void intel_dp_stop_link_train(struct intel_dp *intel_dp)
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 43fe003..94197bd 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -736,6 +736,7 @@ struct intel_dp {
>   				     bool has_aux_irq,
>   				     int send_bytes,
>   				     uint32_t aux_clock_divider);
> +	bool train_set_valid;
>   
>   	/* Displayport compliance testing */
>   	unsigned long compliance_test_type;

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 2/2] drm/i915: DP link training optimization
  2015-04-29  6:17 ` [PATCH v4 2/2] " Mika Kahola
@ 2015-04-29  6:27   ` Sivakumar Thulasimani
  2015-04-30 10:50   ` shuang.he
  1 sibling, 0 replies; 7+ messages in thread
From: Sivakumar Thulasimani @ 2015-04-29  6:27 UTC (permalink / raw)
  To: Mika Kahola, intel-gfx

Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>

On 4/29/2015 11:47 AM, Mika Kahola wrote:
> This patch adds DP link training optimization by reusing the
> previously trained values.
>
> v2:
> - rebase
>
> V3:
> - rebase
>
> V4:
> - when HPD long pulse is received, the flag is cleared
>    that indicates if DP link training is required or not
>    (based on Sivakumar's comment)
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
>   drivers/gpu/drm/i915/intel_dp.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index e0b35cb..bb1a8d0 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -3794,7 +3794,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
>   	intel_dp->DP = DP;
>   
>   	if (channel_eq) {
> -		intel_dp->train_set_valid = is_edp(intel_dp);
> +		intel_dp->train_set_valid = true;
>   		DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n");
>   	}
>   }
> @@ -4843,6 +4843,8 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
>   	intel_display_power_get(dev_priv, power_domain);
>   
>   	if (long_hpd) {
> +		/* indicate that we need to restart link training */
> +		intel_dp->train_set_valid = false;
>   
>   		if (HAS_PCH_SPLIT(dev)) {
>   			if (!ibx_digital_port_connected(dev_priv, intel_dig_port))

-- 
regards,
Sivakumar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 2/2] drm/i915: DP link training optimization
  2015-04-29  6:17 ` [PATCH v4 2/2] " Mika Kahola
  2015-04-29  6:27   ` Sivakumar Thulasimani
@ 2015-04-30 10:50   ` shuang.he
  1 sibling, 0 replies; 7+ messages in thread
From: shuang.he @ 2015-04-30 10:50 UTC (permalink / raw)
  To: shuang.he, ethan.gao, intel-gfx, mika.kahola

Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6284
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  276/276              276/276
ILK                                  302/302              302/302
SNB                                  316/316              316/316
IVB                                  264/264              264/264
BYT                 -4              227/227              223/227
BDW                                  318/318              318/318
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
*BYT  igt@gem_dummy_reloc_loop@render      FAIL(1)PASS(8)      TIMEOUT(1)PASS(1)
*BYT  igt@gem_exec_parse@chained-batch      FAIL(1)PASS(2)      DMESG_WARN(1)PASS(1)
(dmesg patch applied)drm:check_crtc_state[i915]]*ERROR*mismatch_in_has_infoframe(expected#,found#)@mismatch in has_infoframe .* found
WARNING:at_drivers/gpu/drm/i915/intel_display.c:#check_crtc_state[i915]()@WARNING:.* at .* check_crtc_state+0x
 BYT  igt@gem_pipe_control_store_loop@fresh-buffer      FAIL(1)TIMEOUT(4)PASS(5)      TIMEOUT(2)
*BYT  igt@gem_userptr_blits@forked-unsync-interruptible      FAIL(1)PASS(2)      DMESG_WARN(1)
(dmesg patch applied)drm:check_crtc_state[i915]]*ERROR*mismatch_in_has_infoframe(expected#,found#)@mismatch in has_infoframe .* found
WARNING:at_drivers/gpu/drm/i915/intel_display.c:#check_crtc_state[i915]()@WARNING:.* at .* check_crtc_state+0x
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 1/2] drm/i915: DP link training optimization
  2015-04-29  6:26   ` Sivakumar Thulasimani
@ 2015-05-06  9:44     ` Daniel Vetter
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2015-05-06  9:44 UTC (permalink / raw)
  To: Sivakumar Thulasimani; +Cc: intel-gfx

On Wed, Apr 29, 2015 at 11:56:41AM +0530, Sivakumar Thulasimani wrote:
> Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>
> 
> On 4/29/2015 11:47 AM, Mika Kahola wrote:
> >This is a first of series patches that optimize DP link
> >training. The first patch is for eDP only where we reuse
> >the previously trained link training values from cache
> >i.e. voltage swing and pre-emphasis levels.
> >
> >In case we are not able to train the link by reusing
> >the known values, the link training parameters are set
> >to zero and training is restarted.
> >
> >V2:
> >- flag that indicates if DP link is trained and valid
> >   renamed from 'link_trained' to 'train_set_valid'
> >- removed routine 'intel_dp_reuse_link_train'
> >
> >V3:
> >- rebased against the latest drm-intel-nightly
> >
> >V4:
> >- removed HPD long pulse handling for eDP case to clear the
> >   flag that indicates to reuse the current link training
> >   parameters. (based on Sivakumar's comment)
> >
> >Signed-off-by: Mika Kahola <mika.kahola@intel.com>

Both merged, with an s/DP/eDP/ on this one to make the different scope of
the 2 patches clear. Two patches with the same summary is confusing ;-)

Thanks, Daniel
> >---
> >  drivers/gpu/drm/i915/intel_dp.c  | 27 ++++++++++++++++++++++++---
> >  drivers/gpu/drm/i915/intel_drv.h |  1 +
> >  2 files changed, 25 insertions(+), 3 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> >index 937ba31..e0b35cb 100644
> >--- a/drivers/gpu/drm/i915/intel_dp.c
> >+++ b/drivers/gpu/drm/i915/intel_dp.c
> >@@ -3547,7 +3547,8 @@ static bool
> >  intel_dp_reset_link_train(struct intel_dp *intel_dp, uint32_t *DP,
> >  			uint8_t dp_train_pat)
> >  {
> >-	memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
> >+	if (!intel_dp->train_set_valid)
> >+		memset(intel_dp->train_set, 0, sizeof(intel_dp->train_set));
> >  	intel_dp_set_signal_levels(intel_dp, DP);
> >  	return intel_dp_set_link_train(intel_dp, DP, dp_train_pat);
> >  }
> >@@ -3660,6 +3661,23 @@ intel_dp_start_link_train(struct intel_dp *intel_dp)
> >  			break;
> >  		}
> >+		/*
> >+		 * if we used previously trained voltage and pre-emphasis values
> >+		 * and we don't get clock recovery, reset link training values
> >+		 */
> >+		if (intel_dp->train_set_valid) {
> >+			DRM_DEBUG_KMS("clock recovery not ok, reset");
> >+			/* clear the flag as we are not reusing train set */
> >+			intel_dp->train_set_valid = false;
> >+			if (!intel_dp_reset_link_train(intel_dp, &DP,
> >+						       DP_TRAINING_PATTERN_1 |
> >+						       DP_LINK_SCRAMBLING_DISABLE)) {
> >+				DRM_ERROR("failed to enable link training\n");
> >+				return;
> >+			}
> >+			continue;
> >+		}
> >+
> >  		/* Check to see if we've tried the max voltage */
> >  		for (i = 0; i < intel_dp->lane_count; i++)
> >  			if ((intel_dp->train_set[i] & DP_TRAIN_MAX_SWING_REACHED) == 0)
> >@@ -3737,6 +3755,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
> >  		/* Make sure clock is still ok */
> >  		if (!drm_dp_clock_recovery_ok(link_status, intel_dp->lane_count)) {
> >+			intel_dp->train_set_valid = false;
> >  			intel_dp_start_link_train(intel_dp);
> >  			intel_dp_set_link_train(intel_dp, &DP,
> >  						training_pattern |
> >@@ -3752,6 +3771,7 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
> >  		/* Try 5 times, then try clock recovery if that fails */
> >  		if (tries > 5) {
> >+			intel_dp->train_set_valid = false;
> >  			intel_dp_start_link_train(intel_dp);
> >  			intel_dp_set_link_train(intel_dp, &DP,
> >  						training_pattern |
> >@@ -3773,9 +3793,10 @@ intel_dp_complete_link_train(struct intel_dp *intel_dp)
> >  	intel_dp->DP = DP;
> >-	if (channel_eq)
> >+	if (channel_eq) {
> >+		intel_dp->train_set_valid = is_edp(intel_dp);
> >  		DRM_DEBUG_KMS("Channel EQ done. DP Training successful\n");
> >-
> >+	}
> >  }
> >  void intel_dp_stop_link_train(struct intel_dp *intel_dp)
> >diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> >index 43fe003..94197bd 100644
> >--- a/drivers/gpu/drm/i915/intel_drv.h
> >+++ b/drivers/gpu/drm/i915/intel_drv.h
> >@@ -736,6 +736,7 @@ struct intel_dp {
> >  				     bool has_aux_irq,
> >  				     int send_bytes,
> >  				     uint32_t aux_clock_divider);
> >+	bool train_set_valid;
> >  	/* Displayport compliance testing */
> >  	unsigned long compliance_test_type;
> 
> -- 
> regards,
> Sivakumar
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-05-06  9:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-29  6:17 [PATCH v4 0/2] drm/i915: DP link training optimization Mika Kahola
2015-04-29  6:17 ` [PATCH v4 1/2] " Mika Kahola
2015-04-29  6:26   ` Sivakumar Thulasimani
2015-05-06  9:44     ` Daniel Vetter
2015-04-29  6:17 ` [PATCH v4 2/2] " Mika Kahola
2015-04-29  6:27   ` Sivakumar Thulasimani
2015-04-30 10:50   ` shuang.he

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox