Lines Matching refs:urb
51 struct urb *last_data_urb;
88 static void sd_isoc_irq(struct urb *urb);
179 struct urb *urb; in sd_start() local
210 urb = usb_alloc_urb(SD_NPKT, GFP_KERNEL); in sd_start()
211 if (!urb) { in sd_start()
215 gspca_dev->urb[n] = urb; in sd_start()
216 urb->transfer_buffer = usb_alloc_coherent(gspca_dev->dev, in sd_start()
219 &urb->transfer_dma); in sd_start()
220 if (urb->transfer_buffer == NULL) { in sd_start()
225 urb->dev = gspca_dev->dev; in sd_start()
226 urb->context = gspca_dev; in sd_start()
227 urb->transfer_buffer_length = packet_size * SD_NPKT; in sd_start()
228 urb->pipe = usb_rcvisocpipe(gspca_dev->dev, in sd_start()
230 urb->transfer_flags = URB_ISO_ASAP in sd_start()
232 urb->interval = 1; in sd_start()
233 urb->complete = sd_isoc_irq; in sd_start()
234 urb->number_of_packets = SD_NPKT; in sd_start()
236 urb->iso_frame_desc[i].length = packet_size; in sd_start()
237 urb->iso_frame_desc[i].offset = packet_size * i; in sd_start()
261 static void sd_isoc_irq(struct urb *urb) in sd_isoc_irq() argument
263 struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context; in sd_isoc_irq()
265 struct urb *data_urb, *status_urb; in sd_isoc_irq()
273 if (urb->status != 0) { in sd_isoc_irq()
274 if (urb->status == -ESHUTDOWN) in sd_isoc_irq()
280 PERR("urb status: %d", urb->status); in sd_isoc_irq()
281 st = usb_submit_urb(urb, GFP_ATOMIC); in sd_isoc_irq()
288 if (urb->transfer_buffer_length > 32) { in sd_isoc_irq()
289 sd->last_data_urb = urb; in sd_isoc_irq()
293 status_urb = urb; in sd_isoc_irq()