All of lore.kernel.org
 help / color / mirror / Atom feed
* RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
@ 2014-02-21 19:59 Arend van Spriel
  2014-03-06  9:29 ` Arend van Spriel
  2014-03-20  5:32 ` Aaron Lu
  0 siblings, 2 replies; 7+ messages in thread
From: Arend van Spriel @ 2014-02-21 19:59 UTC (permalink / raw)
  To: Chris Ball; +Cc: linux-mmc, Arend van Spriel, Dong Aisheng, Aaron Lu

When the host->tuning_count is zero it means that the
retuning is disabled. This is checked on the first
run of sdhci_execute_tuning() by the if statement below:

	if (!(host->flags & SDHCI_NEEDS_RETUNING) && host->tuning_count &&
	    (host->tuning_mode == SDHCI_TUNING_MODE_1)) {

So only when tuning_count is non-zero it will set the host
flag SDHCI_USING_RETUNING_TIMER. The else statement is only
for re-programming the timer, which means that flag must be
set. Because that is not checked the else statement is executed
in the first run when tuning_count is zero.

This was seen on a host controller which indicated
SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
that (one of) these registers is not properly set.

Cc: Dong Aisheng <dongas86@gmail.com>
Cc: Aaron Lu <aaron.lwe@gmail.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
Noticed this patch was still not applied so please reconsider
taking it in and let me know. The patch has been rebased and
applies to the mmc-next branch.

Regards,
Arend

V3:
- remote tuning mode check for retuning timer reload

V2:
- add more explanation to the commit message
- check host flag SDHCI_USING_RETUNING_TIMER
---
 drivers/mmc/host/sdhci.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 9ddef47..d5b421d 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2026,12 +2026,11 @@ out:
 			host->tuning_count * HZ);
 		/* Tuning mode 1 limits the maximum data length to 4MB */
 		mmc->max_blk_count = (4 * 1024 * 1024) / mmc->max_blk_size;
