sdhci: be more cautious about block count register
The block count register shouldn't be trusted for single block transfers, so avoid using it completely when calculating transferred bytes. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
be760a9de8
commit
2b06197340
1 changed files with 2 additions and 2 deletions
|
@ -477,8 +477,8 @@ static void sdhci_finish_data(struct sdhci_host *host)
|
|||
/*
|
||||
* Controller doesn't count down when in single block mode.
|
||||
*/
|
||||
if ((data->blocks == 1) && (data->error == MMC_ERR_NONE))
|
||||
blocks = 0;
|
||||
if (data->blocks == 1)
|
||||
blocks = (data->error == MMC_ERR_NONE) ? 0 : 1;
|
||||
else
|
||||
blocks = readw(host->ioaddr + SDHCI_BLOCK_COUNT);
|
||||
data->bytes_xfered = data->blksz * (data->blocks - blocks);
|
||||
|
|
Loading…
Reference in a new issue