clean up remove usbd_control_stall()
This commit is contained in:
parent
1e9848d917
commit
f26fbaf404
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue