Lines Matching refs:sm
149 void sci_init_sm(struct sci_base_state_machine *sm, in sci_init_sm() argument
154 sm->initial_state_id = initial_state; in sci_init_sm()
155 sm->previous_state_id = initial_state; in sci_init_sm()
156 sm->current_state_id = initial_state; in sci_init_sm()
157 sm->state_table = state_table; in sci_init_sm()
159 handler = sm->state_table[initial_state].enter_state; in sci_init_sm()
161 handler(sm); in sci_init_sm()
165 void sci_change_state(struct sci_base_state_machine *sm, u32 next_state) in sci_change_state() argument
169 handler = sm->state_table[sm->current_state_id].exit_state; in sci_change_state()
171 handler(sm); in sci_change_state()
173 sm->previous_state_id = sm->current_state_id; in sci_change_state()
174 sm->current_state_id = next_state; in sci_change_state()
176 handler = sm->state_table[sm->current_state_id].enter_state; in sci_change_state()
178 handler(sm); in sci_change_state()
597 sci_change_state(&ihost->sm, SCIC_FAILED); in sci_controller_error_handler()
827 if (ihost->sm.current_state_id == SCIC_STARTING) { in sci_controller_transition_to_ready()
832 sci_change_state(&ihost->sm, SCIC_READY); in sci_controller_transition_to_ready()
842 state = iphy->sm.current_state_id; in is_phy_starting()
867 u32 state = iphy->sm.current_state_id; in is_controller_start_complete()
994 if (ihost->sm.current_state_id != SCIC_INITIALIZED) { in sci_controller_start()
996 __func__, ihost->sm.current_state_id); in sci_controller_start()
1042 sci_change_state(&ihost->sm, SCIC_STARTING); in sci_controller_start()
1160 if (ihost->sm.current_state_id != SCIC_READY) { in sci_controller_stop()
1162 __func__, ihost->sm.current_state_id); in sci_controller_stop()
1167 sci_change_state(&ihost->sm, SCIC_STOPPING); in sci_controller_stop()
1185 switch (ihost->sm.current_state_id) { in sci_controller_reset()
1194 sci_change_state(&ihost->sm, SCIC_RESETTING); in sci_controller_reset()
1198 __func__, ihost->sm.current_state_id); in sci_controller_reset()
1310 static void sci_controller_initial_state_enter(struct sci_base_state_machine *sm) in sci_controller_initial_state_enter() argument
1312 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_initial_state_enter()
1314 sci_change_state(&ihost->sm, SCIC_RESET); in sci_controller_initial_state_enter()
1317 static inline void sci_controller_starting_state_exit(struct sci_base_state_machine *sm) in sci_controller_starting_state_exit() argument
1319 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_starting_state_exit()
1444 static void sci_controller_ready_state_enter(struct sci_base_state_machine *sm) in sci_controller_ready_state_enter() argument
1446 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_ready_state_enter()
1461 static void sci_controller_ready_state_exit(struct sci_base_state_machine *sm) in sci_controller_ready_state_exit() argument
1463 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_ready_state_exit()
1524 static void sci_controller_stopping_state_enter(struct sci_base_state_machine *sm) in sci_controller_stopping_state_enter() argument
1526 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_stopping_state_enter()
1535 static void sci_controller_stopping_state_exit(struct sci_base_state_machine *sm) in sci_controller_stopping_state_exit() argument
1537 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_stopping_state_exit()
1563 static void sci_controller_resetting_state_enter(struct sci_base_state_machine *sm) in sci_controller_resetting_state_enter() argument
1565 struct isci_host *ihost = container_of(sm, typeof(*ihost), sm); in sci_controller_resetting_state_enter()
1568 sci_change_state(&ihost->sm, SCIC_RESET); in sci_controller_resetting_state_enter()
1599 struct sci_base_state_machine *sm = &ihost->sm; in controller_timeout() local
1607 if (sm->current_state_id == SCIC_STARTING) in controller_timeout()
1609 else if (sm->current_state_id == SCIC_STOPPING) { in controller_timeout()
1610 sci_change_state(sm, SCIC_FAILED); in controller_timeout()
1628 sci_init_sm(&ihost->sm, sci_controller_state_table, SCIC_INITIAL); in sci_controller_construct()
1850 if (current_phy->sm.current_state_id == SCI_PHY_READY && in sci_controller_power_control_queue_insert()
2137 struct sci_base_state_machine *sm = &ihost->sm; in sci_controller_initialize() local
2141 if (ihost->sm.current_state_id != SCIC_RESET) { in sci_controller_initialize()
2143 __func__, ihost->sm.current_state_id); in sci_controller_initialize()
2147 sci_change_state(sm, SCIC_INITIALIZING); in sci_controller_initialize()
2241 sci_change_state(sm, state); in sci_controller_initialize()
2384 switch (ihost->sm.current_state_id) { in sci_controller_link_up()
2400 ihost->sm.current_state_id); in sci_controller_link_up()
2407 switch (ihost->sm.current_state_id) { in sci_controller_link_down()
2419 ihost->sm.current_state_id); in sci_controller_link_down()
2429 (ihost->device_table[index]->sm.current_state_id == SCI_DEV_STOPPING)) in sci_controller_has_remote_devices_stopping()
2439 if (ihost->sm.current_state_id != SCIC_STOPPING) { in sci_controller_remote_device_stopped()
2444 ihost->sm.current_state_id); in sci_controller_remote_device_stopped()
2610 if (ihost->sm.current_state_id != SCIC_READY) { in sci_controller_start_io()
2612 __func__, ihost->sm.current_state_id); in sci_controller_start_io()
2635 if (ihost->sm.current_state_id != SCIC_READY) { in sci_controller_terminate_request()
2637 __func__, ihost->sm.current_state_id); in sci_controller_terminate_request()
2676 switch (ihost->sm.current_state_id) { in sci_controller_complete_io()
2690 __func__, ihost->sm.current_state_id); in sci_controller_complete_io()
2700 if (ihost->sm.current_state_id != SCIC_READY) { in sci_controller_continue_io()
2702 __func__, ihost->sm.current_state_id); in sci_controller_continue_io()
2726 if (ihost->sm.current_state_id != SCIC_READY) { in sci_controller_start_task()