Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e180584 authored by Andrew Bird's avatar Andrew Bird Committed by Greg Kroah-Hartman
Browse files

USB option driver add PID of Huawei Vodafone K4605



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: default avatarAndrew Bird <ajb@spheresystems.co.uk>
Signed-off-by: default avatarAlex Chiang <achiang@canonical.com>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0e69d75c
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ static void option_instat_callback(struct urb *urb);
#define HUAWEI_PRODUCT_K3765			0x1465
#define HUAWEI_PRODUCT_E14AC			0x14AC
#define HUAWEI_PRODUCT_K3806			0x14AE
#define HUAWEI_PRODUCT_K4605			0x14C6
#define HUAWEI_PRODUCT_K3770			0x14C9
#define HUAWEI_PRODUCT_K3771			0x14CA
#define HUAWEI_PRODUCT_K4510			0x14CB
@@ -553,6 +554,7 @@ static const struct usb_device_id option_ids[] = {
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) },
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) },
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3806, 0xff, 0xff, 0xff) },
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff) },
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) },
	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) },
	{ 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,
		serial->interface->cur_altsetting->desc.bInterfaceClass != 0xff)
		return -ENODEV;

	/* Don't bind network interfaces on Huawei K3765 & K4505 */
	/* Don't bind network interfaces on Huawei K3765, K4505 & K4605 */
	if (serial->dev->descriptor.idVendor == HUAWEI_VENDOR_ID &&
		(serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K3765 ||
			serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4505) &&
			serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4505 ||
			serial->dev->descriptor.idProduct == HUAWEI_PRODUCT_K4605) &&
		serial->interface->cur_altsetting->desc.bInterfaceNumber == 1)
		return -ENODEV;