|
@@ -193,15 +193,13 @@ static int hidraw_open(struct inode *inode, struct file *file)
|
|
|
|
|
|
dev = hidraw_table[minor];
|
|
dev = hidraw_table[minor];
|
|
if (!dev->open++) {
|
|
if (!dev->open++) {
|
|
- if (dev->hid->ll_driver->power) {
|
|
|
|
- err = dev->hid->ll_driver->power(dev->hid, PM_HINT_FULLON);
|
|
|
|
- if (err < 0)
|
|
|
|
- goto out_unlock;
|
|
|
|
- }
|
|
|
|
- err = dev->hid->ll_driver->open(dev->hid);
|
|
|
|
|
|
+ err = hid_hw_power(dev->hid, PM_HINT_FULLON);
|
|
|
|
+ if (err < 0)
|
|
|
|
+ goto out_unlock;
|
|
|
|
+
|
|
|
|
+ err = hid_hw_open(dev->hid);
|
|
if (err < 0) {
|
|
if (err < 0) {
|
|
- if (dev->hid->ll_driver->power)
|
|
|
|
- dev->hid->ll_driver->power(dev->hid, PM_HINT_NORMAL);
|
|
|
|
|
|
+ hid_hw_power(dev->hid, PM_HINT_NORMAL);
|
|
dev->open--;
|
|
dev->open--;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -230,9 +228,8 @@ static int hidraw_release(struct inode * inode, struct file * file)
|
|
dev = hidraw_table[minor];
|
|
dev = hidraw_table[minor];
|
|
if (!--dev->open) {
|
|
if (!--dev->open) {
|
|
if (list->hidraw->exist) {
|
|
if (list->hidraw->exist) {
|
|
- if (dev->hid->ll_driver->power)
|
|
|
|
- dev->hid->ll_driver->power(dev->hid, PM_HINT_NORMAL);
|
|
|
|
- dev->hid->ll_driver->close(dev->hid);
|
|
|
|
|
|
+ hid_hw_power(dev->hid, PM_HINT_NORMAL);
|
|
|
|
+ hid_hw_close(dev->hid);
|
|
} else {
|
|
} else {
|
|
kfree(list->hidraw);
|
|
kfree(list->hidraw);
|
|
}
|
|
}
|
|
@@ -434,7 +431,7 @@ void hidraw_disconnect(struct hid_device *hid)
|
|
device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor));
|
|
device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor));
|
|
|
|
|
|
if (hidraw->open) {
|
|
if (hidraw->open) {
|
|
- hid->ll_driver->close(hid);
|
|
|
|
|
|
+ hid_hw_close(hid);
|
|
wake_up_interruptible(&hidraw->wait);
|
|
wake_up_interruptible(&hidraw->wait);
|
|
} else {
|
|
} else {
|
|
kfree(hidraw);
|
|
kfree(hidraw);
|