* [PATCH 2/3] [resend] usbtouchscreen: find input endpoint automatically
@ 2009-11-25 22:15 Ondrej Zary
0 siblings, 0 replies; 2+ messages in thread
From: Ondrej Zary @ 2009-11-25 22:15 UTC (permalink / raw)
To: Oliver Neukum; +Cc: linux-usb, daniel.ritz, linux-kernel
Find input enpoint automatically instead of assuming that the first one is OK.
This is needed for devices with multiple endpoints such as iNexio where the
first endpoint might be output.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
--- linux-source-2.6.31/drivers/input/touchscreen/usbtouchscreen.c.1 2009-11-23 10:30:14.000000000 +0100
+++ linux-source-2.6.31/drivers/input/touchscreen/usbtouchscreen.c 2009-11-23 10:57:14.000000000 +0100
@@ -882,17 +882,25 @@ static int usbtouch_probe(struct usb_int
struct usbtouch_usb *usbtouch;
struct input_dev *input_dev;
struct usb_host_interface *interface;
- struct usb_endpoint_descriptor *endpoint;
+ struct usb_endpoint_descriptor *endpoint = NULL;
struct usb_device *udev = interface_to_usbdev(intf);
struct usbtouch_device_info *type;
int err = -ENOMEM;
+ int i;
/* some devices are ignored */
if (id->driver_info == DEVTYPE_IGNORE)
return -ENODEV;
interface = intf->cur_altsetting;
- endpoint = &interface->endpoint[0].desc;
+ /* find first input endpoint */
+ for (i = 0; i < interface->desc.bNumEndpoints; i++)
+ if (usb_endpoint_dir_in(&interface->endpoint[i].desc)) {
+ endpoint = &interface->endpoint[i].desc;
+ break;
+ }
+ if (!endpoint)
+ return -ENXIO;
usbtouch = kzalloc(sizeof(struct usbtouch_usb), GFP_KERNEL);
input_dev = input_allocate_device();
--
Ondrej Zary
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH 2/3] [resend] usbtouchscreen: find input endpoint automatically
@ 2009-11-30 12:06 Ondrej Zary
0 siblings, 0 replies; 2+ messages in thread
From: Ondrej Zary @ 2009-11-30 12:06 UTC (permalink / raw)
To: Oliver Neukum; +Cc: linux-usb, daniel.ritz, linux-kernel
Find input enpoint automatically instead of assuming that the first one is OK.
This is needed for devices with multiple endpoints such as iNexio where the
first endpoint might be output.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
--- linux-source-2.6.31/drivers/input/touchscreen/usbtouchscreen.c.1 2009-11-23 10:30:14.000000000 +0100
+++ linux-source-2.6.31/drivers/input/touchscreen/usbtouchscreen.c 2009-11-23 10:57:14.000000000 +0100
@@ -882,17 +882,25 @@ static int usbtouch_probe(struct usb_int
struct usbtouch_usb *usbtouch;
struct input_dev *input_dev;
struct usb_host_interface *interface;
- struct usb_endpoint_descriptor *endpoint;
+ struct usb_endpoint_descriptor *endpoint = NULL;
struct usb_device *udev = interface_to_usbdev(intf);
struct usbtouch_device_info *type;
int err = -ENOMEM;
+ int i;
/* some devices are ignored */
if (id->driver_info == DEVTYPE_IGNORE)
return -ENODEV;
interface = intf->cur_altsetting;
- endpoint = &interface->endpoint[0].desc;
+ /* find first input endpoint */
+ for (i = 0; i < interface->desc.bNumEndpoints; i++)
+ if (usb_endpoint_dir_in(&interface->endpoint[i].desc)) {
+ endpoint = &interface->endpoint[i].desc;
+ break;
+ }
+ if (!endpoint)
+ return -ENXIO;
usbtouch = kzalloc(sizeof(struct usbtouch_usb), GFP_KERNEL);
input_dev = input_allocate_device();
--
Ondrej Zary
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-11-30 12:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-25 22:15 [PATCH 2/3] [resend] usbtouchscreen: find input endpoint automatically Ondrej Zary
-- strict thread matches above, loose matches on Subject: below --
2009-11-30 12:06 Ondrej Zary
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox