equal
deleted
inserted
replaced
702 if (master->mode != EC_MASTER_MODE_FREERUN) return; |
702 if (master->mode != EC_MASTER_MODE_FREERUN) return; |
703 |
703 |
704 ec_master_eoe_stop(master); |
704 ec_master_eoe_stop(master); |
705 |
705 |
706 EC_INFO("Stopping Free-Run mode.\n"); |
706 EC_INFO("Stopping Free-Run mode.\n"); |
|
707 master->mode = EC_MASTER_MODE_IDLE; |
707 |
708 |
708 if (!cancel_delayed_work(&master->freerun_work)) { |
709 if (!cancel_delayed_work(&master->freerun_work)) { |
709 flush_workqueue(master->workqueue); |
710 flush_workqueue(master->workqueue); |
710 } |
711 } |
711 |
712 |
712 ec_master_clear_slaves(master); |
713 ec_master_clear_slaves(master); |
713 master->mode = EC_MASTER_MODE_IDLE; |
|
714 } |
714 } |
715 |
715 |
716 /*****************************************************************************/ |
716 /*****************************************************************************/ |
717 |
717 |
718 /** |
718 /** |
734 ecrt_master_async_send(master); |
734 ecrt_master_async_send(master); |
735 |
735 |
736 // release master lock |
736 // release master lock |
737 spin_unlock_bh(&master->internal_lock); |
737 spin_unlock_bh(&master->internal_lock); |
738 |
738 |
739 queue_delayed_work(master->workqueue, &master->freerun_work, 1); |
739 if (master->mode == EC_MASTER_MODE_FREERUN) |
|
740 queue_delayed_work(master->workqueue, &master->freerun_work, 1); |
740 } |
741 } |
741 |
742 |
742 /*****************************************************************************/ |
743 /*****************************************************************************/ |
743 |
744 |
744 /** |
745 /** |