fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / usb / input / ati_remote.c
index 3719fcb..b724e36 100644 (file)
@@ -283,9 +283,9 @@ static void ati_remote_dump         (unsigned char *data, unsigned int actual_length);
 static int ati_remote_open             (struct input_dev *inputdev);
 static void ati_remote_close           (struct input_dev *inputdev);
 static int ati_remote_sendpacket       (struct ati_remote *ati_remote, u16 cmd, unsigned char *data);
-static void ati_remote_irq_out         (struct urb *urb, struct pt_regs *regs);
-static void ati_remote_irq_in          (struct urb *urb, struct pt_regs *regs);
-static void ati_remote_input_report    (struct urb *urb, struct pt_regs *regs);
+static void ati_remote_irq_out         (struct urb *urb);
+static void ati_remote_irq_in          (struct urb *urb);
+static void ati_remote_input_report    (struct urb *urb);
 static int ati_remote_initialize       (struct ati_remote *ati_remote);
 static int ati_remote_probe            (struct usb_interface *interface, const struct usb_device_id *id);
 static void ati_remote_disconnect      (struct usb_interface *interface);
@@ -344,7 +344,7 @@ static void ati_remote_close(struct input_dev *inputdev)
 /*
  *             ati_remote_irq_out
  */
-static void ati_remote_irq_out(struct urb *urb, struct pt_regs *regs)
+static void ati_remote_irq_out(struct urb *urb)
 {
        struct ati_remote *ati_remote = urb->context;
 
@@ -453,7 +453,7 @@ static int ati_remote_compute_accel(struct ati_remote *ati_remote)
 /*
  *     ati_remote_report_input
  */
-static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
+static void ati_remote_input_report(struct urb *urb)
 {
        struct ati_remote *ati_remote = urb->context;
        unsigned char *data= ati_remote->inbuf;
@@ -491,7 +491,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
                remote_num, data[1], data[2], index, ati_remote_tbl[index].code);
 
        if (ati_remote_tbl[index].kind == KIND_LITERAL) {
-               input_regs(dev, regs);
                input_event(dev, ati_remote_tbl[index].type,
                        ati_remote_tbl[index].code,
                        ati_remote_tbl[index].value);
@@ -520,7 +519,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
                        return;
 
 
-               input_regs(dev, regs);
                input_event(dev, ati_remote_tbl[index].type,
                        ati_remote_tbl[index].code, 1);
                input_sync(dev);
@@ -537,7 +535,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
                 */
                acc = ati_remote_compute_accel(ati_remote);
 
-               input_regs(dev, regs);
                switch (ati_remote_tbl[index].kind) {
                case KIND_ACCEL:
                        input_event(dev, ati_remote_tbl[index].type,
@@ -575,14 +572,14 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
 /*
  *     ati_remote_irq_in
  */
-static void ati_remote_irq_in(struct urb *urb, struct pt_regs *regs)
+static void ati_remote_irq_in(struct urb *urb)
 {
        struct ati_remote *ati_remote = urb->context;
        int retval;
 
        switch (urb->status) {
        case 0:                 /* success */
-               ati_remote_input_report(urb, regs);
+               ati_remote_input_report(urb);
                break;
        case -ECONNRESET:       /* unlink */
        case -ENOENT:
@@ -595,7 +592,7 @@ static void ati_remote_irq_in(struct urb *urb, struct pt_regs *regs)
                        __FUNCTION__, urb->status);
        }
 
-       retval = usb_submit_urb(urb, SLAB_ATOMIC);
+       retval = usb_submit_urb(urb, GFP_ATOMIC);
        if (retval)
                dev_err(&ati_remote->interface->dev, "%s: usb_submit_urb()=%d\n",
                        __FUNCTION__, retval);
@@ -607,12 +604,12 @@ static void ati_remote_irq_in(struct urb *urb, struct pt_regs *regs)
 static int ati_remote_alloc_buffers(struct usb_device *udev,
                                    struct ati_remote *ati_remote)
 {
-       ati_remote->inbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, SLAB_ATOMIC,
+       ati_remote->inbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, GFP_ATOMIC,
                                             &ati_remote->inbuf_dma);
        if (!ati_remote->inbuf)
                return -1;
 
-       ati_remote->outbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, SLAB_ATOMIC,
+       ati_remote->outbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, GFP_ATOMIC,
                                              &ati_remote->outbuf_dma);
        if (!ati_remote->outbuf)
                return -1;
@@ -633,19 +630,14 @@ static int ati_remote_alloc_buffers(struct usb_device *udev,
  */
 static void ati_remote_free_buffers(struct ati_remote *ati_remote)
 {
-       if (ati_remote->irq_urb)
-               usb_free_urb(ati_remote->irq_urb);
+       usb_free_urb(ati_remote->irq_urb);
+       usb_free_urb(ati_remote->out_urb);
 
-       if (ati_remote->out_urb)
-               usb_free_urb(ati_remote->out_urb);
+       usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
+               ati_remote->inbuf, ati_remote->inbuf_dma);
 
-       if (ati_remote->inbuf)
-               usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
-                               ati_remote->inbuf, ati_remote->inbuf_dma);
-
-       if (ati_remote->outbuf)
-               usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
-                               ati_remote->inbuf, ati_remote->outbuf_dma);
+       usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
+               ati_remote->outbuf, ati_remote->outbuf_dma);
 }
 
 static void ati_remote_input_init(struct ati_remote *ati_remote)
@@ -732,12 +724,8 @@ static int ati_remote_probe(struct usb_interface *interface, const struct usb_de
        endpoint_in = &iface_host->endpoint[0].desc;
        endpoint_out = &iface_host->endpoint[1].desc;
 
-       if (!(endpoint_in->bEndpointAddress & USB_DIR_IN)) {
-               err("%s: Unexpected endpoint_in->bEndpointAddress\n", __FUNCTION__);
-               return -ENODEV;
-       }
-       if ((endpoint_in->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) != USB_ENDPOINT_XFER_INT) {
-               err("%s: Unexpected endpoint_in->bmAttributes\n", __FUNCTION__);
+       if (!usb_endpoint_is_int_in(endpoint_in)) {
+               err("%s: Unexpected endpoint_in\n", __FUNCTION__);
                return -ENODEV;
        }
        if (le16_to_cpu(endpoint_in->wMaxPacketSize) == 0) {