diff options
-rw-r--r-- | bootloader/iriver_h1x0.c | 31 | ||||
-rw-r--r-- | bootloader/iriver_h300.c | 32 |
2 files changed, 28 insertions, 35 deletions
diff --git a/bootloader/iriver_h1x0.c b/bootloader/iriver_h1x0.c index 94ec6cb0fb..7efaaa3308 100644 --- a/bootloader/iriver_h1x0.c +++ b/bootloader/iriver_h1x0.c | |||
@@ -479,19 +479,6 @@ void main(void) | |||
479 | 479 | ||
480 | check_battery(); | 480 | check_battery(); |
481 | 481 | ||
482 | /* Don't start if the Hold button is active on the device you | ||
483 | are starting with */ | ||
484 | if ((usb_detect() != USB_INSERTED) && (hold_status || recovery_mode)) | ||
485 | { | ||
486 | if (detect_original_firmware()) | ||
487 | { | ||
488 | printf("Hold switch on"); | ||
489 | shutdown(); | ||
490 | } | ||
491 | |||
492 | failsafe_menu(); | ||
493 | } | ||
494 | |||
495 | /* Holding REC while starting runs the original firmware */ | 482 | /* Holding REC while starting runs the original firmware */ |
496 | if (detect_original_firmware() && rec_button) | 483 | if (detect_original_firmware() && rec_button) |
497 | { | 484 | { |
@@ -544,10 +531,20 @@ void main(void) | |||
544 | lcd_update(); | 531 | lcd_update(); |
545 | } | 532 | } |
546 | 533 | ||
547 | /* boot from flash if that is the default */ | 534 | /* recheck the hold switch status as it may have changed */ |
548 | try_flashboot(); | 535 | hold_status = (button_hold() || remote_button_hold()); |
549 | if (recovery_mode) | 536 | |
550 | printf("Falling back to boot from disk"); | 537 | /* hold switch shutdown or failsafe recovery mode */ |
538 | if (hold_status || recovery_mode) | ||
539 | { | ||
540 | if (detect_original_firmware()) | ||
541 | { | ||
542 | printf("Hold switch on"); | ||
543 | shutdown(); | ||
544 | } | ||
545 | |||
546 | failsafe_menu(); | ||
547 | } | ||
551 | 548 | ||
552 | rc = storage_init(); | 549 | rc = storage_init(); |
553 | if(rc) | 550 | if(rc) |
diff --git a/bootloader/iriver_h300.c b/bootloader/iriver_h300.c index 2e4909fd53..3a254f4487 100644 --- a/bootloader/iriver_h300.c +++ b/bootloader/iriver_h300.c | |||
@@ -473,20 +473,6 @@ void main(void) | |||
473 | if(rtc_alarm) | 473 | if(rtc_alarm) |
474 | printf("RTC alarm detected"); | 474 | printf("RTC alarm detected"); |
475 | 475 | ||
476 | /* Don't start if the Hold button is active on the device you | ||
477 | are starting with */ | ||
478 | if ((hold_status || recovery_mode) && !rtc_alarm && | ||
479 | (usb_detect() != USB_INSERTED) && !charger_inserted()) | ||
480 | { | ||
481 | if (detect_original_firmware()) | ||
482 | { | ||
483 | printf("Hold switch on"); | ||
484 | shutdown(); | ||
485 | } | ||
486 | |||
487 | failsafe_menu(); | ||
488 | } | ||
489 | |||
490 | /* Holding REC while starting runs the original firmware */ | 476 | /* Holding REC while starting runs the original firmware */ |
491 | if (detect_original_firmware() && rec_button) | 477 | if (detect_original_firmware() && rec_button) |
492 | { | 478 | { |
@@ -605,10 +591,20 @@ void main(void) | |||
605 | usb_charge = false; | 591 | usb_charge = false; |
606 | } | 592 | } |
607 | 593 | ||
608 | /* boot from flash if that is the default */ | 594 | /* recheck the hold switch status as it may have changed */ |
609 | try_flashboot(); | 595 | hold_status = (button_hold() || remote_button_hold()); |
610 | if (recovery_mode) | 596 | |
611 | printf("Falling back to boot from disk"); | 597 | /* hold switch shutdown or failsafe recovery mode */ |
598 | if (hold_status || recovery_mode) | ||
599 | { | ||
600 | if (detect_original_firmware()) | ||
601 | { | ||
602 | printf("Hold switch on"); | ||
603 | shutdown(); | ||
604 | } | ||
605 | |||
606 | failsafe_menu(); | ||
607 | } | ||
612 | 608 | ||
613 | rc = storage_init(); | 609 | rc = storage_init(); |
614 | if(rc) | 610 | if(rc) |