Blob Blame History Raw
diff --git a/input/device.c b/input/device.c
index 0090bd4..8d65148 100644
--- a/input/device.c
+++ b/input/device.c
@@ -658,6 +658,19 @@ static int hidp_add_connection(const struct input_device *idev,
 		err = write(sk, buf, sizeof(buf));
 	}
 
+	if (req->vendor == 0x056a && req->product == 0x81) {
+		unsigned char buf[3];
+		int sk = g_io_channel_unix_get_fd(iconn->ctrl_io);
+
+		buf[0] = 0x53; /* HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_FEATURE */
+		buf[1] = 0x03; buf[2] = 0x00;
+		write(sk, buf, sizeof(buf));
+
+		buf[0] = 0x71; /* HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_FEATURE */
+		/* 0x06 - high reporting speed, 0x05 - low speed */
+		buf[1] = 0x06; buf[2] = 0x00;
+		write(sk, buf, sizeof(buf));
+	}
 	err = ioctl_connadd(req);
 
 cleanup: