diff options
-rw-r--r-- | drivers/input/joystick/xpad.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index 2e106b0796ce..ee16fb67b7ae 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c @@ -252,6 +252,7 @@ MODULE_DEVICE_TABLE (usb, xpad_table); struct usb_xpad { struct input_dev *dev; /* input device interface */ struct usb_device *udev; /* usb device */ + struct usb_interface *intf; /* usb interface */ int pad_present; @@ -457,7 +458,7 @@ static void xpad360w_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned cha static void xpad_irq_in(struct urb *urb) { struct usb_xpad *xpad = urb->context; - struct device *dev = &xpad->dev->dev; + struct device *dev = &xpad->intf->dev; int retval, status; status = urb->status; @@ -500,7 +501,7 @@ exit: static void xpad_bulk_out(struct urb *urb) { struct usb_xpad *xpad = urb->context; - struct device *dev = &xpad->dev->dev; + struct device *dev = &xpad->intf->dev; switch (urb->status) { case 0: @@ -523,7 +524,7 @@ static void xpad_bulk_out(struct urb *urb) static void xpad_irq_out(struct urb *urb) { struct usb_xpad *xpad = urb->context; - struct device *dev = &xpad->dev->dev; + struct device *dev = &xpad->intf->dev; int retval, status; status = urb->status; @@ -855,6 +856,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id } xpad->udev = udev; + xpad->intf = intf; xpad->mapping = xpad_device[i].mapping; xpad->xtype = xpad_device[i].xtype; |