All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] fsl_esdhc: Add Auto command 12 interrupt bit detecting
Date: Mon, 21 Oct 2013 11:19:03 +0200	[thread overview]
Message-ID: <5264F187.7060707@denx.de> (raw)
In-Reply-To: <5264E492.2070606@freescale.com>

Hi,

On 21/10/2013 10:23, Zhang Haijun wrote:
> Hi, all
> 
> Who can give some comments?

I put Antonius in CC, he's the MMC custodian.


The driver is for both PPC and i.MX. On which platform do you test these
changes ?

Best regards,
Stefano Babic

> 
> 
> ? 2013/10/12 17:50, Haijun Zhang ??:
>> When Auto-CMD12 is used, the corresponding interrupt and error bit
>> should be enabled and set to reflect auto cmd 12 error.
>> Also add other command error detecting, like command index error,
>> CRC error etc. Without this command error bit set system will hang
>> due to the while loop.
>>
>> Signed-off-by: Haijun Zhang <Haijun.Zhang@freescale.com>
>> ---
>>  drivers/mmc/fsl_esdhc.c | 10 +++++-----
>>  include/fsl_esdhc.h     |  3 ++-
>>  2 files changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
>> index dc1d002..5aa592b 100644
>> --- a/drivers/mmc/fsl_esdhc.c
>> +++ b/drivers/mmc/fsl_esdhc.c
>> @@ -342,13 +342,13 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
>>  #endif
>>  
>>  	/* Wait for the command to complete */
>> -	while (!(esdhc_read32(&regs->irqstat) & (IRQSTAT_CC | IRQSTAT_CTOE)))
>> +	while (!(esdhc_read32(&regs->irqstat) & (IRQSTAT_CC | CMD_ERR)))
>>  		;
>>  
>>  	irqstat = esdhc_read32(&regs->irqstat);
>>  
>>  	/* Reset CMD and DATA portions on error */
>> -	if (irqstat & (CMD_ERR | IRQSTAT_CTOE)) {
>> +	if (irqstat & CMD_ERR) {
>>  		esdhc_write32(&regs->sysctl, esdhc_read32(&regs->sysctl) |
>>  			      SYSCTL_RSTC);
>>  		while (esdhc_read32(&regs->sysctl) & SYSCTL_RSTC)
>> @@ -363,12 +363,12 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
>>  		}
>>  	}
>>  
>> -	if (irqstat & CMD_ERR)
>> -		return COMM_ERR;
>> -
>>  	if (irqstat & IRQSTAT_CTOE)
>>  		return TIMEOUT;
>>  
>> +	if (irqstat & CMD_ERR)
>> +		return COMM_ERR;
>> +
>>  	/* Workaround for ESDHC errata ENGcm03648 */
>>  	if (!data && (cmd->resp_type & MMC_RSP_BUSY)) {
>>  		int timeout = 2500;
>> diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h
>> index 67d6057..37dbe27 100644
>> --- a/include/fsl_esdhc.h
>> +++ b/include/fsl_esdhc.h
>> @@ -62,7 +62,8 @@
>>  #define IRQSTAT_TC		(0x00000002)
>>  #define IRQSTAT_CC		(0x00000001)
>>  
>> -#define CMD_ERR		(IRQSTAT_CIE | IRQSTAT_CEBE | IRQSTAT_CCE)
>> +#define CMD_ERR		(IRQSTAT_CIE | IRQSTAT_CEBE | IRQSTAT_CCE | \
>> +				IRQSTAT_CTOE | IRQSTAT_AC12E)
>>  #define DATA_ERR	(IRQSTAT_DEBE | IRQSTAT_DCE | IRQSTAT_DTOE | \
>>  				IRQSTAT_DMAE)
>>  #define DATA_COMPLETE	(IRQSTAT_TC | IRQSTAT_DINT)
> 


-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

  reply	other threads:[~2013-10-21  9:19 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-12  9:50 [U-Boot] [PATCH] fsl_esdhc: Add Auto command 12 interrupt bit detecting Haijun Zhang
2013-10-21  8:23 ` Zhang Haijun
2013-10-21  9:19   ` Stefano Babic [this message]
2013-10-21  9:23     ` Zhang Haijun
2013-11-01  7:44       ` Zhang Haijun
2013-11-01  7:45         ` Pantelis Antoniou
2013-11-01  7:47           ` Zhang Haijun
2014-01-29 21:14             ` York Sun
2014-01-30  6:33               ` Pantelis Antoniou
2014-01-06  3:16         ` Zhang Haijun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5264F187.7060707@denx.de \
    --to=sbabic@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.