equal
deleted
inserted
replaced
696 else { |
696 else { |
697 if (datagram->data_size > master->max_queue_size) { |
697 if (datagram->data_size > master->max_queue_size) { |
698 list_del_init(&datagram->queue); |
698 list_del_init(&datagram->queue); |
699 datagram->state = EC_DATAGRAM_ERROR; |
699 datagram->state = EC_DATAGRAM_ERROR; |
700 EC_MASTER_ERR(master, "External datagram %p is too large," |
700 EC_MASTER_ERR(master, "External datagram %p is too large," |
701 " size=%u, max_queue_size=%u\n", |
701 " size=%zu, max_queue_size=%zu\n", |
702 datagram, datagram->data_size, |
702 datagram, datagram->data_size, |
703 master->max_queue_size); |
703 master->max_queue_size); |
704 } else { |
704 } else { |
705 #ifdef EC_HAVE_CYCLES |
705 #ifdef EC_HAVE_CYCLES |
706 cycles_t cycles_now = get_cycles(); |
706 cycles_t cycles_now = get_cycles(); |
723 #else |
723 #else |
724 time_us = (unsigned int) |
724 time_us = (unsigned int) |
725 ((jiffies - datagram->jiffies_sent) * 1000000 / HZ); |
725 ((jiffies - datagram->jiffies_sent) * 1000000 / HZ); |
726 #endif |
726 #endif |
727 EC_MASTER_ERR(master, "Timeout %u us: Injecting" |
727 EC_MASTER_ERR(master, "Timeout %u us: Injecting" |
728 " external datagram %p size=%u," |
728 " external datagram %p size=%zu," |
729 " max_queue_size=%u\n", time_us, datagram, |
729 " max_queue_size=%zu\n", time_us, datagram, |
730 datagram->data_size, master->max_queue_size); |
730 datagram->data_size, master->max_queue_size); |
731 } |
731 } |
732 #if DEBUG_INJECT |
732 #if DEBUG_INJECT |
733 else { |
733 else { |
734 EC_MASTER_DBG(master, 0, "Deferred injecting" |
734 EC_MASTER_DBG(master, 0, "Deferred injecting" |
747 /** Sets the expected interval between calls to ecrt_master_send |
747 /** Sets the expected interval between calls to ecrt_master_send |
748 * and calculates the maximum amount of data to queue. |
748 * and calculates the maximum amount of data to queue. |
749 */ |
749 */ |
750 void ec_master_set_send_interval( |
750 void ec_master_set_send_interval( |
751 ec_master_t *master, /**< EtherCAT master */ |
751 ec_master_t *master, /**< EtherCAT master */ |
752 size_t send_interval /**< Send interval */ |
752 unsigned int send_interval /**< Send interval */ |
753 ) |
753 ) |
754 { |
754 { |
755 master->send_interval = send_interval; |
755 master->send_interval = send_interval; |
756 master->max_queue_size = |
756 master->max_queue_size = |
757 (send_interval * 1000) / EC_BYTE_TRANSMISSION_TIME_NS; |
757 (send_interval * 1000) / EC_BYTE_TRANSMISSION_TIME_NS; |
1196 size_t sent_bytes; |
1196 size_t sent_bytes; |
1197 |
1197 |
1198 // send interval in IDLE phase |
1198 // send interval in IDLE phase |
1199 ec_master_set_send_interval(master, 1000000 / HZ); |
1199 ec_master_set_send_interval(master, 1000000 / HZ); |
1200 |
1200 |
1201 EC_MASTER_DBG(master, 1, "Idle thread running with send interval = %d us," |
1201 EC_MASTER_DBG(master, 1, "Idle thread running with send interval = %u us," |
1202 " max data size=%d\n", master->send_interval, |
1202 " max data size=%zu\n", master->send_interval, |
1203 master->max_queue_size); |
1203 master->max_queue_size); |
1204 |
1204 |
1205 while (!kthread_should_stop()) { |
1205 while (!kthread_should_stop()) { |
1206 ec_datagram_output_stats(&master->fsm_datagram); |
1206 ec_datagram_output_stats(&master->fsm_datagram); |
1207 |
1207 |
1263 ec_master_t *master = (ec_master_t *) priv_data; |
1263 ec_master_t *master = (ec_master_t *) priv_data; |
1264 ec_slave_t *slave = NULL; |
1264 ec_slave_t *slave = NULL; |
1265 int fsm_exec; |
1265 int fsm_exec; |
1266 |
1266 |
1267 EC_MASTER_DBG(master, 1, "Operation thread running" |
1267 EC_MASTER_DBG(master, 1, "Operation thread running" |
1268 " with fsm interval = %d us, max data size=%d\n", |
1268 " with fsm interval = %u us, max data size=%zu\n", |
1269 master->send_interval, master->max_queue_size); |
1269 master->send_interval, master->max_queue_size); |
1270 |
1270 |
1271 while (!kthread_should_stop()) { |
1271 while (!kthread_should_stop()) { |
1272 ec_datagram_output_stats(&master->fsm_datagram); |
1272 ec_datagram_output_stats(&master->fsm_datagram); |
1273 |
1273 |
1987 #ifdef EC_EOE |
1987 #ifdef EC_EOE |
1988 ec_eoe_t *eoe; |
1988 ec_eoe_t *eoe; |
1989 int eoe_was_running; |
1989 int eoe_was_running; |
1990 #endif |
1990 #endif |
1991 |
1991 |
1992 EC_MASTER_DBG(master, 1, "ecrt_master_deactivate(master = 0x%x)\n", |
1992 EC_MASTER_DBG(master, 1, "ecrt_master_deactivate(master = 0x%p)\n", |
1993 (u32) master); |
1993 master); |
1994 |
1994 |
1995 if (!master->active) { |
1995 if (!master->active) { |
1996 EC_MASTER_WARN(master, "%s: Master not active.\n", __func__); |
1996 EC_MASTER_WARN(master, "%s: Master not active.\n", __func__); |
1997 return; |
1997 return; |
1998 } |
1998 } |