Lines 327-332
Link Here
|
327 |
U3G_DEV(HUAWEI, K4505, U3GINIT_HUAWEI), |
319 |
U3G_DEV(HUAWEI, K4505, U3GINIT_HUAWEI), |
328 |
U3G_DEV(HUAWEI, K4505_INIT, U3GINIT_HUAWEISCSI), |
320 |
U3G_DEV(HUAWEI, K4505_INIT, U3GINIT_HUAWEISCSI), |
329 |
U3G_DEV(HUAWEI, ETS2055, U3GINIT_HUAWEI), |
321 |
U3G_DEV(HUAWEI, ETS2055, U3GINIT_HUAWEI), |
|
|
322 |
U3G_DEV(HUAWEI, E3272_INIT, U3GINIT_HUAWEISCSI), |
323 |
U3G_DEV(HUAWEI, E3272, 0), |
330 |
U3G_DEV(KYOCERA2, CDMA_MSM_K, 0), |
324 |
U3G_DEV(KYOCERA2, CDMA_MSM_K, 0), |
331 |
U3G_DEV(KYOCERA2, KPC680, 0), |
325 |
U3G_DEV(KYOCERA2, KPC680, 0), |
332 |
U3G_DEV(LONGCHEER, WM66, U3GINIT_HUAWEI), |
326 |
U3G_DEV(LONGCHEER, WM66, U3GINIT_HUAWEI), |
Lines 607-612
Link Here
|
607 |
return (0); |
602 |
return (0); |
608 |
} |
603 |
} |
609 |
|
604 |
|
|
|
605 |
/* Huawei specific: see if_cdce.c for more ids. */ |
606 |
#define U3G_HUAWEI_IS_CDC(info, iface_descr) \ |
607 |
((info)->idVendor == USB_VENDOR_HUAWEI && \ |
608 |
(iface_descr)->bInterfaceClass == UICLASS_VENDOR && \ |
609 |
(iface_descr)->bInterfaceSubClass == 0x02 && \ |
610 |
((iface_descr)->bInterfaceProtocol == 0x16 || \ |
611 |
(iface_descr)->bInterfaceProtocol == 0x46 || \ |
612 |
(iface_descr)->bInterfaceProtocol == 0x76)) |
613 |
|
614 |
|
610 |
static void |
615 |
static void |
611 |
u3g_sael_m460_init(struct usb_device *udev) |
616 |
u3g_sael_m460_init(struct usb_device *udev) |
612 |
{ |
617 |
{ |
Lines 814-819
Link Here
|
814 |
if (uaa->info.bInterfaceClass != UICLASS_VENDOR) { |
819 |
if (uaa->info.bInterfaceClass != UICLASS_VENDOR) { |
815 |
return (ENXIO); |
820 |
return (ENXIO); |
816 |
} |
821 |
} |
|
|
822 |
/* Huawei specific: skip cdce devices. */ |
823 |
if (U3G_HUAWEI_IS_CDC(&uaa->info, &uaa->info)) { |
824 |
return (ENXIO); |
825 |
} |
817 |
return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa)); |
826 |
return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa)); |
818 |
} |
827 |
} |
819 |
|
828 |
|
Lines 857-862
Link Here
|
857 |
id = usbd_get_interface_descriptor(iface); |
866 |
id = usbd_get_interface_descriptor(iface); |
858 |
if (id == NULL || id->bInterfaceClass != UICLASS_VENDOR) |
867 |
if (id == NULL || id->bInterfaceClass != UICLASS_VENDOR) |
859 |
continue; |
868 |
continue; |
|
|
869 |
/* Huawei specific: skip cdce devices. */ |
870 |
if (U3G_HUAWEI_IS_CDC(&uaa->info, id)) |
871 |
continue; |
860 |
usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex); |
872 |
usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex); |
861 |
iface_valid |= (1<<i); |
873 |
iface_valid |= (1<<i); |
862 |
} |
874 |
} |