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

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

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

Assorted small driver/core fixes.
parents 78a8ad79 7f342e9c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -955,6 +955,8 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)

	ret = sysfs_create_group(&hdev->dev.kobj,
			&ntrig_attribute_group);
	if (ret)
		hid_err(hdev, "cannot create sysfs group\n");

	return 0;
err_free:
+1 −25
Original line number Diff line number Diff line
@@ -44,29 +44,6 @@ static __u8 *redragon_report_fixup(struct hid_device *hdev, __u8 *rdesc,
	return rdesc;
}

static int redragon_probe(struct hid_device *dev,
	const struct hid_device_id *id)
{
	int ret;

	ret = hid_parse(dev);
	if (ret) {
		hid_err(dev, "parse failed\n");
		return ret;
	}

	/* do not register unused input device */
	if (dev->maxapplication == 1)
		return 0;

	ret = hid_hw_start(dev, HID_CONNECT_DEFAULT);
	if (ret) {
		hid_err(dev, "hw start failed\n");
		return ret;
	}

	return 0;
}
static const struct hid_device_id redragon_devices[] = {
	{HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_REDRAGON_ASURA)},
	{}
@@ -77,8 +54,7 @@ MODULE_DEVICE_TABLE(hid, redragon_devices);
static struct hid_driver redragon_driver = {
	.name = "redragon",
	.id_table = redragon_devices,
	.report_fixup = redragon_report_fixup,
	.probe = redragon_probe
	.report_fixup = redragon_report_fixup
};

module_hid_driver(redragon_driver);
+0 −2
Original line number Diff line number Diff line
@@ -298,7 +298,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev,
	struct ishtp_msg_hdr *ishtp_hdr = &hdr;
	const size_t len = sizeof(struct hbm_flow_control);
	int	rv;
	unsigned int	num_frags;
	unsigned long	flags;

	spin_lock_irqsave(&cl->fc_spinlock, flags);
@@ -314,7 +313,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev,
		return	0;
	}

	num_frags = cl->recv_msg_num_frags;
	cl->recv_msg_num_frags = 0;

	rv = ishtp_write_message(dev, ishtp_hdr, data);
+4 −3
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ static void hid_ctrl(struct urb *urb)
{
	struct hid_device *hid = urb->context;
	struct usbhid_device *usbhid = hid->driver_data;
	unsigned long flags;
	int unplug = 0, status = urb->status;

	switch (status) {
@@ -501,7 +502,7 @@ static void hid_ctrl(struct urb *urb)
		hid_warn(urb->dev, "ctrl urb status %d received\n", status);
	}

	spin_lock(&usbhid->lock);
	spin_lock_irqsave(&usbhid->lock, flags);

	if (unplug) {
		usbhid->ctrltail = usbhid->ctrlhead;
@@ -511,13 +512,13 @@ static void hid_ctrl(struct urb *urb)
		if (usbhid->ctrlhead != usbhid->ctrltail &&
				hid_submit_ctrl(hid) == 0) {
			/* Successfully submitted next urb in queue */
			spin_unlock(&usbhid->lock);
			spin_unlock_irqrestore(&usbhid->lock, flags);
			return;
		}
	}

	clear_bit(HID_CTRL_RUNNING, &usbhid->iofl);
	spin_unlock(&usbhid->lock);
	spin_unlock_irqrestore(&usbhid->lock, flags);
	usb_autopm_put_interface_async(usbhid->intf);
	wake_up(&usbhid->wait);
}