From ba9e7185a899623751a67d1ced63d5548a67b1fb Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Tue, 2 Apr 2013 13:46:15 +0200 Subject: [PATCH] Omap4 sd_card driver: fix recursive usleep loop This commit removes an endless loop, that occurred when the sd_card driver called usleep, or msleep on its Timer_delayer object. Fixes #705 Also fixes the same problem for the Omap4 GPIO driver. --- os/src/drivers/gpio/omap4/driver.h | 13 +------------ os/src/drivers/sd_card/omap4/driver.h | 13 +------------ 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/os/src/drivers/gpio/omap4/driver.h b/os/src/drivers/gpio/omap4/driver.h index f50186e47..e0ada75a7 100644 --- a/os/src/drivers/gpio/omap4/driver.h +++ b/os/src/drivers/gpio/omap4/driver.h @@ -51,18 +51,7 @@ class Gpio::Driver /** * Implementation of 'Delayer' interface */ - void usleep(unsigned us) - { - /* polling */ - if (us == 0) - return; - - unsigned ms = us / 1000; - if (ms == 0) - ms = 1; - - Timer::Connection::msleep(ms); - } + void usleep(unsigned us) { Timer::Connection::usleep(us); } } _delayer; /* memory map */ diff --git a/os/src/drivers/sd_card/omap4/driver.h b/os/src/drivers/sd_card/omap4/driver.h index 125887157..2a42299d0 100644 --- a/os/src/drivers/sd_card/omap4/driver.h +++ b/os/src/drivers/sd_card/omap4/driver.h @@ -38,18 +38,7 @@ class Block::Omap4_driver : public Block::Driver /** * Implementation of 'Delayer' interface */ - void usleep(unsigned us) - { - /* polling */ - if (us == 0) - return; - - unsigned ms = us / 1000; - if (ms == 0) - ms = 1; - - Timer::Connection::msleep(ms); - } + void usleep(unsigned us) { Timer::Connection::usleep(us); } } _delayer; /* memory map */