diff mbox

[U-Boot,v2] mmc: send CMD0 before CMD1 for some MMC cards

Message ID 1470123198-34803-1-git-send-email-yangbo.lu@nxp.com
State Accepted, archived
Commit d188b1130226d304fb3cd2c901b968eca927f39f
Delegated to: Jaehoon Chung
Headers show

Commit Message

Yangbo Lu Aug. 2, 2016, 7:33 a.m. UTC
When the MMC framework was added in u-boot, the mmc_go_idle was
added before mmc_send_op_cond_iter in function mmc_send_op_cond
annotating that some cards seemed to need this. Actually, we still
need to do this in function mmc_complete_op_cond for those cards.
This has been verified on Micron MTFC4GACAECN eMMC chip.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
---
 drivers/mmc/mmc.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jaehoon Chung Aug. 8, 2016, 11:06 p.m. UTC | #1
Hi Yangbo,

On 08/02/2016 04:33 PM, Yangbo Lu wrote:
> When the MMC framework was added in u-boot, the mmc_go_idle was
> added before mmc_send_op_cond_iter in function mmc_send_op_cond
> annotating that some cards seemed to need this. Actually, we still
> need to do this in function mmc_complete_op_cond for those cards.
> This has been verified on Micron MTFC4GACAECN eMMC chip.

This patch is not bad.. but i need to verify more about entire sequence.
Could you wait a bit?

Best Regards,
Jaehoon Chung

> 
> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
> ---
>  drivers/mmc/mmc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index f8e5f7a..d4e96bc 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
>  
>  	mmc->op_cond_pending = 0;
>  	if (!(mmc->ocr & OCR_BUSY)) {
> +		/* Some cards seem to need this */
> +		mmc_go_idle(mmc);
> +
>  		start = get_timer(0);
>  		while (1) {
>  			err = mmc_send_op_cond_iter(mmc, 1);
>
Yangbo Lu Aug. 9, 2016, 6:02 a.m. UTC | #2
Hi Jaehoon,

Sure. And appreciate your good help :)


Best regards,
Yangbo Lu

> -----Original Message-----
> From: Jaehoon Chung [mailto:jh80.chung@samsung.com]
> Sent: Tuesday, August 09, 2016 7:06 AM
> To: Yangbo Lu; u-boot@lists.denx.de
> Subject: Re: [v2] mmc: send CMD0 before CMD1 for some MMC cards
> 
> Hi Yangbo,
> 
> On 08/02/2016 04:33 PM, Yangbo Lu wrote:
> > When the MMC framework was added in u-boot, the mmc_go_idle was added
> > before mmc_send_op_cond_iter in function mmc_send_op_cond annotating
> > that some cards seemed to need this. Actually, we still need to do
> > this in function mmc_complete_op_cond for those cards.
> > This has been verified on Micron MTFC4GACAECN eMMC chip.
> 
> This patch is not bad.. but i need to verify more about entire sequence.
> Could you wait a bit?
> 
> Best Regards,
> Jaehoon Chung
> 
> >
> > Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
> > ---
> >  drivers/mmc/mmc.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index
> > f8e5f7a..d4e96bc 100644
> > --- a/drivers/mmc/mmc.c
> > +++ b/drivers/mmc/mmc.c
> > @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
> >
> >  	mmc->op_cond_pending = 0;
> >  	if (!(mmc->ocr & OCR_BUSY)) {
> > +		/* Some cards seem to need this */
> > +		mmc_go_idle(mmc);
> > +
> >  		start = get_timer(0);
> >  		while (1) {
> >  			err = mmc_send_op_cond_iter(mmc, 1);
> >
Jaehoon Chung Aug. 16, 2016, 1:32 a.m. UTC | #3
Hi Yangbo,

On 08/09/2016 08:06 AM, Jaehoon Chung wrote:
> Hi Yangbo,
> 
> On 08/02/2016 04:33 PM, Yangbo Lu wrote:
>> When the MMC framework was added in u-boot, the mmc_go_idle was
>> added before mmc_send_op_cond_iter in function mmc_send_op_cond
>> annotating that some cards seemed to need this. Actually, we still
>> need to do this in function mmc_complete_op_cond for those cards.
>> This has been verified on Micron MTFC4GACAECN eMMC chip.
> 
> This patch is not bad.. but i need to verify more about entire sequence.
> Could you wait a bit?

Applied on u-boot-mmc. Thanks!

Best Regards,
Jaehoon Chung

> 
> Best Regards,
> Jaehoon Chung
> 
>>
>> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
>> ---
>>  drivers/mmc/mmc.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>> index f8e5f7a..d4e96bc 100644
>> --- a/drivers/mmc/mmc.c
>> +++ b/drivers/mmc/mmc.c
>> @@ -422,6 +422,9 @@ static int mmc_complete_op_cond(struct mmc *mmc)
>>  
>>  	mmc->op_cond_pending = 0;
>>  	if (!(mmc->ocr & OCR_BUSY)) {
>> +		/* Some cards seem to need this */
>> +		mmc_go_idle(mmc);
>> +
>>  		start = get_timer(0);
>>  		while (1) {
>>  			err = mmc_send_op_cond_iter(mmc, 1);
>>
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 
> 
>
diff mbox

Patch

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index f8e5f7a..d4e96bc 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -422,6 +422,9 @@  static int mmc_complete_op_cond(struct mmc *mmc)
 
 	mmc->op_cond_pending = 0;
 	if (!(mmc->ocr & OCR_BUSY)) {
+		/* Some cards seem to need this */
+		mmc_go_idle(mmc);
+
 		start = get_timer(0);
 		while (1) {
 			err = mmc_send_op_cond_iter(mmc, 1);