Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2d39e0f authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branch 'for-4.17/upstream' into for-linus

Pull a few small generic code cleanups.
parents 108ff0e8 2ddc8e2d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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).
+3 −1
Original line number Diff line number Diff line
@@ -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) {
+24 −11
Original line number Diff line number Diff line
@@ -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;
@@ -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);

+0 −33
Original line number Diff line number Diff line
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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