diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2009-07-01 10:07:22 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2009-07-01 10:07:22 +0000 |
commit | e0e24cbf0a3b11cb161e0ae057e4c383c6134801 (patch) | |
tree | fcfdb14a4b2984f4bc2c1bbc9657f11dcb03dcd7 /firmware/target/mips | |
parent | c929310e55bf337e4a31675a30031a7818f5deda (diff) | |
download | rockbox-e0e24cbf0a3b11cb161e0ae057e4c383c6134801.tar.gz rockbox-e0e24cbf0a3b11cb161e0ae057e4c383c6134801.zip |
Merge tCardInfo struct (MMC) and tSDCardInfo struct (SD)
Put specific members under #ifdef (CONFIG_STORAGE & STORAGE_xx) (2 members for SD and 1 for MMC)
Fix a typo: tsac doesn't exist and must be read taac
Move card_get_info functions declaration inside hotswap.h to remove mutual inclusion of ata_mmc.h and hotswap.h
Move static const data structures from SD drivers into sd.h (sd_exponent and sd_mantissa)
Fix sd_command prototypes in SD drivers (card registers are unsigned long)
Fix speed calculation in Sansa AMS driver (PP SD driver needs to be checked)
Move ata-sd-target.h to sd-pp-target.h to reflect the PP specifity. Now it only contains declaration of microsd_int()
Remove unused ata-sd-target.h for injenic
TODO:
- check if CSD register bits are extracted correctly in PP driver
- correctly define read_timeout and write_timeout unit for MMC & SD, and use timeouts in Sansa AMS driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21586 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/mips')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c | 12 | ||||
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/onda_vx767/ata-sd-target.h | 8 |
2 files changed, 4 insertions, 16 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c b/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c index fd4a96f230..0ec1791928 100644 --- a/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4740.c | |||
@@ -1672,10 +1672,6 @@ tCardInfo* card_get_info_target(int card_no) | |||
1672 | (void)card_no; | 1672 | (void)card_no; |
1673 | int i, temp; | 1673 | int i, temp; |
1674 | static tCardInfo card; | 1674 | static tCardInfo card; |
1675 | static const char mantissa[] = { /* *10 */ | ||
1676 | 0, 10, 12, 13, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80 }; | ||
1677 | static const int exponent[] = { /* use varies */ | ||
1678 | 1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000 }; | ||
1679 | 1675 | ||
1680 | card.initialized = true; | 1676 | card.initialized = true; |
1681 | card.ocr = 0; | 1677 | card.ocr = 0; |
@@ -1684,12 +1680,12 @@ tCardInfo* card_get_info_target(int card_no) | |||
1684 | for(i=0; i<4; i++) | 1680 | for(i=0; i<4; i++) |
1685 | card.cid[i] = (*((unsigned long*)&mmcinfo.cid+4*i)); | 1681 | card.cid[i] = (*((unsigned long*)&mmcinfo.cid+4*i)); |
1686 | temp = card_extract_bits(card.csd, 29, 3); | 1682 | temp = card_extract_bits(card.csd, 29, 3); |
1687 | card.speed = mantissa[card_extract_bits(card.csd, 25, 4)] | 1683 | card.speed = sd_mantissa[card_extract_bits(card.csd, 25, 4)] |
1688 | * exponent[temp > 2 ? 7 : temp + 4]; | 1684 | * sd_exponent[temp > 2 ? 7 : temp + 4]; |
1689 | card.nsac = 100 * card_extract_bits(card.csd, 16, 8); | 1685 | card.nsac = 100 * card_extract_bits(card.csd, 16, 8); |
1690 | temp = card_extract_bits(card.csd, 13, 3); | 1686 | temp = card_extract_bits(card.csd, 13, 3); |
1691 | card.tsac = mantissa[card_extract_bits(card.csd, 9, 4)] | 1687 | card.taac = sd_mantissa[card_extract_bits(card.csd, 9, 4)] |
1692 | * exponent[temp] / 10; | 1688 | * sd_exponent[temp] / 10; |
1693 | card.numblocks = mmcinfo.block_num; | 1689 | card.numblocks = mmcinfo.block_num; |
1694 | card.blocksize = mmcinfo.block_len; | 1690 | card.blocksize = mmcinfo.block_len; |
1695 | 1691 | ||
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx767/ata-sd-target.h b/firmware/target/mips/ingenic_jz47xx/onda_vx767/ata-sd-target.h index cc6bd8a773..5cc9e4b203 100644 --- a/firmware/target/mips/ingenic_jz47xx/onda_vx767/ata-sd-target.h +++ b/firmware/target/mips/ingenic_jz47xx/onda_vx767/ata-sd-target.h | |||
@@ -26,14 +26,6 @@ | |||
26 | #include "hotswap.h" | 26 | #include "hotswap.h" |
27 | #include "jz4740.h" | 27 | #include "jz4740.h" |
28 | 28 | ||
29 | tCardInfo *card_get_info_target(int card_no); | ||
30 | bool card_detect_target(void); | ||
31 | |||
32 | #ifdef HAVE_HOTSWAP | ||
33 | void card_enable_monitoring_target(bool on); | ||
34 | void microsd_int(void); /* ??? */ | ||
35 | #endif | ||
36 | |||
37 | int _sd_read_sectors(unsigned long start, int count, void* buf); | 29 | int _sd_read_sectors(unsigned long start, int count, void* buf); |
38 | int _sd_write_sectors(unsigned long start, int count, const void* buf); | 30 | int _sd_write_sectors(unsigned long start, int count, const void* buf); |
39 | int _sd_init(void); | 31 | int _sd_init(void); |