summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2006-11-09 18:57:47 +0000
committerJens Arnold <amiconn@rockbox.org>2006-11-09 18:57:47 +0000
commit412bea9782db6843bcefd53ce7ce74b003b3c8c5 (patch)
tree9c7e84f4c7f4b95ad0b8ac280cade008394281a9 /firmware
parent0d941425b95d0b5fd55862a6f1f0c4fd1222db28 (diff)
downloadrockbox-412bea9782db6843bcefd53ce7ce74b003b3c8c5.tar.gz
rockbox-412bea9782db6843bcefd53ce7ce74b003b3c8c5.zip
Ondio: Better activity monitoring for 'ata' idle notification.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11481 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/ata_mmc.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/drivers/ata_mmc.c b/firmware/drivers/ata_mmc.c
index 9491429542..bf78bc84f4 100644
--- a/firmware/drivers/ata_mmc.c
+++ b/firmware/drivers/ata_mmc.c
@@ -981,7 +981,7 @@ void ata_spin(void)
static void mmc_thread(void)
{
struct event ev;
- static long last_seen_mtx_unlock = 0;
+ bool idle_notified = false;
while (1) {
queue_wait_w_tmo(&mmc_queue, &ev, HZ);
@@ -1006,14 +1006,16 @@ static void mmc_thread(void)
#endif
default:
- if (!ata_disk_is_active())
+ if (TIME_BEFORE(current_tick, last_disk_activity+(3*HZ)))
{
- if (!last_seen_mtx_unlock)
- last_seen_mtx_unlock = current_tick;
- if (TIME_AFTER(current_tick, last_seen_mtx_unlock+(HZ*10)))
+ idle_notified = false;
+ }
+ else
+ {
+ if (!idle_notified)
{
call_ata_idle_notifys(false);
- last_seen_mtx_unlock = 0;
+ idle_notified = true;
}
}
break;