Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / drivers / input / misc / powermate.c
index 668913d..bf170f6 100644 (file)
@@ -64,7 +64,6 @@ struct powermate_device {
        dma_addr_t data_dma;
        struct urb *irq, *config;
        struct usb_ctrlrequest *configcr;
-       dma_addr_t configcr_dma;
        struct usb_device *udev;
        struct input_dev *input;
        spinlock_t lock;
@@ -182,8 +181,6 @@ static void powermate_sync_state(struct powermate_device *pm)
        usb_fill_control_urb(pm->config, pm->udev, usb_sndctrlpipe(pm->udev, 0),
                             (void *) pm->configcr, NULL, 0,
                             powermate_config_complete, pm);
-       pm->config->setup_dma = pm->configcr_dma;
-       pm->config->transfer_flags |= URB_NO_SETUP_DMA_MAP;
 
        if (usb_submit_urb(pm->config, GFP_ATOMIC))
                printk(KERN_ERR "powermate: usb_submit_urb(config) failed");
@@ -276,13 +273,12 @@ static int powermate_input_event(struct input_dev *dev, unsigned int type, unsig
 
 static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_device *pm)
 {
-       pm->data = usb_buffer_alloc(udev, POWERMATE_PAYLOAD_SIZE_MAX,
-                                   GFP_ATOMIC, &pm->data_dma);
+       pm->data = usb_alloc_coherent(udev, POWERMATE_PAYLOAD_SIZE_MAX,
+                                     GFP_ATOMIC, &pm->data_dma);
        if (!pm->data)
                return -1;
 
-       pm->configcr = usb_buffer_alloc(udev, sizeof(*(pm->configcr)),
-                                       GFP_ATOMIC, &pm->configcr_dma);
+       pm->configcr = kmalloc(sizeof(*(pm->configcr)), GFP_KERNEL);
        if (!pm->configcr)
                return -1;
 
@@ -291,10 +287,9 @@ static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_dev
 
 static void powermate_free_buffers(struct usb_device *udev, struct powermate_device *pm)
 {
-       usb_buffer_free(udev, POWERMATE_PAYLOAD_SIZE_MAX,
-                       pm->data, pm->data_dma);
-       usb_buffer_free(udev, sizeof(*(pm->configcr)),
-                       pm->configcr, pm->configcr_dma);
+       usb_free_coherent(udev, POWERMATE_PAYLOAD_SIZE_MAX,
+                         pm->data, pm->data_dma);
+       kfree(pm->configcr);
 }
 
 /* Called whenever a USB device matching one in our supported devices table is connected */