OSDN Git Service

Input: aiptek - stop saving struct usb_device
authorOliver Neukum <oneukum@suse.com>
Thu, 31 Mar 2016 17:59:59 +0000 (10:59 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 31 Mar 2016 20:13:40 +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/aiptek.c

index 78ca448..4613f0a 100644 (file)
@@ -307,7 +307,6 @@ struct aiptek_settings {
 
 struct aiptek {
        struct input_dev *inputdev;             /* input device struct           */
-       struct usb_device *usbdev;              /* usb device struct             */
        struct usb_interface *intf;             /* usb interface struct          */
        struct urb *urb;                        /* urb for incoming reports      */
        dma_addr_t data_dma;                    /* our dma stuffage              */
@@ -847,7 +846,7 @@ static int aiptek_open(struct input_dev *inputdev)
 {
        struct aiptek *aiptek = input_get_drvdata(inputdev);
 
-       aiptek->urb->dev = aiptek->usbdev;
+       aiptek->urb->dev = interface_to_usbdev(aiptek->intf);
        if (usb_submit_urb(aiptek->urb, GFP_KERNEL) != 0)
                return -EIO;
 
@@ -873,8 +872,10 @@ aiptek_set_report(struct aiptek *aiptek,
                  unsigned char report_type,
                  unsigned char report_id, void *buffer, int size)
 {
-       return usb_control_msg(aiptek->usbdev,
-                              usb_sndctrlpipe(aiptek->usbdev, 0),
+       struct usb_device *udev = interface_to_usbdev(aiptek->intf);
+
+       return usb_control_msg(udev,
+                              usb_sndctrlpipe(udev, 0),
                               USB_REQ_SET_REPORT,
                               USB_TYPE_CLASS | USB_RECIP_INTERFACE |
                               USB_DIR_OUT, (report_type << 8) + report_id,
@@ -886,8 +887,10 @@ aiptek_get_report(struct aiptek *aiptek,
                  unsigned char report_type,
                  unsigned char report_id, void *buffer, int size)
 {
-       return usb_control_msg(aiptek->usbdev,
-                              usb_rcvctrlpipe(aiptek->usbdev, 0),
+       struct usb_device *udev = interface_to_usbdev(aiptek->intf);
+
+       return usb_control_msg(udev,
+                              usb_rcvctrlpipe(udev, 0),
                               USB_REQ_GET_REPORT,
                               USB_TYPE_CLASS | USB_RECIP_INTERFACE |
                               USB_DIR_IN, (report_type << 8) + report_id,
@@ -1729,7 +1732,6 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
        }
 
        aiptek->inputdev = inputdev;
-       aiptek->usbdev = usbdev;
        aiptek->intf = intf;
        aiptek->ifnum = intf->altsetting[0].desc.bInterfaceNumber;
        aiptek->inDelay = 0;
@@ -1833,8 +1835,8 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
         * input.
         */
        usb_fill_int_urb(aiptek->urb,
-                        aiptek->usbdev,
-                        usb_rcvintpipe(aiptek->usbdev,
+                        usbdev,
+                        usb_rcvintpipe(usbdev,
                                        endpoint->bEndpointAddress),
                         aiptek->data, 8, aiptek_irq, aiptek,
                         endpoint->bInterval);