Patch "HID: wacom: Do not warn about dropped packets for first packet" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    HID: wacom: Do not warn about dropped packets for first packet

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     hid-wacom-do-not-warn-about-dropped-packets-for-firs.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 86fba8fc7cdf7116428f71e116ac6cabb9830702
Author: Jason Gerecke <jason.gerecke@xxxxxxxxx>
Date:   Mon Sep 9 13:32:08 2024 -0700

    HID: wacom: Do not warn about dropped packets for first packet
    
    [ Upstream commit 84aecf2d251a3359bc78b7c8e58f54b9fc966e89 ]
    
    The driver currently assumes that the first sequence number it will see
    is going to be 0. This is not a realiable assumption and can break if,
    for example, the tablet has already been running for some time prior to
    the kernel driver connecting to the device. This commit initializes the
    expected sequence number to -1 and will only print the "Dropped" warning
    the it has been updated to a non-negative value.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@xxxxxxxxx>
    Tested-by: Joshua Dickens <joshua.dickens@xxxxxxxxx>
    Fixes: 6d09085b38e5 ("HID: wacom: Adding Support for new usages")
    Signed-off-by: Jiri Kosina <jkosina@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 0c8713fe0d179..e86a37c3cf9c3 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -2322,6 +2322,9 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev,
 		wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS3, 0);
 		features->quirks &= ~WACOM_QUIRK_PEN_BUTTON3;
 		break;
+	case WACOM_HID_WD_SEQUENCENUMBER:
+		wacom_wac->hid_data.sequence_number = -1;
+		break;
 	}
 }
 
@@ -2446,7 +2449,8 @@ static void wacom_wac_pen_event(struct hid_device *hdev, struct hid_field *field
 		wacom_wac->hid_data.barrelswitch3 = value;
 		return;
 	case WACOM_HID_WD_SEQUENCENUMBER:
-		if (wacom_wac->hid_data.sequence_number != value) {
+		if (wacom_wac->hid_data.sequence_number != value &&
+		    wacom_wac->hid_data.sequence_number >= 0) {
 			int sequence_size = field->logical_maximum - field->logical_minimum + 1;
 			int drop_count = (value - wacom_wac->hid_data.sequence_number) % sequence_size;
 			hid_warn(hdev, "Dropped %d packets", drop_count);
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
index 6ec499841f709..e6443740b462f 100644
--- a/drivers/hid/wacom_wac.h
+++ b/drivers/hid/wacom_wac.h
@@ -324,7 +324,7 @@ struct hid_data {
 	int bat_connected;
 	int ps_connected;
 	bool pad_input_event_flag;
-	unsigned short sequence_number;
+	int sequence_number;
 	ktime_t time_delayed;
 };
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux