Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 13373
b: refs/heads/master
c: 02f7427
h: refs/heads/master
i:
  13371: f4853d1
v: v3
  • Loading branch information
Markus Rechberger authored and Linus Torvalds committed Nov 9, 2005
1 parent ea4ba4f commit 29da662
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f2421ca3383ed35bc634aa29416a3229dc603fa4
refs/heads/master: 02f7427333c5784a937314a305132ed31cc6b9d1
50 changes: 25 additions & 25 deletions trunk/drivers/media/video/em28xx/em28xx-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -714,11 +714,12 @@ void em2820_uninit_isoc(struct em2820 *dev)
for (i = 0; i < EM2820_NUM_BUFS; i++) {
if (dev->urb[i]) {
usb_kill_urb(dev->urb[i]);
if (dev->transfer_buffer[i]){
usb_buffer_free(dev->udev,(EM2820_NUM_PACKETS*dev->max_pkt_size),dev->transfer_buffer[i],dev->urb[i]->transfer_dma);
}
usb_free_urb(dev->urb[i]);
}
dev->urb[i] = NULL;
if (dev->transfer_buffer[i])
kfree(dev->transfer_buffer[i]);
dev->transfer_buffer[i] = NULL;
}
em2820_capture_start(dev, 0);
Expand All @@ -743,7 +744,13 @@ int em2820_init_isoc(struct em2820 *dev)
struct urb *urb;
int j, k;
/* allocate transfer buffer */
dev->transfer_buffer[i] = kmalloc(sb_size, GFP_KERNEL);
urb = usb_alloc_urb(EM2820_NUM_PACKETS, GFP_KERNEL);
if (!urb){
em2820_errdev("cannot alloc urb %i\n", i);
em2820_uninit_isoc(dev);
return -ENOMEM;
}
dev->transfer_buffer[i] = usb_buffer_alloc(dev->udev, sb_size, GFP_KERNEL,&urb->transfer_dma);
if (!dev->transfer_buffer[i]) {
em2820_errdev
("unable to allocate %i bytes for transfer buffer %i\n",
Expand All @@ -752,29 +759,22 @@ int em2820_init_isoc(struct em2820 *dev)
return -ENOMEM;
}
memset(dev->transfer_buffer[i], 0, sb_size);
urb = usb_alloc_urb(EM2820_NUM_PACKETS, GFP_KERNEL);
if (urb) {
urb->dev = dev->udev;
urb->context = dev;
urb->pipe = usb_rcvisocpipe(dev->udev, 0x82);
urb->transfer_flags = URB_ISO_ASAP;
urb->interval = 1;
urb->transfer_buffer = dev->transfer_buffer[i];
urb->complete = em2820_isocIrq;
urb->number_of_packets = EM2820_NUM_PACKETS;
urb->transfer_buffer_length = sb_size;
for (j = k = 0; j < EM2820_NUM_PACKETS;
j++, k += dev->max_pkt_size) {
urb->iso_frame_desc[j].offset = k;
urb->iso_frame_desc[j].length =
dev->max_pkt_size;
}
dev->urb[i] = urb;
} else {
em2820_errdev("cannot alloc urb %i\n", i);
em2820_uninit_isoc(dev);
return -ENOMEM;
urb->dev = dev->udev;
urb->context = dev;
urb->pipe = usb_rcvisocpipe(dev->udev, 0x82);
urb->transfer_flags = URB_ISO_ASAP;
urb->interval = 1;
urb->transfer_buffer = dev->transfer_buffer[i];
urb->complete = em2820_isocIrq;
urb->number_of_packets = EM2820_NUM_PACKETS;
urb->transfer_buffer_length = sb_size;
for (j = k = 0; j < EM2820_NUM_PACKETS;
j++, k += dev->max_pkt_size) {
urb->iso_frame_desc[j].offset = k;
urb->iso_frame_desc[j].length =
dev->max_pkt_size;
}
dev->urb[i] = urb;
}

/* submit urbs */
Expand Down

0 comments on commit 29da662

Please sign in to comment.