diff mbox series

USB HID: Add disabled wakeup from s3 by touchpad on byd zhaoxin notebook

Message ID 20200819115101.22532-1-penghao@uniontech.com
State New
Delegated to: Jiri Kosina
Headers show
Series USB HID: Add disabled wakeup from s3 by touchpad on byd zhaoxin notebook | expand

Commit Message

Penghao Aug. 19, 2020, 11:51 a.m. UTC
BYD Notebook built-in touch pad, USB interface,so disabled,the touch pad
device idVendor 0x0c45 idProduct 0x7056

Signed-off-by: penghao <penghao@uniontech.com>
---
 drivers/hid/usbhid/hid-core.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Greg Kroah-Hartman Aug. 19, 2020, 12:08 p.m. UTC | #1
On Wed, Aug 19, 2020 at 07:51:01PM +0800, penghao wrote:
> BYD Notebook built-in touch pad, USB interface,so disabled,the touch pad
> device idVendor 0x0c45 idProduct 0x7056
> 
> Signed-off-by: penghao <penghao@uniontech.com>
> ---
>  drivers/hid/usbhid/hid-core.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
> index 492dd641a25d..630a3cad211f 100644
> --- a/drivers/hid/usbhid/hid-core.c
> +++ b/drivers/hid/usbhid/hid-core.c
> @@ -1193,7 +1193,13 @@ static int usbhid_start(struct hid_device *hid)
>  			interface->desc.bInterfaceProtocol ==
>  				USB_INTERFACE_PROTOCOL_KEYBOARD) {
>  		usbhid_set_leds(hid);
> -		device_set_wakeup_enable(&dev->dev, 1);
> +		/*
> +		 * USB HID: Add disabled touchpad wakeup on byd zhaoxin notebook
> +		 */
> +		if ((hid->vendor == 0x0c45) && (hid->product == 0x7056))
> +			device_set_wakeup_enable(&dev->dev, 0);
> +		else
> +			device_set_wakeup_enable(&dev->dev, 1);

Shouldn't this be a quirk somewhere instead of this core check?

thanks,

greg k-h
Greg Kroah-Hartman Aug. 19, 2020, 12:44 p.m. UTC | #2
On Wed, Aug 19, 2020 at 08:37:11PM +0800, 彭浩 wrote:
> Thank you for your guidance, can you tell me how to improve ?
> 
> 
> thanks,   
> penghao
> 
> 
> 统信软件技术有限公司
> 
> UnionTech Software Technology Co., Ltd.  
> 
> 官网:www.uniontech.com  
> 
> 
> 此电子邮件消息仅供预期收件人使用,其中可能包含保密或特权使用信息。如果您不是预
> 期收件人,请勿使用、传播、分发或复制此电子邮件或信赖此邮件采取任何行动。如果您
> 误收了此邮件,请立即回复邮件通知统信软件技术有限公司发件人,并删除误收电子邮件
> 及其相关附件。感谢配合!  
> 
>  
> This email message is intended only for the use of the individual or entity who
> /which is the intended recipient and may contain information that is privileged
> or confidential. If you are not the intended recipient, you are hereby notified
> that any use, dissemination, distribution or copying of, or taking any action
> in reliance on, this e-mail is strictly prohibited. If you have received this
> email in error, please notify UnionTech Software Technology  immediately by
> replying to this e-mail and immediately delete and discard all copies of the
> e-mail and the attachment thereto (if any). Thank you.  

Footers like this mean I have to delete it and can not respond as it is
not compatible with Linux kernel development, sorry :(
Jiri Kosina Aug. 25, 2020, 11:37 a.m. UTC | #3
On Wed, 19 Aug 2020, 彭浩 wrote:

> Thank you for your guidance, can you tell me how to improve ?

Please take a look at drivers/hid/hid-quirks.c, that's where all the 
device-specific quirks are initialized (in the hid_quirks[] array) and 
then handled where needed according to the quirk flag in ->driver_data.

Thanks,
diff mbox series

Patch

diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 492dd641a25d..630a3cad211f 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1193,7 +1193,13 @@  static int usbhid_start(struct hid_device *hid)
 			interface->desc.bInterfaceProtocol ==
 				USB_INTERFACE_PROTOCOL_KEYBOARD) {
 		usbhid_set_leds(hid);
-		device_set_wakeup_enable(&dev->dev, 1);
+		/*
+		 * USB HID: Add disabled touchpad wakeup on byd zhaoxin notebook
+		 */
+		if ((hid->vendor == 0x0c45) && (hid->product == 0x7056))
+			device_set_wakeup_enable(&dev->dev, 0);
+		else
+			device_set_wakeup_enable(&dev->dev, 1);
 	}
 
 	mutex_unlock(&usbhid->mutex);