- buffer = g_try_malloc(bufsize);
- if (!buffer) {
- sr_err("Cannot allocate USB transfer buffer.");
- return SR_ERR_MALLOC;
- }
- xfer = libusb_alloc_transfer(0);
- if (!xfer) {
- sr_err("Cannot allocate USB transfer.");
- g_free(buffer);
- return SR_ERR_MALLOC;
- }
- xfer->buffer = buffer;
- devc->transfer = xfer;
+ xfercount = LA2016_USB_XFER_COUNT;
+ while (xfercount--) {
+ buffer = g_try_malloc(bufsize);
+ if (!buffer) {
+ sr_err("Cannot allocate USB transfer buffer.");
+ return SR_ERR_MALLOC;
+ }
+ xfer = libusb_alloc_transfer(0);
+ if (!xfer) {
+ sr_err("Cannot allocate USB transfer.");
+ g_free(buffer);
+ return SR_ERR_MALLOC;
+ }
+ xfer->buffer = buffer;
+ devc->transfers = g_slist_append(devc->transfers, xfer);
+ }