summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2007-01-23 15:43:37 +0000
committerNils Wallménius <nils@rockbox.org>2007-01-23 15:43:37 +0000
commit1b85f60ae0b0c1e24595e9551ce5eee10f15b182 (patch)
treea9cd95362fc8e63032647476acf4fa1cbfe1825a
parentb2e50906a4af3176d03dff98af4a260709bdad96 (diff)
Permanently enable powering down the disk when it's sleeping for supported targets (iriver h1xx, h3xx and h10, iaudio x5, gigabeat and archos recorders)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12094 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/lang/english.lang8
-rw-r--r--apps/settings.c3
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_list.c3
-rw-r--r--apps/settings_menu.c11
-rw-r--r--firmware/drivers/ata.c21
-rw-r--r--firmware/export/ata.h1
-rw-r--r--firmware/powermgmt.c4
8 files changed, 10 insertions, 42 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index a4f937c986..9e85f848af 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -3850,16 +3850,16 @@
</phrase>
<phrase>
id: LANG_POWEROFF
- desc: disk poweroff flag
+ desc: DEPRECATED
user:
<source>
- *: "Disk Poweroff"
+ *: ""
</source>
<dest>
- *: "Disk Poweroff"
+ *: deprecated
</dest>
<voice>
- *: "Disk Poweroff"
+ *: ""
</voice>
</phrase>
<phrase>
diff --git a/apps/settings.c b/apps/settings.c
index 01ede41b3e..c7794e1015 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -489,9 +489,6 @@ void settings_apply(void)
dac_line_in(global_settings.line_in);
#endif
mpeg_id3_options(global_settings.id3_v1_first);
-#ifdef HAVE_ATA_POWER_OFF
- ata_poweroff(global_settings.disk_poweroff);
-#endif
set_poweroff_timeout(global_settings.poweroff);
diff --git a/apps/settings.h b/apps/settings.h
index eee24f187b..3ff3fe6244 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -281,7 +281,6 @@ struct user_settings
int ff_rewind_min_step; /* FF/Rewind minimum step size */
int ff_rewind_accel; /* FF/Rewind acceleration (in seconds per doubling) */
int disk_spindown; /* time until disk spindown, in seconds (0=off) */
- bool disk_poweroff; /* whether to cut disk power after spindown or not */
int buffer_margin; /* MP3 buffer watermark margin, in seconds */
int peak_meter_release; /* units per read out */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 313524ba81..bffee257d1 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -268,9 +268,6 @@ const struct settings_list settings[] = {
#endif
/* disk */
#ifndef HAVE_MMC
-#ifdef HAVE_ATA_POWER_OFF
- OFFON_SETTING(0,disk_poweroff,false,"disk poweroff",NULL),
-#endif
{F_T_INT,GS(disk_spindown),INT(5),"disk spindown",NULL,UNUSED},
#endif /* HAVE_MMC */
/* browser */
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index 04fd64b1ca..1a19bb18c8 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -1104,14 +1104,6 @@ static bool spindown(void)
ata_spindown, 1, 3, 254, NULL );
}
-#ifdef HAVE_ATA_POWER_OFF
-static bool poweroff(void)
-{
- bool rc = set_bool(str(LANG_POWEROFF), &global_settings.disk_poweroff);
- ata_poweroff(global_settings.disk_poweroff);
- return rc;
-}
-#endif /* HAVE_ATA_POWEROFF */
#endif /* !HAVE_MMC */
#if CONFIG_CODEC == MAS3507D
@@ -2116,9 +2108,6 @@ static bool disk_settings_menu(void)
static const struct menu_item items[] = {
{ ID2P(LANG_SPINDOWN), spindown },
-#ifdef HAVE_ATA_POWER_OFF
- { ID2P(LANG_POWEROFF), poweroff },
-#endif
#ifdef HAVE_DIRCACHE
{ ID2P(LANG_DIRCACHE_ENABLE), dircache },
#endif
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 4dd0fdcc49..349f76c0ec 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -63,6 +63,10 @@
#define READ_TIMEOUT 5*HZ
+#ifdef HAVE_ATA_POWER_OFF
+#define ATA_POWER_OFF_TIMEOUT 2*HZ
+#endif
+
static struct mutex ata_mtx;
int ata_device; /* device 0 (master) or 1 (slave) */
@@ -75,9 +79,6 @@ static bool spinup = false;
static bool sleeping = true;
static bool poweroff = false;
static long sleep_timeout = 5*HZ;
-#ifdef HAVE_ATA_POWER_OFF
-static int poweroff_timeout = 2*HZ;
-#endif
#ifdef HAVE_LBA48
static bool lba48 = false; /* set for 48 bit addressing */
#endif
@@ -561,16 +562,6 @@ void ata_spindown(int seconds)
sleep_timeout = seconds * HZ;
}
-#ifdef HAVE_ATA_POWER_OFF
-void ata_poweroff(bool enable)
-{
- if (enable)
- poweroff_timeout = 2*HZ;
- else
- poweroff_timeout = 0;
-}
-#endif
-
bool ata_disk_is_active(void)
{
return !sleeping;
@@ -654,8 +645,8 @@ static void ata_thread(void)
}
}
#ifdef HAVE_ATA_POWER_OFF
- if ( !spinup && sleeping && poweroff_timeout && !poweroff &&
- TIME_AFTER( current_tick, last_sleep + poweroff_timeout ))
+ if ( !spinup && sleeping && !poweroff &&
+ TIME_AFTER( current_tick, last_sleep + ATA_POWER_OFF_TIMEOUT ))
{
mutex_lock(&ata_mtx);
ide_power_enable(false);
diff --git a/firmware/export/ata.h b/firmware/export/ata.h
index a2cb8ab975..915a71f536 100644
--- a/firmware/export/ata.h
+++ b/firmware/export/ata.h
@@ -38,7 +38,6 @@
extern void ata_enable(bool on);
extern void ata_spindown(int seconds);
-extern void ata_poweroff(bool enable);
extern void ata_sleep(void);
extern void ata_sleepnow(void);
extern bool ata_disk_is_active(void);
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c
index 2fef005b84..7f796abde5 100644
--- a/firmware/powermgmt.c
+++ b/firmware/powermgmt.c
@@ -30,7 +30,6 @@
#include "ata.h"
#include "power.h"
#include "button.h"
-#include "ata.h"
#include "audio.h"
#include "mp3_playback.h"
#include "usb.h"
@@ -638,9 +637,6 @@ static void handle_auto_poweroff(void)
remote_backlight_set_timeout(2);
#endif
ata_spindown(3);
-#ifdef HAVE_ATA_POWER_OFF
- ata_poweroff(true);
-#endif
low_battery = true;
} else if (low_battery && (battery_percent > 11)) {
backlight_set_timeout(10);