Lines Matching defs:fsm

32 /* substate handler of the config-fsm to handle the cases where we want
38 struct sir_fsm *fsm = &dev->fsm;
43 next_state = fsm->substate; /* default: stay in current substate */
46 switch(fsm->substate) {
88 fsm->substate = next_state;
100 * On entry, fsm->sem is always locked and the netdev xmit queue stopped.
106 struct sir_dev *dev = container_of(work, struct sir_dev, fsm.work.work);
107 struct sir_fsm *fsm = &dev->fsm;
116 __func__, fsm->state, fsm->substate);
118 next_state = fsm->state;
121 switch(fsm->state) {
127 fsm->result = -EINVAL;
134 ret = sirdev_get_dongle(dev, fsm->param);
136 fsm->result = ret;
148 fsm->substate = SIRDEV_STATE_DONGLE_RESET;
151 fsm->param = 9600;
158 fsm->result = -EINVAL;
165 fsm->result = ret;
174 (fsm->param&0x02) ? TRUE : FALSE,
175 (fsm->param&0x01) ? TRUE : FALSE);
180 fsm->substate = SIRDEV_STATE_WAIT_XMIT;
187 fsm->result = ret;
195 fsm->substate = SIRDEV_STATE_DONGLE_RESET;
199 dev->speed = fsm->param;
208 fsm->result = ret;
219 fsm->substate = SIRDEV_STATE_DONGLE_SPEED;
226 ret = dev->dongle_drv->set_speed(dev, fsm->param);
228 fsm->result = ret;
255 fsm->result = -EINVAL;
259 IRDA_ERROR("%s - error: %d\n", __func__, fsm->result);
271 up(&fsm->sem);
274 fsm->state = next_state;
277 queue_delayed_work(irda_sir_wq, &fsm->work, msecs_to_jiffies(delay));
287 struct sir_fsm *fsm = &dev->fsm;
292 if (down_trylock(&fsm->sem)) {
297 down(&fsm->sem);
300 if (fsm->state == SIRDEV_STATE_DEAD) {
303 up(&fsm->sem);
310 fsm->state = initial_state;
311 fsm->param = param;
312 fsm->result = 0;
314 INIT_DELAYED_WORK(&fsm->work, sirdev_config_fsm);
315 queue_delayed_work(irda_sir_wq, &fsm->work, 0);
352 down(&dev->fsm.sem); /* block until config change completed */
353 err = dev->fsm.result;
354 up(&dev->fsm.sem);
607 /* Failed to initiate the speed change, likely the fsm
611 * fsm completes and wakes the queue.
845 down(&dev->fsm.sem); /* block on pending config completion */
866 up(&dev->fsm.sem);
913 sema_init(&dev->fsm.sem, 1);
953 down(&dev->fsm.sem);
954 dev->fsm.state = SIRDEV_STATE_DEAD; /* mark staled */
957 up(&dev->fsm.sem);