[U-Boot] [PATCH] mmc: bcm2835_sdhci: Restore original delay behavior

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 --- drivers/mmc/bcm2835_sdhci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c index 078ef05..227d2df 100644 --- a/drivers/mmc/bcm2835_sdhci.c +++ b/drivers/mmc/bcm2835_sdhci.c @@ -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)

On Friday, June 19, 2015 at 11:39:41 PM, Marek Vasut wrote:
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
Stephen/Jakub, can you please test this one one more time ? If it works, it'd be nice if this could be applied to current relase please.
Best regards, Marek Vasut

On Fri, 19 Jun 2015 23:39:41 +0200, Marek Vasut wrote:
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

On Saturday, June 20, 2015 at 01:36:58 PM, Jakub Kiciński wrote:
On Fri, 19 Jun 2015 23:39:41 +0200, Marek Vasut wrote:
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
Thanks :)
Best regards, Marek Vasut

On Fri, Jun 19, 2015 at 11:39:41PM +0200, Marek Vasut wrote:
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
Applied to u-boot/master, thanks!
participants (3)
-
Jakub Kiciński
-
Marek Vasut
-
Tom Rini