Lines Matching refs:udev

21 static uint16_t usb_dev_get_ep_maxp(struct usb_dev *udev, int pid, int epnum);
186 info = &r->udev->info; in usb_dev_comp_cb()
191 maxp = usb_dev_get_ep_maxp(r->udev, r->in, xfer->epid / 2); in usb_dev_comp_cb()
330 usb_dev_alloc_req(struct usb_dev *udev, struct usb_xfer *xfer, int in, in usb_dev_alloc_req() argument
336 if (!udev || !xfer || count < 0) in usb_dev_alloc_req()
343 req->udev = udev; in usb_dev_alloc_req()
427 usb_dev_get_ep(struct usb_dev *udev, int pid, int ep) in usb_dev_get_ep() argument
435 return &udev->epc; in usb_dev_get_ep()
438 return udev->epi + ep - 1; in usb_dev_get_ep()
440 return udev->epo + ep - 1; in usb_dev_get_ep()
444 usb_dev_set_ep_type(struct usb_dev *udev, int pid, int epnum, in usb_dev_set_ep_type() argument
449 ep = usb_dev_get_ep(udev, pid, epnum); in usb_dev_set_ep_type()
455 usb_dev_get_ep_type(struct usb_dev *udev, int pid, int epnum) in usb_dev_get_ep_type() argument
459 ep = usb_dev_get_ep(udev, pid, epnum); in usb_dev_get_ep_type()
467 usb_dev_set_ep_maxp(struct usb_dev *udev, int pid, int epnum, uint16_t maxp) in usb_dev_set_ep_maxp() argument
471 ep = usb_dev_get_ep(udev, pid, epnum); in usb_dev_set_ep_maxp()
477 usb_dev_get_ep_maxp(struct usb_dev *udev, int pid, int epnum) in usb_dev_get_ep_maxp() argument
481 ep = usb_dev_get_ep(udev, pid, epnum); in usb_dev_get_ep_maxp()
489 usb_dev_reset_ep(struct usb_dev *udev) in usb_dev_reset_ep() argument
493 udev->epc.type = USB_ENDPOINT_CONTROL; in usb_dev_reset_ep()
495 udev->epi[ep].pid = TOKEN_IN; in usb_dev_reset_ep()
496 udev->epo[ep].pid = TOKEN_OUT; in usb_dev_reset_ep()
497 udev->epi[ep].type = USB_ENDPOINT_INVALID; in usb_dev_reset_ep()
498 udev->epo[ep].type = USB_ENDPOINT_INVALID; in usb_dev_reset_ep()
503 usb_dev_update_ep(struct usb_dev *udev) in usb_dev_update_ep() argument
510 if (libusb_get_active_config_descriptor(udev->info.priv_data, &cfg)) in usb_dev_update_ep()
514 _if = &cfg->interface[i].altsetting[udev->alts[i]]; in usb_dev_update_ep()
518 usb_dev_set_ep_type(udev, in usb_dev_update_ep()
522 usb_dev_set_ep_maxp(udev, in usb_dev_update_ep()
532 usb_dev_native_toggle_if(struct usb_dev *udev, int claim) in usb_dev_native_toggle_if() argument
539 path = &udev->info.path; in usb_dev_native_toggle_if()
540 r = libusb_get_active_config_descriptor(udev->info.priv_data, &config); in usb_dev_native_toggle_if()
550 r = libusb_claim_interface(udev->handle, i); in usb_dev_native_toggle_if()
552 r = libusb_release_interface(udev->handle, i); in usb_dev_native_toggle_if()
578 usb_dev_native_toggle_if_drivers(struct usb_dev *udev, int attach) in usb_dev_native_toggle_if_drivers() argument
585 path = &udev->info.path; in usb_dev_native_toggle_if_drivers()
586 r = libusb_get_active_config_descriptor(udev->info.priv_data, &config); in usb_dev_native_toggle_if_drivers()
598 r = libusb_attach_kernel_driver(udev->handle, i); in usb_dev_native_toggle_if_drivers()
600 if (libusb_kernel_driver_active(udev->handle, i) == 1) in usb_dev_native_toggle_if_drivers()
601 r = libusb_detach_kernel_driver(udev->handle, in usb_dev_native_toggle_if_drivers()
622 usb_dev_set_config(struct usb_dev *udev, struct usb_xfer *xfer, int config) in usb_dev_set_config() argument
632 usb_dev_native_toggle_if_drivers(udev, 0); in usb_dev_set_config()
633 usb_dev_native_toggle_if(udev, 0); in usb_dev_set_config()
635 rc = libusb_set_configuration(udev->handle, config); in usb_dev_set_config()
642 rc = libusb_get_active_config_descriptor(udev->info.priv_data, &cfg); in usb_dev_set_config()
648 rc = usb_dev_native_toggle_if(udev, 1); in usb_dev_set_config()
654 udev->if_num = cfg->bNumInterfaces; in usb_dev_set_config()
655 udev->configuration = config; in usb_dev_set_config()
657 usb_dev_reset_ep(udev); in usb_dev_set_config()
658 usb_dev_update_ep(udev); in usb_dev_set_config()
663 usb_dev_native_toggle_if(udev, 0); in usb_dev_set_config()
666 UPRINTF(LWRN, "%d-%s: fail to set config\r\n", udev->info.path.bus, in usb_dev_set_config()
667 usb_dev_path(&udev->info.path)); in usb_dev_set_config()
672 usb_dev_set_if(struct usb_dev *udev, int iface, int alt, struct usb_xfer in usb_dev_set_if() argument
678 UPRINTF(LDBG, "%d-%s set if, iface %d alt %d\r\n", udev->info.path.bus, in usb_dev_set_if()
679 usb_dev_path(&udev->info.path), iface, alt); in usb_dev_set_if()
681 if (libusb_set_interface_alt_setting(udev->handle, iface, alt)) in usb_dev_set_if()
684 udev->alts[iface] = alt; in usb_dev_set_if()
689 usb_dev_reset_ep(udev); in usb_dev_set_if()
690 usb_dev_update_ep(udev); in usb_dev_set_if()
696 udev->info.path.bus, in usb_dev_set_if()
697 usb_dev_path(&udev->info.path), in usb_dev_set_if()
732 struct usb_dev *udev; in usb_dev_reset() local
735 udev = pdata; in usb_dev_reset()
738 libusb_reset_device(udev->handle); in usb_dev_reset()
739 usb_dev_reset_ep(udev); in usb_dev_reset()
740 usb_dev_update_ep(udev); in usb_dev_reset()
741 rc = libusb_reset_device(udev->handle); in usb_dev_reset()
743 usb_dev_reset_ep(udev); in usb_dev_reset()
744 usb_dev_update_ep(udev); in usb_dev_reset()
752 struct usb_dev *udev; in usb_dev_data() local
764 udev = pdata; in usb_dev_data()
765 info = &udev->info; in usb_dev_data()
771 type = usb_dev_get_ep_type(udev, dir ? TOKEN_IN : TOKEN_OUT, epctx); in usb_dev_data()
783 maxp = usb_dev_get_ep_maxp(udev, dir, epctx); in usb_dev_data()
810 r = usb_dev_alloc_req(udev, xfer, dir, size, type == in usb_dev_data()
866 libusb_fill_bulk_transfer(r->trn, udev->handle, epid, in usb_dev_data()
870 libusb_fill_interrupt_transfer(r->trn, udev->handle, epid, in usb_dev_data()
874 libusb_fill_iso_transfer(r->trn, udev->handle, epid, in usb_dev_data()
898 clear_uas_desc(struct usb_dev *udev, uint8_t *data, int len) in clear_uas_desc() argument
908 path = &udev->info.path; in clear_uas_desc()
930 struct usb_dev *udev; in usb_dev_request() local
941 udev = pdata; in usb_dev_request()
943 if (!udev->info.priv_data || !xfer->ureq) { in usb_dev_request()
959 "data %d\r\n", udev->info.path.bus, in usb_dev_request()
960 usb_dev_path(&udev->info.path), request_type, request, in usb_dev_request()
976 udev->addr = value; in usb_dev_request()
980 usb_dev_set_config(udev, xfer, value & 0xff); in usb_dev_request()
984 usb_dev_set_if(udev, index, value, xfer); in usb_dev_request()
999 rc = libusb_clear_halt(udev->handle, index); in usb_dev_request()
1019 rc = libusb_control_transfer(udev->handle, request_type, request, in usb_dev_request()
1031 clear_uas_desc(udev, data, rc); in usb_dev_request()
1043 udev->info.path.bus, usb_dev_path(&udev->info.path), in usb_dev_request()
1052 struct usb_dev *udev = NULL; in usb_dev_init() local
1067 udev = calloc(1, sizeof(struct usb_dev)); in usb_dev_init()
1068 if (!udev) in usb_dev_init()
1097 udev->info = *di; in usb_dev_init()
1098 udev->version = ver; in usb_dev_init()
1099 udev->handle = NULL; in usb_dev_init()
1102 if (libusb_open(udev->info.priv_data, &udev->handle)) { in usb_dev_init()
1107 if (usb_dev_native_toggle_if_drivers(udev, 0) < 0) { in usb_dev_init()
1111 return udev; in usb_dev_init()
1114 if (udev && udev->handle) in usb_dev_init()
1115 libusb_close(udev->handle); in usb_dev_init()
1117 free(udev); in usb_dev_init()
1143 struct usb_dev *udev; in usb_dev_deinit() local
1145 udev = pdata; in usb_dev_deinit()
1146 if (udev) { in usb_dev_deinit()
1147 if (udev->handle) { in usb_dev_deinit()
1148 rc = usb_dev_native_toggle_if_drivers(udev, 1); in usb_dev_deinit()
1152 libusb_close(udev->handle); in usb_dev_deinit()
1154 free(udev); in usb_dev_deinit()
1161 struct usb_dev *udev; in usb_dev_info() local
1165 udev = pdata; in usb_dev_info()
1169 sz = sizeof(udev->version); in usb_dev_info()
1170 pv = &udev->version; in usb_dev_info()
1173 sz = sizeof(udev->info.speed); in usb_dev_info()
1174 udev->info.speed = libusb_speed_to_usb_speed(udev->info.speed); in usb_dev_info()
1175 pv = &udev->info.speed; in usb_dev_info()
1178 sz = sizeof(udev->info.path.bus); in usb_dev_info()
1179 pv = &udev->info.path.bus; in usb_dev_info()
1182 sz = sizeof(udev->info.path.path[0]); in usb_dev_info()
1183 pv = &udev->info.path.path[0]; in usb_dev_info()
1186 sz = sizeof(udev->info.vid); in usb_dev_info()
1187 pv = &udev->info.vid; in usb_dev_info()
1190 sz = sizeof(udev->info.pid); in usb_dev_info()
1191 pv = &udev->info.pid; in usb_dev_info()