mmc: bcm2835_sdhci: Restore original delay behavior
authorMarek Vasut <marex@denx.de>
Fri, 19 Jun 2015 21:39:41 +0000 (23:39 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 25 Jun 2015 21:04:37 +0000 (17:04 -0400)
Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled
"mmc: bcm283x: Remove get_timer_us() from mmc driver"
incorrectly replaced ad-hoc get_timer_us() function
with a plain get_timer(). The get_timer() operates in
mSec units instead of uSec though, which caused very
slow operation of the driver.

Restore the original behavior of the driver, but avoid
get_timer_us() and use timer_get_us() instead. The later
is part of the standard API.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jakub KiciƄski <moorray3@wp.pl>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Tested-by: Jakub Kicinski <kubakici@wp.pl>
drivers/mmc/bcm2835_sdhci.c

index 078ef0523a91b2f5b6762b8ecd0ac67ae64aeb5d..227d2dfa2efddebbab3d89779efb6c4322e556e4 100644 (file)
@@ -69,11 +69,11 @@ static inline void bcm2835_sdhci_raw_writel(struct sdhci_host *host, u32 val,
         * (Which is just as well - otherwise we'd have to nobble the DMA engine
         * too)
         */
-       while (get_timer(bcm_host->last_write) < bcm_host->twoticks_delay)
+       while (timer_get_us() - bcm_host->last_write < bcm_host->twoticks_delay)
                ;
 
        writel(val, host->ioaddr + reg);
-       bcm_host->last_write = get_timer(0);
+       bcm_host->last_write = timer_get_us();
 }
 
 static inline u32 bcm2835_sdhci_raw_readl(struct sdhci_host *host, int reg)