Skip to content

Commit

Permalink
HID: hiddev: use hid_hw_open/close instead of usbhid_open/close
Browse files Browse the repository at this point in the history
Instead of calling into usbhid code directly, let's use the standard
accessors for the transport HID drivers, and stop clobbering their errors
with -EIO.

This also allows us make usbhid_open and close static.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
  • Loading branch information
Dmitry Torokhov authored and Jiri Kosina committed Jun 8, 2017
1 parent 6df62e7 commit d36b7d4
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions drivers/hid/usbhid/hid-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ static int hid_get_class_descriptor(struct usb_device *dev, int ifnum,
return result;
}

int usbhid_open(struct hid_device *hid)
static int usbhid_open(struct hid_device *hid)
{
struct usbhid_device *usbhid = hid->driver_data;
int res = 0;
Expand Down Expand Up @@ -722,7 +722,7 @@ int usbhid_open(struct hid_device *hid)
return res;
}

void usbhid_close(struct hid_device *hid)
static void usbhid_close(struct hid_device *hid)
{
struct usbhid_device *usbhid = hid->driver_data;

Expand Down
16 changes: 9 additions & 7 deletions drivers/hid/usbhid/hiddev.c
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ static int hiddev_release(struct inode * inode, struct file * file)
mutex_lock(&list->hiddev->existancelock);
if (!--list->hiddev->open) {
if (list->hiddev->exist) {
usbhid_close(list->hiddev->hid);
hid_hw_close(list->hiddev->hid);
usbhid_put_power(list->hiddev->hid);
} else {
mutex_unlock(&list->hiddev->existancelock);
Expand Down Expand Up @@ -282,11 +282,9 @@ static int hiddev_open(struct inode *inode, struct file *file)
*/
if (list->hiddev->exist) {
if (!list->hiddev->open++) {
res = usbhid_open(hiddev->hid);
if (res < 0) {
res = -EIO;
res = hid_hw_open(hiddev->hid);
if (res < 0)
goto bail;
}
}
} else {
res = -ENODEV;
Expand All @@ -306,10 +304,14 @@ static int hiddev_open(struct inode *inode, struct file *file)
res = -EIO;
goto bail_unlock;
}
usbhid_open(hid);
res = hid_hw_open(hid);
if (res < 0)
goto bail_put_power;
}
mutex_unlock(&hiddev->existancelock);
return 0;
bail_put_power:
usbhid_put_power(hid);
bail_unlock:
mutex_unlock(&hiddev->existancelock);
bail:
Expand Down Expand Up @@ -935,7 +937,7 @@ void hiddev_disconnect(struct hid_device *hid)

if (hiddev->open) {
mutex_unlock(&hiddev->existancelock);
usbhid_close(hiddev->hid);
hid_hw_close(hiddev->hid);
wake_up_interruptible(&hiddev->wait);
} else {
mutex_unlock(&hiddev->existancelock);
Expand Down
2 changes: 0 additions & 2 deletions drivers/hid/usbhid/usbhid.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@
#include <linux/input.h>

/* API provided by hid-core.c for USB HID drivers */
void usbhid_close(struct hid_device *hid);
int usbhid_open(struct hid_device *hid);
void usbhid_init_reports(struct hid_device *hid);
int usbhid_get_power(struct hid_device *hid);
void usbhid_put_power(struct hid_device *hid);
Expand Down

0 comments on commit d36b7d4

Please sign in to comment.