master/module.c
changeset 531 8d9339e7453f
parent 525 8b20781bd1e0
child 533 acdd1f9ef7ab
equal deleted inserted replaced
530:3e0611dfe020 531:8d9339e7453f
   469    \ingroup RealtimeInterface
   469    \ingroup RealtimeInterface
   470 */
   470 */
   471 
   471 
   472 void ecrt_release_master(ec_master_t *master /**< EtherCAT master */)
   472 void ecrt_release_master(ec_master_t *master /**< EtherCAT master */)
   473 {
   473 {
       
   474     EC_INFO("Releasing master %i...\n", master->index);
       
   475 
       
   476     if (master->mode != EC_MASTER_MODE_OPERATION) {
       
   477         EC_WARN("Master %i was was not requested!\n", master->index);
       
   478         return;
       
   479     }
       
   480 
   474     ec_master_leave_operation_mode(master);
   481     ec_master_leave_operation_mode(master);
   475 
   482 
   476     module_put(master->device->module);
   483     module_put(master->device->module);
   477     atomic_inc(&master->available);
   484     atomic_inc(&master->available);
   478 
   485 
   479     EC_INFO("Released master %i.\n", master->index);
   486     EC_INFO("Released master %i.\n", master->index);
   480     return;
       
   481 }
   487 }
   482 
   488 
   483 /*****************************************************************************/
   489 /*****************************************************************************/
   484 
   490 
   485 /** \cond */
   491 /** \cond */