Lines Matching full:pio
191 * This method return the memory space required for STP PIO requests.
683 if (this_request->type.pio.request_current.sgl_set == SCU_SGL_ELEMENT_PAIR_A) in scic_sds_stp_request_pio_get_next_sgl()
686 (this_request->type.pio.request_current.sgl_pair->B.address_lower == 0) in scic_sds_stp_request_pio_get_next_sgl()
687 && (this_request->type.pio.request_current.sgl_pair->B.address_upper == 0) in scic_sds_stp_request_pio_get_next_sgl()
694 this_request->type.pio.request_current.sgl_set = SCU_SGL_ELEMENT_PAIR_B; in scic_sds_stp_request_pio_get_next_sgl()
695 current_sgl = &(this_request->type.pio.request_current.sgl_pair->B); in scic_sds_stp_request_pio_get_next_sgl()
701 (this_request->type.pio.request_current.sgl_pair->next_pair_lower == 0) in scic_sds_stp_request_pio_get_next_sgl()
702 && (this_request->type.pio.request_current.sgl_pair->next_pair_upper == 0) in scic_sds_stp_request_pio_get_next_sgl()
709 this_request->type.pio.request_current.sgl_pair = in scic_sds_stp_request_pio_get_next_sgl()
712 ++this_request->type.pio.sgl_pair_index in scic_sds_stp_request_pio_get_next_sgl()
715 this_request->type.pio.request_current.sgl_set = SCU_SGL_ELEMENT_PAIR_A; in scic_sds_stp_request_pio_get_next_sgl()
717 current_sgl = &(this_request->type.pio.request_current.sgl_pair->A); in scic_sds_stp_request_pio_get_next_sgl()
725 * This method will construct the SATA PIO request.
728 * PIO request object.
750 this_request->type.pio.current_transfer_bytes = 0; in scic_sds_stp_pio_request_construct()
751 this_request->type.pio.ending_error = 0; in scic_sds_stp_pio_request_construct()
752 this_request->type.pio.ending_status = 0; in scic_sds_stp_pio_request_construct()
754 this_request->type.pio.request_current.sgl_offset = 0; in scic_sds_stp_pio_request_construct()
755 this_request->type.pio.request_current.sgl_set = SCU_SGL_ELEMENT_PAIR_A; in scic_sds_stp_pio_request_construct()
756 this_request->type.pio.sat_protocol = sat_protocol; in scic_sds_stp_pio_request_construct()
757 this_request->type.pio.sgl_pair_index = 0; in scic_sds_stp_pio_request_construct()
764 this_request->type.pio.request_current.sgl_pair = in scic_sds_stp_pio_request_construct()
770 this_request->type.pio.request_current.sgl_pair = NULL; in scic_sds_stp_pio_request_construct()
1027 //* STP PIO STATE MACHINE
1058 if (this_sds_stp_request->type.pio.request_current.sgl_set == SCU_SGL_ELEMENT_PAIR_A) in scic_sds_stp_request_pio_data_out_trasmit_data_frame()
1060 current_sgl = &(this_sds_stp_request->type.pio.request_current.sgl_pair->A); in scic_sds_stp_request_pio_data_out_trasmit_data_frame()
1064 current_sgl = &(this_sds_stp_request->type.pio.request_current.sgl_pair->B); in scic_sds_stp_request_pio_data_out_trasmit_data_frame()
1104 sgl_offset = this_sds_stp_request->type.pio.request_current.sgl_offset; in scic_sds_stp_request_pio_data_out_transmit_data()
1106 if (this_sds_stp_request->type.pio.request_current.sgl_set == SCU_SGL_ELEMENT_PAIR_A) in scic_sds_stp_request_pio_data_out_transmit_data()
1108 current_sgl = &(this_sds_stp_request->type.pio.request_current.sgl_pair->A); in scic_sds_stp_request_pio_data_out_transmit_data()
1109 …remaining_bytes_in_current_sgl = this_sds_stp_request->type.pio.request_current.sgl_pair->A.length… in scic_sds_stp_request_pio_data_out_transmit_data()
1113 current_sgl = &(this_sds_stp_request->type.pio.request_current.sgl_pair->B); in scic_sds_stp_request_pio_data_out_transmit_data()
1114 …remaining_bytes_in_current_sgl = this_sds_stp_request->type.pio.request_current.sgl_pair->B.length… in scic_sds_stp_request_pio_data_out_transmit_data()
1118 if (this_sds_stp_request->type.pio.pio_transfer_bytes > 0) in scic_sds_stp_request_pio_data_out_transmit_data()
1120 if (this_sds_stp_request->type.pio.pio_transfer_bytes >= remaining_bytes_in_current_sgl ) in scic_sds_stp_request_pio_data_out_transmit_data()
1126 this_sds_stp_request->type.pio.pio_transfer_bytes -= remaining_bytes_in_current_sgl; in scic_sds_stp_request_pio_data_out_transmit_data()
1130 else if (this_sds_stp_request->type.pio.pio_transfer_bytes < remaining_bytes_in_current_sgl ) in scic_sds_stp_request_pio_data_out_transmit_data()
1132 … and send the H2D Data FIS from (current sgl + sgl_offset) and length = type.pio.pio_transfer_bytes in scic_sds_stp_request_pio_data_out_transmit_data()
1133 …_data_out_trasmit_data_frame (this_sds_request, this_sds_stp_request->type.pio.pio_transfer_bytes); in scic_sds_stp_request_pio_data_out_transmit_data()
1138 sgl_offset += this_sds_stp_request->type.pio.pio_transfer_bytes; in scic_sds_stp_request_pio_data_out_transmit_data()
1139 current_sgl->address_lower += this_sds_stp_request->type.pio.pio_transfer_bytes; in scic_sds_stp_request_pio_data_out_transmit_data()
1140 this_sds_stp_request->type.pio.pio_transfer_bytes = 0; in scic_sds_stp_request_pio_data_out_transmit_data()
1147 this_sds_stp_request->type.pio.request_current.sgl_offset = sgl_offset; in scic_sds_stp_request_pio_data_out_transmit_data()
1178 (this_request->type.pio.request_current.sgl_set == SCU_SGL_ELEMENT_PAIR_A) ? in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1179 &(this_request->type.pio.request_current.sgl_pair->A) : in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1180 &(this_request->type.pio.request_current.sgl_pair->B) ; in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1182 sgl_offset = this_request->type.pio.request_current.sgl_offset; in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1185 data_offset = this_request->type.pio.current_transfer_bytes; in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1230 this_request->type.pio.request_current.sgl_offset = sgl_offset; in scic_sds_stp_request_pio_data_in_copy_data_buffer()
1238 * @param[in] this_request The PIO DATA IN request that is to receive the
1254 if (this_request->type.pio.pio_transfer_bytes < SCU_MAX_FRAME_BUFFER_SIZE) in scic_sds_stp_request_pio_data_in_copy_data()
1257 this_request,data_buffer,this_request->type.pio.pio_transfer_bytes); in scic_sds_stp_request_pio_data_in_copy_data()
1261 // All data for this PIO request has now been copied, so we don't in scic_sds_stp_request_pio_data_in_copy_data()
1264 this_request->type.pio.current_transfer_bytes += this_request->type.pio.pio_transfer_bytes; in scic_sds_stp_request_pio_data_in_copy_data()
1265 this_request->type.pio.pio_transfer_bytes = 0; in scic_sds_stp_request_pio_data_in_copy_data()
1276 this_request->type.pio.pio_transfer_bytes -= SCU_MAX_FRAME_BUFFER_SIZE; in scic_sds_stp_request_pio_data_in_copy_data()
1277 this_request->type.pio.current_transfer_bytes += SCU_MAX_FRAME_BUFFER_SIZE; in scic_sds_stp_request_pio_data_in_copy_data()
1383 // Get from the frame buffer the PIO Setup Data in scic_sds_stp_request_pio_await_frame_frame_handler()
1390 // Get the data from the PIO Setup in scic_sds_stp_request_pio_await_frame_frame_handler()
1393 this_request->type.pio.pio_transfer_bytes = in scic_sds_stp_request_pio_await_frame_frame_handler()
1395 this_request->type.pio.ending_status = in scic_sds_stp_request_pio_await_frame_frame_handler()
1403 this_request->type.pio.ending_status; in scic_sds_stp_request_pio_await_frame_frame_handler()
1405 //The next state is dependent on whether the request was PIO Data-in or Data out in scic_sds_stp_request_pio_await_frame_frame_handler()
1406 if (this_request->type.pio.sat_protocol == SAT_PROTOCOL_PIO_DATA_IN) in scic_sds_stp_request_pio_await_frame_frame_handler()
1413 else if (this_request->type.pio.sat_protocol == SAT_PROTOCOL_PIO_DATA_OUT) in scic_sds_stp_request_pio_await_frame_frame_handler()
1464 "SCIC PIO Request 0x%x received D2H Register FIS with BSY status 0x%x\n", in scic_sds_stp_request_pio_await_frame_frame_handler()
1536 if (this_request->type.pio.request_current.sgl_pair == NULL) in scic_sds_stp_request_pio_data_in_await_data_frame_handler()
1539 this_request->type.pio.pio_transfer_bytes = 0; in scic_sds_stp_request_pio_data_in_await_data_frame_handler()
1562 && (this_request->type.pio.pio_transfer_bytes == 0) in scic_sds_stp_request_pio_data_in_await_data_frame_handler()
1565 if ((this_request->type.pio.ending_status & ATA_STATUS_REG_BSY_BIT) == 0) in scic_sds_stp_request_pio_data_in_await_data_frame_handler()
1592 … "SCIC PIO Request 0x%x received frame %d with fis type 0x%02x when expecting a data fis.\n", in scic_sds_stp_request_pio_data_in_await_data_frame_handler()
1659 if (this_scic_sds_stp_request->type.pio.pio_transfer_bytes != 0) in scic_sds_stp_request_pio_data_out_await_data_transmit_completion_tc_completion_handler()
1664 if (this_scic_sds_stp_request->type.pio.pio_transfer_bytes == 0) in scic_sds_stp_request_pio_data_out_await_data_transmit_completion_tc_completion_handler()
1668 else if (this_scic_sds_stp_request->type.pio.pio_transfer_bytes == 0) in scic_sds_stp_request_pio_data_out_await_data_transmit_completion_tc_completion_handler()
1670 …//this will happen if the all data is written at the first time after the pio setup fis is received in scic_sds_stp_request_pio_data_out_await_data_transmit_completion_tc_completion_handler()
1742 "SCIC PIO Request 0x%x received unexpected event 0x%08x\n", in scic_sds_stp_request_pio_data_in_await_data_event_handler()
1746 /// @todo Should we fail the PIO request when we get an unexpected event? in scic_sds_stp_request_pio_data_in_await_data_event_handler()