diff options
Diffstat (limited to 'drivers/usb/core/generic.c')
-rw-r--r-- | drivers/usb/core/generic.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c index 9a34ccb0a1c0..69ecd3c92311 100644 --- a/drivers/usb/core/generic.c +++ b/drivers/usb/core/generic.c | |||
@@ -105,8 +105,10 @@ int usb_choose_configuration(struct usb_device *udev) | |||
105 | /* When the first config's first interface is one of Microsoft's | 105 | /* When the first config's first interface is one of Microsoft's |
106 | * pet nonstandard Ethernet-over-USB protocols, ignore it unless | 106 | * pet nonstandard Ethernet-over-USB protocols, ignore it unless |
107 | * this kernel has enabled the necessary host side driver. | 107 | * this kernel has enabled the necessary host side driver. |
108 | * But: Don't ignore it if it's the only config. | ||
108 | */ | 109 | */ |
109 | if (i == 0 && desc && (is_rndis(desc) || is_activesync(desc))) { | 110 | if (i == 0 && num_configs > 1 && desc && |
111 | (is_rndis(desc) || is_activesync(desc))) { | ||
110 | #if !defined(CONFIG_USB_NET_RNDIS_HOST) && !defined(CONFIG_USB_NET_RNDIS_HOST_MODULE) | 112 | #if !defined(CONFIG_USB_NET_RNDIS_HOST) && !defined(CONFIG_USB_NET_RNDIS_HOST_MODULE) |
111 | continue; | 113 | continue; |
112 | #else | 114 | #else |