All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc <linux-mmc@vger.kernel.org>
Subject: [PATCH V2 4/9] mmc: sdhci: Always allow tuning to fall back to fixed sampling
Date: Fri,  2 Dec 2016 15:14:22 +0200	[thread overview]
Message-ID: <1480684467-26833-5-git-send-email-adrian.hunter@intel.com> (raw)
In-Reply-To: <1480684467-26833-1-git-send-email-adrian.hunter@intel.com>

SDHCI falls back to fixed sampling if there is an error during tuning.
However it also reports an error unless there is periodic re-tuning.
That is not the best option because:
a) there is a reasonable chance that fixed sampling will work, especially
at room temperature.
b) re-tuning will be done again anyway if there are CRC errors.
Change to return no error always when falling back to fixed sampling.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
 drivers/mmc/host/sdhci.c | 20 ++------------------
 1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index ad2f2c6113e4..a23887799f43 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2098,8 +2098,6 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
 			sdhci_do_reset(host, SDHCI_RESET_CMD);
 			sdhci_do_reset(host, SDHCI_RESET_DATA);
 
-			err = -EIO;
-
 			if (cmd.opcode != MMC_SEND_TUNING_BLOCK_HS200)
 				goto out;
 
@@ -2137,24 +2135,10 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
 		ctrl &= ~SDHCI_CTRL_EXEC_TUNING;
 		sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
 	}
-	if (!(ctrl & SDHCI_CTRL_TUNED_CLK)) {
+	if (!(ctrl & SDHCI_CTRL_TUNED_CLK))
 		pr_info(DRIVER_NAME ": Tuning procedure failed, falling back to fixed sampling clock\n");
-		err = -EIO;
-	}
-
 out:
-	if (tuning_count) {
-		/*
-		 * In case tuning fails, host controllers which support
-		 * re-tuning can try tuning again at a later time, when the
-		 * re-tuning timer expires.  So for these controllers, we
-		 * return 0. Since there might be other controllers who do not
-		 * have this capability, we return error for them.
-		 */
-		err = 0;
-	}
-
-	host->mmc->retune_period = err ? 0 : tuning_count;
+	host->mmc->retune_period = tuning_count;
 
 	sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
 	sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
-- 
1.9.1


  parent reply	other threads:[~2016-12-02 13:19 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-02 13:14 [PATCH V2 0/9] mmc: sdhci: Fix recovery from tuning timeout Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 1/9] Revert "mmc: sdhci: Reset cmd and data circuits after tuning failure" Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 2/9] mmc: sdhci: Fix recovery from tuning timeout Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 3/9] mmc: sdhci: Fix tuning reset after exhausting the maximum number of loops Adrian Hunter
2016-12-02 13:14 ` Adrian Hunter [this message]
2016-12-02 13:14 ` [PATCH V2 5/9] mmc: mmc: Introduce mmc_abort_tuning() Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 6/9] mmc: sdhci: Use mmc_abort_tuning() Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 7/9] mmc: sdhci: Factor out tuning helper functions Adrian Hunter
2016-12-02 13:59   ` [PATCH V3 " Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 8/9] mmc: sdhci: Simplify tuning block size logic Adrian Hunter
2016-12-02 13:14 ` [PATCH V2 9/9] mmc: sdhci: Tidy tuning loop Adrian Hunter
2016-12-05 13:19 ` [PATCH V2 0/9] mmc: sdhci: Fix recovery from tuning timeout Ulf Hansson

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=1480684467-26833-5-git-send-email-adrian.hunter@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=linux-mmc@vger.kernel.org \
    --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.