Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=12c834527b85571792f1c4f1d12632185bea44c2
Commit:     12c834527b85571792f1c4f1d12632185bea44c2
Parent:     abc71668b5c99b655c6b2677570748a840d4c713
Author:     Alex Dubov <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 10 21:16:40 2007 -0800
Committer:  Pierre Ossman <[EMAIL PROTECTED]>
CommitDate: Sun Feb 11 16:28:22 2007 +0100

    tifm_sd: treat "status error" as normal command completion
    
    TI FlasMedia controller attempts to validate command responses and
    issues a "status error" if response does not matches its perceived
    (by controller) value. As mmc layer does its own validation we can
    safely ignore the controller's opinion.
    
    Signed-off-by: Alex Dubov <[EMAIL PROTECTED]>
    Signed-off-by: Pierre Ossman <[EMAIL PROTECTED]>
---
 drivers/mmc/tifm_sd.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/mmc/tifm_sd.c b/drivers/mmc/tifm_sd.c
index e65f8a0..0581d09 100644
--- a/drivers/mmc/tifm_sd.c
+++ b/drivers/mmc/tifm_sd.c
@@ -36,8 +36,8 @@ module_param(fixed_timeout, bool, 0644);
 #define TIFM_MMCSD_INAB       0x0080   /* abort / initialize command */
 #define TIFM_MMCSD_READ       0x8000
 
-#define TIFM_MMCSD_DATAMASK   0x001d   /* set bits: EOFB, BRS, CB, EOC */
-#define TIFM_MMCSD_ERRMASK    0x41e0   /* set bits: CERR, CCRC, CTO, DCRC, DTO 
*/
+#define TIFM_MMCSD_DATAMASK   0x401d   /* set bits: CERR, EOFB, BRS, CB, EOC */
+#define TIFM_MMCSD_ERRMASK    0x01e0   /* set bits: CCRC, CTO, DCRC, DTO */
 #define TIFM_MMCSD_EOC        0x0001   /* end of command phase  */
 #define TIFM_MMCSD_CB         0x0004   /* card enter busy state */
 #define TIFM_MMCSD_BRS        0x0008   /* block received/sent   */
@@ -242,7 +242,7 @@ change_state:
        case IDLE:
                return;
        case CMD:
-               if (host_status & TIFM_MMCSD_EOC) {
+               if (host_status & (TIFM_MMCSD_EOC | TIFM_MMCSD_CERR)) {
                        tifm_sd_fetch_resp(cmd, sock);
                        if (cmd->data) {
                                host->state = BRS;
@@ -341,10 +341,7 @@ static void tifm_sd_signal_irq(struct tifm_dev *sock,
                        goto done;
 
                if (host_status & TIFM_MMCSD_ERRMASK) {
-                       if (host_status & TIFM_MMCSD_CERR)
-                               error_code = MMC_ERR_FAILED;
-                       else if (host_status
-                                & (TIFM_MMCSD_CTO | TIFM_MMCSD_DTO))
+                       if (host_status & (TIFM_MMCSD_CTO | TIFM_MMCSD_DTO))
                                error_code = MMC_ERR_TIMEOUT;
                        else if (host_status
                                 & (TIFM_MMCSD_CCRC | TIFM_MMCSD_DCRC))
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to