Lines Matching refs:urb
30 static void sd_isoc_irq(struct urb *urb);
74 struct urb *urb;
84 urb = usb_alloc_urb(SD_NPKT, GFP_KERNEL);
85 if (!urb)
87 gspca_dev->urb[n] = urb;
88 urb->transfer_buffer = usb_alloc_coherent(gspca_dev->dev,
91 &urb->transfer_dma);
93 if (urb->transfer_buffer == NULL) {
97 urb->dev = gspca_dev->dev;
98 urb->context = gspca_dev;
99 urb->transfer_buffer_length = SD_PKT_SZ * SD_NPKT;
100 urb->pipe = usb_rcvisocpipe(gspca_dev->dev,
102 urb->transfer_flags = URB_ISO_ASAP
104 urb->interval = 1;
105 urb->complete = sd_isoc_irq;
106 urb->number_of_packets = SD_NPKT;
108 urb->iso_frame_desc[i].length = SD_PKT_SZ;
109 urb->iso_frame_desc[i].offset = SD_PKT_SZ * i;
139 static void sd_isoc_irq(struct urb *urb)
141 struct gspca_dev *gspca_dev = (struct gspca_dev *) urb->context;
142 struct urb *urb0;
149 if (urb->status != 0) {
150 if (urb->status == -ESHUTDOWN)
156 pr_err("urb status: %d\n", urb->status);
161 if (urb == gspca_dev->urb[0] || urb == gspca_dev->urb[2])
165 if (urb == gspca_dev->urb[1])
166 urb0 = gspca_dev->urb[0];
168 urb0 = gspca_dev->urb[2];
169 for (i = 0; i < urb->number_of_packets; i++) {
173 || urb->iso_frame_desc[i].actual_length != SD_PKT_SZ) {
176 urb->iso_frame_desc[i].actual_length);
182 st = urb->iso_frame_desc[i].status;
222 data = (u8 *) urb->transfer_buffer
223 + urb->iso_frame_desc[i].offset;
232 st = usb_submit_urb(urb, GFP_ATOMIC);