fix hid host incorrect edpt release if failed to transmit

add CDC_CONTROL_LINE_STATE_DTR/RTS, TUSB_INDEX_INVALID enum
This commit is contained in:
hathach 2022-12-20 12:06:59 +07:00
parent fc9321ce26
commit 7004914d8c
3 changed files with 14 additions and 3 deletions

View File

@ -192,6 +192,12 @@ typedef enum
CDC_REQUEST_MDLM_SEMANTIC_MODEL = 0x60, CDC_REQUEST_MDLM_SEMANTIC_MODEL = 0x60,
}cdc_management_request_t; }cdc_management_request_t;
enum
{
CDC_CONTROL_LINE_STATE_DTR = 0x01,
CDC_CONTROL_LINE_STATE_RTS = 0x02,
};
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Management Element Notification (Notification Endpoint) // Management Element Notification (Notification Endpoint)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
@ -390,8 +396,8 @@ TU_VERIFY_STATIC(sizeof(cdc_line_coding_t) == 7, "size is not correct");
typedef struct TU_ATTR_PACKED typedef struct TU_ATTR_PACKED
{ {
uint16_t dte_is_present : 1; ///< Indicates to DCE if DTE is presentor not. This signal corresponds to V.24 signal 108/2 and RS-232 signal DTR. uint16_t dtr : 1;
uint16_t half_duplex_carrier_control : 1; uint16_t rts : 1;
uint16_t : 14; uint16_t : 14;
} cdc_line_control_state_t; } cdc_line_control_state_t;

View File

@ -259,7 +259,7 @@ bool tuh_hid_receive_report(uint8_t dev_addr, uint8_t instance)
if ( !usbh_edpt_xfer(dev_addr, hid_itf->ep_in, hid_itf->epin_buf, hid_itf->epin_size) ) if ( !usbh_edpt_xfer(dev_addr, hid_itf->ep_in, hid_itf->epin_buf, hid_itf->epin_size) )
{ {
usbh_edpt_claim(dev_addr, hid_itf->ep_in); usbh_edpt_release(dev_addr, hid_itf->ep_in);
return false; return false;
} }

View File

@ -273,6 +273,11 @@ enum
CONTROL_STAGE_ACK CONTROL_STAGE_ACK
}; };
enum
{
TUSB_INDEX_INVALID = 0xff
};
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// USB Descriptors // USB Descriptors
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+