usb: device: class: rndis: correct IAD and IF0 descriptors
Use descriptors as dictated by Microsoft and USB-IF.
That allows the RNDIS device to be correctly detected on Windows.
* Microsoft:
* USB-IF Defined Class Codes:
@@ -62,9 +62,9 @@ USBD_CLASS_DESCR_DEFINE(primary, 0) struct usb_rndis_config rndis_cfg = {
.bDescriptorType = USB_DESC_INTERFACE_ASSOC,
.bFirstInterface = 0,
.bInterfaceCount = 0x02,
- .bFunctionClass = USB_BCC_CDC_CONTROL,
- .bFunctionSubClass = 6,
- .bFunctionProtocol = 0,
+ .bFunctionClass = USB_BCC_MISCELLANEOUS,
+ .bFunctionSubClass = 4,
+ .bFunctionProtocol = 1,
.iFunction = 0,
},
/* Interface descriptor 0 */
@@ -75,9 +75,9 @@ USBD_CLASS_DESCR_DEFINE(primary, 0) struct usb_rndis_config rndis_cfg = {
.bInterfaceNumber = 0,
.bAlternateSetting = 0,
.bNumEndpoints = 1,
- .bInterfaceClass = USB_BCC_CDC_CONTROL,
- .bInterfaceSubClass = ACM_SUBCLASS,
- .bInterfaceProtocol = ACM_VENDOR_PROTOCOL,
+ .bInterfaceClass = USB_BCC_MISCELLANEOUS,
+ .bInterfaceSubClass = 4,
+ .bInterfaceProtocol = 1,
.iInterface = 0,
},
/* Header Functional Descriptor */
