fix samd using TUSB_REQ_SET_ADDRESS in dcd_edpt0_status_complete

This commit is contained in:
hathach 2019-12-09 23:20:21 +07:00
parent 0316e0ecd4
commit 75a2157715
3 changed files with 9 additions and 5 deletions

View File

@ -133,7 +133,9 @@ void dcd_remote_wakeup(uint8_t rhport)
// May help DCD to prepare for next control transfer, this API is optional.
void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const * request)
{
if (request->bRequest == TUSB_REQ_SET_ADDRESS)
if (request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_DEVICE &&
request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD &&
request->bRequest == TUSB_REQ_SET_ADDRESS )
{
uint8_t const dev_addr = (uint8_t) request->wValue;
USB->DEVICE.DADD.reg = USB_DEVICE_DADD_DADD(dev_addr) | USB_DEVICE_DADD_ADDEN;

View File

@ -139,9 +139,9 @@ void dcd_remote_wakeup(uint8_t rhport)
// May help DCD to prepare for next control transfer, this API is optional.
void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const * request)
{
(void) rhport;
if (request->bRequest == TUSB_REQ_SET_ADDRESS)
if (request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_DEVICE &&
request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD &&
request->bRequest == TUSB_REQ_SET_ADDRESS )
{
uint8_t const dev_addr = (uint8_t) request->wValue;
USB->DEVICE.DADD.reg = USB_DEVICE_DADD_DADD(dev_addr) | USB_DEVICE_DADD_ADDEN;

View File

@ -598,7 +598,9 @@ void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const * re
{
(void) rhport;
if (request->bRequest == TUSB_REQ_SET_ADDRESS)
if (request->bmRequestType_bit.recipient == TUSB_REQ_RCPT_DEVICE &&
request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD &&
request->bRequest == TUSB_REQ_SET_ADDRESS )
{
uint8_t const dev_addr = (uint8_t) request->wValue;