Updated from Linux LTS 3.10.21 to 3.10.22
This commit is contained in:
@@ -584,6 +584,13 @@ static void atmci_timeout_timer(unsigned long data)
|
||||
if (host->mrq->cmd->data) {
|
||||
host->mrq->cmd->data->error = -ETIMEDOUT;
|
||||
host->data = NULL;
|
||||
/*
|
||||
* With some SDIO modules, sometimes DMA transfer hangs. If
|
||||
* stop_transfer() is not called then the DMA request is not
|
||||
* removed, following ones are queued and never computed.
|
||||
*/
|
||||
if (host->state == STATE_DATA_XFER)
|
||||
host->stop_transfer(host);
|
||||
} else {
|
||||
host->mrq->cmd->error = -ETIMEDOUT;
|
||||
host->cmd = NULL;
|
||||
@@ -1787,12 +1794,14 @@ static void atmci_tasklet_func(unsigned long priv)
|
||||
if (unlikely(status)) {
|
||||
host->stop_transfer(host);
|
||||
host->data = NULL;
|
||||
if (status & ATMCI_DTOE) {
|
||||
data->error = -ETIMEDOUT;
|
||||
} else if (status & ATMCI_DCRCE) {
|
||||
data->error = -EILSEQ;
|
||||
} else {
|
||||
data->error = -EIO;
|
||||
if (data) {
|
||||
if (status & ATMCI_DTOE) {
|
||||
data->error = -ETIMEDOUT;
|
||||
} else if (status & ATMCI_DCRCE) {
|
||||
data->error = -EILSEQ;
|
||||
} else {
|
||||
data->error = -EIO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user