-	} else {
+	} else if (host->flags & SDHCI_USING_RETUNING_TIMER) {
 		host->flags &= ~SDHCI_NEEDS_RETUNING;
 		/* Reload the new initial value for timer */
-		if (host->tuning_mode == SDHCI_TUNING_MODE_1)
-			mod_timer(&host->tuning_timer, jiffies +
-				host->tuning_count * HZ);
+		mod_timer(&host->tuning_timer, jiffies +
+			  host->tuning_count * HZ);
 	}
 
 	/*
-- 
1.8.1.3


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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-02-21 19:59 RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set Arend van Spriel
@ 2014-03-06  9:29 ` Arend van Spriel
  2014-03-07  4:06   ` Ulf Hansson
  2014-03-20  5:32 ` Aaron Lu
  1 sibling, 1 reply; 7+ messages in thread
From: Arend van Spriel @ 2014-03-06  9:29 UTC (permalink / raw)
  To: Chris Ball; +Cc: linux-mmc, Dong Aisheng, Aaron Lu, Ulf Hansson

On 02/21/2014 08:59 PM, Arend van Spriel wrote:
> When the host->tuning_count is zero it means that the
> retuning is disabled. This is checked on the first
> run of sdhci_execute_tuning() by the if statement below:
> 
> 	if (!(host->flags & SDHCI_NEEDS_RETUNING) && host->tuning_count &&
> 	    (host->tuning_mode == SDHCI_TUNING_MODE_1)) {
> 
> So only when tuning_count is non-zero it will set the host
> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
> for re-programming the timer, which means that flag must be
> set. Because that is not checked the else statement is executed
> in the first run when tuning_count is zero.
> 
> This was seen on a host controller which indicated
> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
> that (one of) these registers is not properly set.
> 
> Cc: Dong Aisheng <dongas86@gmail.com>
> Cc: Aaron Lu <aaron.lwe@gmail.com>
> Signed-off-by: Arend van Spriel <arend@broadcom.com>
> ---
> Noticed this patch was still not applied so please reconsider
> taking it in and let me know. The patch has been rebased and
> applies to the mmc-next branch.

ping? Am I on some spam filter? What is needed to get this change applied?

Regards,
Arend

> Regards,
> Arend
> 
> V3:
> - remote tuning mode check for retuning timer reload
> 
> V2:
> - add more explanation to the commit message
> - check host flag SDHCI_USING_RETUNING_TIMER
> ---
>  drivers/mmc/host/sdhci.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 9ddef47..d5b421d 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2026,12 +2026,11 @@ out:
>  			host->tuning_count * HZ);
>  		/* Tuning mode 1 limits the maximum data length to 4MB */
>  		mmc->max_blk_count = (4 * 1024 * 1024) / mmc->max_blk_size;
> -	} else {
> +	} else if (host->flags & SDHCI_USING_RETUNING_TIMER) {
>  		host->flags &= ~SDHCI_NEEDS_RETUNING;
>  		/* Reload the new initial value for timer */
> -		if (host->tuning_mode == SDHCI_TUNING_MODE_1)
> -			mod_timer(&host->tuning_timer, jiffies +
> -				host->tuning_count * HZ);
> +		mod_timer(&host->tuning_timer, jiffies +
> +			  host->tuning_count * HZ);
>  	}
>  
>  	/*
> 


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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-03-06  9:29 ` Arend van Spriel
@ 2014-03-07  4:06   ` Ulf Hansson
  2014-03-18 21:02     ` Arend van Spriel
  0 siblings, 1 reply; 7+ messages in thread
From: Ulf Hansson @ 2014-03-07  4:06 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Chris Ball, linux-mmc, Dong Aisheng, Aaron Lu

On 6 March 2014 10:29, Arend van Spriel <arend@broadcom.com> wrote:
> On 02/21/2014 08:59 PM, Arend van Spriel wrote:
>> When the host->tuning_count is zero it means that the
>> retuning is disabled. This is checked on the first
>> run of sdhci_execute_tuning() by the if statement below:
>>
>>       if (!(host->flags & SDHCI_NEEDS_RETUNING) && host->tuning_count &&
>>           (host->tuning_mode == SDHCI_TUNING_MODE_1)) {
>>
>> So only when tuning_count is non-zero it will set the host
>> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
>> for re-programming the timer, which means that flag must be
>> set. Because that is not checked the else statement is executed
>> in the first run when tuning_count is zero.
>>
>> This was seen on a host controller which indicated
>> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
>> that (one of) these registers is not properly set.
>>
>> Cc: Dong Aisheng <dongas86@gmail.com>
>> Cc: Aaron Lu <aaron.lwe@gmail.com>
>> Signed-off-by: Arend van Spriel <arend@broadcom.com>
>> ---
>> Noticed this patch was still not applied so please reconsider
>> taking it in and let me know. The patch has been rebased and
>> applies to the mmc-next branch.
>
> ping? Am I on some spam filter? What is needed to get this change applied?
>
> Regards,
> Arend
>
>> Regards,
>> Arend
>>
>> V3:
>> - remote tuning mode check for retuning timer reload
>>
>> V2:
>> - add more explanation to the commit message
>> - check host flag SDHCI_USING_RETUNING_TIMER
>> ---
>>  drivers/mmc/host/sdhci.c | 7 +++----
>>  1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>> index 9ddef47..d5b421d 100644
>> --- a/drivers/mmc/host/sdhci.c
>> +++ b/drivers/mmc/host/sdhci.c
>> @@ -2026,12 +2026,11 @@ out:
>>                       host->tuning_count * HZ);
>>               /* Tuning mode 1 limits the maximum data length to 4MB */
>>               mmc->max_blk_count = (4 * 1024 * 1024) / mmc->max_blk_size;
>> -     } else {
>> +     } else if (host->flags & SDHCI_USING_RETUNING_TIMER) {
>>               host->flags &= ~SDHCI_NEEDS_RETUNING;
>>               /* Reload the new initial value for timer */
>> -             if (host->tuning_mode == SDHCI_TUNING_MODE_1)
>> -                     mod_timer(&host->tuning_timer, jiffies +
>> -                             host->tuning_count * HZ);
>> +             mod_timer(&host->tuning_timer, jiffies +
>> +                       host->tuning_count * HZ);
>>       }
>>
>>       /*
>>
>

I don't have any deeper insight about the retuning mechanism for
sdhci, still this seems reasonable.

Acked-by: Ulf Hansson <ulf.hansson@linaro.org>

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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-03-07  4:06   ` Ulf Hansson
@ 2014-03-18 21:02     ` Arend van Spriel
  0 siblings, 0 replies; 7+ messages in thread
From: Arend van Spriel @ 2014-03-18 21:02 UTC (permalink / raw)
  To: Chris Ball; +Cc: Ulf Hansson, linux-mmc, Dong Aisheng, Aaron Lu

On 03/07/14 05:06, Ulf Hansson wrote:
> On 6 March 2014 10:29, Arend van Spriel<arend@broadcom.com>  wrote:
>> On 02/21/2014 08:59 PM, Arend van Spriel wrote:
>>> When the host->tuning_count is zero it means that the
>>> retuning is disabled. This is checked on the first
>>> run of sdhci_execute_tuning() by the if statement below:
>>>
>>>        if (!(host->flags&  SDHCI_NEEDS_RETUNING)&&  host->tuning_count&&
>>>            (host->tuning_mode == SDHCI_TUNING_MODE_1)) {
>>>
>>> So only when tuning_count is non-zero it will set the host
>>> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
>>> for re-programming the timer, which means that flag must be
>>> set. Because that is not checked the else statement is executed
>>> in the first run when tuning_count is zero.
>>>
>>> This was seen on a host controller which indicated
>>> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
>>> that (one of) these registers is not properly set.
>>>
>>> Cc: Dong Aisheng<dongas86@gmail.com>
>>> Cc: Aaron Lu<aaron.lwe@gmail.com>
>>> Signed-off-by: Arend van Spriel<arend@broadcom.com>
>>> ---
>>> Noticed this patch was still not applied so please reconsider
>>> taking it in and let me know. The patch has been rebased and
>>> applies to the mmc-next branch.
>>
>> ping? Am I on some spam filter? What is needed to get this change applied?

Hi Chris,

Did this patch fall between the cracks. If needed I can rebase and 
resend it once more.

Regards,
Arend

>> Regards,
>> Arend
>>
>>> Regards,
>>> Arend
>>>
>>> V3:
>>> - remote tuning mode check for retuning timer reload
>>>
>>> V2:
>>> - add more explanation to the commit message
>>> - check host flag SDHCI_USING_RETUNING_TIMER
>>> ---
>>>   drivers/mmc/host/sdhci.c | 7 +++----
>>>   1 file changed, 3 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>>> index 9ddef47..d5b421d 100644
>>> --- a/drivers/mmc/host/sdhci.c
>>> +++ b/drivers/mmc/host/sdhci.c
>>> @@ -2026,12 +2026,11 @@ out:
>>>                        host->tuning_count * HZ);
>>>                /* Tuning mode 1 limits the maximum data length to 4MB */
>>>                mmc->max_blk_count = (4 * 1024 * 1024) / mmc->max_blk_size;
>>> -     } else {
>>> +     } else if (host->flags&  SDHCI_USING_RETUNING_TIMER) {
>>>                host->flags&= ~SDHCI_NEEDS_RETUNING;
>>>                /* Reload the new initial value for timer */
>>> -             if (host->tuning_mode == SDHCI_TUNING_MODE_1)
>>> -                     mod_timer(&host->tuning_timer, jiffies +
>>> -                             host->tuning_count * HZ);
>>> +             mod_timer(&host->tuning_timer, jiffies +
>>> +                       host->tuning_count * HZ);
>>>        }
>>>
>>>        /*
>>>
>>
>
> I don't have any deeper insight about the retuning mechanism for
> sdhci, still this seems reasonable.
>
> Acked-by: Ulf Hansson<ulf.hansson@linaro.org>


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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-02-21 19:59 RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set Arend van Spriel
  2014-03-06  9:29 ` Arend van Spriel
@ 2014-03-20  5:32 ` Aaron Lu
  2014-03-25 20:49   ` Arend van Spriel
  1 sibling, 1 reply; 7+ messages in thread
From: Aaron Lu @ 2014-03-20  5:32 UTC (permalink / raw)
  To: Arend van Spriel, Chris Ball; +Cc: linux-mmc, Dong Aisheng

On 02/22/2014 03:59 AM, Arend van Spriel wrote:
> When the host->tuning_count is zero it means that the
> retuning is disabled. This is checked on the first
> run of sdhci_execute_tuning() by the if statement below:
> 
> 	if (!(host->flags & SDHCI_NEEDS_RETUNING) && host->tuning_count &&
> 	    (host->tuning_mode == SDHCI_TUNING_MODE_1)) {
> 
> So only when tuning_count is non-zero it will set the host
> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
> for re-programming the timer, which means that flag must be
> set. Because that is not checked the else statement is executed
> in the first run when tuning_count is zero.
> 
> This was seen on a host controller which indicated
> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
> that (one of) these registers is not properly set.
> 
> Cc: Dong Aisheng <dongas86@gmail.com>
> Cc: Aaron Lu <aaron.lwe@gmail.com>
> Signed-off-by: Arend van Spriel <arend@broadcom.com>

In addition to solve your problem, this patch also makes sense in the
common case, so:

Reviewed-by: Aaron Lu <aaron.lu@intel.com>

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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-03-20  5:32 ` Aaron Lu
@ 2014-03-25 20:49   ` Arend van Spriel
  2014-03-25 20:56     ` Chris Ball
  0 siblings, 1 reply; 7+ messages in thread
From: Arend van Spriel @ 2014-03-25 20:49 UTC (permalink / raw)
  To: Chris Ball; +Cc: Aaron Lu, linux-mmc, Dong Aisheng

On 03/20/14 06:32, Aaron Lu wrote:
> On 02/22/2014 03:59 AM, Arend van Spriel wrote:
>> When the host->tuning_count is zero it means that the
>> retuning is disabled. This is checked on the first
>> run of sdhci_execute_tuning() by the if statement below:
>>
>> 	if (!(host->flags&  SDHCI_NEEDS_RETUNING)&&  host->tuning_count&&
>> 	(host->tuning_mode == SDHCI_TUNING_MODE_1)) {
>>
>> So only when tuning_count is non-zero it will set the host
>> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
>> for re-programming the timer, which means that flag must be
>> set. Because that is not checked the else statement is executed
>> in the first run when tuning_count is zero.
>>
>> This was seen on a host controller which indicated
>> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
>> that (one of) these registers is not properly set.
>>
>> Cc: Dong Aisheng<dongas86@gmail.com>
>> Cc: Aaron Lu<aaron.lwe@gmail.com>
>> Signed-off-by: Arend van Spriel<arend@broadcom.com>
>
> In addition to solve your problem, this patch also makes sense in the
> common case, so:
>
> Reviewed-by: Aaron Lu<aaron.lu@intel.com>

Hi Chris,

Is this patch still in your queue?

Regards,
Arend

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

* Re: RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set
  2014-03-25 20:49   ` Arend van Spriel
@ 2014-03-25 20:56     ` Chris Ball
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Ball @ 2014-03-25 20:56 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Aaron Lu, linux-mmc, Dong Aisheng

Hi Arend,

On Tue, Mar 25 2014, Arend van Spriel wrote:
> On 03/20/14 06:32, Aaron Lu wrote:
>> On 02/22/2014 03:59 AM, Arend van Spriel wrote:
>>> When the host->tuning_count is zero it means that the
>>> retuning is disabled. This is checked on the first
>>> run of sdhci_execute_tuning() by the if statement below:
>>>
>>> 	if (!(host->flags&  SDHCI_NEEDS_RETUNING)&&  host->tuning_count&&
>>> 	(host->tuning_mode == SDHCI_TUNING_MODE_1)) {
>>>
>>> So only when tuning_count is non-zero it will set the host
>>> flag SDHCI_USING_RETUNING_TIMER. The else statement is only
>>> for re-programming the timer, which means that flag must be
>>> set. Because that is not checked the else statement is executed
>>> in the first run when tuning_count is zero.
>>>
>>> This was seen on a host controller which indicated
>>> SDHCI_TUNING_MODE_1 (0) and tuning_count being zero. Suspect
>>> that (one of) these registers is not properly set.
>>>
>>> Cc: Dong Aisheng<dongas86@gmail.com>
>>> Cc: Aaron Lu<aaron.lwe@gmail.com>
>>> Signed-off-by: Arend van Spriel<arend@broadcom.com>
>>
>> In addition to solve your problem, this patch also makes sense in the
>> common case, so:
>>
>> Reviewed-by: Aaron Lu<aaron.lu@intel.com>
>
> Hi Chris,
>
> Is this patch still in your queue?

Thanks!  I've pushed this to mmc-next for 3.15 with Aaron/Ulf's ACKs now.

- Chris.
-- 
Chris Ball   <chris@printf.net>   <http://printf.net/>

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

end of thread, other threads:[~2014-03-25 20:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-21 19:59 RESEND:[PATCH V3] sdhci: only reprogram retuning timer when flag is set Arend van Spriel
2014-03-06  9:29 ` Arend van Spriel
2014-03-07  4:06   ` Ulf Hansson
2014-03-18 21:02     ` Arend van Spriel
2014-03-20  5:32 ` Aaron Lu
2014-03-25 20:49   ` Arend van Spriel
2014-03-25 20:56     ` Chris Ball

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.