summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/power.c3
-rw-r--r--firmware/target/coldfire/iaudio/x5/power-x5.c5
2 files changed, 3 insertions, 5 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c
index bda03b0..67f34e2 100644
--- a/firmware/drivers/power.c
+++ b/firmware/drivers/power.c
@@ -295,8 +295,7 @@ void power_off(void)
set_irq_level(HIGHEST_IRQ_LEVEL);
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
and_l(~0x00080000, &GPIO1_OUT);
-#elif defined(IAUDIO_X5)
- and_l(~0x00000008, &GPIO_OUT);
+ asm("halt");
#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020)
#ifndef BOOTLOADER
/* We don't turn off the ipod, we put it in a deep sleep */
diff --git a/firmware/target/coldfire/iaudio/x5/power-x5.c b/firmware/target/coldfire/iaudio/x5/power-x5.c
index 253c904..ee06353 100644
--- a/firmware/target/coldfire/iaudio/x5/power-x5.c
+++ b/firmware/target/coldfire/iaudio/x5/power-x5.c
@@ -59,9 +59,8 @@ bool ide_powered(void)
void power_off(void)
{
set_irq_level(HIGHEST_IRQ_LEVEL);
- and_l(~0x00000008, &GPIO_OUT);
- while(1)
- yield();
+ and_l(~0x00000008, &GPIO_OUT); /* Set KEEPACT low */
+ asm("halt");
}
#else