diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-12-04 14:58:48 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-12-04 14:58:48 +0000 |
| commit | b070dd55be61b19a0cf88cd8d8a5b80387c50f31 (patch) | |
| tree | bda0516c85e38bfc687fdc74ba97eea016e46b58 | |
| parent | d41942e12f6a63b1067e9d3b91e55a02ad78b2b6 (diff) | |
| download | rockbox-b070dd55be61b19a0cf88cd8d8a5b80387c50f31.zip rockbox-b070dd55be61b19a0cf88cd8d8a5b80387c50f31.tar.gz rockbox-b070dd55be61b19a0cf88cd8d8a5b80387c50f31.tar.bz2 rockbox-b070dd55be61b19a0cf88cd8d8a5b80387c50f31.tar.xz | |
Added disk spinup clocking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2927 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/debug_menu.c | 9 | ||||
| -rw-r--r-- | firmware/drivers/ata.c | 3 | ||||
| -rw-r--r-- | firmware/drivers/ata.h | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 571ab09..e55aa12 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -1107,7 +1107,7 @@ static bool dbg_disk_info(void) bool done = false; int i; int page = 0; - const int max_page = 2; + const int max_page = 3; unsigned short* identify_info = ata_get_identify(); while(!done) @@ -1146,6 +1146,13 @@ static bool dbg_disk_info(void) (unsigned)identify_info[60]) / 2048 ); lcd_puts(0, y++, "Size"); lcd_puts(0, y++, buf); + break; + + case 3: + snprintf(buf, sizeof buf, "%d ms", ata_spinup_time * (1000/HZ)); + lcd_puts(0, y++, "Spinup time"); + lcd_puts(0, y++, buf); + break; } lcd_update(); diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c index 0b7a37e..8f70714 100644 --- a/firmware/drivers/ata.c +++ b/firmware/drivers/ata.c @@ -80,6 +80,7 @@ int ata_io_address; /* 0x300 or 0x200, only valid on recorder */ static volatile unsigned char* ata_control; bool old_recorder = false; +int ata_spinup_time = 0; static bool sleeping = false; static int sleep_timeout = 5*HZ; static bool poweroff = false; @@ -186,6 +187,7 @@ int ata_read_sectors(unsigned long start, } sleeping = false; poweroff = false; + ata_spinup_time = current_tick - last_disk_activity; } ATA_SELECT = ata_device; @@ -307,6 +309,7 @@ int ata_write_sectors(unsigned long start, } sleeping = false; poweroff = false; + ata_spinup_time = current_tick - last_disk_activity; } ATA_SELECT = ata_device; diff --git a/firmware/drivers/ata.h b/firmware/drivers/ata.h index a9a7987..7a1fb4a 100644 --- a/firmware/drivers/ata.h +++ b/firmware/drivers/ata.h @@ -48,5 +48,6 @@ extern void ata_spin(void); extern unsigned short* ata_get_identify(void); extern long last_disk_activity; +extern int ata_spinup_time; /* ticks */ #endif |