dev->urb[i] = urb; 
int em2820_init_isoc(struct em2820 *dev){	/* change interface to 3 which allowes the biggest packet sizes */	int i, errCode;	const int sb_size = EM2820_NUM_PACKETS * dev->max_pkt_size;	/* reset streaming vars */	dev->frame_current = NULL;	dev->frame_count = 0;	/* allocate urbs */	for (i = 0; i < EM2820_NUM_BUFS; i++) {		struct urb *urb;		int j, k;		/* allocate transfer buffer */		dev->transfer_buffer[i] = kmalloc(sb_size, GFP_KERNEL);		if (!dev->transfer_buffer[i]) {			em2820_errdev					("unable to allocate %i bytes for transfer buffer %i\n",					 sb_size, i);			em2820_uninit_isoc(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;		}	}	/* submit urbs */	for (i = 0; i < EM2820_NUM_BUFS; i++) {		errCode = usb_submit_urb(dev->urb[i], GFP_KERNEL);		if (errCode) {			em2820_errdev("submit of urb %i failed (error=%i)\n", i,				      errCode);			em2820_uninit_isoc(dev);			return errCode;		}	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/02f7427333c5784a937314a305132ed31cc6b9d1/em28xx-core.c/clean/drivers/media/video/em28xx/em28xx-core.c