diff options
author | Steve Kondik <shade@discord.hmsinc.com> | 2010-02-17 12:59:29 -0500 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2010-02-17 13:44:27 -0500 |
commit | aace891ed58b0081b0207debb517567a499b50ed (patch) | |
tree | 853ac39e742eb67670849b9c6ca4ccbc6a21f646 | |
parent | 0a39ec04c518d367d599db2edf1273edb5e2125e (diff) |
Add USB_ANDROID_RNDIS_WCEIS option.
Change-Id: I85973ebfcbfae6b401fb8b402842309c72655149
Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r-- | drivers/usb/gadget/Kconfig | 10 | ||||
-rw-r--r-- | drivers/usb/gadget/android.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/f_rndis.c | 7 |
3 files changed, 21 insertions, 0 deletions
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index 9f9ea9e84d8e..717e17f7b6f1 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -812,6 +812,16 @@ config USB_ANDROID_RNDIS help Provides RNDIS ethernet function for android gadget driver. +config USB_ANDROID_RNDIS_WCEIS + boolean "Use Windows Internet Sharing Class/SubClass/Protocol" + depends on USB_ANDROID_RNDIS + help + Causes the driver to look like a Windows-compatible Internet + Sharing device, so Windows auto-detects it. + + If you enable this option, the device is no longer CDC ethernet + compatible. + config USB_CDC_COMPOSITE tristate "CDC Composite Device (Ethernet and ACM)" depends on NET diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c index 77ff19eebbfa..e1ea22fe0e61 100644 --- a/drivers/usb/gadget/android.c +++ b/drivers/usb/gadget/android.c @@ -336,7 +336,11 @@ void android_enable_function(struct usb_function *f, int enable) */ if (!strcmp(f->name, "rndis")) { if (enable) +#ifdef CONFIG_USB_ANDROID_RNDIS_WCEIS + dev->cdev->desc.bDeviceClass = USB_CLASS_WIRELESS_CONTROLLER; +#else dev->cdev->desc.bDeviceClass = USB_CLASS_COMM; +#endif else dev->cdev->desc.bDeviceClass = USB_CLASS_PER_INTERFACE; } diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c index 67a923fce6f0..21bf50f5bbb8 100644 --- a/drivers/usb/gadget/f_rndis.c +++ b/drivers/usb/gadget/f_rndis.c @@ -127,9 +127,16 @@ static struct usb_interface_descriptor rndis_control_intf __initdata = { /* .bInterfaceNumber = DYNAMIC */ /* status endpoint is optional; this could be patched later */ .bNumEndpoints = 1, +#ifdef CONFIG_USB_ANDROID_RNDIS_WCEIS + /* "Wireless" RNDIS; auto-detected by Windows */ + .bInterfaceClass = USB_CLASS_WIRELESS_CONTROLLER, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 3, +#else .bInterfaceClass = USB_CLASS_COMM, .bInterfaceSubClass = USB_CDC_SUBCLASS_ACM, .bInterfaceProtocol = USB_CDC_ACM_PROTO_VENDOR, +#endif /* .iInterface = DYNAMIC */ }; |