From e0e24cbf0a3b11cb161e0ae057e4c383c6134801 Mon Sep 17 00:00:00 2001 From: Rafaël Carré Date: Wed, 1 Jul 2009 10:07:22 +0000 Subject: 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 --- firmware/drivers/ata_mmc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'firmware/drivers') diff --git a/firmware/drivers/ata_mmc.c b/firmware/drivers/ata_mmc.c index 3396149602..1dc330c538 100644 --- a/firmware/drivers/ata_mmc.c +++ b/firmware/drivers/ata_mmc.c @@ -21,6 +21,7 @@ #include #include "mmc.h" #include "ata_mmc.h" +#include "hotswap.h" #include "ata_idle_notify.h" #include "kernel.h" #include "thread.h" @@ -439,15 +440,15 @@ static int initialize_card(int card_no) * exponent[ts_exp + 4]; card->bitrate_register = (FREQ/4-1) / card->speed; - /* NSAC, TSAC, read timeout */ + /* NSAC, TAAC, read timeout */ card->nsac = 100 * card_extract_bits(card->csd, 16, 8); - card->tsac = mantissa[card_extract_bits(card->csd, 9, 4)]; + card->taac = mantissa[card_extract_bits(card->csd, 9, 4)]; taac_exp = card_extract_bits(card->csd, 13, 3); card->read_timeout = ((FREQ/4) / (card->bitrate_register + 1) - * card->tsac / exponent[9 - taac_exp] + * card->taac / exponent[9 - taac_exp] + (10 * card->nsac)); card->read_timeout /= 8; /* clocks -> bytes */ - card->tsac = card->tsac * exponent[taac_exp] / 10; + card->taac = card->taac * exponent[taac_exp] / 10; /* r2w_factor, write timeout */ card->r2w_factor = BIT_N(card_extract_bits(card->csd, 99, 3)); -- cgit v1.2.3