All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@mvista.com>
To: Forest Bond <forest@alittletooquiet.net>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Daniel Ritz <daniel.ritz@gmx.ch>,
	linux-input@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH] Input: usbtouchscreen - initialize eGalax devices
Date: Fri, 31 Aug 2012 22:50:38 +0400	[thread overview]
Message-ID: <5041077E.8070405@mvista.com> (raw)
In-Reply-To: <20120831135658.GC24820@alittletooquiet.net>

Hello.

On 08/31/2012 05:56 PM, Forest Bond wrote:

> From: Forest Bond <forest.bond@rapidrollout.com>

> Certain eGalax devices expose an interface with class HID and protocol
> None.  Some work with usbhid and some work with usbtouchscreen, but
> there is no easy way to differentiate.  Sending an eGalax diagnostic
> packet seems to kick them all into using the right protocol for
> usbtouchscreen, so we can continue to bind them all there (as opposed to
> handing some off to usbhid).

> This fixes a regression for devices that were claimed by (and worked
> with) usbhid prior to commit 139ebe8dc80dd74cb2ac9f5603d18fbf5cff049f,

   Please also specify that commit's summary ion parens.

> which made usbtouchscreen claim them instead.  With this patch they will
> still be claimed by usbtouchscreen, but they will actually report events
> usbtouchscreen can understand.  Note that these devices will be limited
> to the usbtouchscreen feature set so e.g. dual touch features are not
> supported.

> I have the distinct pleasure of needing to support devices of both types
> and have tested accordingly.

> Signed-off-by: Forest Bond <forest.bond@rapidrollout.com>
> ---
>  drivers/input/touchscreen/usbtouchscreen.c |   25 +++++++++++++++++++++++++
>  1 files changed, 25 insertions(+), 0 deletions(-)

> diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c
> index e32709e..2ce5308 100644
> --- a/drivers/input/touchscreen/usbtouchscreen.c
> +++ b/drivers/input/touchscreen/usbtouchscreen.c
> @@ -304,6 +304,30 @@ static int e2i_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
>  #define EGALAX_PKT_TYPE_REPT		0x80
>  #define EGALAX_PKT_TYPE_DIAG		0x0A
>  
> +static int egalax_init(struct usbtouch_usb *usbtouch)
> +{
> +	int ret, i;
> +	struct usb_device *udev = interface_to_usbdev(usbtouch->interface);
> +
> +	/* An eGalax diagnostic packet kicks the device into using the right
> +	 * protocol. */

   The preferred multi-line comment style is:

/*
 * bla
 * bla
 */

> +	for (i = 0; i < 3; i++) {
> +		/* Send a "check active" packet. The response will be read
> +		 * later and ignored. */
> +		ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
> +				      0,
> +				      USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
> +				      0, 0, "\x0A\x01A", 0,

   You probably can't send data from the .const section (as well as off the
stack) -- they can be DMA'ed and there'll be issues with cache consistency on
non-x86 arches. You should allocate the data with kmalloc().
   Although, on the second thought, maybe I'm wrong in this case... not really
sure about sending -- receiving (to the .data section) could certainly be harmful...

WBR, Sergei


  parent reply	other threads:[~2012-08-31 18:52 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-31 13:56 [PATCH] Input: usbtouchscreen - initialize eGalax devices Forest Bond
2012-08-31 14:51 ` Dmitry Torokhov
2012-08-31 18:50 ` Sergei Shtylyov [this message]
2012-08-31 19:26   ` Dmitry Torokhov
     [not found]     ` <20120831192632.GA30202-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2012-08-31 20:04       ` Alan Stern
     [not found]         ` <Pine.LNX.4.44L0.1208311555140.1328-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2012-08-31 20:22           ` Forest Bond
2012-08-31 22:53           ` Forest Bond
     [not found]             ` <20120831225353.GE24820-B/PTSs0AgtP3p6jHtUh95NHuzzzSOjJt@public.gmane.org>
2012-08-31 23:10               ` Dmitry Torokhov
     [not found]                 ` <20120831231047.GA22142-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2012-08-31 23:23                   ` Forest Bond
2012-09-01  0:37                     ` [PATCH resend] " Forest Bond
2012-09-03 13:26                       ` Sergey Vlasov
     [not found]                         ` <20120903132648.GC11919-TEYkr/UGJhVKdHEj4xO92LjjLBE8jN/0@public.gmane.org>
2012-09-03 17:33                           ` [PATCH resend2] " Forest Bond
     [not found]                             ` <20120903173349.GA18666-B/PTSs0AgtP3p6jHtUh95NHuzzzSOjJt@public.gmane.org>
2012-09-05  6:07                               ` Dmitry Torokhov
     [not found]                                 ` <20120905060704.GC25962-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2012-09-07 20:42                                   ` Forest Bond
2012-09-10 21:11                                     ` Dmitry Torokhov
2012-11-01 10:38                                       ` Jiri Kosina
2012-11-02 19:51                                         ` Forest Bond
2012-11-05 14:19                                           ` Jiri Kosina
2012-11-05 18:34                                             ` Forest Bond

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5041077E.8070405@mvista.com \
    --to=sshtylyov@mvista.com \
    --cc=daniel.ritz@gmx.ch \
    --cc=dmitry.torokhov@gmail.com \
    --cc=forest@alittletooquiet.net \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.