diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2020-11-03 14:34:23 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2020-11-03 14:34:23 +0200 |
| commit | b1ae16b12812f74d294dfafd0b22fd0828df90fb (patch) | |
| tree | d165811d392d15f4b0f1a858637e97992aa7815b /hid-tminit.c | |
| parent | 7d00db47085cec13b4c22fdee6b75987e2e879a7 (diff) | |
| download | hid-tmff2-b1ae16b12812f74d294dfafd0b22fd0828df90fb.tar.gz hid-tmff2-b1ae16b12812f74d294dfafd0b22fd0828df90fb.zip | |
Added hacky sleep between init interrupts
Diffstat (limited to 'hid-tminit.c')
| -rw-r--r-- | hid-tminit.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/hid-tminit.c b/hid-tminit.c index 25caf51..7f1c657 100644 --- a/hid-tminit.c +++ b/hid-tminit.c @@ -39,7 +39,7 @@ static void tminit_interrupts(struct hid_device *hdev){ kzfree(send_buf); } -/* + void tminit_controls(struct hid_device *hdev){ int i = 0, ret; struct usb_host_endpoint *ep; @@ -61,7 +61,7 @@ void tminit_controls(struct hid_device *hdev){ USB_CTRL_SET_TIMEOUT); if(ret < 0){ - hid_err(hdev, "failed with the ctrl: %i", ret); + hid_err(hdev, "failed retrieveing ctrl 86: %i", ret); } ret = usb_control_msg(usbdev, @@ -75,8 +75,9 @@ void tminit_controls(struct hid_device *hdev){ USB_CTRL_SET_TIMEOUT); if(ret < 0){ - hid_err(hdev, "failed with the ctrl: %i", ret); + hid_err(hdev, "failed retrieving ctrl 73: %i", ret); } + ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 66, @@ -88,8 +89,9 @@ void tminit_controls(struct hid_device *hdev){ USB_CTRL_SET_TIMEOUT); if(ret < 0){ - hid_err(hdev, "failed with the ctrl: %i", ret); + hid_err(hdev, "failed retreiving ctrl 66: %i", ret); } + ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 78, @@ -101,7 +103,7 @@ void tminit_controls(struct hid_device *hdev){ USB_CTRL_SET_TIMEOUT); if(ret < 0){ - hid_err(hdev, "failed with the ctrl: %i", ret); + hid_err(hdev, "failed retrieving ctrl 78: %i", ret); } ret = usb_control_msg(usbdev, @@ -115,10 +117,9 @@ void tminit_controls(struct hid_device *hdev){ USB_CTRL_SET_TIMEOUT); if(ret < 0){ - hid_err(hdev, "failed with the ctrl: %i", ret); + hid_err(hdev, "failed retrieving 86: %i", ret); } } -*/ int tminit(struct hid_device *hdev){ struct urb *urb; @@ -127,8 +128,9 @@ int tminit(struct hid_device *hdev){ struct usb_interface *usbif = to_usb_interface(dev->parent); struct usb_device *usbdev = interface_to_usbdev(usbif); int ret; + u8 *transfer = kzalloc(64, GFP_ATOMIC); - //tminit_controls(hdev); + tminit_controls(hdev); tminit_interrupts(hdev); @@ -138,6 +140,20 @@ int tminit(struct hid_device *hdev){ memcpy(setup_packet, hw_rq_out, 8); memcpy(transfer_buffer, hw_rq_in, 8); + ret = usb_control_msg(usbdev, + usb_rcvctrlpipe(usbdev, 0), + 73, + 0xc1, + 0, + 0, + transfer, + 16, + USB_CTRL_SET_TIMEOUT); + + if(ret < 0){ + hid_err(hdev, "failed retrieving 73 after interrupts: %i", ret); + } + urb = usb_alloc_urb(0, GFP_ATOMIC); usb_fill_control_urb(urb, @@ -156,6 +172,7 @@ int tminit(struct hid_device *hdev){ ret = usb_submit_urb(urb, GFP_ATOMIC); kfree(setup_packet); kfree(transfer_buffer); + kfree(transfer); return ret; } |
