master/fsm_master.c
branchstable-1.5
changeset 2120 7dd86c484192
parent 2119 79d44885021f
child 2169 1a128e86d4f6
child 2267 2d36f36a433c
equal deleted inserted replaced
2119:79d44885021f 2120:7dd86c484192
   205         fsm->slaves_responding = datagram->working_counter;
   205         fsm->slaves_responding = datagram->working_counter;
   206         EC_MASTER_INFO(master, "%u slave(s) responding.\n",
   206         EC_MASTER_INFO(master, "%u slave(s) responding.\n",
   207                 fsm->slaves_responding);
   207                 fsm->slaves_responding);
   208     }
   208     }
   209 
   209 
   210     if (fsm->link_state && !master->main_device.link_state) { // link went down
   210     if (fsm->link_state && !master->main_device.link_state) {
       
   211         // link went down
   211         EC_MASTER_DBG(master, 1, "Master state machine detected "
   212         EC_MASTER_DBG(master, 1, "Master state machine detected "
   212                 "link down. Clearing slave list.\n");
   213                 "link down. Clearing slave list.\n");
   213 
   214 
   214 #ifdef EC_EOE
   215 #ifdef EC_EOE
   215         ec_master_eoe_stop(master);
   216         ec_master_eoe_stop(master);
   265                 ec_fsm_master_restart(fsm);
   266                 ec_fsm_master_restart(fsm);
   266                 return;
   267                 return;
   267             }
   268             }
   268 
   269 
   269             size = sizeof(ec_slave_t) * master->slave_count;
   270             size = sizeof(ec_slave_t) * master->slave_count;
   270             if (!(master->slaves = (ec_slave_t *) kmalloc(size, GFP_KERNEL))) {
   271             if (!(master->slaves =
       
   272                         (ec_slave_t *) kmalloc(size, GFP_KERNEL))) {
   271                 EC_MASTER_ERR(master, "Failed to allocate %u bytes"
   273                 EC_MASTER_ERR(master, "Failed to allocate %u bytes"
   272                         " of slave memory!\n", size);
   274                         " of slave memory!\n", size);
   273                 master->slave_count = 0; // TODO avoid retrying scan!
   275                 master->slave_count = 0; // TODO avoid retrying scan!
   274                 master->scan_busy = 0;
   276                 master->scan_busy = 0;
   275                 wake_up_interruptible(&master->scan_queue);
   277                 wake_up_interruptible(&master->scan_queue);
   575         EC_MASTER_DBG(master, 1, "Configuration changed"
   577         EC_MASTER_DBG(master, 1, "Configuration changed"
   576                 " (aborting state check).\n");
   578                 " (aborting state check).\n");
   577 
   579 
   578         fsm->slave = master->slaves; // begin with first slave
   580         fsm->slave = master->slaves; // begin with first slave
   579         ec_fsm_master_enter_write_system_times(fsm);
   581         ec_fsm_master_enter_write_system_times(fsm);
       
   582         return;
   580     }
   583     }
   581 
   584 
   582     // Does the slave have to be configured?
   585     // Does the slave have to be configured?
   583     if ((slave->current_state != slave->requested_state
   586     if ((slave->current_state != slave->requested_state
   584                 || slave->force_config) && !slave->error_flag) {
   587                 || slave->force_config) && !slave->error_flag) {