equal
deleted
inserted
replaced
210 { |
210 { |
211 ec_slave_t *slave = voe->config->slave; |
211 ec_slave_t *slave = voe->config->slave; |
212 uint8_t *data; |
212 uint8_t *data; |
213 |
213 |
214 if (slave->master->debug_level) { |
214 if (slave->master->debug_level) { |
215 EC_DBG("Writing %u bytes of VoE data to slave %u.\n", |
215 EC_DBG("Writing %zu bytes of VoE data to slave %u.\n", |
216 voe->data_size, slave->ring_position); |
216 voe->data_size, slave->ring_position); |
217 ec_print_data(ecrt_voe_handler_data(voe), voe->data_size); |
217 ec_print_data(ecrt_voe_handler_data(voe), voe->data_size); |
218 } |
218 } |
219 |
219 |
220 if (!(slave->sii.mailbox_protocols & EC_MBOX_VOE)) { |
220 if (!(slave->sii.mailbox_protocols & EC_MBOX_VOE)) { |
232 return; |
232 return; |
233 } |
233 } |
234 |
234 |
235 EC_WRITE_U32(data, voe->vendor_id); |
235 EC_WRITE_U32(data, voe->vendor_id); |
236 EC_WRITE_U16(data + 4, voe->vendor_type); |
236 EC_WRITE_U16(data + 4, voe->vendor_type); |
|
237 /* data already in datagram */ |
237 |
238 |
238 voe->retries = EC_FSM_RETRIES; |
239 voe->retries = EC_FSM_RETRIES; |
239 voe->jiffies_start = jiffies; |
240 voe->jiffies_start = jiffies; |
240 voe->state = ec_voe_handler_state_write_response; |
241 voe->state = ec_voe_handler_state_write_response; |
241 } |
242 } |
417 } |
418 } |
418 |
419 |
419 if (rec_size < EC_VOE_HEADER_SIZE) { |
420 if (rec_size < EC_VOE_HEADER_SIZE) { |
420 voe->state = ec_voe_handler_state_error; |
421 voe->state = ec_voe_handler_state_error; |
421 voe->request_state = EC_INT_REQUEST_FAILURE; |
422 voe->request_state = EC_INT_REQUEST_FAILURE; |
422 EC_ERR("Received VoE header is incomplete (%u bytes)!\n", rec_size); |
423 EC_ERR("Received VoE header is incomplete (%zu bytes)!\n", rec_size); |
423 return; |
424 return; |
424 } |
425 } |
425 |
426 |
426 if (master->debug_level) { |
427 if (master->debug_level) { |
427 EC_DBG("VoE data:\n"); |
428 EC_DBG("VoE data:\n"); |
486 |
487 |
487 if (datagram->working_counter == 0) { |
488 if (datagram->working_counter == 0) { |
488 voe->state = ec_voe_handler_state_error; |
489 voe->state = ec_voe_handler_state_error; |
489 voe->request_state = EC_INT_REQUEST_FAILURE; |
490 voe->request_state = EC_INT_REQUEST_FAILURE; |
490 if (master->debug_level) |
491 if (master->debug_level) |
491 EC_DBG("Slave %u did not send VoE data.", slave->ring_position); |
492 EC_DBG("Slave %u did not send VoE data.\n", slave->ring_position); |
492 return; |
493 return; |
493 } |
494 } |
494 |
495 |
495 if (datagram->working_counter != 1) { |
496 if (datagram->working_counter != 1) { |
496 voe->state = ec_voe_handler_state_error; |
497 voe->state = ec_voe_handler_state_error; |
517 } |
518 } |
518 |
519 |
519 if (rec_size < EC_VOE_HEADER_SIZE) { |
520 if (rec_size < EC_VOE_HEADER_SIZE) { |
520 voe->state = ec_voe_handler_state_error; |
521 voe->state = ec_voe_handler_state_error; |
521 voe->request_state = EC_INT_REQUEST_FAILURE; |
522 voe->request_state = EC_INT_REQUEST_FAILURE; |
522 EC_ERR("Received VoE header is incomplete (%u bytes)!\n", rec_size); |
523 EC_ERR("Received VoE header is incomplete (%zu bytes)!\n", rec_size); |
523 return; |
524 return; |
524 } |
525 } |
525 |
526 |
526 if (master->debug_level) { |
527 if (master->debug_level) { |
527 EC_DBG("VoE data:\n"); |
528 EC_DBG("VoE data:\n"); |