Lines Matching refs:urb
28 static int is_clear_halt_cmd(struct urb *urb) in is_clear_halt_cmd() argument
32 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_clear_halt_cmd()
39 static int is_set_interface_cmd(struct urb *urb) in is_set_interface_cmd() argument
43 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_set_interface_cmd()
49 static int is_set_configuration_cmd(struct urb *urb) in is_set_configuration_cmd() argument
53 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_set_configuration_cmd()
59 static int is_reset_device_cmd(struct urb *urb) in is_reset_device_cmd() argument
65 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_reset_device_cmd()
78 static int tweak_clear_halt_cmd(struct urb *urb) in tweak_clear_halt_cmd() argument
86 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_clear_halt_cmd()
99 target_pipe = usb_rcvctrlpipe(urb->dev, target_endp); in tweak_clear_halt_cmd()
101 target_pipe = usb_sndctrlpipe(urb->dev, target_endp); in tweak_clear_halt_cmd()
103 ret = usb_clear_halt(urb->dev, target_pipe); in tweak_clear_halt_cmd()
105 dev_err(&urb->dev->dev, in tweak_clear_halt_cmd()
107 urb->dev->devnum, target_endp, ret); in tweak_clear_halt_cmd()
109 dev_info(&urb->dev->dev, in tweak_clear_halt_cmd()
111 urb->dev->devnum, target_endp); in tweak_clear_halt_cmd()
116 static int tweak_set_interface_cmd(struct urb *urb) in tweak_set_interface_cmd() argument
123 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_set_interface_cmd()
130 ret = usb_set_interface(urb->dev, interface, alternate); in tweak_set_interface_cmd()
132 dev_err(&urb->dev->dev, in tweak_set_interface_cmd()
136 dev_info(&urb->dev->dev, in tweak_set_interface_cmd()
143 static int tweak_set_configuration_cmd(struct urb *urb) in tweak_set_configuration_cmd() argument
145 struct stub_priv *priv = (struct stub_priv *) urb->context; in tweak_set_configuration_cmd()
151 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_set_configuration_cmd()
161 static int tweak_reset_device_cmd(struct urb *urb) in tweak_reset_device_cmd() argument
163 struct stub_priv *priv = (struct stub_priv *) urb->context; in tweak_reset_device_cmd()
166 dev_info(&urb->dev->dev, "usb_queue_reset_device\n"); in tweak_reset_device_cmd()
174 dev_err(&urb->dev->dev, "could not obtain lock to reset device\n"); in tweak_reset_device_cmd()
186 static void tweak_special_requests(struct urb *urb) in tweak_special_requests() argument
188 if (!urb || !urb->setup_packet) in tweak_special_requests()
191 if (usb_pipetype(urb->pipe) != PIPE_CONTROL) in tweak_special_requests()
194 if (is_clear_halt_cmd(urb)) in tweak_special_requests()
196 tweak_clear_halt_cmd(urb); in tweak_special_requests()
198 else if (is_set_interface_cmd(urb)) in tweak_special_requests()
200 tweak_set_interface_cmd(urb); in tweak_special_requests()
202 else if (is_set_configuration_cmd(urb)) in tweak_special_requests()
204 tweak_set_configuration_cmd(urb); in tweak_special_requests()
206 else if (is_reset_device_cmd(urb)) in tweak_special_requests()
207 tweak_reset_device_cmd(urb); in tweak_special_requests()
268 ret = usb_unlink_urb(priv->urb); in stub_recv_cmd_unlink()
270 dev_err(&priv->urb->dev->dev, in stub_recv_cmd_unlink()
404 static void masking_bogus_flags(struct urb *urb) in masking_bogus_flags() argument
412 if (!urb || urb->hcpriv || !urb->complete) in masking_bogus_flags()
414 dev = urb->dev; in masking_bogus_flags()
418 ep = (usb_pipein(urb->pipe) ? dev->ep_in : dev->ep_out) in masking_bogus_flags()
419 [usb_pipeendpoint(urb->pipe)]; in masking_bogus_flags()
426 (struct usb_ctrlrequest *) urb->setup_packet; in masking_bogus_flags()
455 urb->transfer_flags &= allowed; in masking_bogus_flags()
476 priv->urb = usb_alloc_urb(pdu->u.cmd_submit.number_of_packets, in stub_recv_cmd_submit()
479 priv->urb = usb_alloc_urb(0, GFP_KERNEL); in stub_recv_cmd_submit()
481 if (!priv->urb) { in stub_recv_cmd_submit()
489 priv->urb->transfer_buffer = in stub_recv_cmd_submit()
492 if (!priv->urb->transfer_buffer) { in stub_recv_cmd_submit()
499 priv->urb->setup_packet = kmemdup(&pdu->u.cmd_submit.setup, 8, in stub_recv_cmd_submit()
501 if (!priv->urb->setup_packet) { in stub_recv_cmd_submit()
508 priv->urb->context = (void *) priv; in stub_recv_cmd_submit()
509 priv->urb->dev = udev; in stub_recv_cmd_submit()
510 priv->urb->pipe = pipe; in stub_recv_cmd_submit()
511 priv->urb->complete = stub_complete; in stub_recv_cmd_submit()
513 usbip_pack_pdu(pdu, priv->urb, USBIP_CMD_SUBMIT, 0); in stub_recv_cmd_submit()
516 if (usbip_recv_xbuff(ud, priv->urb) < 0) in stub_recv_cmd_submit()
519 if (usbip_recv_iso(ud, priv->urb) < 0) in stub_recv_cmd_submit()
523 tweak_special_requests(priv->urb); in stub_recv_cmd_submit()
525 masking_bogus_flags(priv->urb); in stub_recv_cmd_submit()
527 ret = usb_submit_urb(priv->urb, GFP_KERNEL); in stub_recv_cmd_submit()
535 usbip_dump_urb(priv->urb); in stub_recv_cmd_submit()