sd-as3525v2: panic in case of error in the isr

Disable errors on response timeout since it can happen on SD_SEND_IF_COND
Disable errors on start bit error : it's ignored by the linux driver

No panic on my side with those 2 bits unchecked, but no transfer
completion either.
Note: the Linux driver doesn't implement DMA

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24837 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Rafaël Carré 2010-02-21 22:49:57 +00:00
parent c6af5c962d
commit 1ae6307a5a

View file

@ -158,9 +158,9 @@ static void printf(const char *format, ...)
#define MCI_INT_EBE (1<<15) /* end bit error */
#define MCI_INT_SDIO (0xf<<16)
#define MCI_ERROR (MCI_INT_RE | MCI_INT_RCRC | MCI_INT_DCRC | MCI_INT_RTO \
#define MCI_ERROR (MCI_INT_RE | MCI_INT_RCRC | MCI_INT_DCRC /*| MCI_INT_RTO*/ \
| MCI_INT_DRTO | MCI_INT_HTO | MCI_INT_FRUN | MCI_INT_HLE \
| MCI_INT_SBE | MCI_INT_EBE)
/*| MCI_INT_SBE*/ | MCI_INT_EBE)
#define MCI_FIFOTH SD_REG(0x4C) /* FIFO threshold */
/* TX watermark : bits 11:0
@ -225,7 +225,10 @@ void INT_NAND(void)
MCI_RAW_STATUS = status; /* clear status */
if(status & MCI_ERROR)
{
panicf("status 0x%8x", status);
retry = true;
}
else if(status & MCI_INT_DTO)
wakeup_signal(&transfer_completion_signal);