mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-20 16:46:23 +08:00
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: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
76cdc083f4
commit
fea4d14b69
@ -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[] = {
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
{
|
{
|
||||||
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,
|
|||||||
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,
|
|||||||
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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user