From: xxh Date: Tue, 7 May 2013 12:35:01 +0000 (+0800) Subject: 1.fix Vodafone K4505 3G dongle USB switch faild X-Git-Tag: firefly_0821_release~7137 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c92b2c6f06357bbec321c6b5d24a4b50ccf3ffa6;p=firefly-linux-kernel-4.4.55.git 1.fix Vodafone K4505 3G dongle USB switch faild 2.Add more VID PID for option driver --- diff --git a/drivers/base/devices_filter.h b/drivers/base/devices_filter.h index bfc13bcf139d..006fe3dca3f9 100644 --- a/drivers/base/devices_filter.h +++ b/drivers/base/devices_filter.h @@ -80,7 +80,8 @@ static usb_parameter skip_device_list[] = { {0x0685, 0x7000, NULL, NULL, NULL}, -// {0x20A6, 0xF00E, NULL, NULL, NULL}, + {0x20A6, 0xF00E, NULL, NULL, NULL}, + {0x20A6, 0x1105, NULL, NULL, NULL}, {0x1614, 0x0800, NULL, NULL, NULL}, //begain add by xxh {0x1A8D, 0x2000, NULL, NULL, NULL}, @@ -104,7 +105,17 @@ static usb_parameter skip_device_list[] = { {0x19d2, 0x1216, NULL, NULL, NULL}, {0x19d2, 0x1218, NULL, NULL, NULL}, {0x05c6, 0x9000, NULL, NULL, NULL}, - //end xxh + {0x19d2, 0x0016, NULL, NULL, NULL},//MF110 + {0x1C9E, 0x9914, NULL, NULL, NULL},//SMART BRO WM66E + {0x2077, 0xF000, NULL, NULL, NULL}, + {0x2077, 0xA000, NULL, NULL, NULL},//beyond + {0x12d1, 0x140b, NULL, NULL, NULL},//EC122 India + {0x19D2, 0x1266, NULL, NULL, NULL},//MF190U + {0x19D2, 0x1514, NULL, NULL, NULL}, + {0x19D2, 0x1515, NULL, NULL, NULL},//MF195 + {0x1bbb, 0xf017, NULL, NULL, NULL}, + {0x19d2, 0x0117, NULL, NULL, NULL}, + //end xxh }; /* 1 - match diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index bccaea8aa696..e24a7794c792 100755 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -1371,6 +1371,9 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(0x0421,0x0612)}, { USB_DEVICE(0x19d2,0x1218)}, { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_IE701)}, + { USB_DEVICE(0x1C9E,0x9914)}, + { USB_DEVICE(0x19d2,0x1515)}, + { USB_DEVICE(0x1bbb,0x0012)}, //xxh end diff --git a/drivers/usb/storage/initializers.c b/drivers/usb/storage/initializers.c index 16b0bf055eeb..56f607f1d874 100644 --- a/drivers/usb/storage/initializers.c +++ b/drivers/usb/storage/initializers.c @@ -176,3 +176,18 @@ int usb_stor_huawei_init(struct us_data *us) } return result; } + +int usb_stor_zte_k4505_init(struct us_data *us) + { + int result = 0; + int act_len = 0; + unsigned char cmd[32] = { + 0x55,0x53,0x42,0x43,0x12,0x34,0x56,0x78, + 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1b, + 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + result = usb_stor_bulk_transfer_buf (us, us->send_bulk_pipe, cmd, 31,&act_len); + printk("usb_stor_bulk_transfer_buf performing result is %d, transfer the actual length=%d\n", result, act_len); + return (result ? 0 : -ENODEV); +} diff --git a/drivers/usb/storage/initializers.h b/drivers/usb/storage/initializers.h index 5376d4fc76f0..87ea5bc302ec 100644 --- a/drivers/usb/storage/initializers.h +++ b/drivers/usb/storage/initializers.h @@ -48,3 +48,5 @@ int usb_stor_ucr61s2b_init(struct us_data *us); /* This places the HUAWEI usb dongles in multi-port mode */ int usb_stor_huawei_init(struct us_data *us); + +int usb_stor_zte_k4505_init(struct us_data *us); diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index 12640efcf82d..a6c3f5c0cd8d 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h @@ -1521,6 +1521,22 @@ UNUSUAL_VENDOR_INTF(0x12d1, 0x08, 0x06, 0x50, USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_huawei_init, 0), +UNUSUAL_DEV(0x19d2, 0x1007, 0x0000, 0xffff, + "ZTE EJECT CDROM", + "USB MMC Storage", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_zte_k4505_init, + 0), +UNUSUAL_DEV(0x19d2, 0x1175, 0x0000, 0xffff, + "ZTE EJECT CDROM", + "USB MMC Storage", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_zte_k4505_init, + 0), +UNUSUAL_DEV(0x19d2, 0x0101, 0x0000, 0xffff, + "ZTE EJECT CDROM", + "USB MMC Storage", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_zte_k4505_init, + 0), + /* Reported by Vilius Bilinkevicius