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 #endif
#if CFG_TUD_HID #if CFG_TUD_HID
{ {
.class_code = TUSB_CLASS_HID, .class_code = TUSB_CLASS_HID,
@ -243,10 +242,12 @@ void tud_task (void)
switch ( event.event_id ) switch ( event.event_id )
{ {
case DCD_EVENT_SETUP_RECEIVED: 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) ) 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; break;

View File

@ -74,10 +74,10 @@ void tud_task (void);
// APPLICATION CALLBACK (WEAK is optional) // 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); 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); ATTR_WEAK void tud_umount_cb(void);
//void tud_device_suspended_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); 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) bool usbd_control_status(uint8_t rhport, tusb_control_request_t const * request)
{ {
// status direction is reversed to one in the setup packet // 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) ); TU_ASSERT( usbd_control_status(rhport, &_control_state.request) );
}else }else
{ {
// stall due to callback // Stall both IN and OUT control endpoint
usbd_control_stall(rhport); dcd_edpt_stall(rhport, EDPT_CTRL_OUT);
dcd_edpt_stall(rhport, EDPT_CTRL_IN);
} }
} }
else 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 // Send STATUS (zero length) packet
bool usbd_control_status(uint8_t rhport, tusb_control_request_t const * request); 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_stall(uint8_t rhport, uint8_t ep_addr);
void usbd_edpt_clear_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); bool usbd_edpt_stalled(uint8_t rhport, uint8_t ep_addr);