diff mbox

[2/2] drm/i915: Don't give up waiting on INVALID_MODE

Message ID 1502458107-28852-2-git-send-email-shashank.sharma@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sharma, Shashank Aug. 11, 2017, 1:28 p.m. UTC
Our current logic to read LSPCON's current mode, stops retries and
breaks wait-loop, if it gets LSPCON_MODE_INVALID as return from the
core function. This doesn't allow us to try reading the mode again.

This patch removes this condition and allows retries reading
the currnt mode until timeout.

This also fixes/prevents some of the noise in form of debug messages
while running IGT CI test cases.

Cc: Imre Deak <imre.deak@intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Signed-off-by: Mahesh Kumar <Mahesh1.kumar@intel.com>
---
 drivers/gpu/drm/i915/intel_lspcon.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Dhinakaran Pandiyan Aug. 15, 2017, 12:21 a.m. UTC | #1
On Fri, 2017-08-11 at 18:58 +0530, Shashank Sharma wrote:
> Our current logic to read LSPCON's current mode, stops retries and

> breaks wait-loop, if it gets LSPCON_MODE_INVALID as return from the

> core function. This doesn't allow us to try reading the mode again.

> 

> This patch removes this condition and allows retries reading

> the currnt mode until timeout.

> 

> This also fixes/prevents some of the noise in form of debug messages

> while running IGT CI test cases.

> 

> Cc: Imre Deak <imre.deak@intel.com>

> Cc: Daniel Vetter <daniel.vetter@intel.com>

> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>

> Signed-off-by: Mahesh Kumar <Mahesh1.kumar@intel.com>

> ---

>  drivers/gpu/drm/i915/intel_lspcon.c | 5 ++---

>  1 file changed, 2 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c

> index 8413a4c..e64a336 100644

> --- a/drivers/gpu/drm/i915/intel_lspcon.c

> +++ b/drivers/gpu/drm/i915/intel_lspcon.c

> @@ -118,14 +118,13 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,

>  	enum drm_lspcon_mode current_mode;

>  

>  	current_mode = lspcon_get_current_mode(lspcon);

> -	if (current_mode == mode || current_mode == DRM_LSPCON_MODE_INVALID)

> +	if (current_mode == mode)

>  		goto out;

>  

>  	DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",

>  		      lspcon_mode_name(mode));

>  

> -	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode ||

> -		 current_mode == DRM_LSPCON_MODE_INVALID, 100);

> +	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);


Doesn't this do the job of retries that you are adding in patch 1/2 ?

>  	if (current_mode != mode)

>  		DRM_DEBUG_KMS("LSPCON mode hasn't settled\n");

>
Imre Deak Aug. 16, 2017, 2:06 p.m. UTC | #2
On Fri, Aug 11, 2017 at 06:58:27PM +0530, Shashank Sharma wrote:
> Our current logic to read LSPCON's current mode, stops retries and
> breaks wait-loop, if it gets LSPCON_MODE_INVALID as return from the
> core function. This doesn't allow us to try reading the mode again.
> 
> This patch removes this condition and allows retries reading
> the currnt mode until timeout.
> 
> This also fixes/prevents some of the noise in form of debug messages
> while running IGT CI test cases.
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> Signed-off-by: Mahesh Kumar <Mahesh1.kumar@intel.com>

