aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkimi <kimi.h.kuparinen@gmail.com>2020-11-05 14:51:02 -0500
committerkimi <kimi.h.kuparinen@gmail.com>2020-11-05 14:51:02 -0500
commitf635e5d3da93d4f508abe561ffb2c4336bbc134e (patch)
tree247ef25728b83829cafb5ac14cf4a434d4ae44e3
parent62a27386911379ccf9346909dc5e8792f4f1d07f (diff)
downloadhid-tmff2-f635e5d3da93d4f508abe561ffb2c4336bbc134e.tar.gz
hid-tmff2-f635e5d3da93d4f508abe561ffb2c4336bbc134e.zip
Fixed, which means this probably won't work for you guys
-rw-r--r--hid-tmt300rs.c51
-rw-r--r--hid-tmt300rs.h2
2 files changed, 43 insertions, 10 deletions
diff --git a/hid-tmt300rs.c b/hid-tmt300rs.c
index 871c0d0..84fc54c 100644
--- a/hid-tmt300rs.c
+++ b/hid-tmt300rs.c
@@ -31,6 +31,38 @@ static struct t300rs_device_entry *t300rs_get_device(struct hid_device *hdev){
return t300rs;
}
+static int t300rs_send_dumb_int(struct input_dev *dev, u8 *send_buffer, int *trans){
+ struct hid_device *hdev = input_get_drvdata(dev);
+ struct t300rs_device_entry *t300rs;
+ struct usb_device *usbdev;
+ struct usb_interface *usbif;
+ struct usb_host_endpoint *ep;
+ struct urb *urb = usb_alloc_urb(0, GFP_ATOMIC);
+ int ret, i;
+
+ t300rs = t300rs_get_device(hdev);
+ if(!t300rs){
+ hid_err(hdev, "could not get device\n");
+ }
+
+ usbdev = t300rs->usbdev;
+ usbif = t300rs->usbif;
+ ep = &usbif->cur_altsetting->endpoint[1];
+
+ usb_fill_int_urb(
+ urb,
+ usbdev,
+ usb_sndintpipe(usbdev, 1),
+ send_buffer,
+ T300RS_BUFFER_LENGTH,
+ t300rs_int_callback,
+ hdev,
+ ep->desc.bInterval
+ );
+
+ return usb_submit_urb(urb, GFP_ATOMIC);
+}
+
static int t300rs_send_int(struct input_dev *dev, u8 *send_buffer, int *trans){
struct hid_device *hdev = input_get_drvdata(dev);
struct t300rs_device_entry *t300rs;
@@ -1240,7 +1272,7 @@ static int t300rs_open(struct input_dev *dev){
int ret, trans;
t300rs = t300rs_get_device(hdev);
-
+/*
send_buffer[0] = 0x60;
send_buffer[1] = 0x01;
send_buffer[2] = 0x04;
@@ -1271,6 +1303,7 @@ static int t300rs_open(struct input_dev *dev){
memset(send_buffer, 0, T300RS_BUFFER_LENGTH);
t300rs_open_interrupts(t300rs);
+ */
send_buffer[0] = 0x60;
send_buffer[1] = 0x01;
@@ -1368,7 +1401,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[0] = 0x42;
send_buffer[1] = 0x01;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1385,7 +1418,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[2] = 0x90;
send_buffer[3] = 0x03;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1401,7 +1434,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[2] = 0x00;
send_buffer[3] = 0x0c;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1416,7 +1449,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[2] = 0x12;
send_buffer[3] = 0x10;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1431,7 +1464,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[2] = 0x00;
send_buffer[3] = 0x06;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1459,7 +1492,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[1] = 0x04;
send_buffer[2] = 0x03;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1473,7 +1506,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[1] = 0x04;
send_buffer[2] = 0x03;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
@@ -1487,7 +1520,7 @@ void t300rs_init_interrupts(struct t300rs_device_entry *t300rs){
send_buffer[1] = 0x04;
send_buffer[2] = 0x03;
- ret = t300rs_send_int(t300rs->input_dev, send_buffer, &trans);
+ ret = t300rs_send_dumb_int(t300rs->input_dev, send_buffer, &trans);
if(ret){
hid_err(t300rs->hdev, "failed sending interrupts\n");
goto err;
diff --git a/hid-tmt300rs.h b/hid-tmt300rs.h
index b622d15..140cf9d 100644
--- a/hid-tmt300rs.h
+++ b/hid-tmt300rs.h
@@ -89,7 +89,7 @@ struct t300rs_data{
static __u8 t300rs_rdesc_fixed[] = {0x05, 0x01, 0x09, 0x04, 0xa1, 0x01, 0x09, 0x01, 0xa1, 0x00, 0x85, 0x07, 0x09, 0x30, 0x15, 0x00, 0x27, 0xff, 0xff, 0x00, 0x00, 0x35, 0x00, 0x47, 0xff, 0xff, 0x00, 0x00, 0x75, 0x10, 0x95, 0x01, 0x81, 0x02, 0x09, 0x35, 0x26, 0xff, 0x03, 0x46, 0xff, 0x03, 0x81, 0x02, 0x09, 0x32, 0x81, 0x02, 0x09, 0x31, 0x81, 0x02, 0x81, 0x03, 0x05, 0x09, 0x19, 0x01, 0x29, 0x0d, 0x25, 0x01, 0x45, 0x01, 0x75, 0x01, 0x95, 0x0d, 0x81, 0x02, 0x75, 0x0b, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x39, 0x25, 0x07, 0x46, 0x3b, 0x01, 0x55, 0x00, 0x65, 0x14, 0x75, 0x04, 0x81, 0x42, 0x65, 0x00, 0x81, 0x03, 0x85, 0x60, // here 0x0a
0x06, 0x00, 0xff, 0x09, 0x60, // here 0x0a
- 0x75, 0x08, 0x95, 0x3f, 0x26, 0xff, 0x7f, 0x16, 0x00, 0x80, 0x46, 0xff, 0x7f, 0x36, 0x00, 0x80, 0x91, 0x02, 0x85, 0x02, 0x09, 0x02, 0x81, 0x02, 0x09, 0x14, 0x85, 0x14, 0x81, 0x02, 0xc0, 0xc0,};
+ 0x75, 0x08, 0x95, 0x3f, 0x26, 0xff, 0x7f, 0x15, 0x00, 0x46, 0xff, 0x7f, 0x36, 0x00, 0x80, 0x91, 0x02, 0x85, 0x02, 0x09, 0x02, 0x81, 0x02, 0x09, 0x14, 0x85, 0x14, 0x81, 0x02, 0xc0, 0xc0,};
static u8 spring_values[] = {
0xa6, 0x6a, 0xa6, 0x6a, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xdf, 0x58, 0xa6, 0x6a, 0x06