Commit a91ddf23 authored by Jiri Kosina's avatar Jiri Kosina

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

Assorted small driver/core fixes.
parents 78a8ad79 7f342e9c
...@@ -955,6 +955,8 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id) ...@@ -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, ret = sysfs_create_group(&hdev->dev.kobj,
&ntrig_attribute_group); &ntrig_attribute_group);
if (ret)
hid_err(hdev, "cannot create sysfs group\n");
return 0; return 0;
err_free: err_free:
......
...@@ -44,29 +44,6 @@ static __u8 *redragon_report_fixup(struct hid_device *hdev, __u8 *rdesc, ...@@ -44,29 +44,6 @@ static __u8 *redragon_report_fixup(struct hid_device *hdev, __u8 *rdesc,
return 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[] = { static const struct hid_device_id redragon_devices[] = {
{HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_REDRAGON_ASURA)}, {HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_REDRAGON_ASURA)},
{} {}
...@@ -77,8 +54,7 @@ MODULE_DEVICE_TABLE(hid, redragon_devices); ...@@ -77,8 +54,7 @@ MODULE_DEVICE_TABLE(hid, redragon_devices);
static struct hid_driver redragon_driver = { static struct hid_driver redragon_driver = {
.name = "redragon", .name = "redragon",
.id_table = redragon_devices, .id_table = redragon_devices,
.report_fixup = redragon_report_fixup, .report_fixup = redragon_report_fixup
.probe = redragon_probe
}; };
module_hid_driver(redragon_driver); module_hid_driver(redragon_driver);
......
...@@ -298,7 +298,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev, ...@@ -298,7 +298,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev,
struct ishtp_msg_hdr *ishtp_hdr = &hdr; struct ishtp_msg_hdr *ishtp_hdr = &hdr;
const size_t len = sizeof(struct hbm_flow_control); const size_t len = sizeof(struct hbm_flow_control);
int rv; int rv;
unsigned int num_frags;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&cl->fc_spinlock, flags); spin_lock_irqsave(&cl->fc_spinlock, flags);
...@@ -314,7 +313,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev, ...@@ -314,7 +313,6 @@ int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev,
return 0; return 0;
} }
num_frags = cl->recv_msg_num_frags;
cl->recv_msg_num_frags = 0; cl->recv_msg_num_frags = 0;
rv = ishtp_write_message(dev, ishtp_hdr, data); rv = ishtp_write_message(dev, ishtp_hdr, data);
......
...@@ -480,6 +480,7 @@ static void hid_ctrl(struct urb *urb) ...@@ -480,6 +480,7 @@ static void hid_ctrl(struct urb *urb)
{ {
struct hid_device *hid = urb->context; struct hid_device *hid = urb->context;
struct usbhid_device *usbhid = hid->driver_data; struct usbhid_device *usbhid = hid->driver_data;
unsigned long flags;
int unplug = 0, status = urb->status; int unplug = 0, status = urb->status;
switch (status) { switch (status) {
...@@ -501,7 +502,7 @@ static void hid_ctrl(struct urb *urb) ...@@ -501,7 +502,7 @@ static void hid_ctrl(struct urb *urb)
hid_warn(urb->dev, "ctrl urb status %d received\n", status); hid_warn(urb->dev, "ctrl urb status %d received\n", status);
} }
spin_lock(&usbhid->lock); spin_lock_irqsave(&usbhid->lock, flags);
if (unplug) { if (unplug) {
usbhid->ctrltail = usbhid->ctrlhead; usbhid->ctrltail = usbhid->ctrlhead;
...@@ -511,13 +512,13 @@ static void hid_ctrl(struct urb *urb) ...@@ -511,13 +512,13 @@ static void hid_ctrl(struct urb *urb)
if (usbhid->ctrlhead != usbhid->ctrltail && if (usbhid->ctrlhead != usbhid->ctrltail &&
hid_submit_ctrl(hid) == 0) { hid_submit_ctrl(hid) == 0) {
/* Successfully submitted next urb in queue */ /* Successfully submitted next urb in queue */
spin_unlock(&usbhid->lock); spin_unlock_irqrestore(&usbhid->lock, flags);
return; return;
} }
} }
clear_bit(HID_CTRL_RUNNING, &usbhid->iofl); clear_bit(HID_CTRL_RUNNING, &usbhid->iofl);
spin_unlock(&usbhid->lock); spin_unlock_irqrestore(&usbhid->lock, flags);
usb_autopm_put_interface_async(usbhid->intf); usb_autopm_put_interface_async(usbhid->intf);
wake_up(&usbhid->wait); wake_up(&usbhid->wait);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment