Thread (30 messages) 30 messages, 3 authors, 2013-12-17
STALE4584d
Revisions (6)
  1. v1 [diff vs current]
  2. v1 [diff vs current]
  3. v1 [diff vs current]
  4. v1 current
  5. v2 [diff vs current]
  6. v3 [diff vs current]

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help