master/voe_handler.c
changeset 1609 94010c6d8198
parent 1551 82a9eaba8a8b
child 1822 74e6ac2369f4
equal deleted inserted replaced
1608:004a8b91e927 1609:94010c6d8198
   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");