linux/drivers
Mikhail Khvainitski 69f2af4db7 HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround
[ Upstream commit 46a0a2c96f ]

Built-in firmware of cptkbd handles scrolling by itself (when middle
button is pressed) but with issues: it does not support horizontal and
hi-res scrolling and upon middle button release it sends middle button
click even if there was a scrolling event. Commit 3cb5ff0220 ("HID:
lenovo: Hide middle-button press until release") workarounds last
issue but it's impossible to workaround scrolling-related issues
without firmware modification.

Likely, Dennis Schneider has reverse engineered the firmware and
provided an instruction on how to patch it [1]. However,
aforementioned workaround prevents userspace (libinput) from knowing
exact moment when middle button has been pressed down and performing
"On-Button scrolling". This commit detects correctly-behaving patched
firmware if cursor movement events has been received during middle
button being pressed and stops applying workaround for this device.

Link: https://hohlerde.org/rauch/en/elektronik/projekte/tpkbd-fix/ [1]

Signed-off-by: Mikhail Khvainitski <me@khvoinitsky.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-28 17:19:43 +00:00
..
accel accel/habanalabs/gaudi2: Fix incorrect string length computation in gaudi2_psoc_razwi_get_engines() 2023-11-20 11:59:11 +01:00
accessibility
acpi ACPI: EC: Add quirk for HP 250 G7 Notebook PC 2023-11-28 17:19:38 +00:00
amba
android binder: fix memory leaks of spam and pending work 2023-10-05 12:48:08 +02:00
ata scsi: sd: Introduce manage_shutdown device flag 2023-10-27 10:00:19 +09:00
atm
auxdisplay
base regmap: prevent noinc writes from clobbering cache 2023-11-20 11:59:33 +01:00
bcma
block nbd: fix uaf in nbd_open 2023-11-20 11:59:36 +01:00
bluetooth Bluetooth: btusb: Add date->evt_skb is NULL check 2023-11-28 17:19:38 +00:00
bus bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up 2023-09-13 10:24:53 +03:00
cache riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT 2023-10-26 09:42:37 +02:00
cdrom
cdx
char hwrng: geode - fix accessing registers 2023-11-20 11:59:18 +01:00
clk clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped 2023-11-20 11:59:16 +01:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 17:19:36 +00:00
comedi Revert "comedi: add HAS_IOPORT dependencies" 2023-09-12 15:49:20 +02:00
connector Fix NULL pointer dereference in cn_filter() 2023-10-24 10:53:45 +02:00
counter First set of Counter fixes for 6.6 2023-10-02 13:13:15 +02:00
cpufreq cpufreq: tegra194: fix warning due to missing opp_put 2023-11-20 11:58:57 +01:00
cpuidle
crypto crypto: qat - fix deadlock in backlog processing 2023-11-20 11:59:23 +01:00
cxl cxl/hdm: Remove broken error path 2023-11-20 11:59:31 +01:00
dax
dca
devfreq PM / devfreq: rockchip-dfi: Make pmu regmap mandatory 2023-11-20 11:59:00 +01:00
dio
dma dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() 2023-11-20 11:59:26 +01:00
dma-buf dma-buf: add dma_fence_timestamp helper 2023-10-05 11:05:58 +02:00
edac
eisa
extcon
firewire scsi: sd: Introduce manage_shutdown device flag 2023-10-27 10:00:19 +09:00
firmware firmware: tegra: Add suspend hook and reset BPMP IPC early on resume 2023-11-20 11:59:16 +01:00
fpga fpga: Fix memory leak for fpga_region_test_class_find() 2023-10-24 19:32:39 +02:00
fsi
gnss
gpio gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010 2023-11-28 17:19:38 +00:00
gpu drm/amd: check num of link levels when update pcie param 2023-11-28 17:19:41 +00:00
greybus
hid HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround 2023-11-28 17:19:43 +00:00
hsi
hte hte: tegra: Fix missing error code in tegra_hte_test_probe() 2023-11-20 11:59:08 +01:00
hv
hwmon hwmon: (sch5627) Disallow write access if virtual registers are locked 2023-11-20 11:59:08 +01:00
hwspinlock
hwtracing coresight: tmc-etr: Disable warnings for allocation failures 2023-09-20 10:46:30 +01:00
i2c i2c: iproc: handle invalid slave state 2023-11-20 11:59:36 +01:00
i3c i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs 2023-11-20 11:59:29 +01:00
idle
iio iio: frequency: adf4350: Use device managed functions and fix power down issue. 2023-11-20 11:59:24 +01:00
infiniband RDMA/hfi1: Use FIELD_GET() to extract Link Width 2023-11-28 17:19:42 +00:00
input Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() 2023-11-20 11:59:34 +01:00
interconnect interconnect: fix error handling in qnoc_probe() 2023-11-20 11:59:27 +01:00
iommu iommufd: Add iopt_area_alloc() 2023-11-20 11:59:17 +01:00
ipack
irqchip irqchip/sifive-plic: Fix syscore registration for multi-socket systems 2023-11-20 11:58:54 +01:00
isdn isdn: mISDN: hfcsusb: Spelling fix in comment 2023-10-23 09:39:46 +01:00
leds leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' 2023-11-20 11:59:24 +01:00
macintosh
mailbox
mcb mcb: remove is_added flag from mcb_device struct 2023-10-05 09:50:14 +02:00
md md: don't rely on 'mddev->pers' to be set in mddev_suspend() 2023-11-28 17:19:39 +00:00
media media: cec: meson: always include meson sub-directory in Makefile 2023-11-20 11:59:33 +01:00
memory memory: tegra: Set BPMP msg flags to reset IPC channels 2023-11-20 11:59:17 +01:00
memstick
message
mfd mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs 2023-11-20 11:59:24 +01:00
misc misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() 2023-11-20 11:59:26 +01:00
mmc Revert "mmc: core: Capture correct oemid-bits for eMMC cards" 2023-11-20 11:59:39 +01:00
most
mtd In the raw NAND subsystem, the major fix prevents using cached reads 2023-10-20 13:12:34 -07:00
mux
net tsnep: Fix tsnep_request_irq() format-overflow warning 2023-11-28 17:19:38 +00:00
nfc
ntb
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 11:59:19 +01:00
nvme nvme: fix error-handling for io_uring nvme-passthrough 2023-11-20 11:59:35 +01:00
nvmem nvmem: imx: correct nregs for i.MX6ULL 2023-10-16 21:00:08 +02:00
of of: address: Fix address translation when address-size is greater than 2 2023-11-28 17:19:39 +00:00
opp
parisc
parport
pci ACPI: APEI: Fix AER info corruption when error status data has multiple sections 2023-11-28 17:19:37 +00:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 11:59:31 +01:00
peci
perf arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers 2023-11-20 11:59:38 +01:00
phy phy fixes for 6.6 2023-10-22 07:11:10 -10:00
pinctrl pinctrl: renesas: rzg2l: Make reverse order of enable() for disable() 2023-11-20 11:59:25 +01:00
platform platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e 2023-11-28 17:19:39 +00:00
pmdomain pmdomain: imx: scu-pd: correct DMA2 channel 2023-10-05 00:28:52 +02:00
pnp
power power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint 2023-11-08 11:56:20 +01:00
powercap
pps
ps3
ptp ptp: ocp: Fix error handling in ptp_ocp_device_init 2023-10-02 07:19:22 +01:00
pwm pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume 2023-11-20 11:59:34 +01:00
rapidio
ras
regulator regulator: qcom-rpmh: Fix smps4 regulator for pm8550ve 2023-11-20 11:59:07 +01:00
remoteproc
reset
rpmsg
rtc rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 11:59:30 +01:00
s390 s390/ap: re-init AP queues on config on 2023-11-20 11:59:28 +01:00
sbus
scsi scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool 2023-11-28 17:19:42 +00:00
sh
siox
slimbus
soc soc: qcom: pmic: Fix resource leaks in a device_for_each_child_node() loop 2023-11-28 17:19:41 +00:00
soundwire soundwire: bus: Make IRQ handling conditionally built 2023-09-21 11:31:33 +02:00
spi spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies 2023-11-20 11:59:38 +01:00
spmi
ssb
staging media: cedrus: Fix clock/reset sequence 2023-11-20 11:59:32 +01:00
target scsi: target: core: Fix deadlock due to recursive locking 2023-09-27 10:55:29 -04:00
tc
tee ARM: SoC fixes for 6.6, part 2 2023-10-12 11:52:23 -07:00
thermal thermal: core: Don't update trip points inside the hysteresis range 2023-11-20 11:59:01 +01:00
thunderbolt thunderbolt: Fix for v6.6-rc7 2023-10-17 19:25:42 +02:00
tty tty: tty_jobctrl: fix pid memleak in disassociate_ctty() 2023-11-20 11:59:25 +01:00
ufs scsi: ufs: core: Leave space for '\0' in utf8 desc string 2023-11-20 11:59:22 +01:00
uio
usb usb: host: xhci-plat: fix possible kernel oops while resuming 2023-11-20 11:59:29 +01:00
vdpa vdpa/mlx5: Fix firmware error on creation of 1k VQs 2023-10-18 11:29:41 -04:00
vfio vfio/mdev: Fix a null-ptr-deref bug for mdev_unregister_parent() 2023-09-22 12:48:04 -06:00
vhost vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE 2023-10-18 11:29:56 -04:00
video fbdev: fsl-diu-fb: mark wr_reg_wa() static 2023-11-20 11:59:38 +01:00
virt virt: sevguest: Fix passing a stack buffer as a scatterlist target 2023-11-20 11:59:30 +01:00
virtio virtio_pci: fix the common cfg map size 2023-10-18 11:30:12 -04:00
vlynq
w1 w1: ds2482: Switch back to use struct i2c_driver's .probe() 2023-09-13 10:48:42 +02:00
watchdog watchdog: ixp4xx: Make sure restart always works 2023-11-20 11:59:34 +01:00
xen xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled 2023-11-20 11:59:12 +01:00
zorro
Kconfig
Makefile pmdomain: Rename the genpd subsystem to pmdomain 2023-09-13 11:09:21 +02:00