Re: [patch v2 1/1] HID:hid-multitouch: Add ELAN prouction request when resume
From: 劉嘉駿 <hidden>
Date: 2012-08-09 14:20:44
Also in:
lkml
Hi Benjamin: Revision will be update later. Benjamin Tissoires [off-list ref] 於 2012/8/9 下午7:27 寫道:
Hi Scott, we are getting closer. Just a few nitpicks: On Thu, Aug 9, 2012 at 11:22 AM, Scott Liu [off-list ref] wrote:quoted
Some of ELAN's production need to with set_idle commmand when reusme.reusme -> resumequoted
Signed-off-by: Scott Liu <redacted> --- drivers/hid/hid-ids.h | 3 +++ drivers/hid/hid-multitouch.c | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+)diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 41c34f2..a4d810c 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h@@ -829,4 +829,7 @@#define USB_VENDOR_ID_PRIMAX 0x0461 #define USB_DEVICE_ID_PRIMAX_KEYBOARD 0x4e05 +#define USB_VENDOR_ID_ELAN 0x04f3 +#define USB_DEVICE_ID_ELAN_MOCCA 0x000a +We try to keep the list alphabetically sorted. So it should go just before USB_VENDOR_ID_ELECOM. Also, the device you sent to me has the PID 0x0732 and is behaving the same way (need to call the mt_reset command). Is 0x000a a mistake or do all of your product behave like this? If it's the latter, then we may purely remove the PID test. Jiri, any ideas?
No, not all ELAN production needs set_idle command after resume, only for previous chipset. Thanks. Scott
quoted
#endifdiff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 59c8b5c..b06b7d3 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c@@ -767,6 +767,25 @@ static int mt_reset_resume(struct hid_device *hdev) mt_set_input_mode(hdev); return 0;} + +static int mt_resume(struct hid_device *hdev) +{ + if (hdev->vendor == USB_VENDOR_ID_ELAN && + hdev->product == USB_DEVICE_ID_ELAN_MOCCA) { + + struct usb_interface *intf = to_usb_interface(hdev->dev.parent); + struct usb_host_interface *interface = intf->cur_altsetting; + struct usb_device *dev = hid_to_usb_dev(hdev); + + usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + HID_REQ_SET_IDLE, USB_TYPE_CLASS | USB_RECIP_INTERFACE,As we are on it, this line is more than 80 characters. Tabs are 8 characters length.quoted
+ 0, interface->desc.bInterfaceNumber, + NULL, 0, USB_CTRL_SET_TIMEOUT); + }spaces instead of tabs.quoted
+ + return 0;idem, spaces instead of tabs. Anyway, I really appreciate your efforts Scott. Cheers, Benjaminquoted
+} + #endif static void mt_remove(struct hid_device *hdev)@@ -1092,6 +1111,7 @@ static struct hid_driver mt_driver = { .event = mt_event,#ifdef CONFIG_PM .reset_resume = mt_reset_resume, + .resume = mt_resume, #endif }; -- 1.7.9.5i
-- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html