master/fsm_slave_config.c
changeset 1404 b7ea043d5081
parent 1396 9d04cc08f40f
child 1406 8686c5b3d14b
equal deleted inserted replaced
1403:4192279a1a82 1404:b7ea043d5081
   282 {
   282 {
   283     ec_slave_t *slave = fsm->slave;
   283     ec_slave_t *slave = fsm->slave;
   284     ec_datagram_t *datagram = fsm->datagram;
   284     ec_datagram_t *datagram = fsm->datagram;
   285     size_t sync_size;
   285     size_t sync_size;
   286 
   286 
   287     if (!slave->sii.sync_count) {
   287     if (!slave->sii.sync_count) { // FIXME use base_sync_count?
   288         // no mailbox protocols supported
   288         // no sync managers
   289         ec_fsm_slave_config_enter_mbox_sync(fsm);
   289         ec_fsm_slave_config_enter_mbox_sync(fsm);
   290         return;
   290         return;
   291     }
   291     }
   292 
   292 
   293     if (slave->master->debug_level)
   293     if (slave->master->debug_level)
   568             slave->error_flag = 1;
   568             slave->error_flag = 1;
   569         fsm->state = ec_fsm_slave_config_state_error;
   569         fsm->state = ec_fsm_slave_config_state_error;
   570         return;
   570         return;
   571     }
   571     }
   572 
   572 
   573     // slave is now in BOOT/PREOP
   573     // slave is now in BOOT or PREOP
   574     slave->jiffies_preop = fsm->datagram->jiffies_received;
   574     slave->jiffies_preop = fsm->datagram->jiffies_received;
   575 
   575 
   576     if (master->debug_level) {
   576     if (master->debug_level) {
   577         EC_DBG("Slave %u is now in %s.\n", slave->ring_position,
   577         EC_DBG("Slave %u is now in %s.\n", slave->ring_position,
   578                 slave->requested_state != EC_SLAVE_STATE_BOOT
   578                 slave->requested_state != EC_SLAVE_STATE_BOOT
   978         EC_WRITE_U32(datagram->data, config->dc_sync_cycle_times[0]);
   978         EC_WRITE_U32(datagram->data, config->dc_sync_cycle_times[0]);
   979         EC_WRITE_U32(datagram->data + 4, config->dc_sync_cycle_times[1]);
   979         EC_WRITE_U32(datagram->data + 4, config->dc_sync_cycle_times[1]);
   980         fsm->retries = EC_FSM_RETRIES;
   980         fsm->retries = EC_FSM_RETRIES;
   981         fsm->state = ec_fsm_slave_config_state_dc_cycle;
   981         fsm->state = ec_fsm_slave_config_state_dc_cycle;
   982     } else {
   982     } else {
       
   983         // DC are unused
   983         ec_fsm_slave_config_enter_safeop(fsm);
   984         ec_fsm_slave_config_enter_safeop(fsm);
   984     }
   985     }
   985 }
   986 }
   986 
   987 
   987 /*****************************************************************************/
   988 /*****************************************************************************/