Commit e6f8996213a5e4f5517d06a72f1ae0f77be41631

Authored by Subhash Jadavani
Committed by Afzal Mohammed
1 parent 8f027442b8
Exists in master

ARM:omap:mmc - Setup non-UHS-I SD3.0 cards properly for High Speed

Essential conditions to indicate Version 3.00 Card (from SD3.01
spec) (SD_SPEC=2 and SD_SPEC3=1) :
	(1) The card shall support CMD6
	(2) The card shall support CMD8
	(3) The card shall support CMD42
	(4) User area capacity shall be up to 2GB (SDSC) or 32GB (SDHC)
	    User area capacity shall be more than or equal to 32GB and
	    up to 2TB (SDXC)
	(5) Speed Class shall be supported (SDHC or SDXC)

So even if SD card doesn't support any of the newly defined UHS-I bus speed
mode, it can advertise itself as SD3.0 cards as long as it supports all the
essential conditions of SD3.0 cards. Given this, these type of cards should
at least run in High Speed mode @50MHZ if it supports HS.

This patch is from
http://www.mail-archive.com/linux-mmc@vger.kernel.org/msg09358.html

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>

Showing 1 changed file with 3 additions and 3 deletions Side-by-side Diff

drivers/mmc/core/sd.c
... ... @@ -306,6 +306,9 @@
306 306 goto out;
307 307 }
308 308  
  309 + if (status[13] & 0x02)
  310 + card->sw_caps.hs_max_dtr = 50000000;
  311 +
309 312 if (card->scr.sda_spec3) {
310 313 card->sw_caps.sd3_bus_mode = status[13];
311 314  
... ... @@ -348,9 +351,6 @@
348 351 }
349 352  
350 353 card->sw_caps.sd3_curr_limit = status[7];
351   - } else {
352   - if (status[13] & 0x02)
353   - card->sw_caps.hs_max_dtr = 50000000;
354 354 }
355 355  
356 356 out: