# HG changeset patch # Parent 7b8bfb3447d7d1f75db445a7067bde9003e968d9 # Parent d7d6e17c7623a3cb6ae71c92be5ce70435f55367 diff -r d7d6e17c7623 sys/dev/sound/usb/uaudio.c --- a/sys/dev/sound/usb/uaudio.c +++ b/sys/dev/sound/usb/uaudio.c @@ -5942,3 +5942,4 @@ DRIVER_MODULE_ORDERED(uaudio, uhub, uaud MODULE_DEPEND(uaudio, usb, 1, 1, 1); MODULE_DEPEND(uaudio, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER); MODULE_VERSION(uaudio, 1); +USB_PNP_INFO(uaudio_devs); diff -r d7d6e17c7623 sys/dev/usb/input/atp.c --- a/sys/dev/usb/input/atp.c +++ b/sys/dev/usb/input/atp.c @@ -2630,3 +2630,5 @@ static driver_t atp_driver = { DRIVER_MODULE(atp, uhub, atp_driver, atp_devclass, NULL, 0); MODULE_DEPEND(atp, usb, 1, 1, 1); MODULE_VERSION(atp, 1); +USB_PNP_INFO(fg_devs); +USB_PNP_INFO(wsp_devs); diff -r d7d6e17c7623 sys/dev/usb/input/uep.c --- a/sys/dev/usb/input/uep.c +++ b/sys/dev/usb/input/uep.c @@ -441,3 +441,4 @@ static driver_t uep_driver = { DRIVER_MODULE(uep, uhub, uep_driver, uep_devclass, NULL, NULL); MODULE_DEPEND(uep, usb, 1, 1, 1); MODULE_VERSION(uep, 1); +USB_PNP_INFO(uep_devs); diff -r d7d6e17c7623 sys/dev/usb/input/uhid.c --- a/sys/dev/usb/input/uhid.c +++ b/sys/dev/usb/input/uhid.c @@ -878,3 +878,4 @@ static driver_t uhid_driver = { DRIVER_MODULE(uhid, uhub, uhid_driver, uhid_devclass, NULL, 0); MODULE_DEPEND(uhid, usb, 1, 1, 1); MODULE_VERSION(uhid, 1); +USB_PNP_INFO(uhid_devs); diff -r d7d6e17c7623 sys/dev/usb/input/ukbd.c --- a/sys/dev/usb/input/ukbd.c +++ b/sys/dev/usb/input/ukbd.c @@ -2172,3 +2172,4 @@ static driver_t ukbd_driver = { DRIVER_MODULE(ukbd, uhub, ukbd_driver, ukbd_devclass, ukbd_driver_load, 0); MODULE_DEPEND(ukbd, usb, 1, 1, 1); MODULE_VERSION(ukbd, 1); +USB_PNP_INFO(ukbd_devs); diff -r d7d6e17c7623 sys/dev/usb/input/ums.c --- a/sys/dev/usb/input/ums.c +++ b/sys/dev/usb/input/ums.c @@ -1052,3 +1052,4 @@ static driver_t ums_driver = { DRIVER_MODULE(ums, uhub, ums_driver, ums_devclass, NULL, 0); MODULE_DEPEND(ums, usb, 1, 1, 1); MODULE_VERSION(ums, 1); +USB_PNP_INFO(ums_devs); diff -r d7d6e17c7623 sys/dev/usb/input/wsp.c --- a/sys/dev/usb/input/wsp.c +++ b/sys/dev/usb/input/wsp.c @@ -1224,3 +1224,4 @@ static devclass_t wsp_devclass; DRIVER_MODULE(wsp, uhub, wsp_driver, wsp_devclass, NULL, 0); MODULE_DEPEND(wsp, usb, 1, 1, 1); MODULE_VERSION(wsp, 1); +USB_PNP_INFO(wsp_devs); diff -r d7d6e17c7623 sys/dev/usb/misc/udbp.c --- a/sys/dev/usb/misc/udbp.c +++ b/sys/dev/usb/misc/udbp.c @@ -258,10 +258,20 @@ static driver_t udbp_driver = { .size = sizeof(struct udbp_softc), }; +static const STRUCT_USB_HOST_ID udbp_devs[] = { + {USB_VPI(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_TURBOCONNECT, 0)}, + {USB_VPI(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_GADGETZERO, 0)}, + {USB_VPI(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2301, 0)}, + {USB_VPI(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2302, 0)}, + {USB_VPI(USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZLINK, 0)}, + {USB_VPI(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL620USB, 0)}, +}; + DRIVER_MODULE(udbp, uhub, udbp_driver, udbp_devclass, udbp_modload, 0); MODULE_DEPEND(udbp, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); MODULE_DEPEND(udbp, usb, 1, 1, 1); MODULE_VERSION(udbp, 1); +USB_PNP_INFO(udbp_devs); static int udbp_modload(module_t mod, int event, void *data) @@ -289,15 +299,6 @@ udbp_modload(module_t mod, int event, vo return (error); } -static const STRUCT_USB_HOST_ID udbp_devs[] = { - {USB_VPI(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_TURBOCONNECT, 0)}, - {USB_VPI(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_GADGETZERO, 0)}, - {USB_VPI(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2301, 0)}, - {USB_VPI(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2302, 0)}, - {USB_VPI(USB_VENDOR_ANCHOR, USB_PRODUCT_ANCHOR_EZLINK, 0)}, - {USB_VPI(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL620USB, 0)}, -}; - static int udbp_probe(device_t dev) { diff -r d7d6e17c7623 sys/dev/usb/misc/ufm.c --- a/sys/dev/usb/misc/ufm.c +++ b/sys/dev/usb/misc/ufm.c @@ -115,13 +115,14 @@ static driver_t ufm_driver = { .size = sizeof(struct ufm_softc), }; +static const STRUCT_USB_HOST_ID ufm_devs[] = { + {USB_VPI(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_FMRADIO, 0)}, +}; + 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)}, -}; +USB_PNP_INFO(ufm_devs); static int ufm_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/misc/uled.c --- a/sys/dev/usb/misc/uled.c +++ b/sys/dev/usb/misc/uled.c @@ -107,13 +107,14 @@ static driver_t uled_driver = { .size = sizeof(struct uled_softc), }; +static const STRUCT_USB_HOST_ID uled_devs[] = { + {USB_VPI(USB_VENDOR_DREAMLINK, USB_PRODUCT_DREAMLINK_DL100B, 0)}, +}; + DRIVER_MODULE(uled, uhub, uled_driver, uled_devclass, NULL, NULL); MODULE_DEPEND(uled, usb, 1, 1, 1); MODULE_VERSION(uled, 1); - -static const STRUCT_USB_HOST_ID uled_devs[] = { - {USB_VPI(USB_VENDOR_DREAMLINK, USB_PRODUCT_DREAMLINK_DL100B, 0)}, -}; +USB_PNP_INFO(uled_devs); static int uled_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/net/if_aue.c --- a/sys/dev/usb/net/if_aue.c +++ b/sys/dev/usb/net/if_aue.c @@ -279,6 +279,7 @@ MODULE_DEPEND(aue, usb, 1, 1, 1); MODULE_DEPEND(aue, ether, 1, 1, 1); MODULE_DEPEND(aue, miibus, 1, 1, 1); MODULE_VERSION(aue, 1); +USB_PNP_INFO(aue_devs); static const struct usb_ether_methods aue_ue_methods = { .ue_attach_post = aue_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_axe.c --- a/sys/dev/usb/net/if_axe.c +++ b/sys/dev/usb/net/if_axe.c @@ -278,6 +278,7 @@ MODULE_DEPEND(axe, usb, 1, 1, 1); MODULE_DEPEND(axe, ether, 1, 1, 1); MODULE_DEPEND(axe, miibus, 1, 1, 1); MODULE_VERSION(axe, 1); +USB_PNP_INFO(axe_devs); static const struct usb_ether_methods axe_ue_methods = { .ue_attach_post = axe_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_axge.c --- a/sys/dev/usb/net/if_axge.c +++ b/sys/dev/usb/net/if_axge.c @@ -189,6 +189,7 @@ MODULE_DEPEND(axge, usb, 1, 1, 1); MODULE_DEPEND(axge, ether, 1, 1, 1); MODULE_DEPEND(axge, miibus, 1, 1, 1); MODULE_VERSION(axge, 1); +USB_PNP_INFO(axge_devs); static const struct usb_ether_methods axge_ue_methods = { .ue_attach_post = axge_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_cdce.c --- a/sys/dev/usb/net/if_cdce.c +++ b/sys/dev/usb/net/if_cdce.c @@ -256,21 +256,6 @@ static eventhandler_tag cdce_etag; static int cdce_driver_loaded(struct module *, int, void *); -DRIVER_MODULE(cdce, uhub, cdce_driver, cdce_devclass, cdce_driver_loaded, 0); -MODULE_VERSION(cdce, 1); -MODULE_DEPEND(cdce, uether, 1, 1, 1); -MODULE_DEPEND(cdce, usb, 1, 1, 1); -MODULE_DEPEND(cdce, ether, 1, 1, 1); - -static const struct usb_ether_methods cdce_ue_methods = { - .ue_attach_post = cdce_attach_post, - .ue_start = cdce_start, - .ue_init = cdce_init, - .ue_stop = cdce_stop, - .ue_setmulti = cdce_setmulti, - .ue_setpromisc = cdce_setpromisc, -}; - static const STRUCT_USB_HOST_ID cdce_switch_devs[] = { {USB_VPI(USB_VENDOR_HUAWEI, USB_PRODUCT_HUAWEI_E3272_INIT, MSC_EJECT_HUAWEI2)}, }; @@ -307,6 +292,24 @@ static const STRUCT_USB_DUAL_ID cdce_dua {USB_IF_CSI(UICLASS_CDC, UISUBCLASS_NETWORK_CONTROL_MODEL, 0)}, }; +DRIVER_MODULE(cdce, uhub, cdce_driver, cdce_devclass, cdce_driver_loaded, 0); +MODULE_VERSION(cdce, 1); +MODULE_DEPEND(cdce, uether, 1, 1, 1); +MODULE_DEPEND(cdce, usb, 1, 1, 1); +MODULE_DEPEND(cdce, ether, 1, 1, 1); +USB_PNP_INFO(cdce_switch_devs); +USB_PNP_INFO(cdce_host_devs); +USB_PNP_INFO(cdce_dual_devs); + +static const struct usb_ether_methods cdce_ue_methods = { + .ue_attach_post = cdce_attach_post, + .ue_start = cdce_start, + .ue_init = cdce_init, + .ue_stop = cdce_stop, + .ue_setmulti = cdce_setmulti, + .ue_setpromisc = cdce_setpromisc, +}; + #if CDCE_HAVE_NCM /*------------------------------------------------------------------------* * cdce_ncm_init diff -r d7d6e17c7623 sys/dev/usb/net/if_cue.c --- a/sys/dev/usb/net/if_cue.c +++ b/sys/dev/usb/net/if_cue.c @@ -177,6 +177,7 @@ MODULE_DEPEND(cue, uether, 1, 1, 1); MODULE_DEPEND(cue, usb, 1, 1, 1); MODULE_DEPEND(cue, ether, 1, 1, 1); MODULE_VERSION(cue, 1); +USB_PNP_INFO(cue_devs); static const struct usb_ether_methods cue_ue_methods = { .ue_attach_post = cue_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_ipheth.c --- a/sys/dev/usb/net/if_ipheth.c +++ b/sys/dev/usb/net/if_ipheth.c @@ -131,27 +131,6 @@ static driver_t ipheth_driver = { static devclass_t ipheth_devclass; -DRIVER_MODULE(ipheth, uhub, ipheth_driver, ipheth_devclass, NULL, 0); -MODULE_VERSION(ipheth, 1); -MODULE_DEPEND(ipheth, uether, 1, 1, 1); -MODULE_DEPEND(ipheth, usb, 1, 1, 1); -MODULE_DEPEND(ipheth, ether, 1, 1, 1); - -static const struct usb_ether_methods ipheth_ue_methods = { - .ue_attach_post = ipheth_attach_post, - .ue_start = ipheth_start, - .ue_init = ipheth_init, - .ue_tick = ipheth_tick, - .ue_stop = ipheth_stop, - .ue_setmulti = ipheth_setmulti, - .ue_setpromisc = ipheth_setpromisc, -}; - -#define IPHETH_ID(v,p,c,sc,pt) \ - USB_VENDOR(v), USB_PRODUCT(p), \ - USB_IFACE_CLASS(c), USB_IFACE_SUBCLASS(sc), \ - USB_IFACE_PROTOCOL(pt) - static const STRUCT_USB_HOST_ID ipheth_devs[] = { #if 0 {IPHETH_ID(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE, @@ -181,6 +160,28 @@ static const STRUCT_USB_HOST_ID ipheth_d #endif }; +DRIVER_MODULE(ipheth, uhub, ipheth_driver, ipheth_devclass, NULL, 0); +MODULE_VERSION(ipheth, 1); +MODULE_DEPEND(ipheth, uether, 1, 1, 1); +MODULE_DEPEND(ipheth, usb, 1, 1, 1); +MODULE_DEPEND(ipheth, ether, 1, 1, 1); +USB_PNP_INFO(ipheth_devs); + +static const struct usb_ether_methods ipheth_ue_methods = { + .ue_attach_post = ipheth_attach_post, + .ue_start = ipheth_start, + .ue_init = ipheth_init, + .ue_tick = ipheth_tick, + .ue_stop = ipheth_stop, + .ue_setmulti = ipheth_setmulti, + .ue_setpromisc = ipheth_setpromisc, +}; + +#define IPHETH_ID(v,p,c,sc,pt) \ + USB_VENDOR(v), USB_PRODUCT(p), \ + USB_IFACE_CLASS(c), USB_IFACE_SUBCLASS(sc), \ + USB_IFACE_PROTOCOL(pt) + static int ipheth_get_mac_addr(struct ipheth_softc *sc) { diff -r d7d6e17c7623 sys/dev/usb/net/if_kue.c --- a/sys/dev/usb/net/if_kue.c +++ b/sys/dev/usb/net/if_kue.c @@ -219,6 +219,7 @@ MODULE_DEPEND(kue, uether, 1, 1, 1); MODULE_DEPEND(kue, usb, 1, 1, 1); MODULE_DEPEND(kue, ether, 1, 1, 1); MODULE_VERSION(kue, 1); +USB_PNP_INFO(kue_devs); static const struct usb_ether_methods kue_ue_methods = { .ue_attach_post = kue_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_mos.c --- a/sys/dev/usb/net/if_mos.c +++ b/sys/dev/usb/net/if_mos.c @@ -247,6 +247,7 @@ MODULE_DEPEND(mos, uether, 1, 1, 1); MODULE_DEPEND(mos, usb, 1, 1, 1); MODULE_DEPEND(mos, ether, 1, 1, 1); MODULE_DEPEND(mos, miibus, 1, 1, 1); +USB_PNP_INFO(mos_devs); static const struct usb_ether_methods mos_ue_methods = { .ue_attach_post = mos_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_rue.c --- a/sys/dev/usb/net/if_rue.c +++ b/sys/dev/usb/net/if_rue.c @@ -214,6 +214,7 @@ MODULE_DEPEND(rue, usb, 1, 1, 1); MODULE_DEPEND(rue, ether, 1, 1, 1); MODULE_DEPEND(rue, miibus, 1, 1, 1); MODULE_VERSION(rue, 1); +USB_PNP_INFO(rue_devs); static const struct usb_ether_methods rue_ue_methods = { .ue_attach_post = rue_attach_post, diff -r d7d6e17c7623 sys/dev/usb/net/if_udav.c --- a/sys/dev/usb/net/if_udav.c +++ b/sys/dev/usb/net/if_udav.c @@ -165,6 +165,21 @@ static driver_t udav_driver = { static devclass_t udav_devclass; +static const STRUCT_USB_HOST_ID udav_devs[] = { + /* ShanTou DM9601 USB NIC */ + {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_DM9601, 0)}, + /* ShanTou ST268 USB NIC */ + {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_ST268, 0)}, + /* Corega USB-TXC */ + {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXC, 0)}, + /* ShanTou AMD8515 USB NIC */ + {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_ADM8515, 0)}, + /* Kontron AG USB Ethernet */ + {USB_VPI(USB_VENDOR_KONTRON, USB_PRODUCT_KONTRON_DM9601, 0)}, + {USB_VPI(USB_VENDOR_KONTRON, USB_PRODUCT_KONTRON_JP1082, + UDAV_FLAG_NO_PHY)}, +}; + DRIVER_MODULE(udav, uhub, udav_driver, udav_devclass, NULL, 0); DRIVER_MODULE(miibus, udav, miibus_driver, miibus_devclass, 0, 0); MODULE_DEPEND(udav, uether, 1, 1, 1); @@ -172,6 +187,7 @@ MODULE_DEPEND(udav, usb, 1, 1, 1); MODULE_DEPEND(udav, ether, 1, 1, 1); MODULE_DEPEND(udav, miibus, 1, 1, 1); MODULE_VERSION(udav, 1); +USB_PNP_INFO(udav_devs); static const struct usb_ether_methods udav_ue_methods = { .ue_attach_post = udav_attach_post, @@ -208,21 +224,6 @@ SYSCTL_INT(_hw_usb_udav, OID_AUTO, debug #define UDAV_CLRBIT(sc, reg, x) \ udav_csr_write1(sc, reg, udav_csr_read1(sc, reg) & ~(x)) -static const STRUCT_USB_HOST_ID udav_devs[] = { - /* ShanTou DM9601 USB NIC */ - {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_DM9601, 0)}, - /* ShanTou ST268 USB NIC */ - {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_ST268, 0)}, - /* Corega USB-TXC */ - {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXC, 0)}, - /* ShanTou AMD8515 USB NIC */ - {USB_VPI(USB_VENDOR_SHANTOU, USB_PRODUCT_SHANTOU_ADM8515, 0)}, - /* Kontron AG USB Ethernet */ - {USB_VPI(USB_VENDOR_KONTRON, USB_PRODUCT_KONTRON_DM9601, 0)}, - {USB_VPI(USB_VENDOR_KONTRON, USB_PRODUCT_KONTRON_JP1082, - UDAV_FLAG_NO_PHY)}, -}; - static void udav_attach_post(struct usb_ether *ue) { diff -r d7d6e17c7623 sys/dev/usb/net/if_urndis.c --- a/sys/dev/usb/net/if_urndis.c +++ b/sys/dev/usb/net/if_urndis.c @@ -154,21 +154,6 @@ static driver_t urndis_driver = { static devclass_t urndis_devclass; -DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, 0); -MODULE_VERSION(urndis, 1); -MODULE_DEPEND(urndis, uether, 1, 1, 1); -MODULE_DEPEND(urndis, usb, 1, 1, 1); -MODULE_DEPEND(urndis, ether, 1, 1, 1); - -static const struct usb_ether_methods urndis_ue_methods = { - .ue_attach_post = urndis_attach_post, - .ue_start = urndis_start, - .ue_init = urndis_init, - .ue_stop = urndis_stop, - .ue_setmulti = urndis_setmulti, - .ue_setpromisc = urndis_setpromisc, -}; - static const STRUCT_USB_HOST_ID urndis_host_devs[] = { /* Generic RNDIS class match */ {USB_IFACE_CLASS(UICLASS_WIRELESS), USB_IFACE_SUBCLASS(UISUBCLASS_RF), @@ -181,6 +166,22 @@ static const STRUCT_USB_HOST_ID urndis_h USB_IFACE_PROTOCOL(0xff)}, }; +DRIVER_MODULE(urndis, uhub, urndis_driver, urndis_devclass, NULL, 0); +MODULE_VERSION(urndis, 1); +MODULE_DEPEND(urndis, uether, 1, 1, 1); +MODULE_DEPEND(urndis, usb, 1, 1, 1); +MODULE_DEPEND(urndis, ether, 1, 1, 1); +USB_PNP_INFO(urndis_host_devs); + +static const struct usb_ether_methods urndis_ue_methods = { + .ue_attach_post = urndis_attach_post, + .ue_start = urndis_start, + .ue_init = urndis_init, + .ue_stop = urndis_stop, + .ue_setmulti = urndis_setmulti, + .ue_setpromisc = urndis_setpromisc, +}; + static int urndis_probe(device_t dev) { diff -r d7d6e17c7623 sys/dev/usb/net/if_usie.c --- a/sys/dev/usb/net/if_usie.c +++ b/sys/dev/usb/net/if_usie.c @@ -212,6 +212,7 @@ DRIVER_MODULE(usie, uhub, usie_driver, u MODULE_DEPEND(usie, ucom, 1, 1, 1); MODULE_DEPEND(usie, usb, 1, 1, 1); MODULE_VERSION(usie, 1); +USB_PNP_INFO(usie_devs); static const struct ucom_callback usie_uc_callback = { .ucom_cfg_get_status = &usie_uc_cfg_get_status, diff -r d7d6e17c7623 sys/dev/usb/net/uhso.c --- a/sys/dev/usb/net/uhso.c +++ b/sys/dev/usb/net/uhso.c @@ -497,6 +497,7 @@ DRIVER_MODULE(uhso, uhub, uhso_driver, u MODULE_DEPEND(uhso, ucom, 1, 1, 1); MODULE_DEPEND(uhso, usb, 1, 1, 1); MODULE_VERSION(uhso, 1); +USB_PNP_INFO(uhso_devs); static struct ucom_callback uhso_ucom_callback = { .ucom_cfg_get_status = &uhso_ucom_cfg_get_status, diff -r d7d6e17c7623 sys/dev/usb/serial/u3g.c --- a/sys/dev/usb/serial/u3g.c +++ b/sys/dev/usb/serial/u3g.c @@ -198,11 +198,6 @@ static driver_t u3g_driver = { .size = sizeof(struct u3g_softc), }; -DRIVER_MODULE(u3g, uhub, u3g_driver, u3g_devclass, u3g_driver_loaded, 0); -MODULE_DEPEND(u3g, ucom, 1, 1, 1); -MODULE_DEPEND(u3g, usb, 1, 1, 1); -MODULE_VERSION(u3g, 1); - static const STRUCT_USB_HOST_ID u3g_devs[] = { #define U3G_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) } U3G_DEV(ACERP, H10, 0), @@ -583,6 +578,12 @@ static const STRUCT_USB_HOST_ID u3g_devs #undef U3G_DEV }; +DRIVER_MODULE(u3g, uhub, u3g_driver, u3g_devclass, u3g_driver_loaded, 0); +MODULE_DEPEND(u3g, ucom, 1, 1, 1); +MODULE_DEPEND(u3g, usb, 1, 1, 1); +MODULE_VERSION(u3g, 1); +USB_PNP_INFO(u3g_devs); + static int u3g_sierra_init(struct usb_device *udev) { diff -r d7d6e17c7623 sys/dev/usb/serial/uark.c --- a/sys/dev/usb/serial/uark.c +++ b/sys/dev/usb/serial/uark.c @@ -168,14 +168,15 @@ static driver_t uark_driver = { .size = sizeof(struct uark_softc), }; +static const STRUCT_USB_HOST_ID uark_devs[] = { + {USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, 0)}, +}; + DRIVER_MODULE(uark, uhub, uark_driver, uark_devclass, NULL, 0); MODULE_DEPEND(uark, ucom, 1, 1, 1); MODULE_DEPEND(uark, usb, 1, 1, 1); MODULE_VERSION(uark, 1); - -static const STRUCT_USB_HOST_ID uark_devs[] = { - {USB_VPI(USB_VENDOR_ARKMICRO, USB_PRODUCT_ARKMICRO_ARK3116, 0)}, -}; +USB_PNP_INFO(uark_devs); static int uark_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/ubsa.c --- a/sys/dev/usb/serial/ubsa.c +++ b/sys/dev/usb/serial/ubsa.c @@ -273,6 +273,7 @@ DRIVER_MODULE(ubsa, uhub, ubsa_driver, u MODULE_DEPEND(ubsa, ucom, 1, 1, 1); MODULE_DEPEND(ubsa, usb, 1, 1, 1); MODULE_VERSION(ubsa, 1); +USB_PNP_INFO(ubsa_devs); static int ubsa_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/uchcom.c --- a/sys/dev/usb/serial/uchcom.c +++ b/sys/dev/usb/serial/uchcom.c @@ -874,3 +874,4 @@ DRIVER_MODULE(uchcom, uhub, uchcom_drive MODULE_DEPEND(uchcom, ucom, 1, 1, 1); MODULE_DEPEND(uchcom, usb, 1, 1, 1); MODULE_VERSION(uchcom, 1); +USB_PNP_INFO(uchcom_devs); diff -r d7d6e17c7623 sys/dev/usb/serial/ucycom.c --- a/sys/dev/usb/serial/ucycom.c +++ b/sys/dev/usb/serial/ucycom.c @@ -174,11 +174,6 @@ static driver_t ucycom_driver = { .size = sizeof(struct ucycom_softc), }; -DRIVER_MODULE(ucycom, uhub, ucycom_driver, ucycom_devclass, NULL, 0); -MODULE_DEPEND(ucycom, ucom, 1, 1, 1); -MODULE_DEPEND(ucycom, usb, 1, 1, 1); -MODULE_VERSION(ucycom, 1); - /* * Supported devices */ @@ -186,6 +181,12 @@ static const STRUCT_USB_HOST_ID ucycom_d {USB_VPI(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE, MODEL_CY7C64013)}, }; +DRIVER_MODULE(ucycom, uhub, ucycom_driver, ucycom_devclass, NULL, 0); +MODULE_DEPEND(ucycom, ucom, 1, 1, 1); +MODULE_DEPEND(ucycom, usb, 1, 1, 1); +MODULE_VERSION(ucycom, 1); +USB_PNP_INFO(ucycom_devs); + #define UCYCOM_DEFAULT_RATE 4800 #define UCYCOM_DEFAULT_CFG 0x03 /* N-8-1 */ diff -r d7d6e17c7623 sys/dev/usb/serial/ufoma.c --- a/sys/dev/usb/serial/ufoma.c +++ b/sys/dev/usb/serial/ufoma.c @@ -317,15 +317,16 @@ static driver_t ufoma_driver = { .size = sizeof(struct ufoma_softc), }; +static const STRUCT_USB_HOST_ID ufoma_devs[] = { + {USB_IFACE_CLASS(UICLASS_CDC), + USB_IFACE_SUBCLASS(UISUBCLASS_MCPC),}, +}; + DRIVER_MODULE(ufoma, uhub, ufoma_driver, ufoma_devclass, NULL, 0); MODULE_DEPEND(ufoma, ucom, 1, 1, 1); MODULE_DEPEND(ufoma, usb, 1, 1, 1); MODULE_VERSION(ufoma, 1); - -static const STRUCT_USB_HOST_ID ufoma_devs[] = { - {USB_IFACE_CLASS(UICLASS_CDC), - USB_IFACE_SUBCLASS(UISUBCLASS_MCPC),}, -}; +USB_PNP_INFO(ufoma_devs); static int ufoma_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/uftdi.c --- a/sys/dev/usb/serial/uftdi.c +++ b/sys/dev/usb/serial/uftdi.c @@ -264,11 +264,6 @@ static driver_t uftdi_driver = { .size = sizeof(struct uftdi_softc), }; -DRIVER_MODULE(uftdi, uhub, uftdi_driver, uftdi_devclass, NULL, NULL); -MODULE_DEPEND(uftdi, ucom, 1, 1, 1); -MODULE_DEPEND(uftdi, usb, 1, 1, 1); -MODULE_VERSION(uftdi, 1); - static const STRUCT_USB_HOST_ID uftdi_devs[] = { #define UFTDI_DEV(v, p, i) \ { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) } @@ -912,6 +907,12 @@ static const STRUCT_USB_HOST_ID uftdi_de #undef UFTDI_DEV }; +DRIVER_MODULE(uftdi, uhub, uftdi_driver, uftdi_devclass, NULL, NULL); +MODULE_DEPEND(uftdi, ucom, 1, 1, 1); +MODULE_DEPEND(uftdi, usb, 1, 1, 1); +MODULE_VERSION(uftdi, 1); +USB_PNP_INFO(uftdi_devs); + /* * Jtag product name strings table. Some products have one or more interfaces * dedicated to jtag or gpio, but use a product ID that's the same as other diff -r d7d6e17c7623 sys/dev/usb/serial/ugensa.c --- a/sys/dev/usb/serial/ugensa.c +++ b/sys/dev/usb/serial/ugensa.c @@ -152,11 +152,6 @@ static driver_t ugensa_driver = { .size = sizeof(struct ugensa_softc), }; -DRIVER_MODULE(ugensa, uhub, ugensa_driver, ugensa_devclass, NULL, 0); -MODULE_DEPEND(ugensa, ucom, 1, 1, 1); -MODULE_DEPEND(ugensa, usb, 1, 1, 1); -MODULE_VERSION(ugensa, 1); - static const STRUCT_USB_HOST_ID ugensa_devs[] = { {USB_VPI(USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220, 0)}, {USB_VPI(USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CDMA_MODEM1, 0)}, @@ -165,6 +160,12 @@ static const STRUCT_USB_HOST_ID ugensa_d {USB_VPI(USB_VENDOR_NOVATEL2, USB_PRODUCT_NOVATEL2_FLEXPACKGPS, 0)}, }; +DRIVER_MODULE(ugensa, uhub, ugensa_driver, ugensa_devclass, NULL, 0); +MODULE_DEPEND(ugensa, ucom, 1, 1, 1); +MODULE_DEPEND(ugensa, usb, 1, 1, 1); +MODULE_VERSION(ugensa, 1); +USB_PNP_INFO(ugensa_devs); + static int ugensa_probe(device_t dev) { diff -r d7d6e17c7623 sys/dev/usb/serial/uipaq.c --- a/sys/dev/usb/serial/uipaq.c +++ b/sys/dev/usb/serial/uipaq.c @@ -1088,6 +1088,7 @@ DRIVER_MODULE(uipaq, uhub, uipaq_driver, MODULE_DEPEND(uipaq, ucom, 1, 1, 1); MODULE_DEPEND(uipaq, usb, 1, 1, 1); MODULE_VERSION(uipaq, 1); +USB_PNP_INFO(uipaq_devs); static int uipaq_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/ulpt.c --- a/sys/dev/usb/serial/ulpt.c +++ b/sys/dev/usb/serial/ulpt.c @@ -759,3 +759,4 @@ static driver_t ulpt_driver = { DRIVER_MODULE(ulpt, uhub, ulpt_driver, ulpt_devclass, NULL, 0); MODULE_DEPEND(ulpt, usb, 1, 1, 1); MODULE_VERSION(ulpt, 1); +USB_PNP_INFO(ulpt_devs); diff -r d7d6e17c7623 sys/dev/usb/serial/umcs.c --- a/sys/dev/usb/serial/umcs.c +++ b/sys/dev/usb/serial/umcs.c @@ -278,6 +278,7 @@ DRIVER_MODULE(umcs7840, uhub, umcs7840_d MODULE_DEPEND(umcs7840, ucom, 1, 1, 1); MODULE_DEPEND(umcs7840, usb, 1, 1, 1); MODULE_VERSION(umcs7840, UMCS7840_MODVER); +USB_PNP_INFO(umcs7840_devs); static int umcs7840_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/umct.c --- a/sys/dev/usb/serial/umct.c +++ b/sys/dev/usb/serial/umct.c @@ -221,6 +221,7 @@ DRIVER_MODULE(umct, uhub, umct_driver, u MODULE_DEPEND(umct, ucom, 1, 1, 1); MODULE_DEPEND(umct, usb, 1, 1, 1); MODULE_VERSION(umct, 1); +USB_PNP_INFO(umct_devs); static int umct_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/umodem.c --- a/sys/dev/usb/serial/umodem.c +++ b/sys/dev/usb/serial/umodem.c @@ -298,6 +298,7 @@ DRIVER_MODULE(umodem, uhub, umodem_drive MODULE_DEPEND(umodem, ucom, 1, 1, 1); MODULE_DEPEND(umodem, usb, 1, 1, 1); MODULE_VERSION(umodem, UMODEM_MODVER); +USB_PNP_INFO(umodem_devs); static int umodem_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/umoscom.c --- a/sys/dev/usb/serial/umoscom.c +++ b/sys/dev/usb/serial/umoscom.c @@ -278,14 +278,15 @@ static driver_t umoscom_driver = { .size = sizeof(struct umoscom_softc), }; +static const STRUCT_USB_HOST_ID umoscom_devs[] = { + {USB_VPI(USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7703, 0)} +}; + DRIVER_MODULE(umoscom, uhub, umoscom_driver, umoscom_devclass, NULL, 0); MODULE_DEPEND(umoscom, ucom, 1, 1, 1); MODULE_DEPEND(umoscom, usb, 1, 1, 1); MODULE_VERSION(umoscom, 1); - -static const STRUCT_USB_HOST_ID umoscom_devs[] = { - {USB_VPI(USB_VENDOR_MOSCHIP, USB_PRODUCT_MOSCHIP_MCS7703, 0)} -}; +USB_PNP_INFO(umoscom_devs); static int umoscom_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/uplcom.c --- a/sys/dev/usb/serial/uplcom.c +++ b/sys/dev/usb/serial/uplcom.c @@ -326,6 +326,7 @@ DRIVER_MODULE(uplcom, uhub, uplcom_drive MODULE_DEPEND(uplcom, ucom, 1, 1, 1); MODULE_DEPEND(uplcom, usb, 1, 1, 1); MODULE_VERSION(uplcom, UPLCOM_MODVER); +USB_PNP_INFO(uplcom_devs); static int uplcom_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/serial/uslcom.c --- a/sys/dev/usb/serial/uslcom.c +++ b/sys/dev/usb/serial/uslcom.c @@ -382,6 +382,7 @@ DRIVER_MODULE(uslcom, uhub, uslcom_drive MODULE_DEPEND(uslcom, ucom, 1, 1, 1); MODULE_DEPEND(uslcom, usb, 1, 1, 1); MODULE_VERSION(uslcom, 1); +USB_PNP_INFO(uslcom_devs); static void uslcom_watchdog(void *arg) diff -r d7d6e17c7623 sys/dev/usb/serial/uvisor.c --- a/sys/dev/usb/serial/uvisor.c +++ b/sys/dev/usb/serial/uvisor.c @@ -251,11 +251,6 @@ static driver_t uvisor_driver = { .size = sizeof(struct uvisor_softc), }; -DRIVER_MODULE(uvisor, uhub, uvisor_driver, uvisor_devclass, NULL, 0); -MODULE_DEPEND(uvisor, ucom, 1, 1, 1); -MODULE_DEPEND(uvisor, usb, 1, 1, 1); -MODULE_VERSION(uvisor, 1); - static const STRUCT_USB_HOST_ID uvisor_devs[] = { #define UVISOR_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) } UVISOR_DEV(ACEECA, MEZ1000, UVISOR_FLAG_PALM4), @@ -288,6 +283,12 @@ static const STRUCT_USB_HOST_ID uvisor_d #undef UVISOR_DEV }; +DRIVER_MODULE(uvisor, uhub, uvisor_driver, uvisor_devclass, NULL, 0); +MODULE_DEPEND(uvisor, ucom, 1, 1, 1); +MODULE_DEPEND(uvisor, usb, 1, 1, 1); +MODULE_VERSION(uvisor, 1); +USB_PNP_INFO(uvisor_devs); + static int uvisor_probe(device_t dev) { diff -r d7d6e17c7623 sys/dev/usb/serial/uvscom.c --- a/sys/dev/usb/serial/uvscom.c +++ b/sys/dev/usb/serial/uvscom.c @@ -268,6 +268,7 @@ DRIVER_MODULE(uvscom, uhub, uvscom_drive MODULE_DEPEND(uvscom, ucom, 1, 1, 1); MODULE_DEPEND(uvscom, usb, 1, 1, 1); MODULE_VERSION(uvscom, UVSCOM_MODVER); +USB_PNP_INFO(uvscom_devs); static int uvscom_probe(device_t dev) diff -r d7d6e17c7623 sys/dev/usb/storage/umass.c --- a/sys/dev/usb/storage/umass.c +++ b/sys/dev/usb/storage/umass.c @@ -706,20 +706,21 @@ static driver_t umass_driver = { .size = sizeof(struct umass_softc), }; +static const STRUCT_USB_HOST_ID __used umass_devs[] = { + /* generic mass storage class */ + {USB_IFACE_CLASS(UICLASS_MASS),}, +}; + DRIVER_MODULE(umass, uhub, umass_driver, umass_devclass, NULL, 0); MODULE_DEPEND(umass, usb, 1, 1, 1); MODULE_DEPEND(umass, cam, 1, 1, 1); MODULE_VERSION(umass, 1); +USB_PNP_INFO(umass_devs); /* * USB device probe/attach/detach */ -static const STRUCT_USB_HOST_ID __used umass_devs[] = { - /* generic mass storage class */ - {USB_IFACE_CLASS(UICLASS_MASS),}, -}; - static uint16_t umass_get_proto(struct usb_interface *iface) { diff -r d7d6e17c7623 sys/dev/usb/storage/urio.c --- a/sys/dev/usb/storage/urio.c +++ b/sys/dev/usb/storage/urio.c @@ -195,16 +195,17 @@ static driver_t urio_driver = { .size = sizeof(struct urio_softc), }; -DRIVER_MODULE(urio, uhub, urio_driver, urio_devclass, NULL, 0); -MODULE_DEPEND(urio, usb, 1, 1, 1); -MODULE_VERSION(urio, 1); - static const STRUCT_USB_HOST_ID urio_devs[] = { {USB_VPI(USB_VENDOR_DIAMOND, USB_PRODUCT_DIAMOND_RIO500USB, 0)}, {USB_VPI(USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO600USB, 0)}, {USB_VPI(USB_VENDOR_DIAMOND2, USB_PRODUCT_DIAMOND2_RIO800USB, 0)}, }; +DRIVER_MODULE(urio, uhub, urio_driver, urio_devclass, NULL, 0); +MODULE_DEPEND(urio, usb, 1, 1, 1); +MODULE_VERSION(urio, 1); +USB_PNP_INFO(urio_devs); + static int urio_probe(device_t dev) { diff -r d7d6e17c7623 sys/dev/usb/usb_hub.c --- a/sys/dev/usb/usb_hub.c +++ b/sys/dev/usb/usb_hub.c @@ -1731,6 +1731,7 @@ uhub_child_pnpinfo_string(device_t paren if (iface && iface->idesc) { snprintf(buf, buflen, "vendor=0x%04x product=0x%04x " "devclass=0x%02x devsubclass=0x%02x " + "devproto=0x%02x " "sernum=\"%s\" " "release=0x%04x " "mode=%s " @@ -1740,6 +1741,7 @@ uhub_child_pnpinfo_string(device_t paren UGETW(res.udev->ddesc.idProduct), res.udev->ddesc.bDeviceClass, res.udev->ddesc.bDeviceSubClass, + res.udev->ddesc.bDeviceProtocol, usb_get_serial(res.udev), UGETW(res.udev->ddesc.bcdDevice), (res.udev->flags.usb_mode == USB_MODE_HOST) ? "host" : "device", diff -r d7d6e17c7623 sys/dev/usb/usbdi.h --- a/sys/dev/usb/usbdi.h +++ b/sys/dev/usb/usbdi.h @@ -284,19 +284,37 @@ struct usb_device_id { uint8_t bInterfaceProtocol; /* Select which fields to match against */ - uint8_t match_flag_vendor:1; - uint8_t match_flag_product:1; - uint8_t match_flag_dev_lo:1; - uint8_t match_flag_dev_hi:1; +#if _BYTE_ORDER == _LITTLE_ENDIAN + uint16_t + match_flag_vendor:1, + match_flag_product:1, + match_flag_dev_lo:1, + match_flag_dev_hi:1, - uint8_t match_flag_dev_class:1; - uint8_t match_flag_dev_subclass:1; - uint8_t match_flag_dev_protocol:1; - uint8_t match_flag_int_class:1; + match_flag_dev_class:1, + match_flag_dev_subclass:1, + match_flag_dev_protocol:1, + match_flag_int_class:1, - uint8_t match_flag_int_subclass:1; - uint8_t match_flag_int_protocol:1; - uint8_t match_flag_unused:6; + match_flag_int_subclass:1, + match_flag_int_protocol:1, + match_flag_unused:6; +#else + uint16_t + match_flag_unused:6, + match_flag_int_protocol:1, + match_flag_int_subclass:1, + + match_flag_int_class:1, + match_flag_dev_protocol:1, + match_flag_dev_subclass:1, + match_flag_dev_class:1, + + match_flag_dev_hi:1, + match_flag_dev_lo:1, + match_flag_product:1, + match_flag_vendor:1; +#endif #if USB_HAVE_COMPAT_LINUX /* which fields to match against */ @@ -314,6 +332,15 @@ struct usb_device_id { #endif } __aligned(32); +#define USB_STD_PNP_INFO "P:x;U16:vendor;U16:product;L16:product;G16:product;" \ + "U8:devclass;U8:devsubclass;U8:devprotocol;" \ + "U8:intclass;U8:intsubclass;U8:intprotocol;" \ + "M16:1,2,3,4,5,6,7,8,9,10;" \ + "M16:1,2,3,4,5,6,7,8,9,10;" +#define USB_PNP_INFO(table) \ + MODULE_PNP_INFO(USB_STD_PNP_INFO, usb, table, table, sizeof(table[0]), \ + sizeof(table) / sizeof(table[0])) + /* check that the size of the structure above is correct */ extern char usb_device_id_assert[(sizeof(struct usb_device_id) == 32) ? 1 : -1]; diff -r d7d6e17c7623 sys/dev/usb/wlan/if_rsu.c --- a/sys/dev/usb/wlan/if_rsu.c +++ b/sys/dev/usb/wlan/if_rsu.c @@ -219,6 +219,7 @@ MODULE_DEPEND(rsu, wlan, 1, 1, 1); MODULE_DEPEND(rsu, usb, 1, 1, 1); MODULE_DEPEND(rsu, firmware, 1, 1, 1); MODULE_VERSION(rsu, 1); +USB_PNP_INFO(rsu_devs); static uint8_t rsu_wme_ac_xfer_map[4] = { [WME_AC_BE] = RSU_BULK_TX_BE_BK, diff -r d7d6e17c7623 sys/dev/usb/wlan/if_rum.c --- a/sys/dev/usb/wlan/if_rum.c +++ b/sys/dev/usb/wlan/if_rum.c @@ -2400,3 +2400,4 @@ DRIVER_MODULE(rum, uhub, rum_driver, rum MODULE_DEPEND(rum, wlan, 1, 1, 1); MODULE_DEPEND(rum, usb, 1, 1, 1); MODULE_VERSION(rum, 1); +USB_PNP_INFO(rum_devs); diff -r d7d6e17c7623 sys/dev/usb/wlan/if_run.c --- a/sys/dev/usb/wlan/if_run.c +++ b/sys/dev/usb/wlan/if_run.c @@ -6303,3 +6303,4 @@ MODULE_DEPEND(run, wlan, 1, 1, 1); MODULE_DEPEND(run, usb, 1, 1, 1); MODULE_DEPEND(run, firmware, 1, 1, 1); MODULE_VERSION(run, 1); +USB_PNP_INFO(run_devs); diff -r d7d6e17c7623 sys/dev/usb/wlan/if_uath.c --- a/sys/dev/usb/wlan/if_uath.c +++ b/sys/dev/usb/wlan/if_uath.c @@ -2905,3 +2905,4 @@ DRIVER_MODULE(uath, uhub, uath_driver, u MODULE_DEPEND(uath, wlan, 1, 1, 1); MODULE_DEPEND(uath, usb, 1, 1, 1); MODULE_VERSION(uath, 1); +USB_PNP_INFO(uath_devs); diff -r d7d6e17c7623 sys/dev/usb/wlan/if_upgt.c --- a/sys/dev/usb/wlan/if_upgt.c +++ b/sys/dev/usb/wlan/if_upgt.c @@ -2450,3 +2450,5 @@ MODULE_VERSION(if_upgt, 1); MODULE_DEPEND(if_upgt, usb, 1, 1, 1); MODULE_DEPEND(if_upgt, wlan, 1, 1, 1); MODULE_DEPEND(if_upgt, upgtfw_fw, 1, 1, 1); +USB_PNP_INFO(upgt_devs); + diff -r d7d6e17c7623 sys/dev/usb/wlan/if_ural.c --- a/sys/dev/usb/wlan/if_ural.c +++ b/sys/dev/usb/wlan/if_ural.c @@ -401,6 +401,7 @@ DRIVER_MODULE(ural, uhub, ural_driver, u MODULE_DEPEND(ural, usb, 1, 1, 1); MODULE_DEPEND(ural, wlan, 1, 1, 1); MODULE_VERSION(ural, 1); +USB_PNP_INFO(ural_devs); static int ural_match(device_t self) diff -r d7d6e17c7623 sys/dev/usb/wlan/if_urtw.c --- a/sys/dev/usb/wlan/if_urtw.c +++ b/sys/dev/usb/wlan/if_urtw.c @@ -4479,3 +4479,4 @@ DRIVER_MODULE(urtw, uhub, urtw_driver, u MODULE_DEPEND(urtw, wlan, 1, 1, 1); MODULE_DEPEND(urtw, usb, 1, 1, 1); MODULE_VERSION(urtw, 1); +USB_PNP_INFO(urtw_devs); diff -r d7d6e17c7623 sys/dev/usb/wlan/if_urtwn.c --- a/sys/dev/usb/wlan/if_urtwn.c +++ b/sys/dev/usb/wlan/if_urtwn.c @@ -3573,3 +3573,4 @@ MODULE_DEPEND(urtwn, usb, 1, 1, 1); MODULE_DEPEND(urtwn, wlan, 1, 1, 1); MODULE_DEPEND(urtwn, firmware, 1, 1, 1); MODULE_VERSION(urtwn, 1); +USB_PNP_INFO(urtwn_devs); diff -r d7d6e17c7623 sys/dev/usb/wlan/if_zyd.c --- a/sys/dev/usb/wlan/if_zyd.c +++ b/sys/dev/usb/wlan/if_zyd.c @@ -2973,3 +2973,4 @@ DRIVER_MODULE(zyd, uhub, zyd_driver, zyd MODULE_DEPEND(zyd, usb, 1, 1, 1); MODULE_DEPEND(zyd, wlan, 1, 1, 1); MODULE_VERSION(zyd, 1); +USB_PNP_INFO(zyd_devs); diff -r d7d6e17c7623 sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c --- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c +++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c @@ -1872,4 +1872,4 @@ MODULE_VERSION(ng_ubt, NG_BLUETOOTH_VERS MODULE_DEPEND(ng_ubt, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); MODULE_DEPEND(ng_ubt, ng_hci, NG_BLUETOOTH_VERSION, NG_BLUETOOTH_VERSION, NG_BLUETOOTH_VERSION); MODULE_DEPEND(ng_ubt, usb, 1, 1, 1); - +USB_PNP_INFO(ubt_devs); diff -r d7d6e17c7623 sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c --- a/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c +++ b/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c @@ -170,8 +170,15 @@ static driver_t ubtbcmfw_driver = .size = sizeof(struct ubtbcmfw_softc), }; +static const STRUCT_USB_HOST_ID ubtbcmfw_devs[] = { +/* Broadcom BCM2033 devices only */ + { USB_VPI(USB_VENDOR_BROADCOM, USB_PRODUCT_BROADCOM_BCM2033, 0) }, +}; + + DRIVER_MODULE(ubtbcmfw, uhub, ubtbcmfw_driver, ubtbcmfw_devclass, NULL, 0); MODULE_DEPEND(ubtbcmfw, usb, 1, 1, 1); +USB_PNP_INFO(ubtbcmfw_devs); /* * Probe for a USB Bluetooth device @@ -180,11 +187,6 @@ MODULE_DEPEND(ubtbcmfw, usb, 1, 1, 1); static int ubtbcmfw_probe(device_t dev) { - static const STRUCT_USB_HOST_ID devs[] = { - /* Broadcom BCM2033 devices only */ - { USB_VPI(USB_VENDOR_BROADCOM, USB_PRODUCT_BROADCOM_BCM2033, 0) }, - }; - struct usb_attach_arg *uaa = device_get_ivars(dev); if (uaa->usb_mode != USB_MODE_HOST) @@ -193,7 +195,7 @@ ubtbcmfw_probe(device_t dev) if (uaa->info.bIfaceIndex != 0) return (ENXIO); - return (usbd_lookup_id_by_uaa(devs, sizeof(devs), uaa)); + return (usbd_lookup_id_by_uaa(ubtbcmfw_devs, sizeof(ubtbcmfw_devs), uaa)); } /* ubtbcmfw_probe */ /*