Lines Matching refs:urb

43 static void sd_isoc_irq(struct urb *urb);
87 struct urb *urb; in sd_start() local
97 urb = usb_alloc_urb(SD_NPKT, GFP_KERNEL); in sd_start()
98 if (!urb) { in sd_start()
102 gspca_dev->urb[n] = urb; in sd_start()
103 urb->transfer_buffer = usb_alloc_coherent(gspca_dev->dev, in sd_start()
106 &urb->transfer_dma); in sd_start()
108 if (urb->transfer_buffer == NULL) { in sd_start()
112 urb->dev = gspca_dev->dev; in sd_start()
113 urb->context = gspca_dev; in sd_start()
114 urb->transfer_buffer_length = SD_PKT_SZ * SD_NPKT; in sd_start()
115 urb->pipe = usb_rcvisocpipe(gspca_dev->dev, in sd_start()
117 urb->transfer_flags = URB_ISO_ASAP in sd_start()
119 urb->interval = 1; in sd_start()
120 urb->complete = sd_isoc_irq; in sd_start()
121 urb->number_of_packets = SD_NPKT; in sd_start()
123 urb->iso_frame_desc[i].length = SD_PKT_SZ; in sd_start()
124 urb->iso_frame_desc[i].offset = SD_PKT_SZ * i; in sd_start()
154 static void sd_isoc_irq(struct urb *urb) in sd_isoc_irq() argument
156 struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context; in sd_isoc_irq()
157 struct urb *urb0; in sd_isoc_irq()
164 if (urb->status != 0) { in sd_isoc_irq()
165 if (urb->status == -ESHUTDOWN) in sd_isoc_irq()
171 pr_err("urb status: %d\n", urb->status); in sd_isoc_irq()
176 if (urb == gspca_dev->urb[0] || urb == gspca_dev->urb[2]) in sd_isoc_irq()
180 if (urb == gspca_dev->urb[1]) in sd_isoc_irq()
181 urb0 = gspca_dev->urb[0]; in sd_isoc_irq()
183 urb0 = gspca_dev->urb[2]; in sd_isoc_irq()
184 for (i = 0; i < urb->number_of_packets; i++) { in sd_isoc_irq()
188 || urb->iso_frame_desc[i].actual_length != SD_PKT_SZ) { in sd_isoc_irq()
191 urb->iso_frame_desc[i].actual_length); in sd_isoc_irq()
197 st = urb->iso_frame_desc[i].status; in sd_isoc_irq()
237 data = (u8 *) urb->transfer_buffer in sd_isoc_irq()
238 + urb->iso_frame_desc[i].offset; in sd_isoc_irq()
247 st = usb_submit_urb(urb, GFP_ATOMIC); in sd_isoc_irq()