All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yusuke Goda <yusuke.goda.sx@renesas.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mmc@vger.kernel.org, Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [PATCH] tmio_mmc: Prevents unexpected status clear
Date: Tue, 13 Jul 2010 10:16:39 +0900	[thread overview]
Message-ID: <4C3BBE77.8080000@renesas.com> (raw)
In-Reply-To: <20100708144626.2091f6c1.akpm@linux-foundation.org>

Hi Andrew

Thank you for your comment.

>>  #define ack_mmc_irqs(host, i) \
>>  	do { \
>> -		u32 mask;\
>> -		mask  = sd_ctrl_read32((host), CTL_STATUS); \
>> -		mask &= ~((i) & TMIO_MASK_IRQ); \
>> -		sd_ctrl_write32((host), CTL_STATUS, mask); \
>> +		sd_ctrl_write32((host), CTL_STATUS, ~(i)); \
>>  	} while (0)
> 
> Can we have a better changelog please?
> 
> What was wrong with the old code?
> 
> How does the patch fix it?
> 
> What are the user-visible runtime effects of the bug?
> 
> (It looks like that was a pretty gross bug - how did it pass testing??)
Example
 - CMD53(Single block read / Received data size : 64Byte)

 1) Send CMD53
 2) Receive "CMD53 response"
 3) Call tmio_mmc_cmd_irq(host, status);
-- original code ----------------------------------------------------
 #define ack_mmc_irqs(host, i) \
	do { \
		u32 mask;\
		mask  = sd_ctrl_read32((host), CTL_STATUS); \
	< case 1 >
		mask &= ~((i) & TMIO_MASK_IRQ); \
	< case 2 >
		sd_ctrl_write32((host), CTL_STATUS, mask); \
	} while (0)
---------------------------------------------------------------------

TMIO_STAT_RXRDY status will be cleared by "sd_ctrl_write32((host), CTL_STATUS, mask);"
if TMIO_STAT_RXRDY becomes effective between "< case 1 >" and "< case 2 >".

This causes the phenomenon that a TMIO_STAT_RXRDY interrupt does not occur.
When received data are small, it rarely occurs.


Thanks,
Goda


  reply	other threads:[~2010-07-13  1:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-07  1:59 [PATCH] tmio_mmc: Prevents unexpected status clear Yusuke Goda
2010-07-08 21:46 ` Andrew Morton
2010-07-13  1:16   ` Yusuke Goda [this message]
2010-07-15 20:25     ` Andrew Morton
2010-08-25 22:11       ` Matt Fleming
2010-08-25 23:07         ` Andrew Morton
2010-08-26  0:53           ` Yusuke Goda
2010-08-26  6:53             ` Matt Fleming
2010-08-26  6:58               ` Magnus Damm
2010-08-26  7:26                 ` Matt Fleming
2010-08-26 21:12                   ` Andrew Morton
2010-08-26 22:10                     ` Matt Fleming
2010-08-26 22:16                       ` Andrew Morton
2010-08-26 22:30                         ` Matt Fleming
2010-08-27  8:02                       ` Magnus Damm

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=4C3BBE77.8080000@renesas.com \
    --to=yusuke.goda.sx@renesas.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    /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.