Input: acecad - stop saving struct usb_device
authorOliver Neukum <oneukum@suse.com>
Thu, 31 Mar 2016 17:59:41 +0000 (10:59 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 31 Mar 2016 20:13:39 +0000 (13:13 -0700)
The device can now easily be derived from the interface.
Stop leaving a private copy.

Signed-off-by: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/tablet/acecad.c

index 889f6b7..e86e377 100644 (file)
@@ -49,7 +49,6 @@ MODULE_LICENSE(DRIVER_LICENSE);
 struct usb_acecad {
        char name[128];
        char phys[64];
-       struct usb_device *usbdev;
        struct usb_interface *intf;
        struct input_dev *input;
        struct urb *irq;
@@ -64,6 +63,7 @@ static void usb_acecad_irq(struct urb *urb)
        unsigned char *data = acecad->data;
        struct input_dev *dev = acecad->input;
        struct usb_interface *intf = acecad->intf;
+       struct usb_device *udev = interface_to_usbdev(intf);
        int prox, status;
 
        switch (urb->status) {
@@ -110,15 +110,15 @@ resubmit:
        if (status)
                dev_err(&intf->dev,
                        "can't resubmit intr, %s-%s/input0, status %d\n",
-                       acecad->usbdev->bus->bus_name,
-                       acecad->usbdev->devpath, status);
+                       udev->bus->bus_name,
+                       udev->devpath, status);
 }
 
 static int usb_acecad_open(struct input_dev *dev)
 {
        struct usb_acecad *acecad = input_get_drvdata(dev);
 
-       acecad->irq->dev = acecad->usbdev;
+       acecad->irq->dev = interface_to_usbdev(acecad->intf);
        if (usb_submit_urb(acecad->irq, GFP_KERNEL))
                return -EIO;
 
@@ -172,7 +172,6 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
                goto fail2;
        }
 
-       acecad->usbdev = dev;
        acecad->intf = intf;
        acecad->input = input_dev;
 
@@ -251,12 +250,13 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
 static void usb_acecad_disconnect(struct usb_interface *intf)
 {
        struct usb_acecad *acecad = usb_get_intfdata(intf);
+       struct usb_device *udev = interface_to_usbdev(intf);
 
        usb_set_intfdata(intf, NULL);
 
        input_unregister_device(acecad->input);
        usb_free_urb(acecad->irq);
-       usb_free_coherent(acecad->usbdev, 8, acecad->data, acecad->data_dma);
+       usb_free_coherent(udev, 8, acecad->data, acecad->data_dma);
        kfree(acecad);
 }