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
This commit is contained in:
Nils Wallménius 2007-01-23 15:43:37 +00:00
parent b2e50906a4
commit 1b85f60ae0
8 changed files with 10 additions and 42 deletions

View File

@ -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>

View File

@ -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);

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);