mmc: core: fix possible clock gating issue during voltage switch
During voltage sequence (for UHS SD/SDIO cards), host first sends the voltage switch command (CMD11) to card and then host must stop the clock at least for 5ms but currently there is a possibility (if clkgate_delay is 0) that clock may be gated off immediately after the CMD11 response from card and then get turned on before 5ms itself. This patch ensures that clock is gated off at least for 5ms after receiving the card response for voltage switch command. Change-Id: I131b3d154adab29bef367c8ce31c2f2edd159fd2 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org> [subhashj@codeaurora.org: fixed merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
parent
47c3f0cd0a
commit
d3b98e3a11
1 changed files with 5 additions and 2 deletions
|
@ -1753,12 +1753,15 @@ int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage, u32 ocr)
|
|||
pr_warn("%s: cannot verify signal voltage switch\n",
|
||||
mmc_hostname(host));
|
||||
|
||||
mmc_host_clk_hold(host);
|
||||
|
||||
cmd.opcode = SD_SWITCH_VOLTAGE;
|
||||
cmd.arg = 0;
|
||||
cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
||||
|
||||
/*
|
||||
* Hold the clock reference so clock doesn't get auto gated during this
|
||||
* voltage switch sequence.
|
||||
*/
|
||||
mmc_host_clk_hold(host);
|
||||
err = mmc_wait_for_cmd(host, &cmd, 0);
|
||||
if (err)
|
||||
goto err_command;
|
||||
|
|
Loading…
Add table
Reference in a new issue