Reviewed-by: Imre Deak <imre.deak@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_lspcon.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
> index 8413a4c..e64a336 100644
> --- a/drivers/gpu/drm/i915/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/intel_lspcon.c
> @@ -118,14 +118,13 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
>  	enum drm_lspcon_mode current_mode;
>  
>  	current_mode = lspcon_get_current_mode(lspcon);
> -	if (current_mode == mode || current_mode == DRM_LSPCON_MODE_INVALID)
> +	if (current_mode == mode)
>  		goto out;
>  
>  	DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
>  		      lspcon_mode_name(mode));
>  
> -	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode ||
> -		 current_mode == DRM_LSPCON_MODE_INVALID, 100);
> +	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
>  	if (current_mode != mode)
>  		DRM_DEBUG_KMS("LSPCON mode hasn't settled\n");
>  
> -- 
> 2.7.4
>
Imre Deak Aug. 16, 2017, 2:08 p.m. UTC | #3
On Tue, Aug 15, 2017 at 12:21:14AM +0000, Pandiyan, Dhinakaran wrote:
> On Fri, 2017-08-11 at 18:58 +0530, Shashank Sharma wrote:
> > Our current logic to read LSPCON's current mode, stops retries and
> > breaks wait-loop, if it gets LSPCON_MODE_INVALID as return from the
> > core function. This doesn't allow us to try reading the mode again.
> > 
> > This patch removes this condition and allows retries reading
> > the currnt mode until timeout.
> > 
> > This also fixes/prevents some of the noise in form of debug messages
> > while running IGT CI test cases.
> > 
> > Cc: Imre Deak <imre.deak@intel.com>
> > Cc: Daniel Vetter <daniel.vetter@intel.com>
> > Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> > Signed-off-by: Mahesh Kumar <Mahesh1.kumar@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_lspcon.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
> > index 8413a4c..e64a336 100644
> > --- a/drivers/gpu/drm/i915/intel_lspcon.c
> > +++ b/drivers/gpu/drm/i915/intel_lspcon.c
> > @@ -118,14 +118,13 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
> >  	enum drm_lspcon_mode current_mode;
> >  
> >  	current_mode = lspcon_get_current_mode(lspcon);
> > -	if (current_mode == mode || current_mode == DRM_LSPCON_MODE_INVALID)
> > +	if (current_mode == mode)
> >  		goto out;
> >  
> >  	DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
> >  		      lspcon_mode_name(mode));
> >  
> > -	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode ||
> > -		 current_mode == DRM_LSPCON_MODE_INVALID, 100);
> > +	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
> 
> Doesn't this do the job of retries that you are adding in patch 1/2 ?

No that's a workaround for a different issue, where the adaptor is
initially in LS mode, but switches on its own to PCON mode after some
delay.

> 
> >  	if (current_mode != mode)
> >  		DRM_DEBUG_KMS("LSPCON mode hasn't settled\n");
> >  
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Sharma, Shashank Aug. 16, 2017, 3:50 p.m. UTC | #4
Regards

Shashank


On 8/15/2017 5:51 AM, Pandiyan, Dhinakaran wrote:
> On Fri, 2017-08-11 at 18:58 +0530, Shashank Sharma wrote:
>> Our current logic to read LSPCON's current mode, stops retries and
>> breaks wait-loop, if it gets LSPCON_MODE_INVALID as return from the
>> core function. This doesn't allow us to try reading the mode again.
>>
>> This patch removes this condition and allows retries reading
>> the currnt mode until timeout.
>>
>> This also fixes/prevents some of the noise in form of debug messages
>> while running IGT CI test cases.
>>
>> Cc: Imre Deak <imre.deak@intel.com>
>> Cc: Daniel Vetter <daniel.vetter@intel.com>
>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>> Signed-off-by: Mahesh Kumar <Mahesh1.kumar@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_lspcon.c | 5 ++---
>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
>> index 8413a4c..e64a336 100644
>> --- a/drivers/gpu/drm/i915/intel_lspcon.c
>> +++ b/drivers/gpu/drm/i915/intel_lspcon.c
>> @@ -118,14 +118,13 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
>>   	enum drm_lspcon_mode current_mode;
>>   
>>   	current_mode = lspcon_get_current_mode(lspcon);
>> -	if (current_mode == mode || current_mode == DRM_LSPCON_MODE_INVALID)
>> +	if (current_mode == mode)
>>   		goto out;
>>   
>>   	DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
>>   		      lspcon_mode_name(mode));
>>   
>> -	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode ||
>> -		 current_mode == DRM_LSPCON_MODE_INVALID, 100);
>> +	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
> Doesn't this do the job of retries that you are adding in patch 1/2 ?
I think Imre has responded on this comment already, and explained better 
than me :)
- Shashank
>>   	if (current_mode != mode)
>>   		DRM_DEBUG_KMS("LSPCON mode hasn't settled\n");
>>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
index 8413a4c..e64a336 100644
--- a/drivers/gpu/drm/i915/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/intel_lspcon.c
@@ -118,14 +118,13 @@  static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon,
 	enum drm_lspcon_mode current_mode;
 
 	current_mode = lspcon_get_current_mode(lspcon);
-	if (current_mode == mode || current_mode == DRM_LSPCON_MODE_INVALID)
+	if (current_mode == mode)
 		goto out;
 
 	DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n",
 		      lspcon_mode_name(mode));
 
-	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode ||
-		 current_mode == DRM_LSPCON_MODE_INVALID, 100);
+	wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100);
 	if (current_mode != mode)
 		DRM_DEBUG_KMS("LSPCON mode hasn't settled\n");