equal
deleted
inserted
replaced
358 fsm->state = ec_fsm_coe_error; |
358 fsm->state = ec_fsm_coe_error; |
359 return; |
359 return; |
360 } |
360 } |
361 |
361 |
362 if (mbox_prot != 0x03) { // CoE |
362 if (mbox_prot != 0x03) { // CoE |
363 EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
363 EC_ERR("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
364 fsm->state = ec_fsm_coe_error; |
364 fsm->state = ec_fsm_coe_error; |
365 return; |
365 return; |
366 } |
366 } |
367 |
367 |
368 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
368 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
547 fsm->state = ec_fsm_coe_error; |
547 fsm->state = ec_fsm_coe_error; |
548 return; |
548 return; |
549 } |
549 } |
550 |
550 |
551 if (mbox_prot != 0x03) { // CoE |
551 if (mbox_prot != 0x03) { // CoE |
552 EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
552 EC_ERR("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
553 fsm->state = ec_fsm_coe_error; |
553 fsm->state = ec_fsm_coe_error; |
554 return; |
554 return; |
555 } |
555 } |
556 |
556 |
557 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
557 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
720 fsm->state = ec_fsm_coe_error; |
720 fsm->state = ec_fsm_coe_error; |
721 return; |
721 return; |
722 } |
722 } |
723 |
723 |
724 if (mbox_prot != 0x03) { // CoE |
724 if (mbox_prot != 0x03) { // CoE |
725 EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
725 EC_ERR("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
726 fsm->state = ec_fsm_coe_error; |
726 fsm->state = ec_fsm_coe_error; |
727 return; |
727 return; |
728 } |
728 } |
729 |
729 |
730 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
730 if (EC_READ_U16(data) >> 12 == 0x8 && // SDO information |
968 fsm->state = ec_fsm_coe_error; |
968 fsm->state = ec_fsm_coe_error; |
969 return; |
969 return; |
970 } |
970 } |
971 |
971 |
972 if (mbox_prot != 0x03) { // CoE |
972 if (mbox_prot != 0x03) { // CoE |
973 EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
973 EC_ERR("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
974 fsm->state = ec_fsm_coe_error; |
974 fsm->state = ec_fsm_coe_error; |
975 return; |
975 return; |
976 } |
976 } |
977 |
977 |
978 if (rec_size < 6) { |
978 if (rec_size < 6) { |
1208 request->data = NULL; |
1208 request->data = NULL; |
1209 } |
1209 } |
1210 request->size = 0; |
1210 request->size = 0; |
1211 |
1211 |
1212 if (complete_size) { |
1212 if (complete_size) { |
1213 if (!(request->data = (uint8_t *) kmalloc(complete_size + 1, GFP_ATOMIC))) { |
1213 if (!(request->data = (uint8_t *) |
1214 EC_ERR("Failed to allocate %i bytes of SDO data!\n", complete_size); |
1214 kmalloc(complete_size + 1, GFP_ATOMIC))) { |
|
1215 EC_ERR("Failed to allocate %i bytes of SDO data!\n", |
|
1216 complete_size); |
1215 fsm->state = ec_fsm_coe_error; |
1217 fsm->state = ec_fsm_coe_error; |
1216 return; |
1218 return; |
1217 } |
1219 } |
1218 request->data[complete_size] = 0x00; // just to be sure... |
1220 request->data[complete_size] = 0x00; // just to be sure... |
1219 } |
1221 } |
1226 memcpy(request->data, data + 10, data_size); |
1228 memcpy(request->data, data + 10, data_size); |
1227 request->size = data_size; |
1229 request->size = data_size; |
1228 fsm->toggle = 0; |
1230 fsm->toggle = 0; |
1229 |
1231 |
1230 if (data_size < complete_size) { |
1232 if (data_size < complete_size) { |
1231 EC_WARN("SDO data incomplete (%i / %i).\n", data_size, complete_size); |
1233 EC_WARN("SDO data incomplete (%i / %i).\n", |
1232 |
1234 data_size, complete_size); |
1233 if (!(data = ec_slave_mbox_prepare_send(slave, datagram, 0x03, 3))) { |
1235 |
|
1236 if (!(data = ec_slave_mbox_prepare_send(slave, datagram, |
|
1237 0x03, 3))) { |
1234 fsm->state = ec_fsm_coe_error; |
1238 fsm->state = ec_fsm_coe_error; |
1235 return; |
1239 return; |
1236 } |
1240 } |
1237 |
1241 |
1238 EC_WRITE_U16(data, 0x2 << 12); // SDO request |
1242 EC_WRITE_U16(data, 0x2 << 12); // SDO request |
1352 EC_DBG("Upload segment response:\n"); |
1356 EC_DBG("Upload segment response:\n"); |
1353 ec_print_data(data, rec_size); |
1357 ec_print_data(data, rec_size); |
1354 } |
1358 } |
1355 |
1359 |
1356 if (mbox_prot != 0x03) { // CoE |
1360 if (mbox_prot != 0x03) { // CoE |
1357 EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
1361 EC_ERR("Received mailbox protocol 0x%02X as response.\n", mbox_prot); |
1358 fsm->state = ec_fsm_coe_error; |
1362 fsm->state = ec_fsm_coe_error; |
1359 return; |
1363 return; |
1360 } |
1364 } |
1361 |
1365 |
1362 if (rec_size < 10) { |
1366 if (rec_size < 10) { |