mmc: sdhci: Tuning should not change max_blk_count
Re-tuning requires that the maximum data length is limited to 4MiB. The code currently changes max_blk_count in an attempt to achieve that. This is wrong because max_blk_count is a different limit, but it is also un-necessary because max_req_size is 512KiB anyway. Consequently, the changes to max_blk_count are removed and the comment for max_req_size adjusted accordingly. The comment is also tweaked to show that the 512KiB limit is a SDMA limit not an ADMA limit. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Reviewed-by: Aaron Lu <aaron.lu@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
eaa27f34e9
commit
ac00531d9f
@ -259,8 +259,6 @@ static void sdhci_reinit(struct sdhci_host *host)
|
||||
|
||||
del_timer_sync(&host->tuning_timer);
|
||||
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
||||
host->mmc->max_blk_count =
|
||||
(host->quirks & SDHCI_QUIRK_NO_MULTIBLOCK) ? 1 : 65535;
|
||||
}
|
||||
sdhci_enable_card_detection(host);
|
||||
}
|
||||
@ -2048,8 +2046,6 @@ out:
|
||||
host->flags |= SDHCI_USING_RETUNING_TIMER;
|
||||
mod_timer(&host->tuning_timer, jiffies +
|
||||
host->tuning_count * HZ);
|
||||
/* Tuning mode 1 limits the maximum data length to 4MB */
|
||||
mmc->max_blk_count = (4 * 1024 * 1024) / mmc->max_blk_size;
|
||||
} else if (host->flags & SDHCI_USING_RETUNING_TIMER) {
|
||||
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
||||
/* Reload the new initial value for timer */
|
||||
@ -3260,8 +3256,9 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||
mmc->max_segs = SDHCI_MAX_SEGS;
|
||||
|
||||
/*
|
||||
* Maximum number of sectors in one transfer. Limited by DMA boundary
|
||||
* size (512KiB).
|
||||
* Maximum number of sectors in one transfer. Limited by SDMA boundary
|
||||
* size (512KiB). Note some tuning modes impose a 4MiB limit, but this
|
||||
* is less anyway.
|
||||
*/
|
||||
mmc->max_req_size = 524288;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user