From patchwork Tue Feb 2 22:42:52 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 76544 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o12MhBnv013329 for ; Tue, 2 Feb 2010 22:43:24 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756824Ab0BBWnX (ORCPT ); Tue, 2 Feb 2010 17:43:23 -0500 Received: from smtp1.linux-foundation.org ([140.211.169.13]:49229 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756822Ab0BBWnV (ORCPT ); Tue, 2 Feb 2010 17:43:21 -0500 Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id o12MgrmB011750 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 2 Feb 2010 14:42:54 -0800 Received: from localhost.localdomain (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id o12MgrgM019138; Tue, 2 Feb 2010 14:42:53 -0800 Message-Id: <201002022242.o12MgrgM019138@imap1.linux-foundation.org> Subject: [patch 3/7] usbtouchscreen: find input endpoint automatically To: dtor@mail.ru Cc: linux-input@vger.kernel.org, akpm@linux-foundation.org, linux@rainbow-software.org, daniel.ritz@gmx.ch, ddstreet@ieee.org, dmitry.torokhov@gmail.com, floe@butterbrot.org, greg@kroah.com, jim-linux@nurd.se, oliver@neukum.org From: akpm@linux-foundation.org Date: Tue, 02 Feb 2010 14:42:52 -0800 MIME-Version: 1.0 X-Spam-Status: No, hits=-3.518 required=5 tests=AWL, BAYES_00, OSDL_HEADER_SUBJECT_BRACKETED X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Tue, 02 Feb 2010 22:43:24 +0000 (UTC) diff -puN drivers/input/touchscreen/usbtouchscreen.c~usbtouchscreen-find-input-endpoint-automatically drivers/input/touchscreen/usbtouchscreen.c --- a/drivers/input/touchscreen/usbtouchscreen.c~usbtouchscreen-find-input-endpoint-automatically +++ a/drivers/input/touchscreen/usbtouchscreen.c @@ -1057,17 +1057,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();