From 6ab0a7ce8601e1b3ae24516d91e26ca116e8fce4 Mon Sep 17 00:00:00 2001 From: kimi Date: Thu, 9 Jul 2020 15:44:22 -0400 Subject: small progress --- hid-tmt300rs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'hid-tmt300rs.c') diff --git a/hid-tmt300rs.c b/hid-tmt300rs.c index 3d678c8..2e2609a 100644 --- a/hid-tmt300rs.c +++ b/hid-tmt300rs.c @@ -892,7 +892,7 @@ err: * */ static int t300rs_preinit(struct hid_device *hdev){ int ret; - u8 *setup_packet; + u8 *setup_packet, *send_buffer; /* this is sort of unnecessary, as later on I compile the interfaces etc * into one struct, but for now this will do @@ -900,9 +900,10 @@ static int t300rs_preinit(struct hid_device *hdev){ struct device *dev = &hdev->dev; struct usb_interface *usbif = to_usb_interface(dev->parent); struct usb_device *usbdev = interface_to_usbdev(usbif); - struct urb *urb; + struct urb *urb; setup_packet = kmalloc(8, GFP_ATOMIC); + send_buffer = kzalloc(8, GFP_ATOMIC); memcpy(setup_packet, t300rs_ctrl_out, ARRAY_SIZE(t300rs_ctrl_out)); urb = usb_alloc_urb(0, GFP_ATOMIC); @@ -911,7 +912,10 @@ static int t300rs_preinit(struct hid_device *hdev){ usbdev, usb_sndctrlpipe(usbdev, 0), setup_packet, - NULL, + /* why is it important we have a pointer, when we send out 0 bytes? + * No clue. + * */ + send_buffer, 0, /* technically speaking this isn't an interrupt usb, but hey, this * works. @@ -926,6 +930,7 @@ static int t300rs_preinit(struct hid_device *hdev){ } error: + kfree(send_buffer); kfree(setup_packet); return ret; } -- cgit v1.3