All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Ball <cjb@laptop.org>
To: Francesco Lavra <francescolavra.fl@gmail.com>
Cc: Balaji T K <balajitk@ti.com>,
	linux-mmc@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mmc: omap_hsmmc: clear status flags before starting a new command
Date: Sat, 24 Aug 2013 22:02:24 -0400	[thread overview]
Message-ID: <87vc2uttn3.fsf@octavius.laptop.org> (raw)
In-Reply-To: <51CE7DC8.2070905@gmail.com> (Francesco Lavra's message of "Sat, 29 Jun 2013 08:25:12 +0200")

Hi Balaji,

On Sat, Jun 29 2013, Francesco Lavra wrote:
> Commit 1f6b9fa40e76fffaaa0b3bd6a0bfdcf1cdc06efa consolidated writes to 
> the STAT register in one location, moving them from omap_hsmmc_do_irq() 
> to omap_hsmmc_irq(). This move has the unwanted side effect that the 
> controller status flags are potentially cleared after a new command has 
> been started as a consequence of reading the previous status flags. 
> This means that if the new command changes the status flags before the 
> IRQ routine returns, those flags may be cleared without handling the 
> event which asserted them, and thus missing the event.
> Move the writing of the STAT register back in omap_hsmmc_do_irq(), 
> before handling the status flags which generated the interrupt.
>
> Signed-off-by: Francesco Lavra <francescolavra.fl@gmail.com>
> ---
>  drivers/mmc/host/omap_hsmmc.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index eccedc7..301cb7e 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -1041,6 +1041,7 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status)
>  		}
>  	}
>  
> +	OMAP_HSMMC_WRITE(host->base, STAT, status);
>  	if (end_cmd || ((status & CC_EN) && host->cmd))
>  		omap_hsmmc_cmd_done(host, host->cmd);
>  	if ((end_trans || (status & TC_EN)) && host->mrq)
> @@ -1060,7 +1061,6 @@ static irqreturn_t omap_hsmmc_irq(int irq, void *dev_id)
>  		omap_hsmmc_do_irq(host, status);
>  
>  		/* Flush posted write */
> -		OMAP_HSMMC_WRITE(host->base, STAT, status);
>  		status = OMAP_HSMMC_READ(host->base, STAT);
>  	}

Please could you review this patch?  Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>

  reply	other threads:[~2013-08-25  2:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-29  6:25 [PATCH] mmc: omap_hsmmc: clear status flags before starting a new command Francesco Lavra
2013-08-25  2:02 ` Chris Ball [this message]
2013-08-25 19:39 ` Balaji T K
2013-08-25 19:39   ` Balaji T K
2013-08-25 19:41   ` Chris Ball
2013-08-25 19:41     ` Chris Ball

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=87vc2uttn3.fsf@octavius.laptop.org \
    --to=cjb@laptop.org \
    --cc=balajitk@ti.com \
    --cc=francescolavra.fl@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    /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.