diff options
| -rw-r--r-- | hid-tmt300rs.c | 17 |
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); |
