master/fsm_coe_map.c
changeset 1036 dc2008bc8113
parent 1035 7fafc1a7451e
child 1044 0d73427db362
equal deleted inserted replaced
1035:7fafc1a7451e 1036:dc2008bc8113
   214                 fsm->slave->ring_position);
   214                 fsm->slave->ring_position);
   215         fsm->state = ec_fsm_coe_map_state_error;
   215         fsm->state = ec_fsm_coe_map_state_error;
   216         return;
   216         return;
   217     }
   217     }
   218 
   218 
       
   219     if (fsm->request.data_size != sizeof(uint8_t)) {
       
   220         EC_ERR("Invalid data size %u returned when uploading Sdo 0x%04X:%02X "
       
   221                 "from slave %u.\n", fsm->request.data_size,
       
   222                 fsm->request.index, fsm->request.subindex,
       
   223                 fsm->slave->ring_position);
       
   224         fsm->state = ec_fsm_coe_map_state_error;
       
   225         return;
       
   226     }
   219     fsm->sync_subindices = EC_READ_U8(fsm->request.data);
   227     fsm->sync_subindices = EC_READ_U8(fsm->request.data);
   220 
   228 
   221     if (fsm->slave->master->debug_level)
   229     if (fsm->slave->master->debug_level)
   222         EC_DBG("  %u Pdos assigned.\n", fsm->sync_subindices);
   230         EC_DBG("  %u Pdos assigned.\n", fsm->sync_subindices);
   223 
   231 
   278                 fsm->slave->ring_position);
   286                 fsm->slave->ring_position);
   279         fsm->state = ec_fsm_coe_map_state_error;
   287         fsm->state = ec_fsm_coe_map_state_error;
   280         return;
   288         return;
   281     }
   289     }
   282 
   290 
       
   291     if (fsm->request.data_size != sizeof(uint16_t)) {
       
   292         EC_ERR("Invalid data size %u returned when uploading Sdo 0x%04X:%02X "
       
   293                 "from slave %u.\n", fsm->request.data_size,
       
   294                 fsm->request.index, fsm->request.subindex,
       
   295                 fsm->slave->ring_position);
       
   296         fsm->state = ec_fsm_coe_map_state_error;
       
   297         return;
       
   298     }
       
   299 
   283     if (!(fsm->pdo = (ec_pdo_t *)
   300     if (!(fsm->pdo = (ec_pdo_t *)
   284                 kmalloc(sizeof(ec_pdo_t), GFP_KERNEL))) {
   301                 kmalloc(sizeof(ec_pdo_t), GFP_KERNEL))) {
   285         EC_ERR("Failed to allocate Pdo.\n");
   302         EC_ERR("Failed to allocate Pdo.\n");
   286         fsm->state = ec_fsm_coe_map_state_error;
   303         fsm->state = ec_fsm_coe_map_state_error;
   287         return;
   304         return;
   321                 fsm->slave->ring_position);
   338                 fsm->slave->ring_position);
   322         fsm->state = ec_fsm_coe_map_state_error;
   339         fsm->state = ec_fsm_coe_map_state_error;
   323         return;
   340         return;
   324     }
   341     }
   325 
   342 
       
   343     if (fsm->request.data_size != sizeof(uint8_t)) {
       
   344         EC_ERR("Invalid data size %u returned when uploading Sdo 0x%04X:%02X "
       
   345                 "from slave %u.\n", fsm->request.data_size,
       
   346                 fsm->request.index, fsm->request.subindex,
       
   347                 fsm->slave->ring_position);
       
   348         fsm->state = ec_fsm_coe_map_state_error;
       
   349         return;
       
   350     }
   326     fsm->pdo_subindices = EC_READ_U8(fsm->request.data);
   351     fsm->pdo_subindices = EC_READ_U8(fsm->request.data);
   327 
   352 
   328     if (fsm->slave->master->debug_level)
   353     if (fsm->slave->master->debug_level)
   329         EC_DBG("    %u Pdo entries mapped.\n", fsm->pdo_subindices);
   354         EC_DBG("    %u Pdo entries mapped.\n", fsm->pdo_subindices);
   330 
   355 
   375                 fsm->slave->ring_position);
   400                 fsm->slave->ring_position);
   376         fsm->state = ec_fsm_coe_map_state_error;
   401         fsm->state = ec_fsm_coe_map_state_error;
   377         return;
   402         return;
   378     }
   403     }
   379 
   404 
   380     {
   405     if (fsm->request.data_size != sizeof(uint32_t)) {
       
   406         EC_ERR("Invalid data size %u returned when uploading Sdo 0x%04X:%02X "
       
   407                 "from slave %u.\n", fsm->request.data_size,
       
   408                 fsm->request.index, fsm->request.subindex,
       
   409                 fsm->slave->ring_position);
       
   410         fsm->state = ec_fsm_coe_map_state_error;
       
   411     } else {
   381         uint32_t pdo_entry_info;
   412         uint32_t pdo_entry_info;
   382         ec_pdo_entry_t *pdo_entry;
   413         ec_pdo_entry_t *pdo_entry;
   383 
   414 
   384         pdo_entry_info = EC_READ_U32(fsm->request.data);
   415         pdo_entry_info = EC_READ_U32(fsm->request.data);
   385 
   416