@@ -301,6 +301,13 @@ static int check_s0ix_statsus(void)
301301 return 0 ;
302302}
303303
304+ static void power_clear_s0ix_flag (void )
305+ {
306+ resume_ms_flag = 0 ;
307+ enter_ms_flag = 0 ;
308+ system_in_s0ix = 0 ;
309+ }
310+
304311void s0ix_status_handle (void )
305312{
306313 int s0ix_state_change ;
@@ -613,11 +620,8 @@ enum power_state power_handle_state(enum power_state state)
613620 * If abnormal/force shutdown happens in s0i3 state, EC needs to
614621 * clear the flags run the shutdown sequence.
615622 */
616- if (system_in_s0ix ) {
617- resume_ms_flag = 0 ;
618- enter_ms_flag = 0 ;
619- system_in_s0ix = 0 ;
620- }
623+ if (system_in_s0ix )
624+ power_clear_s0ix_flag ();
621625
622626 /* Power down to next state */
623627 return POWER_S3S5 ;
@@ -632,9 +636,7 @@ enum power_state power_handle_state(enum power_state state)
632636 /* clear the enter 5VSB timer if over upper current */
633637 hook_call_deferred (& power_5vsb_enter_deferred_data , -1 );
634638 if (!has_exited_5vsb && !power_5vsb_exit ()) {
635- resume_ms_flag = 0 ;
636- enter_ms_flag = 0 ;
637- system_in_s0ix = 0 ;
639+ power_clear_s0ix_flag ();
638640 chipset_force_shutdown (CHIPSET_SHUTDOWN_POWERFAIL );
639641 return POWER_S3S5 ;
640642 }
@@ -725,9 +727,7 @@ enum power_state power_handle_state(enum power_state state)
725727 * clear the all s0ix flags
726728 */
727729 if (resume_ms_flag > 0 ) {
728- resume_ms_flag = 0 ;
729- enter_ms_flag = 0 ;
730- system_in_s0ix = 0 ;
730+ power_clear_s0ix_flag ();
731731 return POWER_S0ixS0 ;
732732 }
733733
@@ -761,9 +761,7 @@ enum power_state power_handle_state(enum power_state state)
761761 * Therefore, EC should clear the flags and return power state to
762762 * S0 to run the shutdown sequence.
763763 */
764- resume_ms_flag = 0 ;
765- enter_ms_flag = 0 ;
766- system_in_s0ix = 0 ;
764+ power_clear_s0ix_flag ();
767765 chipset_force_shutdown (CHIPSET_SHUTDOWN_POWERFAIL );
768766 return POWER_S0 ;
769767 }
@@ -783,9 +781,7 @@ enum power_state power_handle_state(enum power_state state)
783781 /* clear the enter 5VSB timer if resume to s0ix */
784782 hook_call_deferred (& power_5vsb_enter_deferred_data , -1 );
785783 if (!has_exited_5vsb && !power_5vsb_exit ()) {
786- resume_ms_flag = 0 ;
787- enter_ms_flag = 0 ;
788- system_in_s0ix = 0 ;
784+ power_clear_s0ix_flag ();
789785 chipset_force_shutdown (CHIPSET_SHUTDOWN_POWERFAIL );
790786 /**
791787 * If happens something wrong, transfer the state to POWER_S0ixS3.
@@ -800,9 +796,7 @@ enum power_state power_handle_state(enum power_state state)
800796
801797 /* wait VS power good. If something wrong, turn off power and force to g3 */
802798 if (power_wait_signals (IN_VS_POWER )) {
803- resume_ms_flag = 0 ;
804- enter_ms_flag = 0 ;
805- system_in_s0ix = 0 ;
799+ power_clear_s0ix_flag ();
806800 chipset_force_shutdown (CHIPSET_SHUTDOWN_POWERFAIL );
807801 /**
808802 * If happens something wrong, transfer the state to POWER_S0ixS3.
@@ -816,9 +810,7 @@ enum power_state power_handle_state(enum power_state state)
816810
817811 /* wait VR power good. If something wrong, turn off power and force to g3 */
818812 if (power_wait_signals (IN_VR_PGOOD )) {
819- resume_ms_flag = 0 ;
820- enter_ms_flag = 0 ;
821- system_in_s0ix = 0 ;
813+ power_clear_s0ix_flag ();
822814 chipset_force_shutdown (CHIPSET_SHUTDOWN_POWERFAIL );
823815 /**
824816 * If happens something wrong, transfer the state to POWER_S0ixS3.
0 commit comments