clean up remove usbd_control_stall()

This commit is contained in:
hathach 2019-03-27 16:26:52 +07:00
parent 1e9848d917
commit f26fbaf404
No known key found for this signature in database
GPG Key ID: 2FA891220FBFD581
4 changed files with 9 additions and 18 deletions

View File

@ -104,7 +104,6 @@ static usbd_class_driver_t const usbd_class_drivers[] =
},
#endif
#if CFG_TUD_HID
{
.class_code = TUSB_CLASS_HID,
@ -243,10 +242,12 @@ void tud_task (void)
switch ( event.event_id )
{
case DCD_EVENT_SETUP_RECEIVED:
// Process control request, if failed control endpoint is stalled
// Process control request
if ( !process_control_request(event.rhport, &event.setup_received) )
{
usbd_control_stall(event.rhport);
// Failed -> stall both control endpoint IN and OUT
dcd_edpt_stall(event.rhport, 0);
dcd_edpt_stall(event.rhport, 0 | TUSB_DIR_IN_MASK);
}
break;

View File

@ -74,10 +74,10 @@ void tud_task (void);
// APPLICATION CALLBACK (WEAK is optional)
//--------------------------------------------------------------------+
/** Callback invoked when device is mounted (configured) */
// Callback invoked when device is mounted (configured)
ATTR_WEAK void tud_mount_cb(void);
/** Callback invoked when device is unmounted (bus reset/unplugged) */
// Callback invoked when device is unmounted (bus reset/unplugged)
ATTR_WEAK void tud_umount_cb(void);
//void tud_device_suspended_cb(void);

View File

@ -60,13 +60,6 @@ void usbd_control_reset (uint8_t rhport)
tu_varclr(&_control_state);
}
void usbd_control_stall(uint8_t rhport)
{
// when stalling control endpoint both IN and OUt will be stalled
dcd_edpt_stall(rhport, EDPT_CTRL_OUT);
dcd_edpt_stall(rhport, EDPT_CTRL_IN);
}
bool usbd_control_status(uint8_t rhport, tusb_control_request_t const * request)
{
// status direction is reversed to one in the setup packet
@ -147,8 +140,9 @@ bool usbd_control_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result
TU_ASSERT( usbd_control_status(rhport, &_control_state.request) );
}else
{
// stall due to callback
usbd_control_stall(rhport);
// Stall both IN and OUT control endpoint
dcd_edpt_stall(rhport, EDPT_CTRL_OUT);
dcd_edpt_stall(rhport, EDPT_CTRL_IN);
}
}
else

View File

@ -49,10 +49,6 @@ bool usbd_control_xfer(uint8_t rhport, tusb_control_request_t const * request, v
// Send STATUS (zero length) packet
bool usbd_control_status(uint8_t rhport, tusb_control_request_t const * request);
// Stall control endpoint (both IN and OUT) until new setup packet arrived
void usbd_control_stall(uint8_t rhport);
void usbd_edpt_stall(uint8_t rhport, uint8_t ep_addr);
void usbd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr);
bool usbd_edpt_stalled(uint8_t rhport, uint8_t ep_addr);