public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
From: Dong Aisheng <b29396@freescale.com>
To: linux-mmc@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org, cjb@laptop.org,
	shawn.guo@linaro.org, s.hauer@pengutronix.de,
	b29396@freescale.com, ulf.hansson@linaro.org,
	adrian.hunter@intel.com, vladimir_zapolskiy@mentor.com,
	ed.sutter@alcatel-lucent.com
Subject: [PATCH 0/6] mmc: sdhci: a few fixes on timeout and max_discard_to
Date: Tue, 10 Dec 2013 20:56:02 +0800	[thread overview]
Message-ID: <1386680168-5227-1-git-send-email-b29396@freescale.com> (raw)

Patch 1~4 mainly fixes the issue that the max timeout counter for uSDHC is
1 << 28 rather than 1 << 27. 1~2 fix getting the max timeout counter
while 3~4 fix setting the max timeout.
Thus it introduces two new platform hook: get_max_timeout and set_timeout
for those platform which have different timeout setting.

This issue is firstly reported here by Ed Sutter:
http://www.spinics.net/lists/linux-mmc/msg23375.html
The root cause is the max_discard_to got from uSDHC is too small, only 677ms,
which cause the max_discard_bytes for eMMC is only 512, then the discard operation
of mkfs.ext3 for an eMMC card is too slow, just like dead.
With above patches, the issue can be fixed.

Patch 5~6 adds the capability to calcalute the max_discard_to dynamically
for SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK.

Originally the max_discard_to for a high speed sdhc card may be:
mmc1: new high speed SDHC card at address aaaa
mmc1: calculated max. discard sectors 49152 for timeout 1355 ms
After fix:
mmc1: new high speed SDHC card at address aaaa
mmc1: calculated max. discard sectors 712704 for timeout 5422 ms

It also improves the card discard performance a lot due to max_discard_sectors
increase a lot.

There's also discussion about remove max_discard_to limit here:
http://www.spinics.net/lists/linux-mmc/msg23395.html
But it does not help for uSDHC since we can observe data timeout
on a Toshiba SD3.0 cards if we do not disable data timeout interrupt.

Dong Aisheng (6):
  mmc: sdhci: add platfrom get_max_timeout hook
  mmc: sdhci-esdhc-imx: fix incorrect max_discard_to for uSDHC
  mmc: sdhci: add platform set_timeout hook
  mmc: sdhci-esdhc-imx: set the correct max timeout value for uSDHC
  mmc: sdhci: calculate max_discard_to dynamically for
    SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK
  mmc: sdhci-esdhc-imx: use actual_clock to calculate timeout

 drivers/mmc/host/sdhci-esdhc-imx.c |   22 ++++++++++++++++++
 drivers/mmc/host/sdhci.c           |   43 +++++++++++++++++++++++++++++------
 drivers/mmc/host/sdhci.h           |    3 ++
 3 files changed, 60 insertions(+), 8 deletions(-)

-- 
1.7.2.rc3



             reply	other threads:[~2013-12-10 13:24 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-10 12:56 Dong Aisheng [this message]
2013-12-10 12:56 ` [PATCH 1/6] mmc: sdhci: add platfrom get_max_timeout hook Dong Aisheng
2013-12-11  1:56   ` Shawn Guo
2013-12-11  3:00     ` Dong Aisheng
2013-12-11  3:12       ` Shawn Guo
2013-12-11  3:20         ` Dong Aisheng
2013-12-11  3:56           ` Shawn Guo
2013-12-11  4:59             ` Dong Aisheng
2013-12-11  5:55               ` Shawn Guo
2013-12-17  6:15                 ` Dong Aisheng
2013-12-10 12:56 ` [PATCH 2/6] mmc: sdhci-esdhc-imx: fix incorrect max_discard_to for uSDHC Dong Aisheng
2013-12-11  1:58   ` Shawn Guo
2013-12-10 12:56 ` [PATCH 3/6] mmc: sdhci: add platform set_timeout hook Dong Aisheng
2013-12-11  2:16   ` Shawn Guo
2013-12-11  3:03     ` Dong Aisheng
2013-12-11  3:18       ` Shawn Guo
2013-12-11  3:35         ` Dong Aisheng
2013-12-11  3:48           ` Shawn Guo
2013-12-11  5:03             ` Dong Aisheng
2013-12-11  6:04               ` Shawn Guo
2013-12-17  6:49                 ` Dong Aisheng
2013-12-10 12:56 ` [PATCH 4/6] mmc: sdhci-esdhc-imx: set the correct max timeout value for uSDHC Dong Aisheng
2013-12-11  2:17   ` Shawn Guo
2013-12-11  3:08     ` Dong Aisheng
2013-12-10 12:56 ` [PATCH 5/6] mmc: sdhci: calculate max_discard_to dynamically for SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK Dong Aisheng
2013-12-11  3:01   ` Shawn Guo
2013-12-11  3:13     ` Dong Aisheng
2013-12-11  4:05   ` Shawn Guo
2013-12-11  5:06     ` Dong Aisheng
2013-12-10 12:56 ` [PATCH 6/6] mmc: sdhci-esdhc-imx: use actual_clock to calculate timeout Dong Aisheng

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=1386680168-5227-1-git-send-email-b29396@freescale.com \
    --to=b29396@freescale.com \
    --cc=adrian.hunter@intel.com \
    --cc=cjb@laptop.org \
    --cc=ed.sutter@alcatel-lucent.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawn.guo@linaro.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vladimir_zapolskiy@mentor.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox