63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
From 83c3a690670bb23a4a1fb645cf980056b4f85f4d Mon Sep 17 00:00:00 2001
|
|
From: Romuald JEANNE <romuald.jeanne@st.com>
|
|
Date: Tue, 16 Mar 2021 09:12:53 +0100
|
|
Subject: [PATCH 12/22] ARM 5.10.10-stm32mp1-r1 MMC
|
|
|
|
---
|
|
drivers/mmc/core/mmc_test.c | 2 +-
|
|
drivers/mmc/host/mmci.c | 13 +++++++++----
|
|
2 files changed, 10 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c
|
|
index 152e7525ed33..b1f0d04f9430 100644
|
|
--- a/drivers/mmc/core/mmc_test.c
|
|
+++ b/drivers/mmc/core/mmc_test.c
|
|
@@ -2124,7 +2124,7 @@ static int mmc_test_rw_multiple(struct mmc_test_card *test,
|
|
if (mmc_can_erase(test->card) &&
|
|
tdata->prepare & MMC_TEST_PREP_ERASE) {
|
|
ret = mmc_erase(test->card, dev_addr,
|
|
- size / 512, MMC_SECURE_ERASE_ARG);
|
|
+ size / 512, test->card->erase_arg);
|
|
if (ret)
|
|
ret = mmc_erase(test->card, dev_addr,
|
|
size / 512, MMC_ERASE_ARG);
|
|
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
|
|
index b5a41a7ce165..fa6d85190cdb 100644
|
|
--- a/drivers/mmc/host/mmci.c
|
|
+++ b/drivers/mmc/host/mmci.c
|
|
@@ -1241,7 +1241,11 @@ mmci_start_command(struct mmci_host *host, struct mmc_command *cmd, u32 c)
|
|
if (!cmd->busy_timeout)
|
|
cmd->busy_timeout = 10 * MSEC_PER_SEC;
|
|
|
|
- clks = (unsigned long long)cmd->busy_timeout * host->cclk;
|
|
+ if (cmd->busy_timeout > host->mmc->max_busy_timeout)
|
|
+ clks = (unsigned long long)host->mmc->max_busy_timeout * host->cclk;
|
|
+ else
|
|
+ clks = (unsigned long long)cmd->busy_timeout * host->cclk;
|
|
+
|
|
do_div(clks, MSEC_PER_SEC);
|
|
writel_relaxed(clks, host->base + MMCIDATATIMER);
|
|
}
|
|
@@ -2091,14 +2095,15 @@ static int mmci_probe(struct amba_device *dev,
|
|
mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
|
|
}
|
|
|
|
+ /* Variants with mandatory busy timeout in HW needs R1B responses. */
|
|
+ if (variant->busy_timeout)
|
|
+ mmc->caps |= MMC_CAP_NEED_RSP_BUSY;
|
|
+
|
|
/* Prepare a CMD12 - needed to clear the DPSM on some variants. */
|
|
host->stop_abort.opcode = MMC_STOP_TRANSMISSION;
|
|
host->stop_abort.arg = 0;
|
|
host->stop_abort.flags = MMC_RSP_R1B | MMC_CMD_AC;
|
|
|
|
- /* We support these PM capabilities. */
|
|
- mmc->pm_caps |= MMC_PM_KEEP_POWER;
|
|
-
|
|
/*
|
|
* We can do SGIO
|
|
*/
|
|
--
|
|
2.17.1
|
|
|