diff options
Diffstat (limited to 'firmware/target/arm/tms320dm320/sdmmc-dm320.c')
-rw-r--r-- | firmware/target/arm/tms320dm320/sdmmc-dm320.c | 14 |
1 files changed, 13 insertions, 1 deletions
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 @@ | |||
27 | #include "panic.h" | 27 | #include "panic.h" |
28 | #include "kernel.h" | 28 | #include "kernel.h" |
29 | #include "dma-target.h" | 29 | #include "dma-target.h" |
30 | #include "ata_idle_notify.h" | ||
30 | 31 | ||
31 | //#define SD_DEBUG | 32 | //#define SD_DEBUG |
32 | 33 | ||
@@ -576,8 +577,8 @@ static void sd_thread(void) NORETURN_ATTR; | |||
576 | static void sd_thread(void) | 577 | static void sd_thread(void) |
577 | { | 578 | { |
578 | struct queue_event ev; | 579 | struct queue_event ev; |
580 | bool idle_notified = false; | ||
579 | 581 | ||
580 | /* TODO */ | ||
581 | while (1) | 582 | while (1) |
582 | { | 583 | { |
583 | queue_wait_w_tmo(&sd_queue, &ev, HZ); | 584 | queue_wait_w_tmo(&sd_queue, &ev, HZ); |
@@ -627,6 +628,17 @@ static void sd_thread(void) | |||
627 | } | 628 | } |
628 | break; | 629 | break; |
629 | #endif | 630 | #endif |
631 | case SYS_TIMEOUT: | ||
632 | if (TIME_BEFORE(current_tick, last_disk_activity+(3*HZ))) | ||
633 | { | ||
634 | idle_notified = false; | ||
635 | } | ||
636 | else if (!idle_notified) | ||
637 | { | ||
638 | call_storage_idle_notifys(false); | ||
639 | idle_notified = true; | ||
640 | } | ||
641 | break; | ||
630 | } | 642 | } |
631 | } | 643 | } |
632 | } | 644 | } |