master/fsm_master.c
changeset 1543 373cd456dc26
parent 1507 68e89abadd19
child 1581 e51cf2af3ff9
equal deleted inserted replaced
1528:dbc617badc33 1543:373cd456dc26
   364         request->state = EC_INT_REQUEST_BUSY;
   364         request->state = EC_INT_REQUEST_BUSY;
   365 
   365 
   366         // found pending request; process it!
   366         // found pending request; process it!
   367         if (master->debug_level)
   367         if (master->debug_level)
   368             EC_DBG("Processing register request for slave %u, "
   368             EC_DBG("Processing register request for slave %u, "
   369                     "offset 0x%04x, length %u...\n",
   369                     "offset 0x%04x, length %zu...\n",
   370                     request->slave->ring_position,
   370                     request->slave->ring_position,
   371                     request->offset, request->length);
   371                     request->offset, request->length);
   372 
   372 
   373         if (request->length > fsm->datagram->mem_size) {
   373         if (request->length > fsm->datagram->mem_size) {
   374             EC_ERR("Request length (%u) exceeds maximum "
   374             EC_ERR("Request length (%zu) exceeds maximum "
   375                     "datagram size (%u)!\n", request->length,
   375                     "datagram size (%zu)!\n", request->length,
   376                     fsm->datagram->mem_size);
   376                     fsm->datagram->mem_size);
   377             request->state = EC_INT_REQUEST_FAILURE;
   377             request->state = EC_INT_REQUEST_FAILURE;
   378             wake_up(&master->reg_queue);
   378             wake_up(&master->reg_queue);
   379             continue;
   379             continue;
   380         }
   380         }
   941         return;
   941         return;
   942     }
   942     }
   943 
   943 
   944     // finished writing SII
   944     // finished writing SII
   945     if (master->debug_level)
   945     if (master->debug_level)
   946         EC_DBG("Finished writing %u words of SII data to slave %u.\n",
   946         EC_DBG("Finished writing %zu words of SII data to slave %u.\n",
   947                 request->nwords, slave->ring_position);
   947                 request->nwords, slave->ring_position);
   948 
   948 
   949     if (request->offset <= 4 && request->offset + request->nwords > 4) {
   949     if (request->offset <= 4 && request->offset + request->nwords > 4) {
   950         // alias was written
   950         // alias was written
   951         slave->sii.alias = EC_READ_U16(request->words + 4);
   951         slave->sii.alias = EC_READ_U16(request->words + 4);
   988         return;
   988         return;
   989     }
   989     }
   990 
   990 
   991     // finished transferring FoE
   991     // finished transferring FoE
   992     if (master->debug_level)
   992     if (master->debug_level)
   993         EC_DBG("Successfully transferred %u bytes of FoE data from/to"
   993         EC_DBG("Successfully transferred %zu bytes of FoE data from/to"
   994                 " slave %u.\n", request->data_size, slave->ring_position);
   994                 " slave %u.\n", request->data_size, slave->ring_position);
   995 
   995 
   996     request->state = EC_INT_REQUEST_SUCCESS;
   996     request->state = EC_INT_REQUEST_SUCCESS;
   997     wake_up(&master->foe_queue);
   997     wake_up(&master->foe_queue);
   998 
   998 
  1094         if (request->dir == EC_DIR_INPUT) { // read request
  1094         if (request->dir == EC_DIR_INPUT) { // read request
  1095             if (request->data)
  1095             if (request->data)
  1096                 kfree(request->data);
  1096                 kfree(request->data);
  1097             request->data = kmalloc(request->length, GFP_KERNEL);
  1097             request->data = kmalloc(request->length, GFP_KERNEL);
  1098             if (!request->data) {
  1098             if (!request->data) {
  1099                 EC_ERR("Failed to allocate %u bytes of memory for"
  1099                 EC_ERR("Failed to allocate %zu bytes of memory for"
  1100                         " register data.\n", request->length);
  1100                         " register data.\n", request->length);
  1101                 request->state = EC_INT_REQUEST_FAILURE;
  1101                 request->state = EC_INT_REQUEST_FAILURE;
  1102                 wake_up(&master->reg_queue);
  1102                 wake_up(&master->reg_queue);
  1103                 ec_fsm_master_restart(fsm);
  1103                 ec_fsm_master_restart(fsm);
  1104                 return;
  1104                 return;