Lines Matching refs:urb
122 static void au0828_irq_callback(struct urb *urb) in au0828_irq_callback() argument
124 struct au0828_dmaqueue *dma_q = urb->context; in au0828_irq_callback()
129 switch (urb->status) { in au0828_irq_callback()
139 au0828_isocdbg("urb completition error %d.\n", urb->status); in au0828_irq_callback()
145 dev->isoc_ctl.isoc_copy(dev, urb); in au0828_irq_callback()
149 for (i = 0; i < urb->number_of_packets; i++) { in au0828_irq_callback()
150 urb->iso_frame_desc[i].status = 0; in au0828_irq_callback()
151 urb->iso_frame_desc[i].actual_length = 0; in au0828_irq_callback()
153 urb->status = 0; in au0828_irq_callback()
155 urb->status = usb_submit_urb(urb, GFP_ATOMIC); in au0828_irq_callback()
156 if (urb->status) { in au0828_irq_callback()
158 urb->status); in au0828_irq_callback()
168 struct urb *urb; in au0828_uninit_isoc() local
175 urb = dev->isoc_ctl.urb[i]; in au0828_uninit_isoc()
176 if (urb) { in au0828_uninit_isoc()
178 usb_kill_urb(urb); in au0828_uninit_isoc()
180 usb_unlink_urb(urb); in au0828_uninit_isoc()
184 urb->transfer_buffer_length, in au0828_uninit_isoc()
186 urb->transfer_dma); in au0828_uninit_isoc()
188 usb_free_urb(urb); in au0828_uninit_isoc()
189 dev->isoc_ctl.urb[i] = NULL; in au0828_uninit_isoc()
194 kfree(dev->isoc_ctl.urb); in au0828_uninit_isoc()
197 dev->isoc_ctl.urb = NULL; in au0828_uninit_isoc()
209 int (*isoc_copy) (struct au0828_dev *dev, struct urb *urb)) in au0828_init_isoc() argument
214 struct urb *urb; in au0828_init_isoc() local
223 dev->isoc_ctl.urb = kzalloc(sizeof(void *)*num_bufs, GFP_KERNEL); in au0828_init_isoc()
224 if (!dev->isoc_ctl.urb) { in au0828_init_isoc()
233 kfree(dev->isoc_ctl.urb); in au0828_init_isoc()
244 urb = usb_alloc_urb(max_packets, GFP_KERNEL); in au0828_init_isoc()
245 if (!urb) { in au0828_init_isoc()
250 dev->isoc_ctl.urb[i] = urb; in au0828_init_isoc()
253 sb_size, GFP_KERNEL, &urb->transfer_dma); in au0828_init_isoc()
267 usb_fill_int_urb(urb, dev->usbdev, pipe, in au0828_init_isoc()
271 urb->number_of_packets = max_packets; in au0828_init_isoc()
272 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP; in au0828_init_isoc()
276 urb->iso_frame_desc[j].offset = k; in au0828_init_isoc()
277 urb->iso_frame_desc[j].length = in au0828_init_isoc()
285 rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_ATOMIC); in au0828_init_isoc()
504 static inline int au0828_isoc_copy(struct au0828_dev *dev, struct urb *urb) in au0828_isoc_copy() argument
508 struct au0828_dmaqueue *dma_q = urb->context; in au0828_isoc_copy()
525 if (urb->status < 0) { in au0828_isoc_copy()
526 print_err_status(dev, -1, urb->status); in au0828_isoc_copy()
527 if (urb->status == -ENOENT) in au0828_isoc_copy()
539 for (i = 0; i < urb->number_of_packets; i++) { in au0828_isoc_copy()
540 int status = urb->iso_frame_desc[i].status; in au0828_isoc_copy()
544 if (urb->iso_frame_desc[i].status != -EPROTO) in au0828_isoc_copy()
548 if (urb->iso_frame_desc[i].actual_length <= 0) in au0828_isoc_copy()
551 if (urb->iso_frame_desc[i].actual_length > in au0828_isoc_copy()
557 p = urb->transfer_buffer + urb->iso_frame_desc[i].offset; in au0828_isoc_copy()
559 len = urb->iso_frame_desc[i].actual_length - 4; in au0828_isoc_copy()
1583 struct urb *urb; in au0828_v4l2_suspend() local
1593 urb = dev->isoc_ctl.urb[i]; in au0828_v4l2_suspend()
1594 if (urb) { in au0828_v4l2_suspend()
1596 usb_kill_urb(urb); in au0828_v4l2_suspend()
1598 usb_unlink_urb(urb); in au0828_v4l2_suspend()
1634 rc = usb_submit_urb(dev->isoc_ctl.urb[i], GFP_ATOMIC); in au0828_v4l2_resume()