diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index bda03b0f8b..67f34e2f30 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 253c904588..ee06353149 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