Commit fea4d14b authored by Ondrej Zary's avatar Ondrej Zary Committed by Dmitry Torokhov

Input: usbtouchscreen - convert from usb_device to usb_interface

Convert usbtouchscreen from storing usb_device to usb_interface. This is
needed for multi-interface touchscreen devices such as iNexio.
Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 76cdc083
...@@ -104,7 +104,7 @@ struct usbtouch_usb { ...@@ -104,7 +104,7 @@ struct usbtouch_usb {
unsigned char *buffer; unsigned char *buffer;
int buf_len; int buf_len;
struct urb *irq; struct urb *irq;
struct usb_device *udev; struct usb_interface *interface;
struct input_dev *input; struct input_dev *input;
struct usbtouch_device_info *type; struct usbtouch_device_info *type;
char name[128]; char name[128];
...@@ -234,8 +234,9 @@ static const struct usb_device_id usbtouch_devices[] = { ...@@ -234,8 +234,9 @@ static const struct usb_device_id usbtouch_devices[] = {
static int e2i_init(struct usbtouch_usb *usbtouch) static int e2i_init(struct usbtouch_usb *usbtouch)
{ {
int ret; int ret;
struct usb_device *udev = interface_to_usbdev(usbtouch->interface);
ret = usb_control_msg(usbtouch->udev, usb_rcvctrlpipe(usbtouch->udev, 0), ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
0x01, 0x02, 0x0000, 0x0081, 0x01, 0x02, 0x0000, 0x0081,
NULL, 0, USB_CTRL_SET_TIMEOUT); NULL, 0, USB_CTRL_SET_TIMEOUT);
...@@ -344,8 +345,9 @@ static int mtouch_read_data(struct usbtouch_usb *dev, unsigned char *pkt) ...@@ -344,8 +345,9 @@ static int mtouch_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
static int mtouch_init(struct usbtouch_usb *usbtouch) static int mtouch_init(struct usbtouch_usb *usbtouch)
{ {
int ret, i; int ret, i;
struct usb_device *udev = interface_to_usbdev(usbtouch->interface);
ret = usb_control_msg(usbtouch->udev, usb_rcvctrlpipe(usbtouch->udev, 0), ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
MTOUCHUSB_RESET, MTOUCHUSB_RESET,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
1, 0, NULL, 0, USB_CTRL_SET_TIMEOUT); 1, 0, NULL, 0, USB_CTRL_SET_TIMEOUT);
...@@ -356,7 +358,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch) ...@@ -356,7 +358,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch)
msleep(150); msleep(150);
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
ret = usb_control_msg(usbtouch->udev, usb_rcvctrlpipe(usbtouch->udev, 0), ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
MTOUCHUSB_ASYNC_REPORT, MTOUCHUSB_ASYNC_REPORT,
USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
1, 1, NULL, 0, USB_CTRL_SET_TIMEOUT); 1, 1, NULL, 0, USB_CTRL_SET_TIMEOUT);
...@@ -489,7 +491,7 @@ static int gunze_read_data(struct usbtouch_usb *dev, unsigned char *pkt) ...@@ -489,7 +491,7 @@ static int gunze_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
static int dmc_tsc10_init(struct usbtouch_usb *usbtouch) static int dmc_tsc10_init(struct usbtouch_usb *usbtouch)
{ {
struct usb_device *dev = usbtouch->udev; struct usb_device *dev = interface_to_usbdev(usbtouch->interface);
int ret = -ENOMEM; int ret = -ENOMEM;
unsigned char *buf; unsigned char *buf;
...@@ -1021,7 +1023,7 @@ static int usbtouch_open(struct input_dev *input) ...@@ -1021,7 +1023,7 @@ static int usbtouch_open(struct input_dev *input)
{ {
struct usbtouch_usb *usbtouch = input_get_drvdata(input); struct usbtouch_usb *usbtouch = input_get_drvdata(input);
usbtouch->irq->dev = usbtouch->udev; usbtouch->irq->dev = interface_to_usbdev(usbtouch->interface);
if (!usbtouch->type->irq_always) { if (!usbtouch->type->irq_always) {
if (usb_submit_urb(usbtouch->irq, GFP_KERNEL)) if (usb_submit_urb(usbtouch->irq, GFP_KERNEL))
...@@ -1094,7 +1096,7 @@ static int usbtouch_probe(struct usb_interface *intf, ...@@ -1094,7 +1096,7 @@ static int usbtouch_probe(struct usb_interface *intf,
goto out_free_buffers; goto out_free_buffers;
} }
usbtouch->udev = udev; usbtouch->interface = intf;
usbtouch->input = input_dev; usbtouch->input = input_dev;
if (udev->manufacturer) if (udev->manufacturer)
...@@ -1133,12 +1135,12 @@ static int usbtouch_probe(struct usb_interface *intf, ...@@ -1133,12 +1135,12 @@ static int usbtouch_probe(struct usb_interface *intf,
input_set_abs_params(input_dev, ABS_PRESSURE, type->min_press, input_set_abs_params(input_dev, ABS_PRESSURE, type->min_press,
type->max_press, 0, 0); type->max_press, 0, 0);
usb_fill_int_urb(usbtouch->irq, usbtouch->udev, usb_fill_int_urb(usbtouch->irq, udev,
usb_rcvintpipe(usbtouch->udev, endpoint->bEndpointAddress), usb_rcvintpipe(udev, endpoint->bEndpointAddress),
usbtouch->data, type->rept_size, usbtouch->data, type->rept_size,
usbtouch_irq, usbtouch, endpoint->bInterval); usbtouch_irq, usbtouch, endpoint->bInterval);
usbtouch->irq->dev = usbtouch->udev; usbtouch->irq->dev = udev;
usbtouch->irq->transfer_dma = usbtouch->data_dma; usbtouch->irq->transfer_dma = usbtouch->data_dma;
usbtouch->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; usbtouch->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment