diff mbox

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

Message ID 1434749981-10158-1-git-send-email-marex@denx.de
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Marek Vasut June 19, 2015, 9:39 p.m. UTC
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(-)

Comments

Marek Vasut June 19, 2015, 9:41 p.m. UTC | #1
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
Jakub Kiciński June 20, 2015, 11:36 a.m. UTC | #2
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>
Marek Vasut June 20, 2015, 2:23 p.m. UTC | #3
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
Tom Rini June 26, 2015, 9:04 p.m. UTC | #4
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!
diff mbox

Patch

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)