- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / drivers / hid / usbhid / usbkbd.c
index 689b1da..a948605 100644 (file)
@@ -30,9 +30,6 @@
 #include <linux/init.h>
 #include <linux/usb/input.h>
 #include <linux/hid.h>
-#ifdef CONFIG_KDB_USB
-#include <linux/kdb.h>
-#endif
 
 /*
  * Version Information
@@ -77,7 +74,6 @@ struct usb_kbd {
        unsigned char *new;
        struct usb_ctrlrequest *cr;
        unsigned char *leds;
-       dma_addr_t cr_dma;
        dma_addr_t new_dma;
        dma_addr_t leds_dma;
 };
@@ -200,11 +196,11 @@ static int usb_kbd_alloc_mem(struct usb_device *dev, struct usb_kbd *kbd)
                return -1;
        if (!(kbd->led = usb_alloc_urb(0, GFP_KERNEL)))
                return -1;
-       if (!(kbd->new = usb_buffer_alloc(dev, 8, GFP_ATOMIC, &kbd->new_dma)))
+       if (!(kbd->new = usb_alloc_coherent(dev, 8, GFP_ATOMIC, &kbd->new_dma)))
                return -1;
-       if (!(kbd->cr = usb_buffer_alloc(dev, sizeof(struct usb_ctrlrequest), GFP_ATOMIC, &kbd->cr_dma)))
+       if (!(kbd->cr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL)))
                return -1;
-       if (!(kbd->leds = usb_buffer_alloc(dev, 1, GFP_ATOMIC, &kbd->leds_dma)))
+       if (!(kbd->leds = usb_alloc_coherent(dev, 1, GFP_ATOMIC, &kbd->leds_dma)))
                return -1;
 
        return 0;
@@ -214,9 +210,9 @@ static void usb_kbd_free_mem(struct usb_device *dev, struct usb_kbd *kbd)
 {
        usb_free_urb(kbd->irq);
        usb_free_urb(kbd->led);
-       usb_buffer_free(dev, 8, kbd->new, kbd->new_dma);
-       usb_buffer_free(dev, sizeof(struct usb_ctrlrequest), kbd->cr, kbd->cr_dma);
-       usb_buffer_free(dev, 1, kbd->leds, kbd->leds_dma);
+       usb_free_coherent(dev, 8, kbd->new, kbd->new_dma);
+       kfree(kbd->cr);
+       usb_free_coherent(dev, 1, kbd->leds, kbd->leds_dma);
 }
 
 static int usb_kbd_probe(struct usb_interface *iface,
@@ -295,16 +291,6 @@ static int usb_kbd_probe(struct usb_interface *iface,
        usb_fill_int_urb(kbd->irq, dev, pipe,
                         kbd->new, (maxp > 8 ? 8 : maxp),
                         usb_kbd_irq, kbd, endpoint->bInterval);
-
-#ifdef CONFIG_KDB_USB
-       /* Attach keyboard to kdb */
-       extern void * usb_hcd_get_kdb_poll_func(struct usb_device *udev);
-
-       kdb_usb_keyboard_attach(kbd->irq, kbd->new,
-                               usb_hcd_get_kdb_poll_func(dev));
-
-#endif /* CONFIG_KDB_USB */
-
        kbd->irq->transfer_dma = kbd->new_dma;
        kbd->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 
@@ -317,15 +303,15 @@ static int usb_kbd_probe(struct usb_interface *iface,
        usb_fill_control_urb(kbd->led, dev, usb_sndctrlpipe(dev, 0),
                             (void *) kbd->cr, kbd->leds, 1,
                             usb_kbd_led, kbd);
-       kbd->led->setup_dma = kbd->cr_dma;
        kbd->led->transfer_dma = kbd->leds_dma;
-       kbd->led->transfer_flags |= (URB_NO_TRANSFER_DMA_MAP | URB_NO_SETUP_DMA_MAP);
+       kbd->led->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 
        error = input_register_device(kbd->dev);
        if (error)
                goto fail2;
 
        usb_set_intfdata(iface, kbd);
+       device_set_wakeup_enable(&dev->dev, 1);
        return 0;
 
 fail2: 
@@ -342,10 +328,6 @@ static void usb_kbd_disconnect(struct usb_interface *intf)
 
        usb_set_intfdata(intf, NULL);
        if (kbd) {
-#ifdef CONFIG_KDB_USB
-              /* Detach the keyboard from kdb */
-               kdb_usb_keyboard_detach(kbd->irq);
-#endif /* CONFIG_KDB_USB */
                usb_kill_urb(kbd->irq);
                input_unregister_device(kbd->dev);
                usb_kbd_free_mem(interface_to_usbdev(intf), kbd);