diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2017-12-08 15:29:44 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2018-03-06 16:00:51 +0100 |
commit | c17a7476e4c41884d82e3675c25ceae982c07a63 (patch) | |
tree | 577796c9bda4e5663207717afdfd79b054764b9c /drivers/hid/hid-generic.c | |
parent | 001fab49dd4fcf64b1b8ccecb8656baa3f3f1a9a (diff) | |
download | linux-stable-c17a7476e4c41884d82e3675c25ceae982c07a63.tar.gz linux-stable-c17a7476e4c41884d82e3675c25ceae982c07a63.tar.bz2 linux-stable-c17a7476e4c41884d82e3675c25ceae982c07a63.zip |
HID: core: rewrite the hid-generic automatic unbind
We actually can have the unbind/rebind logic in hid-core.c, leaving
only the match function in hid-generic.
This makes hid-generic simpler and the whole logic simpler too.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-generic.c')
-rw-r--r-- | drivers/hid/hid-generic.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/drivers/hid/hid-generic.c b/drivers/hid/hid-generic.c index 3c0a1bf433d7..c25b4718de44 100644 --- a/drivers/hid/hid-generic.c +++ b/drivers/hid/hid-generic.c @@ -26,37 +26,6 @@ static struct hid_driver hid_generic; -static int __unmap_hid_generic(struct device *dev, void *data) -{ - struct hid_driver *hdrv = data; - struct hid_device *hdev = to_hid_device(dev); - - /* only unbind matching devices already bound to hid-generic */ - if (hdev->driver != &hid_generic || - hid_match_device(hdev, hdrv) == NULL) - return 0; - - if (dev->parent) /* Needed for USB */ - device_lock(dev->parent); - device_release_driver(dev); - if (dev->parent) - device_unlock(dev->parent); - - return 0; -} - -static void hid_generic_add_driver(struct hid_driver *hdrv) -{ - bus_for_each_dev(&hid_bus_type, NULL, hdrv, __unmap_hid_generic); -} - -static void hid_generic_removed_driver(struct hid_driver *hdrv) -{ - int ret; - - ret = driver_attach(&hid_generic.driver); -} - static int __check_hid_generic(struct device_driver *drv, void *data) { struct hid_driver *hdrv = to_hid_driver(drv); @@ -97,8 +66,6 @@ static struct hid_driver hid_generic = { .name = "hid-generic", .id_table = hid_table, .match = hid_generic_match, - .bus_add_driver = hid_generic_add_driver, - .bus_removed_driver = hid_generic_removed_driver, }; module_hid_driver(hid_generic); |