mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
USB: gadget: acm,rndis: IAD class, subclass & prot should match 1st iface
Microsoft recommends that the class and subclass fields of an IAD match the same fields from the first interface in the collection that the IAD is grouping. In practice, we are also finding that the protocol fields should also match. Without this change, the default Microsoft composite driver may not group interfaces properly, which is what allows child function drivers with IAD's to load correctly. Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
committed by
Colin Cross
parent
f71a394a40
commit
00bc4089ef
@@ -133,8 +133,8 @@ static struct usb_interface_descriptor rndis_control_intf = {
|
||||
#ifdef CONFIG_USB_ANDROID_RNDIS_WCEIS
|
||||
/* "Wireless" RNDIS; auto-detected by Windows */
|
||||
.bInterfaceClass = USB_CLASS_WIRELESS_CONTROLLER,
|
||||
.bInterfaceSubClass = 1,
|
||||
.bInterfaceProtocol = 3,
|
||||
.bInterfaceSubClass = 0x01,
|
||||
.bInterfaceProtocol = 0x03,
|
||||
#else
|
||||
.bInterfaceClass = USB_CLASS_COMM,
|
||||
.bInterfaceSubClass = USB_CDC_SUBCLASS_ACM,
|
||||
@@ -198,9 +198,16 @@ rndis_iad_descriptor = {
|
||||
|
||||
.bFirstInterface = 0, /* XXX, hardcoded */
|
||||
.bInterfaceCount = 2, // control + data
|
||||
#ifdef CONFIG_USB_ANDROID_RNDIS_WCEIS
|
||||
/* "Wireless" RNDIS; auto-detected by Windows */
|
||||
.bFunctionClass = USB_CLASS_WIRELESS_CONTROLLER,
|
||||
.bFunctionSubClass = 0x01,
|
||||
.bFunctionProtocol = 0x03,
|
||||
#else
|
||||
.bFunctionClass = USB_CLASS_COMM,
|
||||
.bFunctionSubClass = USB_CDC_SUBCLASS_ETHERNET,
|
||||
.bFunctionProtocol = USB_CDC_PROTO_NONE,
|
||||
.bFunctionProtocol = USB_CDC_ACM_PROTO_VENDOR,
|
||||
#endif
|
||||
/* .iFunction = DYNAMIC */
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user