[PATCH 1/6] mmc: sdhci: add platfrom get_max_timeout hook
From: Shawn Guo <hidden>
Date: 2013-12-11 03:12:56
Also in:
linux-mmc
On Wed, Dec 11, 2013 at 11:00:03AM +0800, Dong Aisheng wrote:
quoted
quoted
@@ -2930,7 +2930,10 @@ int sdhci_add_host(struct sdhci_host *host) if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK) host->timeout_clk = mmc->f_max / 1000; - mmc->max_discard_to = (1 << 27) / host->timeout_clk; + if (host->ops->get_max_timeout) + mmc->max_discard_to = host->ops->get_max_timeout(host);Does "timeout" conceptually equals to "discard_to"? If not, we might want to write it in the either form below to avoid messing these two concepts.No, they're two concepts but the max_discard_to equals to the max timeout value the host supports.
Does it? Shouldn't max_discard_to equals to max_timeout_value / timeout_clk?
quoted
mmc->max_discard_to = host->ops->get_max_timeout(host) / host->timeout_clk; or mmc->max_discard_to = host->ops->get_max_discard_to(host); I guess you may want to go for the second one.The original way looks ok to me. Platform host driver does not need to know detail about discard, just tell the max timeout value it supports is ok. Common sdhci driver will handle it well.
Well, looking at the patch #2, esdhc_get_max_timeout() returns max_to / (esdhc_pltfm_get_max_clock(host) / 1000) not just the max timeout value - max_to, so your platform host driver is knowing and handling the details about discard_ro, i.e. the discard_ro has to be max_timeout_value / timeout_clk. Shawn