summaryrefslogtreecommitdiff
path: root/drivers/dahdi/xpp/xpp_usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/xpp/xpp_usb.c')
-rw-r--r--drivers/dahdi/xpp/xpp_usb.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/dahdi/xpp/xpp_usb.c b/drivers/dahdi/xpp/xpp_usb.c
index d69c99d..15507ee 100644
--- a/drivers/dahdi/xpp/xpp_usb.c
+++ b/drivers/dahdi/xpp/xpp_usb.c
@@ -78,6 +78,14 @@ static DEF_PARM(uint, drop_pcm_after, 6, 0644, "Number of consecutive tx_sluggis
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
# warning "This module is tested only with 2.6 kernels"
#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34)
+# define usb_alloc_coherent(dev, size, mem_flags, dma) \
+ usb_buffer_alloc(dev, size, mem_flags, dma)
+# define usb_free_coherent(dev, size, addr, dma) \
+ usb_buffer_free(dev, size, addr, dma)
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
# undef USB_FIELDS_MISSING
#else
@@ -308,7 +316,7 @@ static xframe_t *alloc_xframe(xbus_t *xbus, gfp_t gfp_flags)
return NULL;
}
usb_init_urb(&uframe->urb);
- p = usb_buffer_alloc(xusb->udev, size, gfp_flags, &uframe->urb.transfer_dma);
+ p = usb_alloc_coherent(xusb->udev, size, gfp_flags, &uframe->urb.transfer_dma);
if(!p) {
if((rate_limit++ % 1003) == 0)
XUSB_ERR(xusb, "buffer allocation failed (%d)\n", rate_limit);
@@ -330,7 +338,7 @@ static void free_xframe(xbus_t *xbus, xframe_t *xframe)
BUG_ON(xbus->transport.priv != uframe->xusb);
//XUSB_INFO(uframe->xusb, "frame_free\n");
- usb_buffer_free(urb->dev, uframe->transfer_buffer_length,
+ usb_free_coherent(urb->dev, uframe->transfer_buffer_length,
urb->transfer_buffer,
urb->transfer_dma);
memset(uframe, 0, sizeof(*uframe));