MMC fixes for 3.4-rc2:
 The major fixes here are:
  * Disable use of MSI in sdhci-pci, which caused multiple chipsets to
    stop working in 3.4-rc1.  I'll wait to turn this on again until we
    have a chipset whitelist for it.
  * Fix a libertas SDIO powered-resume regression introduced in 3.3;
    thanks to Neil Brown and Rafael Wysocki for this fix.
  * Fix module reloading on omap_hsmmc.
  * Stop trusting the spec/card's specified maximum data timeout length,
    and use three seconds instead.  Previously we used 300ms.

 Also cleanups and fixes for s3c, atmel, sh_mmcif and omap_hsmmc.
mmc: use really long write timeout to deal with crappy cards

Several people have noticed that crappy SD cards take much longer to
complete multiple block writes than the 300ms that Linux specifies.
Try to work around this by using a three second write timeout instead.

This is a generalized version of a patch from Chase Maupin
<Chase.Maupin@ti.com>, whose patch description said:

* With certain SD cards timeouts like the following have been seen
  due to an improper calculation of the dto value:
    mmcblk0: error -110 transferring data, sector 4126233, nr 8,
    card status 0xc00
* By removing the dto calculation and setting the timeout value
  to the maximum specified by the SD card specification part A2
  section 2.2.15 these timeouts can be avoided.
* This change has been used by beagleboard users as well as the
  Texas Instruments SDK without a negative impact.
* There are multiple discussion threads about this but the most
  relevant ones are:
    * http://talk.maemo.org/showthread.php?p=1000707#post1000707
    * http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42213.html
* Original proposal for this fix was done by Sukumar Ghoral of
  Texas Instruments
* Tested using a Texas Instruments AM335x EVM

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
1 file changed