Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3202bb7f authored by Nikolai Kondrashov's avatar Nikolai Kondrashov Committed by Jiri Kosina
Browse files

HID: uclogic: Add support for UC-Logic TWHA60 v3



Add support for the third version of UC-Logic TWHA60, which has
three interfaces and responds to initialization.

Signed-off-by: default avatarNikolai Kondrashov <spbnick@gmail.com>
Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 6e026334
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -938,6 +938,7 @@ static int uclogic_probe(struct hid_device *hdev,
{
{
	int rc;
	int rc;
	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
	struct usb_interface *intf = to_usb_interface(hdev->dev.parent);
	struct usb_device *udev = hid_to_usb_dev(hdev);
	struct uclogic_drvdata *drvdata;
	struct uclogic_drvdata *drvdata;


	/*
	/*
@@ -988,6 +989,28 @@ static int uclogic_probe(struct hid_device *hdev,
			drvdata->ignore_pen_usage = true;
			drvdata->ignore_pen_usage = true;
		}
		}
		break;
		break;
	case USB_DEVICE_ID_UCLOGIC_TABLET_TWHA60:
		/*
		 * If it is the three-interface version, which is known to
		 * respond to initialization.
		 */
		if (udev->config->desc.bNumInterfaces == 3) {
			/* If it is the pen interface */
			if (intf->cur_altsetting->desc.bInterfaceNumber == 0) {
				rc = uclogic_tablet_enable(hdev);
				if (rc) {
					hid_err(hdev, "tablet enabling failed\n");
					return rc;
				}
				drvdata->invert_pen_inrange = true;

				rc = uclogic_button_enable(hdev);
				drvdata->has_virtual_pad_interface = !rc;
			} else {
				drvdata->ignore_pen_usage = true;
			}
		}
		break;
	}
	}


	rc = hid_parse(hdev);
	rc = hid_parse(hdev);