Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b061973 authored by Pierre Ossman's avatar Pierre Ossman
Browse files

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: default avatarPierre Ossman <drzeus@drzeus.cx>
parent be760a9d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);