FS#11149: alternative fix for ipod startup/shutdown issue
Instead of using the OF's low-battery handler to force a shutdown which appears to have numerous unwanted side effects, just clear the end of IRAM before shutting down which appears to solve the original "ipod sometimes needs hard reset to turn on" issue. If you experience the "need hard reset" issue after this commit, please let us know. It has been tested on several models but we still don't know for sure what the original problem was. ;) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25772 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9f157ad584
commit
5b4a84a4ce
2 changed files with 10 additions and 25 deletions
|
@ -29,9 +29,6 @@
|
|||
#include "usb.h"
|
||||
#include "lcd.h"
|
||||
#include "string.h"
|
||||
#if CONFIG_CPU == PP5022 || CONFIG_CPU == PP5020
|
||||
#include "rtc.h"
|
||||
#endif
|
||||
|
||||
void power_init(void)
|
||||
{
|
||||
|
@ -167,26 +164,20 @@ void power_off(void)
|
|||
#endif
|
||||
|
||||
#ifndef BOOTLOADER
|
||||
#if CONFIG_CPU == PP5022 || CONFIG_CPU == PP5020
|
||||
/* When shut down by OF, wakeup via alarm is enabled. This resets the
|
||||
alarm time so an unintended wakeup does not occur. */
|
||||
if (!(pcf50605_wakeup_flags & 0x10))
|
||||
rtc_enable_alarm(false);
|
||||
#endif
|
||||
#if defined(IPOD_1G2G)
|
||||
#ifdef IPOD_1G2G
|
||||
/* we cannot turn off the 1st gen/ 2nd gen yet. Need to figure out sleep mode. */
|
||||
system_reboot();
|
||||
#elif CONFIG_CPU == PP5022
|
||||
/* The OF in flash assumes boot failed because the battery is low.
|
||||
If there is no charger connected, this leads to a shutdown.
|
||||
*/
|
||||
memcpy((void *)(0x4001ff00+8), "booting!", 8);
|
||||
system_reboot();
|
||||
#elif CONFIG_CPU == PP5020
|
||||
memcpy((void *)(0x40017f00+8), "booting!", 8);
|
||||
system_reboot();
|
||||
#else
|
||||
/* We don't turn off the ipod, we put it in a deep sleep */
|
||||
/* Clear latter part of iram (the part used by plugins/codecs) to ensure
|
||||
* that the OF behaves properly on boot. There is some kind of boot
|
||||
* failure flag there which otherwise may not be cleared.
|
||||
*/
|
||||
#if CONFIG_CPU == PP5022
|
||||
memset((void*)0x4000c000, 0, 0x14000);
|
||||
#elif CONFIG_CPU == PP5020
|
||||
memset((void*)0x4000c000, 0, 0xc000);
|
||||
#endif
|
||||
pcf50605_standby_mode();
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -516,12 +516,6 @@ To turn on and off your Rockbox enabled \dap{} use the following keys:
|
|||
|
||||
\label{ref:Safeshutdown}On shutdown, Rockbox automatically saves its settings.
|
||||
|
||||
\opt{ipod4g,ipodcolor,ipodvideo,ipodnano,ipodmini}{%
|
||||
A low-battery symbol may appear briefly on the screen during shutdown. This
|
||||
is a side effect of the shutdown process and does not mean the battery is
|
||||
actually low.
|
||||
}%
|
||||
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD%
|
||||
,SANSA_C200_PAD,IRIVER_H10_PAD,IPOD_4G_PAD,GIGABEAT_PAD}{%
|
||||
If you have problems with your settings, such as accidentally having
|
||||
|
|
Loading…
Reference in a new issue