All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaehoon Chung <jh80.chung@samsung.com>
To: Shawn Lin <shawn.lin@rock-chips.com>,
	Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Doug Anderson <dianders@chromium.org>,
	linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v2 2/2] mmc: dw_mmc: check card present before starting request
Date: Mon, 30 May 2016 08:18:48 +0900	[thread overview]
Message-ID: <574B78D8.50903@samsung.com> (raw)
In-Reply-To: <1464331025-16275-1-git-send-email-shawn.lin@rock-chips.com>

Hi Shawn,

On 05/27/2016 03:37 PM, Shawn Lin wrote:
> The main reason to add this check is to avoid unnecessary
> mmc_request like the on-going cmd and the corresponding sbc
> if the card is removed. Although we have already checked this in
> dw_mci_handle_cd for runtime usage of sd card and dw_mci_init_slot
> for noremovable devices, but there is a timing gap before it really
> calls dw_mci_get_cd as mmc_detect_change needs some delay here.
> 
> Another gain here is that we could save some checkings of card status
> after sd card been removed.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

Applied on my repository.
Thanks!

Best Regards,
Jaehoon Chung

> 
> ---
> 
> Changes in v2:
> - hold lock before dw_mci_queue_request
> 
>  drivers/mmc/host/dw_mmc.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index cb30e91..2b4b3df 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -105,6 +105,7 @@ struct idmac_desc {
>  static bool dw_mci_reset(struct dw_mci *host);
>  static bool dw_mci_ctrl_reset(struct dw_mci *host, u32 reset);
>  static int dw_mci_card_busy(struct mmc_host *mmc);
> +static int dw_mci_get_cd(struct mmc_host *mmc);
>  
>  #if defined(CONFIG_DEBUG_FS)
>  static int dw_mci_req_show(struct seq_file *s, void *v)
> @@ -1253,15 +1254,15 @@ static void dw_mci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>  	 * atomic, otherwise the card could be removed in between and the
>  	 * request wouldn't fail until another card was inserted.
>  	 */
> -	spin_lock_bh(&host->lock);
>  
> -	if (!test_bit(DW_MMC_CARD_PRESENT, &slot->flags)) {
> -		spin_unlock_bh(&host->lock);
> +	if (!dw_mci_get_cd(mmc)) {
>  		mrq->cmd->error = -ENOMEDIUM;
>  		mmc_request_done(mmc, mrq);
>  		return;
>  	}
>  
> +	spin_lock_bh(&host->lock);
> +
>  	dw_mci_queue_request(host, slot, mrq);
>  
>  	spin_unlock_bh(&host->lock);
> 

      reply	other threads:[~2016-05-29 23:18 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20160527063809epcas1p37bab24c0ce09ace502a3dc8cea023887@epcas1p3.samsung.com>
2016-05-27  6:37 ` [PATCH v2 2/2] mmc: dw_mmc: check card present before starting request Shawn Lin
2016-05-29 23:18   ` Jaehoon Chung [this message]

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=574B78D8.50903@samsung.com \
    --to=jh80.chung@samsung.com \
    --cc=dianders@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=shawn.lin@rock-chips.com \
    --cc=ulf.hansson@linaro.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.