equal
deleted
inserted
replaced
803 ec_sdo_request_clear(&request.req); |
803 ec_sdo_request_clear(&request.req); |
804 EC_ERR("Slave %u does not exist!\n", data.slave_position); |
804 EC_ERR("Slave %u does not exist!\n", data.slave_position); |
805 return -EINVAL; |
805 return -EINVAL; |
806 } |
806 } |
807 |
807 |
|
808 if (master->debug_level) |
|
809 EC_DBG("Schedule SDO upload request for slave %u\n",request.slave->ring_position); |
808 // schedule request. |
810 // schedule request. |
809 list_add_tail(&request.list, &master->slave_sdo_requests); |
811 list_add_tail(&request.list, &master->slave_sdo_requests); |
810 |
812 |
811 up(&master->master_sem); |
813 up(&master->master_sem); |
812 |
814 |
826 } |
828 } |
827 |
829 |
828 // wait until master FSM has finished processing |
830 // wait until master FSM has finished processing |
829 wait_event(master->sdo_queue, request.req.state != EC_INT_REQUEST_BUSY); |
831 wait_event(master->sdo_queue, request.req.state != EC_INT_REQUEST_BUSY); |
830 |
832 |
|
833 if (master->debug_level) |
|
834 EC_DBG("Scheduled SDO upload request for slave %u done\n",request.slave->ring_position); |
|
835 |
831 data.abort_code = request.req.abort_code; |
836 data.abort_code = request.req.abort_code; |
832 |
837 |
833 if (request.req.state != EC_INT_REQUEST_SUCCESS) { |
838 if (request.req.state != EC_INT_REQUEST_SUCCESS) { |
834 data.data_size = 0; |
839 data.data_size = 0; |
835 retval = -EIO; |
840 retval = -EIO; |
904 EC_ERR("Slave %u does not exist!\n", data.slave_position); |
909 EC_ERR("Slave %u does not exist!\n", data.slave_position); |
905 ec_sdo_request_clear(&request.req); |
910 ec_sdo_request_clear(&request.req); |
906 return -EINVAL; |
911 return -EINVAL; |
907 } |
912 } |
908 |
913 |
|
914 if (master->debug_level) |
|
915 EC_DBG("Schedule SDO download request for slave %u\n",request.slave->ring_position); |
909 // schedule request. |
916 // schedule request. |
910 list_add_tail(&request.list, &master->slave_sdo_requests); |
917 list_add_tail(&request.list, &master->slave_sdo_requests); |
911 |
918 |
912 up(&master->master_sem); |
919 up(&master->master_sem); |
913 |
920 |
926 up(&master->master_sem); |
933 up(&master->master_sem); |
927 } |
934 } |
928 |
935 |
929 // wait until master FSM has finished processing |
936 // wait until master FSM has finished processing |
930 wait_event(master->sdo_queue, request.req.state != EC_INT_REQUEST_BUSY); |
937 wait_event(master->sdo_queue, request.req.state != EC_INT_REQUEST_BUSY); |
|
938 |
|
939 if (master->debug_level) |
|
940 EC_DBG("Scheduled SDO download request for slave %u done\n",request.slave->ring_position); |
931 |
941 |
932 data.abort_code = request.req.abort_code; |
942 data.abort_code = request.req.abort_code; |
933 |
943 |
934 retval = request.req.state == EC_INT_REQUEST_SUCCESS ? 0 : -EIO; |
944 retval = request.req.state == EC_INT_REQUEST_SUCCESS ? 0 : -EIO; |
935 |
945 |