equal
deleted
inserted
replaced
564 ) |
564 ) |
565 { |
565 { |
566 ec_master_t *master = fsm->master; |
566 ec_master_t *master = fsm->master; |
567 ec_slave_t *slave = fsm->slave; |
567 ec_slave_t *slave = fsm->slave; |
568 |
568 |
|
569 if (master->config_changed) { |
|
570 // abort iterating through slaves, |
|
571 // first compensate DC system time offsets, |
|
572 // then begin configuring at slave 0 |
|
573 EC_MASTER_DBG(master, 1, "Configuration changed" |
|
574 " (aborting state check).\n"); |
|
575 |
|
576 fsm->slave = master->slaves; // begin with first slave |
|
577 ec_fsm_master_enter_write_system_times(fsm); |
|
578 } |
|
579 |
569 // Does the slave have to be configured? |
580 // Does the slave have to be configured? |
570 if ((slave->current_state != slave->requested_state |
581 if ((slave->current_state != slave->requested_state |
571 || slave->force_config) && !slave->error_flag) { |
582 || slave->force_config) && !slave->error_flag) { |
572 |
583 |
573 // Start slave configuration, if it is allowed. |
584 // Start slave configuration, if it is allowed. |
855 ec_master_t *master = fsm->master; |
866 ec_master_t *master = fsm->master; |
856 |
867 |
857 EC_MASTER_DBG(master, 1, "Writing system time offsets...\n"); |
868 EC_MASTER_DBG(master, 1, "Writing system time offsets...\n"); |
858 |
869 |
859 if (master->has_app_time) { |
870 if (master->has_app_time) { |
|
871 |
860 while (fsm->slave < master->slaves + master->slave_count) { |
872 while (fsm->slave < master->slaves + master->slave_count) { |
861 if (!fsm->slave->base_dc_supported |
873 if (!fsm->slave->base_dc_supported |
862 || !fsm->slave->has_dc_system_time) { |
874 || !fsm->slave->has_dc_system_time) { |
863 fsm->slave++; |
875 fsm->slave++; |
864 continue; |
876 continue; |
871 0x0910, 24); |
883 0x0910, 24); |
872 fsm->retries = EC_FSM_RETRIES; |
884 fsm->retries = EC_FSM_RETRIES; |
873 fsm->state = ec_fsm_master_state_dc_read_offset; |
885 fsm->state = ec_fsm_master_state_dc_read_offset; |
874 return; |
886 return; |
875 } |
887 } |
|
888 |
876 } else { |
889 } else { |
877 EC_MASTER_DBG(master, 1, "No app_time received up to now.\n"); |
890 if (master->active) { |
|
891 EC_MASTER_ERR(master, "No app_time received up to now," |
|
892 " but master already active).\n"); |
|
893 } else { |
|
894 EC_MASTER_DBG(master, 1, "No app_time received up to now.\n"); |
|
895 } |
878 } |
896 } |
879 |
897 |
880 ec_master_request_op(master); |
898 ec_master_request_op(master); |
881 ec_fsm_master_restart(fsm); |
899 ec_fsm_master_restart(fsm); |
882 } |
900 } |