Lines Matching refs:udev

106 usbd_get_debug_bits(struct usb_device *udev, struct usb_device_request *req,
135 if (usbd_get_bus_index(udev) != usb_ctrl_debug.bus_index)
138 if (usbd_get_device_index(udev) != usb_ctrl_debug.dev_index)
182 (void)cv_signal(&xfer->xroot->udev->ctrlreq_cv);
196 struct usb_device *udev;
203 udev = xfer->xroot->udev;
205 USB_BUS_LOCK(udev->bus);
209 ep = udev->ep_curr;
210 ep_end = udev->endpoints + udev->endpoints_max;
211 ep_first = udev->endpoints;
212 to = udev->endpoints_max;
218 udev->clear_stall_errors = 0;
227 usbd_clear_stall_locked(udev, ep);
260 USB_BUS_UNLOCK(udev->bus);
264 USB_BUS_LOCK(udev->bus);
293 if (udev->clear_stall_errors == USB_CS_RESET_LIMIT)
297 udev->clear_stall_errors = USB_CS_RESET_LIMIT;
299 usbd_start_re_enumerate(udev);
301 udev->clear_stall_errors++;
302 if (udev->clear_stall_errors == USB_CS_RESET_LIMIT) {
304 usbd_start_re_enumerate(udev);
311 udev->ep_curr = ep;
312 USB_BUS_UNLOCK(udev->bus);
316 usbd_get_hr_func(struct usb_device *udev)
319 if (udev->flags.usb_mode == USB_MODE_DEVICE)
321 else if (udev->parent_hub == NULL)
322 return (udev->bus->methods->roothub_exec);
332 * "udev" - this is the "usb_device" structure pointer on which the
382 usbd_do_request_flags(struct usb_device *udev, struct mtx *mtx,
411 DPRINTFN(6, "udev=%p bmRequestType=0x%02x bRequest=0x%02x "
413 udev, req->bmRequestType, req->bRequest,
419 if (udev->state < USB_STATE_POWERED) {
443 do_unlock = usbd_ctrl_lock(udev);
445 hr_func = usbd_get_hr_func(udev);
463 USB_BUS_LOCK(udev->bus);
464 err = (hr_func) (udev, req, &desc, &temp);
465 USB_BUS_UNLOCK(udev->bus);
497 usbd_ctrl_transfer_setup(udev);
499 xfer = udev->ctrl_xfer[0];
508 usbd_get_debug_bits(udev, req, &dbg);
608 (void)cv_wait(&udev->ctrlreq_cv,
687 usbd_ctrl_unlock(udev);
717 usbd_do_request_proc(struct usb_device *udev, struct usb_process *pproc,
734 err = usbd_do_request_flags(udev, pproc->up_mtx,
761 usbd_req_reset_port(struct usb_device *udev, struct mtx *mtx, uint8_t port)
773 udev, mtx, port, UHF_C_PORT_RESET);
777 udev, mtx, port, UHF_PORT_RESET);
787 err = usbd_req_get_port_status(udev, mtx, &ps, port);
810 udev, mtx, port, UHF_C_PORT_RESET);
819 if ((udev->speed == USB_SPEED_SUPER) &&
823 udev, mtx, port, UHF_C_BH_PORT_RESET);
864 usbd_req_warm_reset_port(struct usb_device *udev, struct mtx *mtx,
875 err = usbd_req_get_port_status(udev, mtx, &ps, port);
893 (void)usbd_req_clear_port_feature(udev, mtx,
897 err = usbd_req_set_port_feature(udev, mtx,
907 err = usbd_req_get_port_status(udev, mtx, &ps, port);
931 udev, mtx, port, UHF_C_BH_PORT_RESET);
974 usbd_req_get_desc(struct usb_device *udev,
999 err = usbd_do_request_flags(udev, mtx, &req,
1063 usbd_req_get_string_any(struct usb_device *udev, struct mtx *mtx, char *buf,
1083 if (udev->flags.no_strings) {
1088 (udev, mtx, buf, len, udev->langid, string_index);
1165 usbd_req_get_string_desc(struct usb_device *udev, struct mtx *mtx, void *sdesc,
1169 return (usbd_req_get_desc(udev, mtx, NULL, sdesc, 2, max_len, lang_id,
1185 usbd_req_get_descriptor_ptr(struct usb_device *udev,
1203 hr_func = usbd_get_hr_func(udev);
1208 USB_BUS_LOCK(udev->bus);
1209 err = (hr_func) (udev, &req, &ptr, &len);
1210 USB_BUS_UNLOCK(udev->bus);
1231 usbd_req_get_config_desc(struct usb_device *udev, struct mtx *mtx,
1238 err = usbd_req_get_desc(udev, mtx, NULL, d, sizeof(*d),
1262 usbd_alloc_config_desc(struct usb_device *udev, uint32_t size)
1271 (void)memset_s(udev->config_data, sizeof(udev->config_data), 0, sizeof(udev->config_data));
1272 return (udev->config_data);
1282 usbd_free_config_desc(struct usb_device *udev, void *ptr)
1301 usbd_req_get_config_desc_full(struct usb_device *udev, struct mtx *mtx,
1313 err = usbd_req_get_config_desc(udev, mtx, &cd, index);
1326 cdesc = usbd_alloc_config_desc(udev, len);
1329 err = usbd_req_get_desc(udev, mtx, NULL, cdesc, len, len, 0,
1332 usbd_free_config_desc(udev, cdesc);
1351 usbd_req_get_device_desc(struct usb_device *udev, struct mtx *mtx,
1355 return (usbd_req_get_desc(udev, mtx, NULL, d, sizeof(*d),
1367 usbd_req_get_alt_interface_no(struct usb_device *udev, struct mtx *mtx,
1370 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1382 return (usbd_do_request(udev, mtx, &req, alt_iface_no));
1393 usbd_req_set_alt_interface_no(struct usb_device *udev, struct mtx *mtx,
1396 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1410 err = usbd_do_request(udev, mtx, &req, 0);
1431 usbd_req_get_device_status(struct usb_device *udev, struct mtx *mtx,
1441 return (usbd_do_request(udev, mtx, &req, st));
1452 usbd_req_get_hub_descriptor(struct usb_device *udev, struct mtx *mtx,
1463 return (usbd_do_request(udev, mtx, &req, hd));
1474 usbd_req_get_ss_hub_descriptor(struct usb_device *udev, struct mtx *mtx,
1485 return (usbd_do_request(udev, mtx, &req, hd));
1496 usbd_req_get_hub_status(struct usb_device *udev, struct mtx *mtx,
1506 return (usbd_do_request(udev, mtx, &req, st));
1520 usbd_req_set_address(struct usb_device *udev, struct mtx *mtx, uint16_t addr)
1536 if (udev->bus->methods->set_address != NULL)
1537 err = (udev->bus->methods->set_address) (udev, mtx, addr);
1543 err = usbd_do_request_flags(udev, mtx, &req, NULL,
1562 usbd_req_get_port_status(struct usb_device *udev, struct mtx *mtx,
1573 return (usbd_do_request(udev, mtx, &req, ps));
1584 usbd_req_clear_hub_feature(struct usb_device *udev, struct mtx *mtx,
1594 return (usbd_do_request(udev, mtx, &req, 0));
1605 usbd_req_set_hub_feature(struct usb_device *udev, struct mtx *mtx,
1615 return (usbd_do_request(udev, mtx, &req, 0));
1626 usbd_req_set_hub_u1_timeout(struct usb_device *udev, struct mtx *mtx,
1637 return (usbd_do_request(udev, mtx, &req, 0));
1648 usbd_req_set_hub_u2_timeout(struct usb_device *udev, struct mtx *mtx,
1659 return (usbd_do_request(udev, mtx, &req, 0));
1670 usbd_req_set_hub_depth(struct usb_device *udev, struct mtx *mtx,
1680 return (usbd_do_request(udev, mtx, &req, 0));
1691 usbd_req_clear_port_feature(struct usb_device *udev, struct mtx *mtx,
1702 return (usbd_do_request(udev, mtx, &req, 0));
1713 usbd_req_set_port_feature(struct usb_device *udev, struct mtx *mtx,
1724 return (usbd_do_request(udev, mtx, &req, 0));
1735 usbd_req_set_protocol(struct usb_device *udev, struct mtx *mtx,
1738 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1753 return (usbd_do_request(udev, mtx, &req, 0));
1764 usbd_req_set_report(struct usb_device *udev, struct mtx *mtx, void *data, uint16_t len,
1767 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1781 return (usbd_do_request(udev, mtx, &req, data));
1792 usbd_req_get_report(struct usb_device *udev, struct mtx *mtx, void *data,
1795 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1809 return (usbd_do_request(udev, mtx, &req, data));
1820 usbd_req_set_idle(struct usb_device *udev, struct mtx *mtx,
1823 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1837 return (usbd_do_request(udev, mtx, &req, 0));
1848 usbd_req_get_report_descriptor(struct usb_device *udev, struct mtx *mtx,
1851 struct usb_interface *iface = usbd_get_iface(udev, iface_index);
1863 return (usbd_do_request(udev, mtx, &req, d));
1878 usbd_req_set_config(struct usb_device *udev, struct mtx *mtx, uint8_t conf)
1892 return (usbd_do_request(udev, mtx, &req, 0));
1903 usbd_req_get_config(struct usb_device *udev, struct mtx *mtx, uint8_t *pconf)
1912 return (usbd_do_request(udev, mtx, &req, pconf));
1919 usbd_setup_device_desc(struct usb_device *udev, struct mtx *mtx)
1933 switch (udev->speed) {
1937 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1943 err = usbd_req_get_desc(udev, mtx, NULL, &udev->ddesc,
1948 udev->ddesc.bMaxPacketSize = 8;
1950 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1954 udev->ddesc.bMaxPacketSize = 16;
1956 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1960 udev->ddesc.bMaxPacketSize = 32;
1964 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1973 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1977 err = usbd_req_get_device_desc(udev, mtx, &udev->ddesc);
1983 "at addr %d failed, %s\n", udev->address,
1990 udev->address, UGETW(udev->ddesc.bcdUSB),
1991 udev->ddesc.bDeviceClass,
1992 udev->ddesc.bDeviceSubClass,
1993 udev->ddesc.bDeviceProtocol,
1994 udev->ddesc.bMaxPacketSize,
1995 udev->ddesc.bLength,
1996 udev->speed);
2013 usbd_req_re_enumerate(struct usb_device *udev, struct mtx *mtx)
2020 if (udev->flags.usb_mode != USB_MODE_HOST) {
2024 old_addr = udev->address;
2025 parent_hub = udev->parent_hub;
2035 if ((udev->parent_hs_hub != NULL) &&
2036 (udev->speed != USB_SPEED_HIGH)) {
2038 if ((udev->parent_hs_hub == parent_hub) &&
2043 udev->hs_port_no);
2046 err = usbd_req_clear_tt_buffer(udev->parent_hs_hub, NULL,
2047 udev->hs_port_no, old_addr, UE_CONTROL, 0);
2058 (void)usbd_req_warm_reset_port(parent_hub, mtx, udev->port_no);
2061 err = usbd_req_reset_port(parent_hub, mtx, udev->port_no);
2072 udev->address = USB_START_ADDR;
2075 udev->ddesc.bMaxPacketSize = USB_MAX_IPACKET;
2078 usb_set_device_state(udev, USB_STATE_POWERED);
2083 err = usbd_req_set_address(udev, mtx, old_addr);
2093 if (udev->address == USB_START_ADDR)
2094 udev->address = old_addr;
2097 err = usbd_setup_device_desc(udev, mtx);
2109 if (udev->address == USB_START_ADDR)
2110 udev->address = old_addr;
2113 usb_set_device_state(udev, USB_STATE_ADDRESSED);
2125 usbd_req_clear_device_feature(struct usb_device *udev, struct mtx *mtx,
2135 return (usbd_do_request(udev, mtx, &req, 0));
2146 usbd_req_set_device_feature(struct usb_device *udev, struct mtx *mtx,
2156 return (usbd_do_request(udev, mtx, &req, 0));
2167 usbd_req_reset_tt(struct usb_device *udev, struct mtx *mtx,
2174 if ((udev->ddesc.bDeviceClass == UDCLASS_HUB) &&
2175 (udev->ddesc.bDeviceProtocol == UDPROTO_HSHUBSTT))
2184 return (usbd_do_request(udev, mtx, &req, 0));
2197 usbd_req_clear_tt_buffer(struct usb_device *udev, struct mtx *mtx,
2205 if ((udev->ddesc.bDeviceClass == UDCLASS_HUB) &&
2206 (udev->ddesc.bDeviceProtocol == UDPROTO_HSHUBSTT))
2218 return (usbd_do_request(udev, mtx, &req, 0));
2231 usbd_req_set_port_link_state(struct usb_device *udev, struct mtx *mtx,
2242 return (usbd_do_request(udev, mtx, &req, 0));
2258 usbd_req_set_lpm_info(struct usb_device *udev, struct mtx *mtx,
2275 err = usbd_do_request(udev, mtx, &req, buf);