summaryrefslogtreecommitdiff
path: root/drivers/mmc/mmc_write.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-09-21 11:48:02 -0400
committerTom Rini <trini@konsulko.com>2016-09-21 11:48:02 -0400
commitf85fad024f208ceedb3ce0bb1819936e62a0983e (patch)
treef9c059cce2ca7ea0fdc74e16b76a6ec7ad3e1108 /drivers/mmc/mmc_write.c
parenta2ed3f452dd1cf4982fe46d5111d200909786686 (diff)
parent2b42903397b4d6b68fe2af95565a8953b08ab96e (diff)
Merge branch 'master' of http://git.denx.de/u-boot-mmc
Diffstat (limited to 'drivers/mmc/mmc_write.c')
-rw-r--r--drivers/mmc/mmc_write.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mmc/mmc_write.c b/drivers/mmc/mmc_write.c
index 0f8b5c79d7c..22896403754 100644
--- a/drivers/mmc/mmc_write.c
+++ b/drivers/mmc/mmc_write.c
@@ -100,8 +100,13 @@ unsigned long mmc_berase(struct blk_desc *block_dev, lbaint_t start,
& ~(mmc->erase_grp_size - 1)) - 1);
while (blk < blkcnt) {
- blk_r = ((blkcnt - blk) > mmc->erase_grp_size) ?
- mmc->erase_grp_size : (blkcnt - blk);
+ if (IS_SD(mmc) && mmc->ssr.au) {
+ blk_r = ((blkcnt - blk) > mmc->ssr.au) ?
+ mmc->ssr.au : (blkcnt - blk);
+ } else {
+ blk_r = ((blkcnt - blk) > mmc->erase_grp_size) ?
+ mmc->erase_grp_size : (blkcnt - blk);
+ }
err = mmc_erase_t(mmc, start + blk, blk_r);
if (err)
break;