lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1208151137570.7026@pobox.suse.cz>
Date:	Wed, 15 Aug 2012 11:38:31 +0200 (CEST)
From:	Jiri Kosina <jkosina@...e.cz>
To:	Scott Liu <scott.liu@....com.tw>
Cc:	"benjamin.tissoires" <benjamin.tissoires@...il.com>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
	eleghost@...il.com
Subject: Re: [PATCH v4 1/1] HID:hid-multitouch: Add ELAN production request
 when resume.

On Wed, 15 Aug 2012, Scott Liu wrote:

> Add ELAN production request when resume.
> 
> Some Elan legacy devices require SET_IDLE to be set on resume.
> It should be safe to send it to other devices too.
> Tested on 3M, Stantum, Cypress, Zytronic, eGalax, and Elan panels. 
> 
> 
> Signed-off-by: Scott Liu <scott.liu@....com.tw>
> Suggested-off-by: Benjamin Tissoires <benjamin.tissoires@...c.fr>
> ---
>  drivers/hid/hid-multitouch.c |   27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index 59c8b5c..e824c37 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -767,6 +767,32 @@ static int mt_reset_resume(struct hid_device *hdev)
>  	mt_set_input_mode(hdev);
>  	return 0;
>  }
> +
> +static int mt_resume(struct hid_device *hdev)
> +{
> +	struct usb_interface *intf;
> +	struct usb_host_interface *interface;
> +	struct usb_device *dev;
> +
> +	if (hdev->bus != BUS_USB)
> +		return 0;
> +
> +	intf = to_usb_interface(hdev->dev.parent);
> +	interface = intf->cur_altsetting;
> +	dev = hid_to_usb_dev(hdev);
> +
> +	/* Some Elan legacy devices require SET_IDLE to be set on resume.
> +	 * It should be safe to send it to other devices too.
> +	 * Tested on 3M, Stantum, Cypress, Zytronic, eGalax, and Elan panels. */
> +
> +	usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
> +			HID_REQ_SET_IDLE,
> +			USB_TYPE_CLASS | USB_RECIP_INTERFACE,
> +			0, interface->desc.bInterfaceNumber,
> +			NULL, 0, USB_CTRL_SET_TIMEOUT);
> +
> +	return 0;
> +}
>  #endif
>  
>  static void mt_remove(struct hid_device *hdev)
> @@ -1092,6 +1118,7 @@ static struct hid_driver mt_driver = {
>  	.event = mt_event,
>  #ifdef CONFIG_PM
>  	.reset_resume = mt_reset_resume,
> +	.resume = mt_resume,
>  #endif
>  };

I am now queuing this one in my tree. If it later turns out that some 
devices actually don't like this request (which one would hope is very 
unlinkely to happen), we'll have to make it device specific.

Thanks,

-- 
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