Message ID | 1401700137-11547-1-git-send-email-srinivas.kandagatla@linaro.org |
---|---|
State | New |
Headers | show |
On Mon, Jun 2, 2014 at 11:08 AM, <srinivas.kandagatla@linaro.org> wrote: > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > On Qcom SD Card controller POWER, CLKCTRL, DATACTRL and COMMAND registers > should be updated in MCLK domain, and writes to these registers must be > separated by three MCLK cycles. This resitriction is not applicable for > other registers. Any subsequent writes to these register will be ignored > until 3 MCLK have passed. > > One usec delay between two CMD register writes is not sufficient in the > card identification phase where the CCLK is very low. This patch replaces > a static 1 usec delay to use mmci_reg_delay function which can provide > correct delay depending on the cclk frequency. > > Without this patch the card is not detected. > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index a38e714..ed20bf5 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -810,7 +810,7 @@ mmci_start_command(struct mmci_host *host, struct mmc_command *cmd, u32 c) if (readl(base + MMCICOMMAND) & MCI_CPSM_ENABLE) { writel(0, base + MMCICOMMAND); - udelay(1); + mmci_reg_delay(host); } c |= cmd->opcode | MCI_CPSM_ENABLE;