summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/misc/ufm.c
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2011-06-24 19:32:29 +0000
committerhselasky <hselasky@FreeBSD.org>2011-06-24 19:32:29 +0000
commit72142e46137809c92085360ce8a3ea21853b1424 (patch)
tree2ec744bbb1552f2eaa31ef5ae3f7c81bf740db7c /sys/dev/usb/misc/ufm.c
parentccf732af88ac42a2b291b4e8139c70efbca3494f (diff)
downloadFreeBSD-src-72142e46137809c92085360ce8a3ea21853b1424.zip
FreeBSD-src-72142e46137809c92085360ce8a3ea21853b1424.tar.gz
- Export more USB device ID's.
MFC after: 3 days
Diffstat (limited to 'sys/dev/usb/misc/ufm.c')
-rw-r--r--sys/dev/usb/misc/ufm.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/dev/usb/misc/ufm.c b/sys/dev/usb/misc/ufm.c
index 75e2b7f..11bea65 100644
--- a/sys/dev/usb/misc/ufm.c
+++ b/sys/dev/usb/misc/ufm.c
@@ -118,19 +118,23 @@ DRIVER_MODULE(ufm, uhub, ufm_driver, ufm_devclass, NULL, 0);
MODULE_DEPEND(ufm, usb, 1, 1, 1);
MODULE_VERSION(ufm, 1);
+static const STRUCT_USB_HOST_ID ufm_devs[] = {
+ {USB_VPI(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_FMRADIO, 0)},
+};
+
static int
ufm_probe(device_t dev)
{
struct usb_attach_arg *uaa = device_get_ivars(dev);
- if (uaa->usb_mode != USB_MODE_HOST) {
+ if (uaa->usb_mode != USB_MODE_HOST)
return (ENXIO);
- }
- if ((uaa->info.idVendor == USB_VENDOR_CYPRESS) &&
- (uaa->info.idProduct == USB_PRODUCT_CYPRESS_FMRADIO)) {
- return (0);
- }
- return (ENXIO);
+ if (uaa->info.bConfigIndex != 0)
+ return (ENXIO);
+ if (uaa->info.bIfaceIndex != 0)
+ return (ENXIO);
+
+ return (usbd_lookup_id_by_uaa(ufm_devs, sizeof(ufm_devs), uaa));
}
static int
OpenPOWER on IntegriCloud