diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 70caab72da26..2c19aac3c989 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -2504,7 +2504,6 @@ static const struct hid_device_id hid_ignore_list[] = { #endif { HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) }, - { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_MULTITOUCH) }, { HID_USB_DEVICE(USB_VENDOR_ID_ODROID, USB_DEVICE_ID_VU5) }, { HID_USB_DEVICE(USB_VENDOR_ID_ODROID, USB_DEVICE_ID_VU7PLUS) }, { } diff --git a/drivers/input/touchscreen/dwav-usb-mt.c b/drivers/input/touchscreen/dwav-usb-mt.c index e72f9f39bca7..fc2c0ba28ecb 100644 --- a/drivers/input/touchscreen/dwav-usb-mt.c +++ b/drivers/input/touchscreen/dwav-usb-mt.c @@ -412,6 +412,33 @@ static int dwav_usb_mt_init(struct dwav_usb_mt *dwav_usb_mt, void *dev) return 0; } +static bool disable_vu7; +/*-------------------------------------------------------------------------*/ +static int __init dwav_usb_mt_boot_para_setup(char *s) +{ + disable_vu7 = false; + if (!strncmp(s, "true", 4)) + disable_vu7 = true; + else if (!strncmp(s, "false", 5)) + disable_vu7 = false; + else { + pr_err("%s - wrong disable_vu7 parameter", __func__); + disable_vu7 = true; + } + + return 0; +} +__setup("disable_vu7=", dwav_usb_mt_boot_para_setup); + +/*-------------------------------------------------------------------------*/ +static bool dwav_usb_mt_ignore(const struct usb_device_id *id) +{ + if (disable_vu7 && id->driver_info == ODROID_VU7) + return true; + else + return false; +} + /*-------------------------------------------------------------------------*/ static int dwav_usb_mt_probe(struct usb_interface *intf, const struct usb_device_id *id) @@ -423,6 +450,10 @@ static int dwav_usb_mt_probe(struct usb_interface *intf, int err = 0; + /* ignore the vu7 id when using other device */ + if (dwav_usb_mt_ignore(id)) + return -ENODEV; + endpoint = dwav_usb_mt_get_input_endpoint(intf->cur_altsetting); if (!endpoint) return -ENXIO;