Loading Documentation/admin-guide/kernel-parameters.txt +3 −0 Original line number Diff line number Diff line Loading @@ -4352,6 +4352,9 @@ usbhid.jspoll= [USBHID] The interval which joysticks are to be polled at. usbhid.kbpoll= [USBHID] The interval which keyboards are to be polled at. usb-storage.delay_use= [UMS] The delay in seconds before a new device is scanned for Logical Units (default 1). Loading drivers/hid/hid-asus.c +3 −1 Original line number Diff line number Diff line Loading @@ -570,7 +570,9 @@ static int asus_input_mapping(struct hid_device *hdev, static int asus_start_multitouch(struct hid_device *hdev) { int ret; const unsigned char buf[] = { FEATURE_REPORT_ID, 0x00, 0x03, 0x01, 0x00 }; static const unsigned char buf[] = { FEATURE_REPORT_ID, 0x00, 0x03, 0x01, 0x00 }; unsigned char *dmabuf = kmemdup(buf, sizeof(buf), GFP_KERNEL); if (!dmabuf) { Loading drivers/hid/hid-core.c +24 −11 Original line number Diff line number Diff line Loading @@ -2199,31 +2199,40 @@ void hid_destroy_device(struct hid_device *hdev) EXPORT_SYMBOL_GPL(hid_destroy_device); static int __bus_add_driver(struct device_driver *drv, void *data) static int __hid_bus_reprobe_drivers(struct device *dev, void *data) { struct hid_driver *added_hdrv = data; struct hid_driver *hdrv = to_hid_driver(drv); struct hid_driver *hdrv = data; struct hid_device *hdev = to_hid_device(dev); if (hdrv->bus_add_driver) hdrv->bus_add_driver(added_hdrv); if (hdev->driver == hdrv && !hdrv->match(hdev, hid_ignore_special_drivers)) return device_reprobe(dev); return 0; } static int __bus_removed_driver(struct device_driver *drv, void *data) static int __hid_bus_driver_added(struct device_driver *drv, void *data) { struct hid_driver *removed_hdrv = data; struct hid_driver *hdrv = to_hid_driver(drv); if (hdrv->bus_removed_driver) hdrv->bus_removed_driver(removed_hdrv); if (hdrv->match) { bus_for_each_dev(&hid_bus_type, NULL, hdrv, __hid_bus_reprobe_drivers); } return 0; } static int __bus_removed_driver(struct device_driver *drv, void *data) { return bus_rescan_devices(&hid_bus_type); } int __hid_register_driver(struct hid_driver *hdrv, struct module *owner, const char *mod_name) { int ret; hdrv->driver.name = hdrv->name; hdrv->driver.bus = &hid_bus_type; hdrv->driver.owner = owner; Loading @@ -2232,9 +2241,13 @@ int __hid_register_driver(struct hid_driver *hdrv, struct module *owner, INIT_LIST_HEAD(&hdrv->dyn_list); spin_lock_init(&hdrv->dyn_lock); bus_for_each_drv(&hid_bus_type, NULL, hdrv, __bus_add_driver); ret = driver_register(&hdrv->driver); if (ret == 0) bus_for_each_drv(&hid_bus_type, NULL, NULL, __hid_bus_driver_added); return driver_register(&hdrv->driver); return ret; } EXPORT_SYMBOL_GPL(__hid_register_driver); Loading drivers/hid/hid-generic.c +0 −33 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading drivers/hid/hid-multitouch.c +1 −1 Original line number Diff line number Diff line Loading @@ -731,7 +731,7 @@ static void mt_complete_slot(struct mt_device *td, struct input_dev *input) } if (!(td->mtclass.quirks & MT_QUIRK_CONFIDENCE)) s->confidence_state = 1; s->confidence_state = true; active = (s->touch_state || s->inrange_state) && s->confidence_state; Loading Loading
Documentation/admin-guide/kernel-parameters.txt +3 −0 Original line number Diff line number Diff line Loading @@ -4352,6 +4352,9 @@ usbhid.jspoll= [USBHID] The interval which joysticks are to be polled at. usbhid.kbpoll= [USBHID] The interval which keyboards are to be polled at. usb-storage.delay_use= [UMS] The delay in seconds before a new device is scanned for Logical Units (default 1). Loading
drivers/hid/hid-asus.c +3 −1 Original line number Diff line number Diff line Loading @@ -570,7 +570,9 @@ static int asus_input_mapping(struct hid_device *hdev, static int asus_start_multitouch(struct hid_device *hdev) { int ret; const unsigned char buf[] = { FEATURE_REPORT_ID, 0x00, 0x03, 0x01, 0x00 }; static const unsigned char buf[] = { FEATURE_REPORT_ID, 0x00, 0x03, 0x01, 0x00 }; unsigned char *dmabuf = kmemdup(buf, sizeof(buf), GFP_KERNEL); if (!dmabuf) { Loading
drivers/hid/hid-core.c +24 −11 Original line number Diff line number Diff line Loading @@ -2199,31 +2199,40 @@ void hid_destroy_device(struct hid_device *hdev) EXPORT_SYMBOL_GPL(hid_destroy_device); static int __bus_add_driver(struct device_driver *drv, void *data) static int __hid_bus_reprobe_drivers(struct device *dev, void *data) { struct hid_driver *added_hdrv = data; struct hid_driver *hdrv = to_hid_driver(drv); struct hid_driver *hdrv = data; struct hid_device *hdev = to_hid_device(dev); if (hdrv->bus_add_driver) hdrv->bus_add_driver(added_hdrv); if (hdev->driver == hdrv && !hdrv->match(hdev, hid_ignore_special_drivers)) return device_reprobe(dev); return 0; } static int __bus_removed_driver(struct device_driver *drv, void *data) static int __hid_bus_driver_added(struct device_driver *drv, void *data) { struct hid_driver *removed_hdrv = data; struct hid_driver *hdrv = to_hid_driver(drv); if (hdrv->bus_removed_driver) hdrv->bus_removed_driver(removed_hdrv); if (hdrv->match) { bus_for_each_dev(&hid_bus_type, NULL, hdrv, __hid_bus_reprobe_drivers); } return 0; } static int __bus_removed_driver(struct device_driver *drv, void *data) { return bus_rescan_devices(&hid_bus_type); } int __hid_register_driver(struct hid_driver *hdrv, struct module *owner, const char *mod_name) { int ret; hdrv->driver.name = hdrv->name; hdrv->driver.bus = &hid_bus_type; hdrv->driver.owner = owner; Loading @@ -2232,9 +2241,13 @@ int __hid_register_driver(struct hid_driver *hdrv, struct module *owner, INIT_LIST_HEAD(&hdrv->dyn_list); spin_lock_init(&hdrv->dyn_lock); bus_for_each_drv(&hid_bus_type, NULL, hdrv, __bus_add_driver); ret = driver_register(&hdrv->driver); if (ret == 0) bus_for_each_drv(&hid_bus_type, NULL, NULL, __hid_bus_driver_added); return driver_register(&hdrv->driver); return ret; } EXPORT_SYMBOL_GPL(__hid_register_driver); Loading
drivers/hid/hid-generic.c +0 −33 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading
drivers/hid/hid-multitouch.c +1 −1 Original line number Diff line number Diff line Loading @@ -731,7 +731,7 @@ static void mt_complete_slot(struct mt_device *td, struct input_dev *input) } if (!(td->mtclass.quirks & MT_QUIRK_CONFIDENCE)) s->confidence_state = 1; s->confidence_state = true; active = (s->touch_state || s->inrange_state) && s->confidence_state; Loading