|
@@ -155,8 +155,7 @@ static int usb_urb_alloc_bulk_urbs(struct usb_data_stream *stream)
|
|
|
stream->props.u.bulk.buffersize,
|
|
|
usb_urb_complete, stream);
|
|
|
|
|
|
- stream->urb_list[i]->transfer_flags = URB_NO_TRANSFER_DMA_MAP;
|
|
|
- stream->urb_list[i]->transfer_dma = stream->dma_addr[i];
|
|
|
+ stream->urb_list[i]->transfer_flags = URB_FREE_BUFFER;
|
|
|
stream->urbs_initialized++;
|
|
|
}
|
|
|
return 0;
|
|
@@ -187,13 +186,12 @@ static int usb_urb_alloc_isoc_urbs(struct usb_data_stream *stream)
|
|
|
urb->complete = usb_urb_complete;
|
|
|
urb->pipe = usb_rcvisocpipe(stream->udev,
|
|
|
stream->props.endpoint);
|
|
|
- urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
|
|
|
+ urb->transfer_flags = URB_ISO_ASAP | URB_FREE_BUFFER;
|
|
|
urb->interval = stream->props.u.isoc.interval;
|
|
|
urb->number_of_packets = stream->props.u.isoc.framesperurb;
|
|
|
urb->transfer_buffer_length = stream->props.u.isoc.framesize *
|
|
|
stream->props.u.isoc.framesperurb;
|
|
|
urb->transfer_buffer = stream->buf_list[i];
|
|
|
- urb->transfer_dma = stream->dma_addr[i];
|
|
|
|
|
|
for (j = 0; j < stream->props.u.isoc.framesperurb; j++) {
|
|
|
urb->iso_frame_desc[j].offset = frame_offset;
|
|
@@ -212,11 +210,7 @@ static int usb_free_stream_buffers(struct usb_data_stream *stream)
|
|
|
if (stream->state & USB_STATE_URB_BUF) {
|
|
|
while (stream->buf_num) {
|
|
|
stream->buf_num--;
|
|
|
- dev_dbg(&stream->udev->dev, "%s: free buf=%d\n",
|
|
|
- __func__, stream->buf_num);
|
|
|
- usb_free_coherent(stream->udev, stream->buf_size,
|
|
|
- stream->buf_list[stream->buf_num],
|
|
|
- stream->dma_addr[stream->buf_num]);
|
|
|
+ stream->buf_list[stream->buf_num] = NULL;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -236,9 +230,7 @@ static int usb_alloc_stream_buffers(struct usb_data_stream *stream, int num,
|
|
|
__func__, num * size);
|
|
|
|
|
|
for (stream->buf_num = 0; stream->buf_num < num; stream->buf_num++) {
|
|
|
- stream->buf_list[stream->buf_num] = usb_alloc_coherent(
|
|
|
- stream->udev, size, GFP_ATOMIC,
|
|
|
- &stream->dma_addr[stream->buf_num]);
|
|
|
+ stream->buf_list[stream->buf_num] = kzalloc(size, GFP_ATOMIC);
|
|
|
if (!stream->buf_list[stream->buf_num]) {
|
|
|
dev_dbg(&stream->udev->dev, "%s: alloc buf=%d failed\n",
|
|
|
__func__, stream->buf_num);
|
|
@@ -250,7 +242,6 @@ static int usb_alloc_stream_buffers(struct usb_data_stream *stream, int num,
|
|
|
__func__, stream->buf_num,
|
|
|
stream->buf_list[stream->buf_num],
|
|
|
(long long)stream->dma_addr[stream->buf_num]);
|
|
|
- memset(stream->buf_list[stream->buf_num], 0, size);
|
|
|
stream->state |= USB_STATE_URB_BUF;
|
|
|
}
|
|
|
|