Submit #2725 » 01-urndis-umodem.diff
| sys/bus/u4b/net/if_urndis.c | ||
|---|---|---|
|
};
|
||
|
static const STRUCT_USB_HOST_ID urndis_host_devs[] = {
|
||
|
#if 0
|
||
|
/* XXX this entry has a conflict an entry the umodem driver XXX */
|
||
|
{USB_IFACE_CLASS(UICLASS_CDC), USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
|
||
|
USB_IFACE_PROTOCOL(0xff)},
|
||
|
#endif
|
||
|
{USB_IFACE_CLASS(UICLASS_WIRELESS), USB_IFACE_SUBCLASS(UISUBCLASS_RF),
|
||
|
USB_IFACE_PROTOCOL(UIPROTO_RNDIS)},
|
||
|
{USB_IFACE_CLASS(UICLASS_IAD), USB_IFACE_SUBCLASS(UISUBCLASS_SYNC),
|
||
|
USB_IFACE_PROTOCOL(UIPROTO_ACTIVESYNC)},
|
||
|
};
|
||
|
static const STRUCT_USB_HOST_ID urndis_host_not_huawei_devs[] = {
|
||
|
{USB_IFACE_CLASS(UICLASS_CDC), USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
|
||
|
USB_IFACE_PROTOCOL(0xff)},
|
||
|
};
|
||
|
static int
|
||
|
urndis_probe(device_t dev)
|
||
|
{
|
||
|
int res;
|
||
|
struct usb_attach_arg *uaa = device_get_ivars(dev);
|
||
|
return (usbd_lookup_id_by_uaa(urndis_host_devs, sizeof(urndis_host_devs), uaa));
|
||
|
res = usbd_lookup_id_by_uaa(urndis_host_devs, sizeof(urndis_host_devs), uaa);
|
||
|
if (res == 0) {
|
||
|
return(0);
|
||
|
}
|
||
|
if (uaa->info.idVendor == USB_VENDOR_HUAWEI) {
|
||
|
return(ENXIO);
|
||
|
}
|
||
|
return (usbd_lookup_id_by_uaa(urndis_host_not_huawei_devs, sizeof(urndis_host_not_huawei_devs), uaa));
|
||
|
}
|
||
|
static void
|
||
| sys/bus/u4b/serial/umodem.c | ||
|---|---|---|
|
USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
|
||
|
USB_IFACE_PROTOCOL(UIPROTO_CDC_AT)},
|
||
|
/* Huawei Modem class match */
|
||
|
{USB_IFACE_CLASS(UICLASS_CDC),
|
||
|
{USB_VENDOR(USB_VENDOR_HUAWEI),
|
||
|
USB_IFACE_CLASS(UICLASS_CDC),
|
||
|
USB_IFACE_SUBCLASS(UISUBCLASS_ABSTRACT_CONTROL_MODEL),
|
||
|
USB_IFACE_PROTOCOL(0xFF)},
|
||
|
/* Kyocera AH-K3001V */
|
||
- « Previous
- 1
- 2
- Next »