card_extract_bits() take the start bit argument as defined in public SanDisk specifications for SD and MMC, i.e. bit 0 is the lsb

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21600 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2009-07-01 19:13:01 +00:00
parent 7ab33f165c
commit 93f6e3df24
5 changed files with 38 additions and 33 deletions

View file

@ -1306,12 +1306,12 @@ tCardInfo *card_get_info_target(int card_no)
for(i=0; i<4; i++) card.cid[i] = card_info[card_no].cid[3-i];
card.numblocks = card_info[card_no].numblocks;
card.blocksize = card_info[card_no].blocksize;
temp = card_extract_bits(card.csd, 29, 3);
card.speed = mantissa[card_extract_bits(card.csd, 25, 4)]
temp = card_extract_bits(card.csd, 98, 3);
card.speed = mantissa[card_extract_bits(card.csd, 102, 4)]
* exponent[temp > 2 ? 7 : temp + 4];
card.nsac = 100 * card_extract_bits(card.csd, 16, 8);
temp = card_extract_bits(card.csd, 13, 3);
card.taac = mantissa[card_extract_bits(card.csd, 9, 4)]
card.nsac = 100 * card_extract_bits(card.csd, 111, 8);
temp = card_extract_bits(card.csd, 114, 3);
card.taac = mantissa[card_extract_bits(card.csd, 118, 4)]
* exponent[temp] / 10;
card.cid[0] = htobe32(card.cid[0]); /* ascii chars here */
card.cid[1] = htobe32(card.cid[1]); /* ascii chars here */