Commit 70ac0935 authored by Ulf Hansson's avatar Ulf Hansson Committed by Russell King

ARM: 7552/1: mmc: mmci: Switching off HWFC for SDIO depends on MCLK

For writes, HWFC shall be switched off when transfer size <= 8
bytes and when MCLK rate is above 50 MHz. For 50MHz and below
it shall be switched off when transfer size < 8 bytes.
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarJohan Rudholm <johan.rudholm@stericsson.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 06c1a121
...@@ -664,12 +664,14 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) ...@@ -664,12 +664,14 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
datactrl |= MCI_ST_DPSM_SDIOEN; datactrl |= MCI_ST_DPSM_SDIOEN;
/* /*
* The ST Micro variant for SDIO transfer sizes * The ST Micro variant for SDIO small write transfers
* less then 8 bytes should have clock H/W flow * needs to have clock H/W flow control disabled,
* control disabled. * otherwise the transfer will not start. The threshold
* depends on the rate of MCLK.
*/ */
if ((host->size < 8) && if (data->flags & MMC_DATA_WRITE &&
(data->flags & MMC_DATA_WRITE)) (host->size < 8 ||
(host->size <= 8 && host->mclk > 50000000)))
clk = host->clk_reg & ~variant->clkreg_enable; clk = host->clk_reg & ~variant->clkreg_enable;
else else
clk = host->clk_reg | variant->clkreg_enable; clk = host->clk_reg | variant->clkreg_enable;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment