]> git.baikalelectronics.ru Git - kernel.git/commit
mmc: fix incorrect interpretation of card type bits
authorAdrian Hunter <adrian.hunter@nokia.com>
Tue, 23 Mar 2010 20:35:40 +0000 (13:35 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 24 Mar 2010 23:31:21 +0000 (16:31 -0700)
commit9f6dc4ca92c835df3b8f4b2fe289e8badf61600f
tree506065ad0752685ec1ac0a164e294bd85cb9bbb9
parentadfd0d7fc7e5c5a4e5512833480083fa59302840
mmc: fix incorrect interpretation of card type bits

In the extended CSD register the CARD_TYPE is an 8-bit value of which the
upper 6 bits were reserved in JEDEC specifications prior to version 4.4.
In version 4.4 two of the reserved bits were designated for identifying
support for the newly added High-Speed Dual Data Rate.  Unfortunately the
mmc_read_ext_csd() function required that the reserved bits be zero
instead of ignoring them as it should.

This patch makes mmc_read_ext_csd() ignore the CARD_TYPE bits that are
reserved or not yet supported.  It also stops the function jumping to the
end as though an error occurred, when it is only warns that the CARD_TYPE
bits (that it does interpret) are invalid.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/mmc/core/mmc.c
include/linux/mmc/mmc.h