equal
deleted
inserted
replaced
104 domain->master = master; |
104 domain->master = master; |
105 domain->index = index; |
105 domain->index = index; |
106 domain->data_size = 0; |
106 domain->data_size = 0; |
107 domain->base_address = 0; |
107 domain->base_address = 0; |
108 domain->response_count = 0xFFFFFFFF; |
108 domain->response_count = 0xFFFFFFFF; |
109 domain->t_last = 0; |
109 domain->notify_jiffies = 0; |
110 domain->working_counter_changes = 0; |
110 domain->working_counter_changes = 0; |
111 |
111 |
112 INIT_LIST_HEAD(&domain->data_regs); |
112 INIT_LIST_HEAD(&domain->data_regs); |
113 INIT_LIST_HEAD(&domain->datagrams); |
113 INIT_LIST_HEAD(&domain->datagrams); |
114 |
114 |
511 |
511 |
512 void ecrt_domain_process(ec_domain_t *domain /**< EtherCAT domain */) |
512 void ecrt_domain_process(ec_domain_t *domain /**< EtherCAT domain */) |
513 { |
513 { |
514 unsigned int working_counter_sum; |
514 unsigned int working_counter_sum; |
515 ec_datagram_t *datagram; |
515 ec_datagram_t *datagram; |
516 cycles_t t_now = get_cycles(); |
|
517 |
516 |
518 working_counter_sum = 0; |
517 working_counter_sum = 0; |
519 list_for_each_entry(datagram, &domain->datagrams, list) { |
518 list_for_each_entry(datagram, &domain->datagrams, list) { |
520 if (datagram->state == EC_DATAGRAM_RECEIVED) { |
519 if (datagram->state == EC_DATAGRAM_RECEIVED) { |
521 working_counter_sum += datagram->working_counter; |
520 working_counter_sum += datagram->working_counter; |
526 domain->working_counter_changes++; |
525 domain->working_counter_changes++; |
527 domain->response_count = working_counter_sum; |
526 domain->response_count = working_counter_sum; |
528 } |
527 } |
529 |
528 |
530 if (domain->working_counter_changes && |
529 if (domain->working_counter_changes && |
531 (u32) (t_now - domain->t_last) / cpu_khz > 1000) { |
530 jiffies - domain->notify_jiffies > HZ) { |
532 domain->t_last = t_now; |
531 domain->notify_jiffies = jiffies; |
533 if (domain->working_counter_changes == 1) { |
532 if (domain->working_counter_changes == 1) { |
534 EC_INFO("Domain %i working counter change: %i\n", domain->index, |
533 EC_INFO("Domain %i working counter change: %i\n", domain->index, |
535 domain->response_count); |
534 domain->response_count); |
536 } |
535 } |
537 else { |
536 else { |