master/fsm_master.c
changeset 538 84beb49d1b11
parent 530 3e0611dfe020
child 553 a4e0267825e3
equal deleted inserted replaced
537:c715766e0f81 538:84beb49d1b11
   695 */
   695 */
   696 
   696 
   697 void ec_fsm_master_state_scan_slaves(ec_fsm_master_t *fsm /**< master state machine */)
   697 void ec_fsm_master_state_scan_slaves(ec_fsm_master_t *fsm /**< master state machine */)
   698 {
   698 {
   699     ec_master_t *master = fsm->master;
   699     ec_master_t *master = fsm->master;
   700     ec_slave_t *slave = fsm->slave;
   700     ec_slave_t *slave;
   701 
   701 
   702     if (ec_fsm_slave_exec(&fsm->fsm_slave)) // execute slave state machine
   702     if (ec_fsm_slave_exec(&fsm->fsm_slave)) // execute slave state machine
   703         return;
   703         return;
   704 
   704 
   705     // another slave to fetch?
   705     // another slave to fetch?
   706     if (slave->list.next != &master->slaves) {
   706     if (fsm->slave->list.next != &master->slaves) {
   707         fsm->slave = list_entry(fsm->slave->list.next, ec_slave_t, list);
   707         fsm->slave = list_entry(fsm->slave->list.next, ec_slave_t, list);
   708         ec_fsm_slave_start_scan(&fsm->fsm_slave, slave);
   708         ec_fsm_slave_start_scan(&fsm->fsm_slave, fsm->slave);
   709         ec_fsm_slave_exec(&fsm->fsm_slave); // execute immediately
   709         ec_fsm_slave_exec(&fsm->fsm_slave); // execute immediately
   710         return;
   710         return;
   711     }
   711     }
   712 
   712 
   713     EC_INFO("Bus scanning completed.\n");
   713     EC_INFO("Bus scanning completed.\n");