Project

General

Profile

Submit #2725 » 00-rundis-umodem.diff

yellowrabbit2010, 09/29/2014 12:01 AM

View differences:

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_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 */
(1-1/2)