View | Details | Raw Unified | Return to bug 192345 | Differences between
and this patch

Collapse All | Expand All

(-)/usr/src/sys/dev/usb/serial/u3g.c (-1 / +19 lines)
Lines 306-312 Link Here
306
	U3G_DEV(HUAWEI, E173, 0),
306
	U3G_DEV(HUAWEI, E173, 0),
307
	U3G_DEV(HUAWEI, E173_INIT, U3GINIT_HUAWEISCSI),
307
	U3G_DEV(HUAWEI, E173_INIT, U3GINIT_HUAWEISCSI),
308
	U3G_DEV(HUAWEI, E3131, 0),
308
	U3G_DEV(HUAWEI, E3131, 0),
309
	U3G_DEV(HUAWEI, E3131_INIT, U3GINIT_HUAWEISCSI),
309
	U3G_DEV(HUAWEI, E3131_INIT, U3GINIT_HUAWEISCSI2),
310
	U3G_DEV(HUAWEI, E180V, U3GINIT_HUAWEI),
310
	U3G_DEV(HUAWEI, E180V, U3GINIT_HUAWEI),
311
	U3G_DEV(HUAWEI, E220, U3GINIT_HUAWEI),
311
	U3G_DEV(HUAWEI, E220, U3GINIT_HUAWEI),
312
	U3G_DEV(HUAWEI, E220BIS, U3GINIT_HUAWEI),
312
	U3G_DEV(HUAWEI, E220BIS, U3GINIT_HUAWEI),
Lines 324-329 Link Here
324
	U3G_DEV(HUAWEI, K3770_INIT, U3GINIT_HUAWEISCSI),
324
	U3G_DEV(HUAWEI, K3770_INIT, U3GINIT_HUAWEISCSI),
325
	U3G_DEV(HUAWEI, K4505, U3GINIT_HUAWEI),
325
	U3G_DEV(HUAWEI, K4505, U3GINIT_HUAWEI),
326
	U3G_DEV(HUAWEI, K4505_INIT, U3GINIT_HUAWEISCSI),
326
	U3G_DEV(HUAWEI, K4505_INIT, U3GINIT_HUAWEISCSI),
327
	U3G_DEV(HUAWEI, E3272_INIT, U3GINIT_HUAWEISCSI),
328
	U3G_DEV(HUAWEI, E3272, 0),
327
	U3G_DEV(HUAWEI, ETS2055, U3GINIT_HUAWEI),
329
	U3G_DEV(HUAWEI, ETS2055, U3GINIT_HUAWEI),
328
	U3G_DEV(KYOCERA2, CDMA_MSM_K, 0),
330
	U3G_DEV(KYOCERA2, CDMA_MSM_K, 0),
329
	U3G_DEV(KYOCERA2, KPC680, 0),
331
	U3G_DEV(KYOCERA2, KPC680, 0),
Lines 590-595 Link Here
590
MODULE_VERSION(u3g, 1);
592
MODULE_VERSION(u3g, 1);
591
USB_PNP_HOST_INFO(u3g_devs);
593
USB_PNP_HOST_INFO(u3g_devs);
592
594
595
/* Huawei specific: see if_cdce.c for more ids. */
596
#define U3G_HUAWEI_IS_CDC(info, iface_descr)				\
597
	((info)->idVendor == USB_VENDOR_HUAWEI &&			\
598
	(iface_descr)->bInterfaceClass == UICLASS_VENDOR &&		\
599
	(iface_descr)->bInterfaceSubClass == 0x02 &&			\
600
	((iface_descr)->bInterfaceProtocol == 0x16 ||			\
601
	(iface_descr)->bInterfaceProtocol == 0x46 ||			\
602
	(iface_descr)->bInterfaceProtocol == 0x76))
603
593
static int
604
static int
594
u3g_sierra_init(struct usb_device *udev)
605
u3g_sierra_init(struct usb_device *udev)
595
{
606
{
Lines 839-844 Link Here
839
	if (uaa->info.bInterfaceClass != UICLASS_VENDOR) {
850
	if (uaa->info.bInterfaceClass != UICLASS_VENDOR) {
840
		return (ENXIO);
851
		return (ENXIO);
841
	}
852
	}
853
	/* Huawei specific: skip cdce devices. */
854
	if (U3G_HUAWEI_IS_CDC(&uaa->info, &uaa->info)) {
855
		return (ENXIO);
856
	}
842
	return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa));
857
	return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa));
843
}
858
}
844
859
Lines 882-887 Link Here
882
		id = usbd_get_interface_descriptor(iface);
897
		id = usbd_get_interface_descriptor(iface);
883
		if (id == NULL || id->bInterfaceClass != UICLASS_VENDOR)
898
		if (id == NULL || id->bInterfaceClass != UICLASS_VENDOR)
884
			continue;
899
			continue;
900
		/* Huawei specific: skip cdce devices. */
901
		if (U3G_HUAWEI_IS_CDC(&uaa->info, id))
902
			continue;
885
		usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex);
903
		usbd_set_parent_iface(uaa->device, i, uaa->info.bIfaceIndex);
886
		iface_valid |= (1<<i);
904
		iface_valid |= (1<<i);
887
	}
905
	}

Return to bug 192345