HID: wacom: Do not repeatedly attempt to set device mode on error
authorJason Gerecke <killertofu@gmail.com>
Wed, 5 Aug 2015 22:45:30 +0000 (15:45 -0700)
committerJiri Kosina <jkosina@suse.cz>
Mon, 10 Aug 2015 12:23:37 +0000 (14:23 +0200)
As an extension of aef3156d7, there is no sense in repeatedly calling the
'wacom_set_report' and 'wacom_get_report' functions if they return an
error. Getting an error from them implies that the device is out to lunch:
either a hard error code was returned or repeated attempts at recovering
from a "soft" error all failed. In either case, doing even more retries is
not likely to resolve whatever is wrong.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_sys.c

index 936ad7770ec3a5eb4849f93bd3e050989d674833..177e49b11e33b6bd2af03e3e401494db48b60625 100644 (file)
@@ -335,7 +335,7 @@ static int wacom_set_device_mode(struct hid_device *hdev, int report_id,
                if (error >= 0)
                        error = wacom_get_report(hdev, HID_FEATURE_REPORT,
                                                 rep_data, length, 1);
-       } while ((error < 0 || rep_data[1] != mode) && limit++ < WAC_MSG_RETRIES);
+       } while (error >= 0 && rep_data[1] != mode && limit++ < WAC_MSG_RETRIES);
 
        kfree(rep_data);