Re: PROBLEM: Apple external Trackpad event timestamps are jittery (regression)

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

 



On Sat, May 23, 2020 at 10:11:50PM +0300, Yariv wrote:
> Hi,
> 
> I omitted what looks unrelated, please let me know if you need other
> details or the full content.
> Also I wasn't sure how to find the relevant driver, so I pasted the
> relevant dmesg snippets. If there is a more precise way to identify
> the driver please let me know and I'll send the missing items.
> 
> Gen1:
> 
> dmesg
> 
> [   11.307056] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
> [   11.307060] Bluetooth: HIDP socket layer initialized
> [   11.310541] magicmouse 0005:05AC:030E.0005: unknown main item tag 0x0
> [   11.310657] input: john’s Trackpad as
> /devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.0/bluetooth/hci0/hci0:70/0005:05AC:030E.0005/input/input21
> [   11.310776] magicmouse 0005:05AC:030E.0005: input,hidraw4:
> BLUETOOTH HID v1.60 Mouse [john’s Trackpad] on 00:1a:7d:da:71:09

Ok, awesome. Can you please try the patch below?

-- 
Dmitry

HID: magicmouse: do not set up autorepeat

From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

Neither trackpad, nor the mouse want input core to generate autorepeat
events for their buttons, so let's reset the bit (as hid-input sets it
for these devices based on the usage vendor code).

Reported-by: Yariv <oigevald+kernel@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---
 drivers/hid/hid-magicmouse.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 34138667f8af..7ea78be11c84 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -535,6 +535,12 @@ static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hd
 		__set_bit(MSC_RAW, input->mscbit);
 	}
 
+	/*
+	 * hit-input may mark device as using autorepeat, but neither
+	 * the trackpad, nor the mouse actually want it.
+	 */
+	__clear_bit(EV_REP, input->evbit);
+
 	return 0;
 }
 



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux