Message ID | 1348659527-4200-5-git-send-email-keyuan.liu@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Sep 26, 2012 at 7:38 PM, Kevin Liu <keyuan.liu@gmail.com> wrote: > From: Kevin Liu <kliu5@marvell.com> > > 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. The patch may not required if only updating debugfs, since actual_clock already been considered in debugfs. However, does incorrect ios->clock cause unexpected result, such as powerclass. If so, how about directly correct ios->clock, and remove actual_clock at all? /Zhangfei -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" 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/sdhci.c b/drivers/mmc/host/sdhci.c index 3eceb48..0eed3dd 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);