From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Liu Subject: [PATCH v6 04/14] mmc: sdhci: keep the saved clock var up to date Date: Wed, 17 Oct 2012 19:04:43 +0800 Message-ID: <1350471893-29633-5-git-send-email-keyuan.liu@gmail.com> References: <1350471893-29633-1-git-send-email-keyuan.liu@gmail.com> Return-path: Received: from na3sys009aog103.obsmtp.com ([74.125.149.71]:56129 "EHLO na3sys009aog103.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755580Ab2JQLFT (ORCPT ); Wed, 17 Oct 2012 07:05:19 -0400 In-Reply-To: <1350471893-29633-1-git-send-email-keyuan.liu@gmail.com> Sender: linux-mmc-owner@vger.kernel.org List-Id: linux-mmc@vger.kernel.org To: linux-mmc@vger.kernel.org, cjb@laptop.org, pierre@ossman.eu, ulf.hansson@linaro.org, zgao6@marvell.com Cc: hzhuang1@marvell.com, cxie4@marvell.com, prakity@marvell.com, kliu5@marvell.com, Bin Wang From: Kevin Liu The clock rate set to the sdh controller may not exactly as requested by the mmc core, this patch make the clock rate saved in the mmc_ios and sdhci_host updated with the actual setting as in the controller. Thus "/sys/kernel/debug/mmcx/ios" and card detect prints can show the correct clock rate. Otherwise, mmc power class may be set to wrong value with wrong ios.clock Signed-off-by: Bin Wang Signed-off-by: Kevin Liu --- drivers/mmc/host/sdhci.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index eb621dd..8e6a6f0 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -1199,7 +1199,10 @@ static void sdhci_set_clock(struct sdhci_host *host, unsigned int clock) sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); out: - host->clock = clock; + if (real_div) + host->clock = host->mmc->actual_clock; + else + host->clock = clock; } static int sdhci_set_power(struct sdhci_host *host, unsigned short power) @@ -1375,6 +1378,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) } sdhci_set_clock(host, ios->clock); + ios->clock = host->clock; if (ios->power_mode == MMC_POWER_OFF) vdd_bit = sdhci_set_power(host, -1); -- 1.7.0.4