aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndrew Bird <ajb@spheresystems.co.uk>2011-08-16 15:58:21 -0400
committerHerton Ronaldo Krzesinski <herton.krzesinski@canonical.com>2011-10-17 13:32:25 -0400
commitd92b48b5732b26a4727189feba7e2fa9b409a85a (patch)
treed375871bb52f11b82a8b4a83ae7562fb7aa53fb7 /drivers/usb
parent153c9bf2248a4ac6338ce99359f369a7924beb32 (diff)
USB option driver add PID of Huawei Vodafone K4605
BugLink: http://bugs.launchpad.net/bugs/868628 commit 7e1805844da18a37e6d251d286f93c94b52d791e upstream. This patch adds the product ID of Huawei's Vodafone K4605 mobile broadband modem to option.c. This is necessary so that the driver gets loaded on demand without the intervention of usb_modeswitch. This has the benefit of it becoming available faster and also ensures that the option driver is not bound to a network interface that should be claimed by suitable network driver. Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk> Signed-off-by: Alex Chiang <achiang@canonical.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/option.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 6e042229e4b..ab86e0dd7f3 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -149,6 +149,7 @@ static void option_instat_callback(struct urb *urb);
149#define HUAWEI_PRODUCT_K3765 0x1465 149#define HUAWEI_PRODUCT_K3765 0x1465
150#define HUAWEI_PRODUCT_E14AC 0x14AC 150#define HUAWEI_PRODUCT_E14AC 0x14AC
151#define HUAWEI_PRODUCT_K3806 0x14AE 151#define HUAWEI_PRODUCT_K3806 0x14AE
152#define HUAWEI_PRODUCT_K4605 0x14C6
152#define HUAWEI_PRODUCT_K3770 0x14C9 153#define HUAWEI_PRODUCT_K3770 0x14C9
153#define HUAWEI_PRODUCT_K3771 0x14CA 154#define HUAWEI_PRODUCT_K3771 0x14CA
154#define HUAWEI_PRODUCT_K4510 0x14CB 155#define HUAWEI_PRODUCT_K4510 0x14CB
@@ -553,6 +554,7 @@ static const struct usb_device_id option_ids[] = {
553 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) }, 554 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) },
554 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) }, 555 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) },
555 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3806, 0xff, 0xff, 0xff) }, 556 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3806, 0xff, 0xff, 0xff) },
557 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff) },
556 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) }, 558 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) },
557 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) }, 559 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) },
558 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) }, 560 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) },
@@ -1136,10 +1138,11 @@ static int option_probe(struct usb_serial *serial,
1136 serial->interface->cur_altsetting->desc.bInterfaceClass != 0xff) 1138 serial->interface->cur_altsetting->desc.bInterfaceClass != 0xff)
1137 return -ENODEV; 1139 return -ENODEV;
1138 1140
1139 /* Don't bind network interfaces on Huawei K3765 & K4505 */ 1141 /* Don't bind network interfaces on Huawei K3765, K4505 & K4605 */
1140 if (serial->dev->descriptor.idVendor == HUAWEI_VENDOR_ID && 1142 if (serial->dev->descriptor.idVendor == HUAWEI_VENDOR_ID &&
1141 (serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K3765 || 1143 (serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K3765 ||
1142 serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4505) && 1144 serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4505 ||
1145 serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4605) &&
1143 serial->interface->cur_altsetting->desc.bInterfaceNumber == 1) 1146 serial->interface->cur_altsetting->desc.bInterfaceNumber == 1)
1144 return -ENODEV; 1147 return -ENODEV;
1145 1148