h1x0/h300: fix h300 bootloader hold switch check

This fixes an early boot bug on the h300 where hold_status is
read before it has a chance to properly check whether the hold
switch is even active. This was accomplished by porting over
the method the h1x0 uses to perform the same check.

Change-Id: I04679d82f65a2edcbee4be9a146437c3988040a2
This commit is contained in:
James Buren 2020-11-15 09:56:14 +00:00
parent 29a20bd209
commit fc5c8192ff
2 changed files with 21 additions and 12 deletions

View file

@ -429,15 +429,13 @@ void main(void)
adc_init();
button_init();
sleep(HZ/50); /* Allow the button driver to check the buttons */
/* Only check remote hold status if remote power button was actually used. */
if (rc_on_button)
{
lcd_remote_init();
/* Allow the button driver to check the buttons */
sleep(HZ/50);
if (remote_button_hold())
hold_status = true;
}
@ -476,8 +474,6 @@ void main(void)
printf("Rockbox boot loader");
printf("Version %s", rbversion);
/* No need to wait here more because lcd_init and others already do that. */
// sleep(HZ/50); /* Allow the button driver to check the buttons */
rec_button = ((button_status() & BUTTON_REC) == BUTTON_REC)
|| ((button_status() & BUTTON_RC_REC) == BUTTON_RC_REC);