]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/hid/wacom_sys.c
UBUNTU: [Config] arm64: snapdragon: DRM_MSM=m
[mirror_ubuntu-bionic-kernel.git] / drivers / hid / wacom_sys.c
index ee71ad9b6cc1693e14a585848ca9ad3289f06454..5b8493c771cc936c033568c9b037b54158ada765 100644 (file)
@@ -115,7 +115,7 @@ static void wacom_feature_mapping(struct hid_device *hdev,
        unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
        u8 *data;
        int ret;
-       int n;
+       u32 n;
 
        switch (equivalent_usage) {
        case HID_DG_CONTACTMAX:
@@ -415,7 +415,7 @@ static int wacom_set_device_mode(struct hid_device *hdev,
        u8 *rep_data;
        struct hid_report *r;
        struct hid_report_enum *re;
-       int length;
+       u32 length;
        int error = -ENOMEM, limit = 0;
 
        if (wacom_wac->mode_report < 0)
@@ -1109,8 +1109,10 @@ static int __wacom_devm_sysfs_create_group(struct wacom *wacom,
        devres->root = root;
 
        error = sysfs_create_group(devres->root, group);
-       if (error)
+       if (error) {
+               devres_free(devres);
                return error;
+       }
 
        devres_add(&wacom->hdev->dev, devres);
 
@@ -2347,23 +2349,23 @@ static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index)
        int i;
        unsigned long flags;
 
-       spin_lock_irqsave(&remote->remote_lock, flags);
-       remote->remotes[index].registered = false;
-       spin_unlock_irqrestore(&remote->remote_lock, flags);
+       for (i = 0; i < WACOM_MAX_REMOTES; i++) {
+               if (remote->remotes[i].serial == serial) {
 
-       if (remote->remotes[index].battery.battery)
-               devres_release_group(&wacom->hdev->dev,
-                                    &remote->remotes[index].battery.bat_desc);
+                       spin_lock_irqsave(&remote->remote_lock, flags);
+                       remote->remotes[i].registered = false;
+                       spin_unlock_irqrestore(&remote->remote_lock, flags);
 
-       if (remote->remotes[index].group.name)
-               devres_release_group(&wacom->hdev->dev,
-                                    &remote->remotes[index]);
+                       if (remote->remotes[i].battery.battery)
+                               devres_release_group(&wacom->hdev->dev,
+                                                    &remote->remotes[i].battery.bat_desc);
+
+                       if (remote->remotes[i].group.name)
+                               devres_release_group(&wacom->hdev->dev,
+                                                    &remote->remotes[i]);
 
-       for (i = 0; i < WACOM_MAX_REMOTES; i++) {
-               if (remote->remotes[i].serial == serial) {
                        remote->remotes[i].serial = 0;
                        remote->remotes[i].group.name = NULL;
-                       remote->remotes[i].registered = false;
                        remote->remotes[i].battery.battery = NULL;
                        wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN;
                }