@@ -157,7 +157,6 @@ static powercallback __POWCallback = NULL;
157157
158158static u32 __sys_resetdown = 0 ;
159159static u64 __sys_powerenabletime = 0 ;
160- static u64 __sys_powercbtime = 0 ;
161160#endif
162161
163162static vu64 * const _bootTime = (u64 * )0x800030d8 ;
@@ -457,18 +456,11 @@ static void __STMEventHandler(u32 event)
457456 }
458457
459458 if (event == STM_EVENT_POWER ) {
460- if (gettime () >= __sys_powerenabletime ) {
461- _CPU_ISR_Disable (level );
462- SYS_DoPowerCB ();
463- _CPU_ISR_Restore (level );
464- }
459+ _CPU_ISR_Disable (level );
460+ SYS_DoPowerCB ();
461+ _CPU_ISR_Restore (level );
465462 }
466463}
467-
468- void SYS_DisablePowerButton (u32 disableTime )
469- {
470- __sys_powerenabletime = gettime () + millisecs_to_ticks (disableTime );
471- }
472464#endif
473465
474466void * __attribute__ ( (weak )) __myArena1Lo = 0 ;
@@ -1034,12 +1026,17 @@ void SYS_DoPowerCB(void)
10341026
10351027 // Power button events fire repeatedly for one second after button is pressed
10361028 // Throttle events so only one callback gets called per button press
1037- if (gettime () >= __sys_powercbtime ) {
1029+ if (gettime () >= __sys_powerenabletime ) {
10381030 _CPU_ISR_Disable (level );
10391031 __POWCallback ();
10401032 _CPU_ISR_Restore (level );
10411033 }
1042- __sys_powercbtime = gettime () + millisecs_to_ticks (10 );
1034+ __sys_powerenabletime = gettime () + millisecs_to_ticks (50 );
1035+ }
1036+
1037+ void __SYS_DisablePowerButton (u32 disableTime )
1038+ {
1039+ __sys_powerenabletime = gettime () + millisecs_to_ticks (disableTime );
10431040}
10441041#endif
10451042
0 commit comments