aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hid-tmt300rs.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/hid-tmt300rs.c b/hid-tmt300rs.c
index 248309c..5885a74 100644
--- a/hid-tmt300rs.c
+++ b/hid-tmt300rs.c
@@ -1,10 +1,13 @@
#include "hid-tmt300rs.h"
+DEFINE_MUTEX(mtx);
+
static void t300rs_int_callback(struct urb *urb){
if(urb->status){
hid_warn(urb->dev, "urb status %i received\n", urb->status);
}
-
+
+ mutex_unlock(&mtx);
usb_free_urb(urb);
}
@@ -57,6 +60,8 @@ static int t300rs_send_int(struct input_dev *dev, u8 *send_buffer, int *trans){
ep->desc.bInterval
);
+ mutex_lock(&mtx);
+
return usb_submit_urb(urb, GFP_ATOMIC);
}
@@ -1268,7 +1273,11 @@ static int t300rs_open(struct input_dev *dev){
err:
kfree(send_buffer);
+<<<<<<< HEAD
+ return 0; //t300rs->open(dev);
+=======
return 0; // t300rs->open(dev);
+>>>>>>> f605352ef1a78145c01323633eeb15664ebb3cc4
}
static void t300rs_close(struct input_dev *dev){
@@ -1607,6 +1616,8 @@ int t300rs_init(struct hid_device *hdev, const signed short *ff_bits){
char range[10] = "900"; /* max */
int i, ret;
+ mutex_init(&mtx);
+
drv_data = hid_get_drvdata(hdev);
if(!drv_data){
hid_err(hdev, "private driver data not allocated\n");
@@ -1728,6 +1739,10 @@ int t300rs_init(struct hid_device *hdev, const signed short *ff_bits){
//spin_unlock_irqrestore(&lock, lock_flags);
t300rs_open(input_dev);
+<<<<<<< HEAD
+
+=======
+>>>>>>> f605352ef1a78145c01323633eeb15664ebb3cc4
t300rs_range_store(dev, &dev_attr_range, range, 10);
t300rs_set_gain(input_dev, 0xffff);