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