Lines Matching refs:udev

139 usbd_get_debug_bits(struct usb_device *udev, struct usb_device_request *req,  in usbd_get_debug_bits()  argument
168 if (usbd_get_bus_index(udev) != usb_ctrl_debug.bus_index) in usbd_get_debug_bits()
171 if (usbd_get_device_index(udev) != usb_ctrl_debug.dev_index) in usbd_get_debug_bits()
215 cv_signal(&xfer->xroot->udev->ctrlreq_cv); in usbd_do_request_callback()
229 struct usb_device *udev; in usb_do_clear_stall_callback() local
236 udev = xfer->xroot->udev; in usb_do_clear_stall_callback()
238 USB_BUS_LOCK(udev->bus); in usb_do_clear_stall_callback()
242 ep = udev->ep_curr; in usb_do_clear_stall_callback()
243 ep_end = udev->endpoints + udev->endpoints_max; in usb_do_clear_stall_callback()
244 ep_first = udev->endpoints; in usb_do_clear_stall_callback()
245 to = udev->endpoints_max; in usb_do_clear_stall_callback()
251 udev->clear_stall_errors = 0; in usb_do_clear_stall_callback()
260 usbd_clear_stall_locked(udev, ep); in usb_do_clear_stall_callback()
293 USB_BUS_UNLOCK(udev->bus); in usb_do_clear_stall_callback()
297 USB_BUS_LOCK(udev->bus); in usb_do_clear_stall_callback()
316 if (udev->clear_stall_errors == USB_CS_RESET_LIMIT) in usb_do_clear_stall_callback()
320 udev->clear_stall_errors = USB_CS_RESET_LIMIT; in usb_do_clear_stall_callback()
322 usbd_start_re_enumerate(udev); in usb_do_clear_stall_callback()
324 udev->clear_stall_errors++; in usb_do_clear_stall_callback()
325 if (udev->clear_stall_errors == USB_CS_RESET_LIMIT) { in usb_do_clear_stall_callback()
327 usbd_start_re_enumerate(udev); in usb_do_clear_stall_callback()
334 udev->ep_curr = ep; in usb_do_clear_stall_callback()
335 USB_BUS_UNLOCK(udev->bus); in usb_do_clear_stall_callback()
339 usbd_get_hr_func(struct usb_device *udev) in usbd_get_hr_func() argument
342 if (udev->flags.usb_mode == USB_MODE_DEVICE) in usbd_get_hr_func()
344 else if (udev->parent_hub == NULL) in usbd_get_hr_func()
345 return (udev->bus->methods->roothub_exec); in usbd_get_hr_func()
405 usbd_do_request_flags(struct usb_device *udev, struct mtx *mtx, in usbd_do_request_flags() argument
436 udev, req->bmRequestType, req->bRequest, in usbd_do_request_flags()
442 if (udev->state < USB_STATE_POWERED) { in usbd_do_request_flags()
466 do_unlock = usbd_ctrl_lock(udev); in usbd_do_request_flags()
468 hr_func = usbd_get_hr_func(udev); in usbd_do_request_flags()
487 USB_BUS_LOCK(udev->bus); in usbd_do_request_flags()
488 err = (hr_func) (udev, req, &desc, &temp); in usbd_do_request_flags()
489 USB_BUS_UNLOCK(udev->bus); in usbd_do_request_flags()
521 usbd_ctrl_transfer_setup(udev); in usbd_do_request_flags()
523 xfer = udev->ctrl_xfer[0]; in usbd_do_request_flags()
532 usbd_get_debug_bits(udev, req, &dbg); in usbd_do_request_flags()
632 cv_wait(&udev->ctrlreq_cv, in usbd_do_request_flags()
711 usbd_ctrl_unlock(udev); in usbd_do_request_flags()
742 usbd_do_request_proc(struct usb_device *udev, struct usb_process *pproc, in usbd_do_request_proc() argument
759 err = usbd_do_request_flags(udev, pproc->up_mtx, in usbd_do_request_proc()
786 usbd_req_reset_port(struct usb_device *udev, struct mtx *mtx, uint8_t port) in usbd_req_reset_port() argument
798 udev, mtx, port, UHF_C_PORT_RESET); in usbd_req_reset_port()
802 udev, mtx, port, UHF_PORT_RESET); in usbd_req_reset_port()
812 err = usbd_req_get_port_status(udev, mtx, &ps, port); in usbd_req_reset_port()
844 udev, mtx, port, UHF_C_PORT_RESET); in usbd_req_reset_port()
876 usbd_req_warm_reset_port(struct usb_device *udev, struct mtx *mtx, in usbd_req_warm_reset_port() argument
887 err = usbd_req_get_port_status(udev, mtx, &ps, port); in usbd_req_warm_reset_port()
905 usbd_req_clear_port_feature(udev, mtx, in usbd_req_warm_reset_port()
909 err = usbd_req_set_port_feature(udev, mtx, in usbd_req_warm_reset_port()
919 err = usbd_req_get_port_status(udev, mtx, &ps, port); in usbd_req_warm_reset_port()
943 udev, mtx, port, UHF_C_BH_PORT_RESET); in usbd_req_warm_reset_port()
986 usbd_req_get_desc(struct usb_device *udev, in usbd_req_get_desc() argument
1011 err = usbd_do_request_flags(udev, mtx, &req, in usbd_req_get_desc()
1022 err = usbd_do_request_flags(udev, mtx, &req, in usbd_req_get_desc()
1100 usbd_req_get_string_any(struct usb_device *udev, struct mtx *mtx, char *buf, in usbd_req_get_string_any() argument
1120 if (udev->flags.no_strings) { in usbd_req_get_string_any()
1125 (udev, mtx, buf, len, udev->langid, string_index); in usbd_req_get_string_any()
1206 usbd_req_get_string_desc(struct usb_device *udev, struct mtx *mtx, void *sdesc, in usbd_req_get_string_desc() argument
1210 return (usbd_req_get_desc(udev, mtx, NULL, sdesc, 2, max_len, lang_id, in usbd_req_get_string_desc()
1226 usbd_req_get_descriptor_ptr(struct usb_device *udev, in usbd_req_get_descriptor_ptr() argument
1244 hr_func = usbd_get_hr_func(udev); in usbd_req_get_descriptor_ptr()
1249 USB_BUS_LOCK(udev->bus); in usbd_req_get_descriptor_ptr()
1250 err = (hr_func) (udev, &req, &ptr, &len); in usbd_req_get_descriptor_ptr()
1251 USB_BUS_UNLOCK(udev->bus); in usbd_req_get_descriptor_ptr()
1272 usbd_req_get_config_desc(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_config_desc() argument
1279 err = usbd_req_get_desc(udev, mtx, NULL, d, sizeof(*d), in usbd_req_get_config_desc()
1303 usbd_alloc_config_desc(struct usb_device *udev, uint32_t size) in usbd_alloc_config_desc() argument
1312 memset(udev->config_data, 0, sizeof(udev->config_data)); in usbd_alloc_config_desc()
1313 return (udev->config_data); in usbd_alloc_config_desc()
1323 usbd_free_config_desc(struct usb_device *udev, void *ptr) in usbd_free_config_desc() argument
1342 usbd_req_get_config_desc_full(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_config_desc_full() argument
1354 err = usbd_req_get_config_desc(udev, mtx, &cd, index); in usbd_req_get_config_desc_full()
1367 cdesc = usbd_alloc_config_desc(udev, len); in usbd_req_get_config_desc_full()
1370 err = usbd_req_get_desc(udev, mtx, NULL, cdesc, len, len, 0, in usbd_req_get_config_desc_full()
1373 usbd_free_config_desc(udev, cdesc); in usbd_req_get_config_desc_full()
1392 usbd_req_get_device_desc(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_device_desc() argument
1396 return (usbd_req_get_desc(udev, mtx, NULL, d, sizeof(*d), in usbd_req_get_device_desc()
1408 usbd_req_get_alt_interface_no(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_alt_interface_no() argument
1411 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_get_alt_interface_no()
1423 return (usbd_do_request(udev, mtx, &req, alt_iface_no)); in usbd_req_get_alt_interface_no()
1434 usbd_req_set_alt_interface_no(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_alt_interface_no() argument
1437 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_set_alt_interface_no()
1451 err = usbd_do_request(udev, mtx, &req, 0); in usbd_req_set_alt_interface_no()
1472 usbd_req_get_device_status(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_device_status() argument
1482 return (usbd_do_request(udev, mtx, &req, st)); in usbd_req_get_device_status()
1493 usbd_req_get_hub_descriptor(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_hub_descriptor() argument
1504 return (usbd_do_request(udev, mtx, &req, hd)); in usbd_req_get_hub_descriptor()
1515 usbd_req_get_ss_hub_descriptor(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_ss_hub_descriptor() argument
1526 return (usbd_do_request(udev, mtx, &req, hd)); in usbd_req_get_ss_hub_descriptor()
1537 usbd_req_get_hub_status(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_hub_status() argument
1547 return (usbd_do_request(udev, mtx, &req, st)); in usbd_req_get_hub_status()
1561 usbd_req_set_address(struct usb_device *udev, struct mtx *mtx, uint16_t addr) in usbd_req_set_address() argument
1577 if (udev->bus->methods->set_address != NULL) in usbd_req_set_address()
1578 err = (udev->bus->methods->set_address) (udev, mtx, addr); in usbd_req_set_address()
1584 err = usbd_do_request_flags(udev, mtx, &req, NULL, in usbd_req_set_address()
1603 usbd_req_get_port_status(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_port_status() argument
1615 return (usbd_do_request_flags(udev, mtx, &req, ps, 0, NULL, 1000)); in usbd_req_get_port_status()
1626 usbd_req_clear_hub_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_clear_hub_feature() argument
1636 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_clear_hub_feature()
1647 usbd_req_set_hub_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_hub_feature() argument
1657 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_hub_feature()
1668 usbd_req_set_hub_u1_timeout(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_hub_u1_timeout() argument
1679 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_hub_u1_timeout()
1690 usbd_req_set_hub_u2_timeout(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_hub_u2_timeout() argument
1701 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_hub_u2_timeout()
1712 usbd_req_set_hub_depth(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_hub_depth() argument
1722 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_hub_depth()
1733 usbd_req_clear_port_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_clear_port_feature() argument
1744 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_clear_port_feature()
1755 usbd_req_set_port_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_port_feature() argument
1766 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_port_feature()
1777 usbd_req_set_protocol(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_protocol() argument
1780 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_set_protocol()
1795 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_protocol()
1806 usbd_req_set_report(struct usb_device *udev, struct mtx *mtx, void *data, uint16_t len, in usbd_req_set_report() argument
1809 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_set_report()
1823 return (usbd_do_request(udev, mtx, &req, data)); in usbd_req_set_report()
1834 usbd_req_get_report(struct usb_device *udev, struct mtx *mtx, void *data, in usbd_req_get_report() argument
1837 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_get_report()
1851 return (usbd_do_request(udev, mtx, &req, data)); in usbd_req_get_report()
1862 usbd_req_set_idle(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_idle() argument
1865 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_set_idle()
1879 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_idle()
1890 usbd_req_get_report_descriptor(struct usb_device *udev, struct mtx *mtx, in usbd_req_get_report_descriptor() argument
1893 struct usb_interface *iface = usbd_get_iface(udev, iface_index); in usbd_req_get_report_descriptor()
1905 return (usbd_do_request(udev, mtx, &req, d)); in usbd_req_get_report_descriptor()
1920 usbd_req_set_config(struct usb_device *udev, struct mtx *mtx, uint8_t conf) in usbd_req_set_config() argument
1934 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_config()
1945 usbd_req_get_config(struct usb_device *udev, struct mtx *mtx, uint8_t *pconf) in usbd_req_get_config() argument
1954 return (usbd_do_request(udev, mtx, &req, pconf)); in usbd_req_get_config()
1961 usbd_setup_device_desc(struct usb_device *udev, struct mtx *mtx) in usbd_setup_device_desc() argument
1975 switch (udev->speed) { in usbd_setup_device_desc()
1979 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
1985 err = usbd_req_get_desc(udev, mtx, NULL, &udev->ddesc, in usbd_setup_device_desc()
1990 udev->ddesc.bMaxPacketSize = 8; in usbd_setup_device_desc()
1992 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
1996 udev->ddesc.bMaxPacketSize = 16; in usbd_setup_device_desc()
1998 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
2002 udev->ddesc.bMaxPacketSize = 32; in usbd_setup_device_desc()
2005 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
2014 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
2018 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc); in usbd_setup_device_desc()
2024 "at addr %d failed, %s\n", udev->address, in usbd_setup_device_desc()
2031 udev->address, UGETW(udev->ddesc.bcdUSB), in usbd_setup_device_desc()
2032 udev->ddesc.bDeviceClass, in usbd_setup_device_desc()
2033 udev->ddesc.bDeviceSubClass, in usbd_setup_device_desc()
2034 udev->ddesc.bDeviceProtocol, in usbd_setup_device_desc()
2035 udev->ddesc.bMaxPacketSize, in usbd_setup_device_desc()
2036 udev->ddesc.bLength, in usbd_setup_device_desc()
2037 udev->speed); in usbd_setup_device_desc()
2054 usbd_req_re_enumerate(struct usb_device *udev, struct mtx *mtx) in usbd_req_re_enumerate() argument
2061 if (udev->flags.usb_mode != USB_MODE_HOST) { in usbd_req_re_enumerate()
2064 old_addr = udev->address; in usbd_req_re_enumerate()
2065 parent_hub = udev->parent_hub; in usbd_req_re_enumerate()
2075 if (udev->parent_hs_hub != NULL && in usbd_req_re_enumerate()
2076 udev->speed != USB_SPEED_HIGH) { in usbd_req_re_enumerate()
2078 if (udev->parent_hs_hub == parent_hub && in usbd_req_re_enumerate()
2083 udev->hs_port_no); in usbd_req_re_enumerate()
2086 err = usbd_req_clear_tt_buffer(udev->parent_hs_hub, NULL, in usbd_req_re_enumerate()
2087 udev->hs_port_no, old_addr, UE_CONTROL, 0); in usbd_req_re_enumerate()
2098 usbd_req_warm_reset_port(parent_hub, mtx, udev->port_no); in usbd_req_re_enumerate()
2101 err = usbd_req_reset_port(parent_hub, mtx, udev->port_no); in usbd_req_re_enumerate()
2112 udev->address = USB_START_ADDR; in usbd_req_re_enumerate()
2115 udev->ddesc.bMaxPacketSize = USB_MAX_IPACKET; in usbd_req_re_enumerate()
2118 usb_set_device_state(udev, USB_STATE_POWERED); in usbd_req_re_enumerate()
2123 err = usbd_req_set_address(udev, mtx, old_addr); in usbd_req_re_enumerate()
2133 if (udev->address == USB_START_ADDR) in usbd_req_re_enumerate()
2134 udev->address = old_addr; in usbd_req_re_enumerate()
2137 err = usbd_setup_device_desc(udev, mtx); in usbd_req_re_enumerate()
2149 if (udev->address == USB_START_ADDR) in usbd_req_re_enumerate()
2150 udev->address = old_addr; in usbd_req_re_enumerate()
2153 usb_set_device_state(udev, USB_STATE_ADDRESSED); in usbd_req_re_enumerate()
2165 usbd_req_clear_device_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_clear_device_feature() argument
2175 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_clear_device_feature()
2186 usbd_req_set_device_feature(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_device_feature() argument
2196 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_device_feature()
2207 usbd_req_reset_tt(struct usb_device *udev, struct mtx *mtx, in usbd_req_reset_tt() argument
2214 if (udev->ddesc.bDeviceClass == UDCLASS_HUB && in usbd_req_reset_tt()
2215 udev->ddesc.bDeviceProtocol == UDPROTO_HSHUBSTT) in usbd_req_reset_tt()
2224 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_reset_tt()
2237 usbd_req_clear_tt_buffer(struct usb_device *udev, struct mtx *mtx, in usbd_req_clear_tt_buffer() argument
2245 if (udev->ddesc.bDeviceClass == UDCLASS_HUB && in usbd_req_clear_tt_buffer()
2246 udev->ddesc.bDeviceProtocol == UDPROTO_HSHUBSTT) in usbd_req_clear_tt_buffer()
2258 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_clear_tt_buffer()
2271 usbd_req_set_port_link_state(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_port_link_state() argument
2282 return (usbd_do_request(udev, mtx, &req, 0)); in usbd_req_set_port_link_state()
2298 usbd_req_set_lpm_info(struct usb_device *udev, struct mtx *mtx, in usbd_req_set_lpm_info() argument
2315 err = usbd_do_request(udev, mtx, &req, buf); in usbd_req_set_lpm_info()