From 297c29cba60e34ed01fb72974dcb562e58df322b Mon Sep 17 00:00:00 2001 From: Tomasz Moń Date: Mon, 28 Nov 2011 21:12:54 +0000 Subject: dm320: call storage idle notifys on in sdmmc thread git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31086 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/tms320dm320/sdmmc-dm320.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'firmware/target/arm/tms320dm320/sdmmc-dm320.c') diff --git a/firmware/target/arm/tms320dm320/sdmmc-dm320.c b/firmware/target/arm/tms320dm320/sdmmc-dm320.c index 307b90ec3b..7df2925e20 100644 --- a/firmware/target/arm/tms320dm320/sdmmc-dm320.c +++ b/firmware/target/arm/tms320dm320/sdmmc-dm320.c @@ -27,6 +27,7 @@ #include "panic.h" #include "kernel.h" #include "dma-target.h" +#include "ata_idle_notify.h" //#define SD_DEBUG @@ -576,8 +577,8 @@ static void sd_thread(void) NORETURN_ATTR; static void sd_thread(void) { struct queue_event ev; + bool idle_notified = false; - /* TODO */ while (1) { queue_wait_w_tmo(&sd_queue, &ev, HZ); @@ -627,6 +628,17 @@ static void sd_thread(void) } break; #endif + case SYS_TIMEOUT: + if (TIME_BEFORE(current_tick, last_disk_activity+(3*HZ))) + { + idle_notified = false; + } + else if (!idle_notified) + { + call_storage_idle_notifys(false); + idle_notified = true; + } + break; } } } -- cgit v1.2.3