[PATCH] v4l: 802: replaced kmalloc kfree with usb buffer alloc usb buffer free to get
- Replaced kmalloc/kfree with usb_buffer_alloc/usb_buffer_free to get Signed-off-by: Markus Rechberger <mrechberger@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
f2421ca338
commit
02f7427333
1 changed files with 25 additions and 25 deletions
|
@ -714,11 +714,12 @@ void em2820_uninit_isoc(struct em2820 *dev)
|
||||||
for (i = 0; i < EM2820_NUM_BUFS; i++) {
|
for (i = 0; i < EM2820_NUM_BUFS; i++) {
|
||||||
if (dev->urb[i]) {
|
if (dev->urb[i]) {
|
||||||
usb_kill_urb(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]);
|
usb_free_urb(dev->urb[i]);
|
||||||
}
|
}
|
||||||
dev->urb[i] = NULL;
|
dev->urb[i] = NULL;
|
||||||
if (dev->transfer_buffer[i])
|
|
||||||
kfree(dev->transfer_buffer[i]);
|
|
||||||
dev->transfer_buffer[i] = NULL;
|
dev->transfer_buffer[i] = NULL;
|
||||||
}
|
}
|
||||||
em2820_capture_start(dev, 0);
|
em2820_capture_start(dev, 0);
|
||||||
|
@ -743,7 +744,13 @@ int em2820_init_isoc(struct em2820 *dev)
|
||||||
struct urb *urb;
|
struct urb *urb;
|
||||||
int j, k;
|
int j, k;
|
||||||
/* allocate transfer buffer */
|
/* 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]) {
|
if (!dev->transfer_buffer[i]) {
|
||||||
em2820_errdev
|
em2820_errdev
|
||||||
("unable to allocate %i bytes for transfer buffer %i\n",
|
("unable to allocate %i bytes for transfer buffer %i\n",
|
||||||
|
@ -752,29 +759,22 @@ int em2820_init_isoc(struct em2820 *dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
memset(dev->transfer_buffer[i], 0, sb_size);
|
memset(dev->transfer_buffer[i], 0, sb_size);
|
||||||
urb = usb_alloc_urb(EM2820_NUM_PACKETS, GFP_KERNEL);
|
urb->dev = dev->udev;
|
||||||
if (urb) {
|
urb->context = dev;
|
||||||
urb->dev = dev->udev;
|
urb->pipe = usb_rcvisocpipe(dev->udev, 0x82);
|
||||||
urb->context = dev;
|
urb->transfer_flags = URB_ISO_ASAP;
|
||||||
urb->pipe = usb_rcvisocpipe(dev->udev, 0x82);
|
urb->interval = 1;
|
||||||
urb->transfer_flags = URB_ISO_ASAP;
|
urb->transfer_buffer = dev->transfer_buffer[i];
|
||||||
urb->interval = 1;
|
urb->complete = em2820_isocIrq;
|
||||||
urb->transfer_buffer = dev->transfer_buffer[i];
|
urb->number_of_packets = EM2820_NUM_PACKETS;
|
||||||
urb->complete = em2820_isocIrq;
|
urb->transfer_buffer_length = sb_size;
|
||||||
urb->number_of_packets = EM2820_NUM_PACKETS;
|
for (j = k = 0; j < EM2820_NUM_PACKETS;
|
||||||
urb->transfer_buffer_length = sb_size;
|
j++, k += dev->max_pkt_size) {
|
||||||
for (j = k = 0; j < EM2820_NUM_PACKETS;
|
urb->iso_frame_desc[j].offset = k;
|
||||||
j++, k += dev->max_pkt_size) {
|
urb->iso_frame_desc[j].length =
|
||||||
urb->iso_frame_desc[j].offset = k;
|
dev->max_pkt_size;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
dev->urb[i] = urb;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* submit urbs */
|
/* submit urbs */
|
||||||
|
|
Loading…
Add table
Reference in a new issue