diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:37:24 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:37:24 -0500 |
commit | 7c7758f99d39d529a64d4f60d22129bbf2f16d74 (patch) | |
tree | 8847b5e56812fe4c4c812cfffc78e391a91f4ebe /drivers/hid/usbhid | |
parent | 67acd8b4b7a3f1b183ae358e1dfdb8a80e170736 (diff) | |
parent | 8a70da82edc50aa7a4b54864babf2d72538ba1bb (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (123 commits)
wimax/i2400m: add CREDITS and MAINTAINERS entries
wimax: export linux/wimax.h and linux/wimax/i2400m.h with headers_install
i2400m: Makefile and Kconfig
i2400m/SDIO: TX and RX path backends
i2400m/SDIO: firmware upload backend
i2400m/SDIO: probe/disconnect, dev init/shutdown and reset backends
i2400m/SDIO: header for the SDIO subdriver
i2400m/USB: TX and RX path backends
i2400m/USB: firmware upload backend
i2400m/USB: probe/disconnect, dev init/shutdown and reset backends
i2400m/USB: header for the USB bus driver
i2400m: debugfs controls
i2400m: various functions for device management
i2400m: RX and TX data/control paths
i2400m: firmware loading and bootrom initialization
i2400m: linkage to the networking stack
i2400m: Generic probe/disconnect, reset and message passing
i2400m: host/device procotol and core driver definitions
i2400m: documentation and instructions for usage
wimax: Makefile, Kconfig and docbook linkage for the stack
...
Diffstat (limited to 'drivers/hid/usbhid')
-rw-r--r-- | drivers/hid/usbhid/hid-core.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 03cb494af1c5..f0a0f72238ab 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c | |||
@@ -102,7 +102,7 @@ static void hid_reset(struct work_struct *work) | |||
102 | struct usbhid_device *usbhid = | 102 | struct usbhid_device *usbhid = |
103 | container_of(work, struct usbhid_device, reset_work); | 103 | container_of(work, struct usbhid_device, reset_work); |
104 | struct hid_device *hid = usbhid->hid; | 104 | struct hid_device *hid = usbhid->hid; |
105 | int rc_lock, rc = 0; | 105 | int rc = 0; |
106 | 106 | ||
107 | if (test_bit(HID_CLEAR_HALT, &usbhid->iofl)) { | 107 | if (test_bit(HID_CLEAR_HALT, &usbhid->iofl)) { |
108 | dev_dbg(&usbhid->intf->dev, "clear halt\n"); | 108 | dev_dbg(&usbhid->intf->dev, "clear halt\n"); |
@@ -113,11 +113,10 @@ static void hid_reset(struct work_struct *work) | |||
113 | 113 | ||
114 | else if (test_bit(HID_RESET_PENDING, &usbhid->iofl)) { | 114 | else if (test_bit(HID_RESET_PENDING, &usbhid->iofl)) { |
115 | dev_dbg(&usbhid->intf->dev, "resetting device\n"); | 115 | dev_dbg(&usbhid->intf->dev, "resetting device\n"); |
116 | rc = rc_lock = usb_lock_device_for_reset(hid_to_usb_dev(hid), usbhid->intf); | 116 | rc = usb_lock_device_for_reset(hid_to_usb_dev(hid), usbhid->intf); |
117 | if (rc_lock >= 0) { | 117 | if (rc == 0) { |
118 | rc = usb_reset_device(hid_to_usb_dev(hid)); | 118 | rc = usb_reset_device(hid_to_usb_dev(hid)); |
119 | if (rc_lock) | 119 | usb_unlock_device(hid_to_usb_dev(hid)); |
120 | usb_unlock_device(hid_to_usb_dev(hid)); | ||
121 | } | 120 | } |
122 | clear_bit(HID_RESET_PENDING, &usbhid->iofl); | 121 | clear_bit(HID_RESET_PENDING, &usbhid->iofl); |
123 | } | 122 | } |