rename TUSB_DIR_OUT, TUSB_DIR_IN
This commit is contained in:
		| @@ -180,12 +180,12 @@ static inline uint8_t edpt_phy2pos(uint8_t physical_endpoint) | ||||
|  | ||||
| static inline uint8_t edpt_addr2phy(uint8_t endpoint_addr) | ||||
| { | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? 1 : 0); | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_IN_MASK) ? 1 : 0); | ||||
| } | ||||
|  | ||||
| static inline uint8_t edpt_phy2addr(uint8_t ep_idx) | ||||
| { | ||||
|   return (ep_idx/2) | ( ep_idx & 0x01 ? TUSB_DIR_DEV_TO_HOST_MASK : 0 ); | ||||
|   return (ep_idx/2) | ( ep_idx & 0x01 ? TUSB_DIR_IN_MASK : 0 ); | ||||
| } | ||||
|  | ||||
| static inline uint8_t edpt_phy2log(uint8_t physical_endpoint) | ||||
| @@ -240,7 +240,7 @@ bool tusb_dcd_control_xfer(uint8_t port, tusb_dir_t dir, uint8_t * p_buffer, uin | ||||
|   dcd_data_t* const p_dcd      = dcd_data_ptr[port]; | ||||
|  | ||||
|   // determine Endpoint where Data & Status phase occurred (IN or OUT) | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_DEV_TO_HOST) ? 1 : 0; | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_IN) ? 1 : 0; | ||||
|   uint8_t const ep_status = 1 - ep_data; | ||||
|  | ||||
|   while(lpc_usb->ENDPTSETUPSTAT & BIT_(0)) {} // wait until ENDPTSETUPSTAT before priming data/status in response TODO add time out | ||||
| @@ -291,8 +291,8 @@ void tusb_dcd_edpt_clear_stall(uint8_t port, uint8_t edpt_addr) | ||||
|   volatile uint32_t * reg_control = get_reg_control_addr(port, edpt_addr2phy(edpt_addr)); | ||||
|  | ||||
|   // data toggle also need to be reset | ||||
|   (*reg_control) |= ENDPTCTRL_MASK_TOGGLE_RESET << ((edpt_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? 16 : 0); | ||||
|   (*reg_control) &= ~(ENDPTCTRL_MASK_STALL << ((edpt_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? 16 : 0)); | ||||
|   (*reg_control) |= ENDPTCTRL_MASK_TOGGLE_RESET << ((edpt_addr & TUSB_DIR_IN_MASK) ? 16 : 0); | ||||
|   (*reg_control) &= ~(ENDPTCTRL_MASK_STALL << ((edpt_addr & TUSB_DIR_IN_MASK) ? 16 : 0)); | ||||
| } | ||||
|  | ||||
| bool tusb_dcd_edpt_open(uint8_t port, tusb_descriptor_endpoint_t const * p_endpoint_desc) | ||||
| @@ -301,7 +301,7 @@ bool tusb_dcd_edpt_open(uint8_t port, tusb_descriptor_endpoint_t const * p_endpo | ||||
|   // TODO not support ISO yet | ||||
|   VERIFY ( p_endpoint_desc->bmAttributes.xfer != TUSB_XFER_ISOCHRONOUS); | ||||
|  | ||||
|   tusb_dir_t dir = (p_endpoint_desc->bEndpointAddress & TUSB_DIR_DEV_TO_HOST_MASK) ? TUSB_DIR_DEV_TO_HOST : TUSB_DIR_HOST_TO_DEV; | ||||
|   tusb_dir_t dir = (p_endpoint_desc->bEndpointAddress & TUSB_DIR_IN_MASK) ? TUSB_DIR_IN : TUSB_DIR_OUT; | ||||
|  | ||||
|   //------------- Prepare Queue Head -------------// | ||||
|   uint8_t ep_idx    = edpt_addr2phy(p_endpoint_desc->bEndpointAddress); | ||||
|   | ||||
| @@ -179,7 +179,7 @@ tusb_error_t cdcd_open(uint8_t port, tusb_descriptor_interface_t const * p_inter | ||||
|  | ||||
|       TU_ASSERT( tusb_dcd_edpt_open(port, p_endpoint), TUSB_ERROR_DCD_OPEN_PIPE_FAILED); | ||||
|  | ||||
|       if ( p_endpoint->bEndpointAddress &  TUSB_DIR_DEV_TO_HOST_MASK ) | ||||
|       if ( p_endpoint->bEndpointAddress &  TUSB_DIR_IN_MASK ) | ||||
|       { | ||||
|         p_cdc->edpt_addr[CDC_PIPE_DATA_IN] = p_endpoint->bEndpointAddress; | ||||
|       }else | ||||
|   | ||||
| @@ -202,7 +202,7 @@ tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|       ASSERT_INT(TUSB_DESC_TYPE_ENDPOINT, p_endpoint->bDescriptorType, TUSB_ERROR_USBH_DESCRIPTOR_CORRUPTED); | ||||
|       ASSERT_INT(TUSB_XFER_BULK, p_endpoint->bmAttributes.xfer, TUSB_ERROR_USBH_DESCRIPTOR_CORRUPTED); | ||||
|  | ||||
|       pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_DEV_TO_HOST_MASK ) ? | ||||
|       pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_IN_MASK ) ? | ||||
|           &p_cdc->pipe_in : &p_cdc->pipe_out; | ||||
|  | ||||
|       (*p_pipe_hdl) = hcd_pipe_open(dev_addr, p_endpoint, TUSB_CLASS_CDC); | ||||
|   | ||||
| @@ -245,7 +245,7 @@ static tusb_error_t send_message_get_response_subtask( uint8_t dev_addr, cdch_da | ||||
|  | ||||
|   //------------- Send RNDIS Control Message -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                  CDC_REQUEST_SEND_ENCAPSULATED_COMMAND, 0, p_cdc->interface_number, | ||||
|                                  mess_length, p_mess), | ||||
|       error | ||||
| @@ -260,7 +260,7 @@ static tusb_error_t send_message_get_response_subtask( uint8_t dev_addr, cdch_da | ||||
|  | ||||
|   //------------- Get RNDIS Message Initialize Complete -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                CDC_REQUEST_GET_ENCAPSULATED_RESPONSE, 0, p_cdc->interface_number, | ||||
|                                RNDIS_MSG_PAYLOAD_MAX, p_response), | ||||
|     error | ||||
|   | ||||
| @@ -119,7 +119,7 @@ tusb_error_t cush_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|     tusb_descriptor_endpoint_t const *p_endpoint = (tusb_descriptor_endpoint_t const *) p_desc; | ||||
|     ASSERT_INT(TUSB_DESC_TYPE_ENDPOINT, p_endpoint->bDescriptorType, TUSB_ERROR_INVALID_PARA); | ||||
|  | ||||
|     pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_DEV_TO_HOST_MASK ) ? | ||||
|     pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_IN_MASK ) ? | ||||
|                          &custom_interface[dev_addr-1].pipe_in : &custom_interface[dev_addr-1].pipe_out; | ||||
|     *p_pipe_hdl = hcd_pipe_open(dev_addr, p_endpoint, TUSB_CLASS_VENDOR_SPECIFIC); | ||||
|     ASSERT ( pipehandle_is_valid(*p_pipe_hdl), TUSB_ERROR_HCD_OPEN_PIPE_FAILED ); | ||||
|   | ||||
| @@ -202,7 +202,7 @@ tusb_error_t hidd_control_request_subtask(uint8_t port, tusb_control_request_t c | ||||
|     ASSERT ( p_hid->report_length <= HIDD_BUFFER_SIZE, TUSB_ERROR_NOT_ENOUGH_MEMORY); | ||||
|  | ||||
|     memcpy(m_hid_buffer, p_hid->p_report_desc, p_hid->report_length); // to allow report descriptor not to be in USBRAM | ||||
|     tusb_dcd_control_xfer(port, TUSB_DIR_DEV_TO_HOST, m_hid_buffer, p_hid->report_length, false); | ||||
|     tusb_dcd_control_xfer(port, TUSB_DIR_IN, m_hid_buffer, p_hid->report_length, false); | ||||
|   } | ||||
|   //------------- Class Specific Request -------------// | ||||
|   else if (p_request->bmRequestType_bit.type == TUSB_REQUEST_TYPE_CLASS) | ||||
|   | ||||
| @@ -199,7 +199,7 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|  | ||||
|   //------------- SET IDLE (0) request -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                HID_REQUEST_CONTROL_SET_IDLE, 0, p_interface_desc->bInterfaceNumber, | ||||
|                                0, NULL ), | ||||
|     error | ||||
| @@ -211,7 +211,7 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|   if ( p_desc_hid->bNumDescriptors ) | ||||
|   { | ||||
|     OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|         usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|         usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                    TUSB_REQUEST_GET_DESCRIPTOR, (p_desc_hid->bReportType << 8), 0, | ||||
|                                    p_desc_hid->wReportLength, report_descriptor ), | ||||
|         error | ||||
|   | ||||
| @@ -100,7 +100,7 @@ tusb_error_t mscd_open(uint8_t port, tusb_descriptor_interface_t const * p_inter | ||||
|  | ||||
|     TU_ASSERT( tusb_dcd_edpt_open(port, p_endpoint), TUSB_ERROR_DCD_FAILED ); | ||||
|  | ||||
|     if ( p_endpoint->bEndpointAddress &  TUSB_DIR_DEV_TO_HOST_MASK ) | ||||
|     if ( p_endpoint->bEndpointAddress &  TUSB_DIR_IN_MASK ) | ||||
|     { | ||||
|       p_msc->edpt_in = p_endpoint->bEndpointAddress; | ||||
|     }else | ||||
| @@ -130,12 +130,12 @@ tusb_error_t mscd_control_request_subtask(uint8_t port, tusb_control_request_t c | ||||
|   switch(p_request->bRequest) | ||||
|   { | ||||
|     case MSC_REQUEST_RESET: | ||||
|       tusb_dcd_control_xfer(port, TUSB_DIR_HOST_TO_DEV, NULL, 0, false); | ||||
|       tusb_dcd_control_xfer(port, TUSB_DIR_OUT, NULL, 0, false); | ||||
|     break; | ||||
|  | ||||
|     case MSC_REQUEST_GET_MAX_LUN: | ||||
|       p_msc->scsi_data[0] = p_msc->max_lun; // Note: lpc11/13u need xfer data's address to be aligned 64 -> make use of scsi_data instead of using max_lun directly | ||||
|       tusb_dcd_control_xfer(port, TUSB_DIR_DEV_TO_HOST, p_msc->scsi_data, 1, false); | ||||
|       tusb_dcd_control_xfer(port, TUSB_DIR_IN, p_msc->scsi_data, 1, false); | ||||
|     break; | ||||
|  | ||||
|     default: | ||||
|   | ||||
| @@ -114,7 +114,7 @@ static tusb_error_t msch_command_xfer(msch_interface_t * p_msch, void* p_buffer) | ||||
| { | ||||
|   if ( NULL != p_buffer) | ||||
|   { // there is data phase | ||||
|     if (p_msch->cbw.dir & TUSB_DIR_DEV_TO_HOST_MASK) | ||||
|     if (p_msch->cbw.dir & TUSB_DIR_IN_MASK) | ||||
|     { | ||||
|       ASSERT_STATUS( hcd_pipe_xfer(p_msch->bulk_out, (uint8_t*) &p_msch->cbw, sizeof(msc_cmd_block_wrapper_t), false) ); | ||||
|       ASSERT_STATUS( hcd_pipe_queue_xfer(p_msch->bulk_in , p_buffer, p_msch->cbw.xfer_bytes) ); | ||||
| @@ -137,7 +137,7 @@ tusb_error_t tusbh_msc_inquiry(uint8_t dev_addr, uint8_t lun, uint8_t *p_data) | ||||
|   //------------- Command Block Wrapper -------------// | ||||
|   msc_cbw_add_signature(&p_msch->cbw, lun); | ||||
|   p_msch->cbw.xfer_bytes = sizeof(scsi_inquiry_data_t); | ||||
|   p_msch->cbw.dir        = TUSB_DIR_DEV_TO_HOST_MASK; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_IN_MASK; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_inquiry_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -161,7 +161,7 @@ tusb_error_t tusbh_msc_read_capacity10(uint8_t dev_addr, uint8_t lun, uint8_t *p | ||||
|   //------------- Command Block Wrapper -------------// | ||||
|   msc_cbw_add_signature(&p_msch->cbw, lun); | ||||
|   p_msch->cbw.xfer_bytes = sizeof(scsi_read_capacity10_data_t); | ||||
|   p_msch->cbw.dir        = TUSB_DIR_DEV_TO_HOST_MASK; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_IN_MASK; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_read_capacity10_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -187,7 +187,7 @@ tusb_error_t tuh_msc_request_sense(uint8_t dev_addr, uint8_t lun, uint8_t *p_dat | ||||
|  | ||||
|   //------------- Command Block Wrapper -------------// | ||||
|   p_msch->cbw.xfer_bytes = 18; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_DEV_TO_HOST_MASK; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_IN_MASK; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_request_sense_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -212,7 +212,7 @@ tusb_error_t tuh_msc_test_unit_ready(uint8_t dev_addr, uint8_t lun,  msc_cmd_sta | ||||
|   msc_cbw_add_signature(&p_msch->cbw, lun); | ||||
|  | ||||
|   p_msch->cbw.xfer_bytes = 0; // Number of bytes | ||||
|   p_msch->cbw.dir        = TUSB_DIR_HOST_TO_DEV; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_OUT; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_test_unit_ready_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -239,7 +239,7 @@ tusb_error_t  tuh_msc_read10(uint8_t dev_addr, uint8_t lun, void * p_buffer, uin | ||||
|   msc_cbw_add_signature(&p_msch->cbw, lun); | ||||
|  | ||||
|   p_msch->cbw.xfer_bytes = p_msch->block_size*block_count; // Number of bytes | ||||
|   p_msch->cbw.dir        = TUSB_DIR_DEV_TO_HOST_MASK; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_IN_MASK; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_read10_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -265,7 +265,7 @@ tusb_error_t tuh_msc_write10(uint8_t dev_addr, uint8_t lun, void const * p_buffe | ||||
|   msc_cbw_add_signature(&p_msch->cbw, lun); | ||||
|  | ||||
|   p_msch->cbw.xfer_bytes = p_msch->block_size*block_count; // Number of bytes | ||||
|   p_msch->cbw.dir        = TUSB_DIR_HOST_TO_DEV; | ||||
|   p_msch->cbw.dir        = TUSB_DIR_OUT; | ||||
|   p_msch->cbw.cmd_len    = sizeof(scsi_write10_t); | ||||
|  | ||||
|   //------------- SCSI command -------------// | ||||
| @@ -313,7 +313,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|     SUBTASK_ASSERT(TUSB_DESC_TYPE_ENDPOINT == p_endpoint->bDescriptorType); | ||||
|     SUBTASK_ASSERT(TUSB_XFER_BULK == p_endpoint->bmAttributes.xfer); | ||||
|  | ||||
|     pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_DEV_TO_HOST_MASK ) ? | ||||
|     pipe_handle_t * p_pipe_hdl =  ( p_endpoint->bEndpointAddress &  TUSB_DIR_IN_MASK ) ? | ||||
|         &msch_data[dev_addr-1].bulk_in : &msch_data[dev_addr-1].bulk_out; | ||||
|  | ||||
|     (*p_pipe_hdl) = hcd_pipe_open(dev_addr, p_endpoint, TUSB_CLASS_MSC); | ||||
| @@ -328,7 +328,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|  | ||||
|   //------------- Get Max Lun -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                MSC_REQUEST_GET_MAX_LUN, 0, msch_data[dev_addr-1].interface_number, | ||||
|                                1, msch_buffer ), | ||||
|     error | ||||
| @@ -340,7 +340,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
| #if 0 | ||||
|   //------------- Reset -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_INTERFACE), | ||||
|                                MSC_REQUEST_RESET, 0, msch_data[dev_addr-1].interface_number, | ||||
|                                0, NULL ), | ||||
|     error | ||||
| @@ -366,7 +366,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con | ||||
|   if ( hcd_pipe_is_stalled(msch_data[dev_addr-1].bulk_in) ) | ||||
|   { // clear stall TODO abstract clear stall function | ||||
|     OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_ENDPOINT), | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_ENDPOINT), | ||||
|                                  TUSB_REQUEST_CLEAR_FEATURE, 0, hcd_pipe_get_endpoint_addr(msch_data[dev_addr-1].bulk_in), | ||||
|                                  0, NULL ), | ||||
|       error | ||||
|   | ||||
| @@ -66,10 +66,10 @@ typedef enum | ||||
|  | ||||
| typedef enum | ||||
| { | ||||
|   TUSB_DIR_HOST_TO_DEV      = 0, | ||||
|   TUSB_DIR_DEV_TO_HOST      = 1, | ||||
|   TUSB_DIR_OUT = 0, | ||||
|   TUSB_DIR_IN  = 1, | ||||
|  | ||||
|   TUSB_DIR_DEV_TO_HOST_MASK = 0x80 | ||||
|   TUSB_DIR_IN_MASK = 0x80 | ||||
| }tusb_dir_t; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -84,7 +84,7 @@ static tusb_error_t pipe_control_xfer(uint8_t ep_id, uint8_t* p_buffer, uint16_t | ||||
| static inline uint8_t edpt_addr2phy(uint8_t endpoint_addr) ATTR_CONST ATTR_ALWAYS_INLINE; | ||||
| static inline uint8_t edpt_addr2phy(uint8_t endpoint_addr) | ||||
| { | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? 1 : 0); | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_IN_MASK) ? 1 : 0); | ||||
| } | ||||
|  | ||||
| static inline void edpt_set_max_packet_size(uint8_t ep_id, uint16_t max_packet_size) ATTR_ALWAYS_INLINE; | ||||
| @@ -385,7 +385,7 @@ bool tusb_dcd_control_xfer(uint8_t port, tusb_dir_t dir, uint8_t * p_buffer, uin | ||||
|   VERIFY( !(length != 0 && p_buffer == NULL) ); | ||||
|  | ||||
|   // determine Endpoint where Data & Status phase occurred (IN or OUT) | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_DEV_TO_HOST) ? 1 : 0; | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_IN) ? 1 : 0; | ||||
|   uint8_t const ep_status = 1 - ep_data; | ||||
|  | ||||
|   dcd_data.control_dma.int_on_complete = int_on_complete ? BIT_(ep_status) : 0; | ||||
| @@ -401,7 +401,7 @@ bool tusb_dcd_control_xfer(uint8_t port, tusb_dir_t dir, uint8_t * p_buffer, uin | ||||
|   } | ||||
|  | ||||
|   //------------- Status Phase (opposite direct to Data) -------------// | ||||
|   if (dir == TUSB_DIR_HOST_TO_DEV) | ||||
|   if (dir == TUSB_DIR_OUT) | ||||
|   { // only write for CONTROL OUT, CONTROL IN data will be retrieved in hal_dcd_isr // TODO ???? | ||||
|     VERIFY_STATUS ( pipe_control_write(NULL, 0), false ); | ||||
|   } | ||||
|   | ||||
| @@ -385,7 +385,7 @@ bool tusb_dcd_control_xfer(uint8_t port, tusb_dir_t dir, uint8_t * p_buffer, uin | ||||
|   (void) port; | ||||
|  | ||||
|   // determine Endpoint where Data & Status phase occurred (IN or OUT) | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_DEV_TO_HOST) ? 1 : 0; | ||||
|   uint8_t const ep_data   = (dir == TUSB_DIR_IN) ? 1 : 0; | ||||
|   uint8_t const ep_status = 1 - ep_data; | ||||
|  | ||||
|   dcd_data.current_ioc = int_on_complete ? BIT_SET_(dcd_data.current_ioc, ep_status) : BIT_CLR_(dcd_data.current_ioc, ep_status); | ||||
| @@ -414,7 +414,7 @@ bool tusb_dcd_control_xfer(uint8_t port, tusb_dir_t dir, uint8_t * p_buffer, uin | ||||
| static inline uint8_t edpt_addr2phy(uint8_t endpoint_addr) ATTR_CONST ATTR_ALWAYS_INLINE; | ||||
| static inline uint8_t edpt_addr2phy(uint8_t endpoint_addr) | ||||
| { | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? 1 : 0); | ||||
|   return 2*(endpoint_addr & 0x0F) + ((endpoint_addr & TUSB_DIR_IN_MASK) ? 1 : 0); | ||||
| } | ||||
|  | ||||
| #if 0 | ||||
|   | ||||
| @@ -482,7 +482,7 @@ bool hcd_pipe_is_stalled(pipe_handle_t pipe_hdl) | ||||
| uint8_t hcd_pipe_get_endpoint_addr(pipe_handle_t pipe_hdl) | ||||
| { | ||||
|   ehci_qhd_t *p_qhd = qhd_get_from_pipe_handle( pipe_hdl ); | ||||
|   return p_qhd->endpoint_number + ( (p_qhd->pid_non_control == EHCI_PID_IN) ? TUSB_DIR_DEV_TO_HOST_MASK : 0); | ||||
|   return p_qhd->endpoint_number + ( (p_qhd->pid_non_control == EHCI_PID_IN) ? TUSB_DIR_IN_MASK : 0); | ||||
| } | ||||
|  | ||||
| tusb_error_t hcd_pipe_clear_stall(pipe_handle_t pipe_hdl) | ||||
|   | ||||
| @@ -78,7 +78,7 @@ tusb_error_t hub_port_clear_feature_subtask(uint8_t hub_addr, uint8_t hub_port, | ||||
|  | ||||
|   //------------- Clear Port Feature request -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                  HUB_REQUEST_CLEAR_FEATURE, feature, hub_port, | ||||
|                                  0, NULL ), | ||||
|       error | ||||
| @@ -87,7 +87,7 @@ tusb_error_t hub_port_clear_feature_subtask(uint8_t hub_addr, uint8_t hub_port, | ||||
|  | ||||
|   //------------- Get Port Status to check if feature is cleared -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                  HUB_REQUEST_GET_STATUS, 0, hub_port, | ||||
|                                  4, hub_enum_buffer ), | ||||
|       error | ||||
| @@ -112,7 +112,7 @@ tusb_error_t hub_port_reset_subtask(uint8_t hub_addr, uint8_t hub_port) | ||||
|  | ||||
|   //------------- Set Port Reset -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                  HUB_REQUEST_SET_FEATURE, HUB_FEATURE_PORT_RESET, hub_port, | ||||
|                                  0, NULL ), | ||||
|       error | ||||
| @@ -123,7 +123,7 @@ tusb_error_t hub_port_reset_subtask(uint8_t hub_addr, uint8_t hub_port) | ||||
|  | ||||
|   //------------- Get Port Status to check if port is enabled, powered and reset_change -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|       usbh_control_xfer_subtask( hub_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                  HUB_REQUEST_GET_STATUS, 0, hub_port, | ||||
|                                  4, hub_enum_buffer ), | ||||
|       error | ||||
| @@ -180,7 +180,7 @@ tusb_error_t hub_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t cons | ||||
|  | ||||
|   //------------- Get Hub Descriptor -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|     usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                HUB_REQUEST_GET_DESCRIPTOR, 0, 0, | ||||
|                                sizeof(descriptor_hub_desc_t), hub_enum_buffer ), | ||||
|     error | ||||
| @@ -195,7 +195,7 @@ tusb_error_t hub_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t cons | ||||
|   for(i=1; i <= hub_data[dev_addr-1].port_number; i++) | ||||
|   { | ||||
|     OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|       usbh_control_xfer_subtask( dev_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                  HUB_REQUEST_SET_FEATURE, HUB_FEATURE_PORT_POWER, i, | ||||
|                                  0, NULL ), | ||||
|       error | ||||
|   | ||||
| @@ -251,7 +251,7 @@ static void ed_init(ohci_ed_t *p_ed, uint8_t dev_addr, uint16_t max_packet_size, | ||||
|  | ||||
|   p_ed->device_address    = dev_addr; | ||||
|   p_ed->endpoint_number   = endpoint_addr & 0x0F; | ||||
|   p_ed->direction         = (xfer_type == TUSB_XFER_CONTROL) ? OHCI_PID_SETUP : ( (endpoint_addr & TUSB_DIR_DEV_TO_HOST_MASK) ? OHCI_PID_IN : OHCI_PID_OUT ); | ||||
|   p_ed->direction         = (xfer_type == TUSB_XFER_CONTROL) ? OHCI_PID_SETUP : ( (endpoint_addr & TUSB_DIR_IN_MASK) ? OHCI_PID_IN : OHCI_PID_OUT ); | ||||
|   p_ed->speed             = usbh_devices[dev_addr].speed; | ||||
|   p_ed->is_iso            = (xfer_type == TUSB_XFER_ISOCHRONOUS) ? 1 : 0; | ||||
|   p_ed->max_package_size  = max_packet_size; | ||||
| @@ -539,7 +539,7 @@ bool hcd_pipe_is_stalled(pipe_handle_t pipe_hdl) | ||||
| uint8_t hcd_pipe_get_endpoint_addr(pipe_handle_t pipe_hdl) | ||||
| { | ||||
|   ohci_ed_t const * const p_ed = ed_from_pipe_handle(pipe_hdl); | ||||
|   return p_ed->endpoint_number | (p_ed->direction == OHCI_PID_IN ? TUSB_DIR_DEV_TO_HOST_MASK : 0 ); | ||||
|   return p_ed->endpoint_number | (p_ed->direction == OHCI_PID_IN ? TUSB_DIR_IN_MASK : 0 ); | ||||
| } | ||||
|  | ||||
| tusb_error_t hcd_pipe_clear_stall(pipe_handle_t pipe_hdl) | ||||
|   | ||||
| @@ -407,7 +407,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|   { | ||||
|     //------------- Get Port Status -------------// | ||||
|     OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|         usbh_control_xfer_subtask( usbh_devices[0].hub_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|         usbh_control_xfer_subtask( usbh_devices[0].hub_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_CLASS, TUSB_REQUEST_RECIPIENT_OTHER), | ||||
|                                    HUB_REQUEST_GET_STATUS, 0, usbh_devices[0].hub_port, | ||||
|                                    4, enum_data_buffer ), | ||||
|         error | ||||
| @@ -449,7 +449,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|  | ||||
|   //------------- Get first 8 bytes of device descriptor to get Control Endpoint Size -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( 0, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|       usbh_control_xfer_subtask( 0, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                  TUSB_REQUEST_GET_DESCRIPTOR, (TUSB_DESC_TYPE_DEVICE << 8), 0, | ||||
|                                  8, enum_data_buffer ), | ||||
|       error | ||||
| @@ -482,7 +482,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|   SUBTASK_ASSERT(new_addr <= TUSB_CFG_HOST_DEVICE_MAX); // TODO notify application we reach max devices | ||||
|  | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( 0, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|     usbh_control_xfer_subtask( 0, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                TUSB_REQUEST_SET_ADDRESS, new_addr, 0, | ||||
|                                0, NULL ), | ||||
|     error | ||||
| @@ -504,7 +504,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|  | ||||
|   //------------- Get full device descriptor -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                  TUSB_REQUEST_GET_DESCRIPTOR, (TUSB_DESC_TYPE_DEVICE << 8), 0, | ||||
|                                  18, enum_data_buffer ), | ||||
|       error | ||||
| @@ -521,7 +521,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|  | ||||
|   //------------- Get 9 bytes of configuration descriptor -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                  TUSB_REQUEST_GET_DESCRIPTOR, (TUSB_DESC_TYPE_CONFIGURATION << 8) | (configure_selected - 1), 0, | ||||
|                                  9, enum_data_buffer ), | ||||
|       error | ||||
| @@ -532,7 +532,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|  | ||||
|   //------------- Get full configuration descriptor -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_DEV_TO_HOST, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|       usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_IN, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                  TUSB_REQUEST_GET_DESCRIPTOR, (TUSB_DESC_TYPE_CONFIGURATION << 8) | (configure_selected - 1), 0, | ||||
|                                  TUSB_CFG_HOST_ENUM_BUFFER_SIZE, enum_data_buffer ), | ||||
|       error | ||||
| @@ -544,7 +544,7 @@ tusb_error_t enumeration_body_subtask(void) | ||||
|  | ||||
|   //------------- Set Configure -------------// | ||||
|   OSAL_SUBTASK_INVOKED_AND_WAIT( | ||||
|     usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_HOST_TO_DEV, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|     usbh_control_xfer_subtask( new_addr, bm_request_type(TUSB_DIR_OUT, TUSB_REQUEST_TYPE_STANDARD, TUSB_REQUEST_RECIPIENT_DEVICE), | ||||
|                                TUSB_REQUEST_SET_CONFIGURATION, configure_selected, 0, | ||||
|                                0, NULL ), | ||||
|     error | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach