Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02f74273 authored by Markus Rechberger's avatar Markus Rechberger Committed by Linus Torvalds
Browse files

[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: default avatarMarkus Rechberger <mrechberger@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f2421ca3
Loading
Loading
Loading
Loading
+25 −25
Original line number Diff line number Diff line
@@ -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);
@@ -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",
@@ -752,8 +759,6 @@ 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);
@@ -770,11 +775,6 @@ int em2820_init_isoc(struct em2820 *dev)
				dev->max_pkt_size;
		}
		dev->urb[i] = urb;
		} else {
			em2820_errdev("cannot alloc urb %i\n", i);
			em2820_uninit_isoc(dev);
			return -ENOMEM;
		}
	}

	/* submit urbs */