• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/isdn/hisax/

Lines Matching refs:urb

18 static int st5481_isoc_flatten(struct urb *urb);
28 static void usb_next_ctrl_msg(struct urb *urb,
42 urb->setup_packet =
46 ((struct ctrl_msg *)urb->setup_packet)->dr.bRequest,
47 ((struct ctrl_msg *)urb->setup_packet)->dr.wValue,
48 ((struct ctrl_msg *)urb->setup_packet)->dr.wIndex);
51 urb->dev = adapter->usb_dev;
53 SUBMIT_URB(urb, GFP_ATOMIC);
82 usb_next_ctrl_msg(ctrl->urb, adapter);
128 static void usb_ctrl_complete(struct urb *urb)
130 struct st5481_adapter *adapter = urb->context;
134 if (unlikely(urb->status < 0)) {
135 switch (urb->status) {
139 DBG(1,"urb killed status %d", urb->status);
142 WARN("urb status %d",urb->status);
147 ctrl_msg = (struct ctrl_msg *)urb->setup_packet;
168 usb_next_ctrl_msg(urb, adapter);
182 static void usb_int_complete(struct urb *urb)
184 u8 *data = urb->transfer_buffer;
186 struct st5481_adapter *adapter = urb->context;
190 switch (urb->status) {
197 /* this urb is terminated, clean up */
198 DBG(2, "urb shutting down with status: %d", urb->status);
201 WARN("nonzero urb status received: %d", urb->status);
208 if (urb->actual_length == 0) {
233 urb->actual_length = 0;
236 status = usb_submit_urb (urb, GFP_ATOMIC);
254 struct urb *urb;
287 urb = usb_alloc_urb(0, GFP_KERNEL);
288 if (!urb) {
291 ctrl->urb = urb;
294 usb_fill_control_urb (urb, dev,
302 urb = usb_alloc_urb(0, GFP_KERNEL);
303 if (!urb) {
306 intr->urb = urb;
316 usb_fill_int_urb(urb, dev,
337 usb_kill_urb(ctrl->urb);
338 kfree(ctrl->urb->transfer_buffer);
339 usb_free_urb(ctrl->urb);
340 ctrl->urb = NULL;
342 usb_kill_urb(intr->urb);
343 kfree(intr->urb->transfer_buffer);
344 usb_free_urb(intr->urb);
345 ctrl->urb = NULL;
379 SUBMIT_URB(intr->urb, GFP_KERNEL);
403 fill_isoc_urb(struct urb *urb, struct usb_device *dev,
410 urb->dev=dev;
411 urb->pipe=pipe;
412 urb->interval = 1;
413 urb->transfer_buffer=buf;
414 urb->number_of_packets = num_packets;
415 urb->transfer_buffer_length=num_packets*packet_size;
416 urb->actual_length = 0;
417 urb->complete=complete;
418 urb->context=context;
419 urb->transfer_flags=URB_ISO_ASAP;
421 urb->iso_frame_desc[k].offset = packet_size * k;
422 urb->iso_frame_desc[k].length = packet_size;
423 urb->iso_frame_desc[k].actual_length = 0;
428 st5481_setup_isocpipes(struct urb* urb[2], struct usb_device *dev,
438 urb[j] = usb_alloc_urb(num_packets, GFP_KERNEL);
439 if (!urb[j])
448 fill_isoc_urb(urb[j], dev, pipe, buf,
456 if (urb[j]) {
457 kfree(urb[j]->transfer_buffer);
458 urb[j]->transfer_buffer = NULL;
459 usb_free_urb(urb[j]);
460 urb[j] = NULL;
466 void st5481_release_isocpipes(struct urb* urb[2])
471 usb_kill_urb(urb[j]);
472 kfree(urb[j]->transfer_buffer);
473 usb_free_urb(urb[j]);
474 urb[j] = NULL;
485 static void usb_in_complete(struct urb *urb)
487 struct st5481_in *in = urb->context;
492 if (unlikely(urb->status < 0)) {
493 switch (urb->status) {
497 DBG(1,"urb killed status %d", urb->status);
500 WARN("urb status %d",urb->status);
505 DBG_ISO_PACKET(0x80,urb);
507 len = st5481_isoc_flatten(urb);
508 ptr = urb->transfer_buffer;
541 urb->dev = in->adapter->usb_dev;
542 urb->actual_length = 0;
544 SUBMIT_URB(urb, GFP_ATOMIC);
559 retval = st5481_setup_isocpipes(in->urb, dev,
578 st5481_release_isocpipes(in->urb);
585 static int st5481_isoc_flatten(struct urb *urb)
591 if (urb->status < 0) {
592 return urb->status;
594 for (pipd = &urb->iso_frame_desc[0],
595 pend = &urb->iso_frame_desc[urb->number_of_packets],
596 dst = urb->transfer_buffer;
606 src = urb->transfer_buffer+pipd->offset;
619 return (dst - (unsigned char *)urb->transfer_buffer);
629 in->urb[0]->dev = adapter->usb_dev;
630 SUBMIT_URB(in->urb[0], GFP_KERNEL);
632 in->urb[1]->dev = adapter->usb_dev;
633 SUBMIT_URB(in->urb[1], GFP_KERNEL);
643 usb_unlink_urb(in->urb[0]);
644 usb_unlink_urb(in->urb[1]);