linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Chaotian Jing <chaotian.jing@mediatek.com>,
	Kyungmin Seo <kyungmin.seo@intel.com>,
	linux-mmc <linux-mmc@vger.kernel.org>
Subject: Re: [PATCH RFC 1/3] mmc: core: Try harder if transfer mode switch fails
Date: Thu, 12 Mar 2020 16:45:27 +0100	[thread overview]
Message-ID: <CAPDyKFpHZDy3TvHdQBuKgu5k3QkE+Pqcu5jumWa=LAY+ixUheg@mail.gmail.com> (raw)
In-Reply-To: <20200312142501.9868-2-adrian.hunter@intel.com>

On Thu, 12 Mar 2020 at 15:25, Adrian Hunter <adrian.hunter@intel.com> wrote:
>
> Add extra busy wait and retries if transfer mode switch fails.
>
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
>  drivers/mmc/core/mmc_ops.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
> index aa0cab190cd8..619088a94688 100644
> --- a/drivers/mmc/core/mmc_ops.c
> +++ b/drivers/mmc/core/mmc_ops.c
> @@ -599,6 +599,12 @@ int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value,
>                 cmd.sanitize_busy = true;
>
>         err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
> +       if (err && index == EXT_CSD_HS_TIMING) {
> +               /* Try harder for timing changes */
> +               __mmc_poll_for_busy(card, timeout_ms, send_status,
> +                                   retry_crc_err, MMC_BUSY_CMD6);
> +               err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
> +       }

Hmm, what do you think of moving this to the caller(s) of
__mmc_switch() and in particular only at those places were we find it
useful. Me personally, would prefer that option.

To do that, we may need to have the possibility of specifying the
number of retries that should be used in the mmc_wait_for_cmd() call
to the caller can check the error code better.

Moreover, it looks a bit risky to do the polling for all kinds of
errors - shouldn't we do for CRC errors?

>         if (err)
>                 goto out;
>
> --
> 2.17.1
>

Kind regards
Uffe

  reply	other threads:[~2020-03-12 15:46 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 14:24 [PATCH RFC 0/3] mmc: core: Do not change frequency before switch from HS400 Adrian Hunter
2020-03-12 14:24 ` [PATCH RFC 1/3] mmc: core: Try harder if transfer mode switch fails Adrian Hunter
2020-03-12 15:45   ` Ulf Hansson [this message]
2020-03-13  9:52     ` Adrian Hunter
2020-03-13 10:40       ` Ulf Hansson
2020-03-13 14:07         ` Adrian Hunter
2020-03-12 14:25 ` [PATCH RFC 2/3] mmc: core: Do not check CRC response for switch from HS400 to HS200 Adrian Hunter
2020-03-12 16:02   ` Ulf Hansson
2020-03-12 14:25 ` [PATCH RFC 3/3] mmc: core: Do not change frequency before switch from HS400 Adrian Hunter
  -- strict thread matches above, loose matches on Subject: below --
2020-03-12 14:24 [PATCH RFC 0/3] " Adrian Hunter
2020-03-12 14:24 ` [PATCH RFC 1/3] mmc: core: Try harder if transfer mode switch fails Adrian Hunter

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='CAPDyKFpHZDy3TvHdQBuKgu5k3QkE+Pqcu5jumWa=LAY+ixUheg@mail.gmail.com' \
    --to=ulf.hansson@linaro.org \
    --cc=adrian.hunter@intel.com \
    --cc=chaotian.jing@mediatek.com \
    --cc=kyungmin.seo@intel.com \
    --cc=linux-mmc@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).