mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
USB_HostRequest renamed to USB_ControlRequest, entire control request header is now read into USB_ControlRequest in Device mode rather than having the library pass only partially read header data to the application.
The USB_UnhandledControlPacket event has had its parameters removed, in favour of accessing the new USB_ControlRequest structure. The Endpoint control stream functions now correctly send a ZLP to the host when less data than requested is sent.
This commit is contained in:
@@ -152,13 +152,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
|
||||
{
|
||||
uint8_t* LineCodingData = (uint8_t*)&LineCoding;
|
||||
|
||||
Endpoint_Discard_Word();
|
||||
|
||||
/* Process CDC specific control requests */
|
||||
switch (bRequest)
|
||||
switch (USB_ControlRequest.bRequest)
|
||||
{
|
||||
case REQ_GetLineEncoding:
|
||||
if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
{
|
||||
Endpoint_ClearSETUP();
|
||||
|
||||
@@ -174,7 +172,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
|
||||
|
||||
break;
|
||||
case REQ_SetLineEncoding:
|
||||
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
{
|
||||
Endpoint_ClearSETUP();
|
||||
|
||||
@@ -192,7 +190,7 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
|
||||
|
||||
break;
|
||||
case REQ_SetControlLineState:
|
||||
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
{
|
||||
Endpoint_ClearSETUP();
|
||||
|
||||
|
||||
@@ -151,16 +151,10 @@ EVENT_HANDLER(USB_Disconnect)
|
||||
*/
|
||||
EVENT_HANDLER(USB_UnhandledControlPacket)
|
||||
{
|
||||
/* Discard unused wIndex value */
|
||||
Endpoint_Discard_Word();
|
||||
|
||||
/* Discard unused wValue value */
|
||||
Endpoint_Discard_Word();
|
||||
|
||||
/* Get the size of the command and data from the wLength value */
|
||||
SentCommand.DataSize = Endpoint_Read_Word_LE();
|
||||
SentCommand.DataSize = USB_ControlRequest.wLength;
|
||||
|
||||
switch (bRequest)
|
||||
switch (USB_ControlRequest.bRequest)
|
||||
{
|
||||
case DFU_DNLOAD:
|
||||
Endpoint_ClearSETUP();
|
||||
|
||||
@@ -96,10 +96,10 @@ EVENT_HANDLER(USB_ConfigurationChanged)
|
||||
EVENT_HANDLER(USB_UnhandledControlPacket)
|
||||
{
|
||||
/* Handle HID Class specific requests */
|
||||
switch (bRequest)
|
||||
switch (USB_ControlRequest.bRequest)
|
||||
{
|
||||
case REQ_SetReport:
|
||||
if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
|
||||
{
|
||||
Endpoint_ClearSETUP();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user