All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] hw: dev-wacom: Support wacom tablet emulation in linux qemu
@ 2020-08-12 15:21 Michael Trimarchi
  2020-08-17  6:47 ` Gerd Hoffmann
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Trimarchi @ 2020-08-12 15:21 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel

Linux need to fill up the hid descriptor in order to let
the driver be emulated. This patch was tested on top of
qemu 4.2.0 and recent linux kernel.

modprobe wacom.ko
evtest tool

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
---
 hw/usb/dev-wacom.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
index 8aba44b8bc..fe95699672 100644
--- a/hw/usb/dev-wacom.c
+++ b/hw/usb/dev-wacom.c
@@ -259,6 +259,64 @@ static void usb_wacom_handle_reset(USBDevice *dev)
     s->mode = WACOM_MODE_HID;
 }
 
+static const uint8_t qemu_wacom_hid_report_descriptor[] = {
+	0x05, 0x01,
+	0x09, 0x02,
+	0xa1, 0x01,
+	0x85, 0x01,
+	0x09, 0x01,
+	0xa1, 0x00,
+	0x05, 0x09,
+	0x19, 0x01,
+	0x29, 0x03,
+	0x15, 0x00,
+	0x25, 0x01,
+	0x95, 0x03,
+	0x75, 0x01,
+	0x81, 0x02,
+	0x95, 0x01,
+	0x75, 0x05,
+	0x81, 0x01,
+	0x05, 0x01,
+	0x09, 0x30,
+	0x09, 0x31,
+	0x09, 0x38,
+	0x15, 0x81,
+	0x25, 0x7f,
+	0x75, 0x08,
+	0x95, 0x03,
+	0x81, 0x06,
+	0x95, 0x03,
+	0x81, 0x01,
+	0xc0, 0xc0,
+	0x05, 0x0d,
+	0x09, 0x01,
+	0xa1, 0x01,
+	0x85, 0x02,
+	0xa1, 0x00,
+	0x06, 0x00,
+	0xff, 0x09,
+	0x01, 0x15,
+	0x00, 0x26,
+	0xff, 0x00,
+	0x75, 0x08,
+	0x95, 0x07,
+	0x81, 0x02,
+	0xc0, 0x09,
+	0x01, 0x85,
+	0x63, 0x95,
+	0x07, 0x81,
+	0x02, 0x09,
+	0x01, 0x85,
+	0x02, 0x95,
+	0x01, 0xb1,
+	0x02, 0x09,
+	0x01, 0x85,
+	0x03, 0x95,
+	0x01, 0xb1,
+	0x02, 0xc0,
+};
+
 static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
                int request, int value, int index, int length, uint8_t *data)
 {
@@ -271,6 +329,18 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
     }
 
     switch (request) {
+    case InterfaceRequest | USB_REQ_GET_DESCRIPTOR:
+        switch (value >> 8) {
+        case 0x22:
+                memcpy(data, qemu_wacom_hid_report_descriptor,
+                       sizeof(qemu_wacom_hid_report_descriptor));
+                p->actual_length = sizeof(qemu_wacom_hid_report_descriptor);
+            break;
+        default:
+            goto fail;
+        }
+        break;
+
     case WACOM_SET_REPORT:
         if (s->mouse_grabbed) {
             qemu_remove_mouse_event_handler(s->eh_entry);
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-08-21 16:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-12 15:21 [PATCH] hw: dev-wacom: Support wacom tablet emulation in linux qemu Michael Trimarchi
2020-08-17  6:47 ` Gerd Hoffmann
2020-08-17  6:48   ` Michael Nazzareno Trimarchi
2020-08-17  7:28     ` Gerd Hoffmann
2020-08-17 16:42       ` Michael Nazzareno Trimarchi
2020-08-18  6:02         ` Gerd Hoffmann
2020-08-18  8:23           ` Michael Nazzareno Trimarchi
2020-08-19  5:52             ` Gerd Hoffmann
2020-08-21 16:24               ` Michael Nazzareno Trimarchi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.