master/fsm_master.c
changeset 1064 5f27403587a8
parent 1031 000593b576dd
child 1079 ef1266652c4d
equal deleted inserted replaced
1063:6dbc220fff91 1064:5f27403587a8
   240 
   240 
   241             size = sizeof(ec_slave_t) * master->slave_count;
   241             size = sizeof(ec_slave_t) * master->slave_count;
   242             if (!(master->slaves = (ec_slave_t *) kmalloc(size, GFP_KERNEL))) {
   242             if (!(master->slaves = (ec_slave_t *) kmalloc(size, GFP_KERNEL))) {
   243                 EC_ERR("Failed to allocate %u bytes of slave memory!\n",
   243                 EC_ERR("Failed to allocate %u bytes of slave memory!\n",
   244                         size);
   244                         size);
   245                 master->slave_count = 0; // FIXME avoid scanning!
   245                 master->slave_count = 0; // TODO avoid retrying scan!
   246                 master->scan_busy = 0;
   246                 master->scan_busy = 0;
   247                 wake_up_interruptible(&master->scan_queue);
   247                 wake_up_interruptible(&master->scan_queue);
   248                 ec_fsm_master_restart(fsm);
   248                 ec_fsm_master_restart(fsm);
   249                 return;
   249                 return;
   250             }
   250             }
   523                 ec_state_string(slave->requested_state, new_state);
   523                 ec_state_string(slave->requested_state, new_state);
   524                 EC_DBG("Changing state of slave %u from %s to %s%s.\n",
   524                 EC_DBG("Changing state of slave %u from %s to %s%s.\n",
   525                         slave->ring_position, old_state, new_state,
   525                         slave->ring_position, old_state, new_state,
   526                         slave->force_config ? " (forced)" : "");
   526                         slave->force_config ? " (forced)" : "");
   527             }
   527             }
   528 
       
   529             // configuration will be done immediately; therefore reset the
       
   530             // force flag
       
   531             slave->force_config = 0;
       
   532 
   528 
   533             fsm->idle = 0;
   529             fsm->idle = 0;
   534             fsm->state = ec_fsm_master_state_configure_slave;
   530             fsm->state = ec_fsm_master_state_configure_slave;
   535             ec_fsm_slave_config_start(&fsm->fsm_slave_config, slave);
   531             ec_fsm_slave_config_start(&fsm->fsm_slave_config, slave);
   536             fsm->state(fsm); // execute immediately
   532             fsm->state(fsm); // execute immediately