HID: hid, make parsing event driven
Next step for complete hid bus, this patch includes: - call parser either from probe or from hid-core if there is no probe. - add ll_driver structure and centralize some stuff there (open, close...) - split and merge usb_hid_configure and hid_probe into several functions to allow hooks/fixes between them Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
@@ -181,7 +181,7 @@ static int hidraw_open(struct inode *inode, struct file *file)
|
||||
|
||||
dev = hidraw_table[minor];
|
||||
if (!dev->open++)
|
||||
dev->hid->hid_open(dev->hid);
|
||||
dev->hid->ll_driver->open(dev->hid);
|
||||
|
||||
out_unlock:
|
||||
spin_unlock(&minors_lock);
|
||||
@@ -207,7 +207,7 @@ static int hidraw_release(struct inode * inode, struct file * file)
|
||||
dev = hidraw_table[minor];
|
||||
if (!dev->open--) {
|
||||
if (list->hidraw->exist)
|
||||
dev->hid->hid_close(dev->hid);
|
||||
dev->hid->ll_driver->close(dev->hid);
|
||||
else
|
||||
kfree(list->hidraw);
|
||||
}
|
||||
@@ -367,7 +367,7 @@ void hidraw_disconnect(struct hid_device *hid)
|
||||
device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor));
|
||||
|
||||
if (hidraw->open) {
|
||||
hid->hid_close(hid);
|
||||
hid->ll_driver->close(hid);
|
||||
wake_up_interruptible(&hidraw->wait);
|
||||
} else {
|
||||
kfree(hidraw);
|
||||
|
Reference in New Issue
Block a user