Linus,
please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git tags/for-linus-2023022201
to receive HID subsystem queue for 6.3.
Highlights:
=====
- HID-BPF infrastructure: this allows to start using HID-BPF. Note that
the mechanism to ship HID-BPF program through the kernel tree is still
not implemented yet (but is planned).
This should be a no-op for 99% of users. Also we are gaining kselftests
for the HID tree (Benjamin Tissoires)
- Some UAF fixes in workers when using uhid (Pietro Borrello & Benjamin
Tissoires)
- Constify hid_ll_driver (Thomas Wei?schuh)
- Allow more custom IIO sensors through HID (Philipp Jungkamp)
- Logitech HID++ fixes for scroll wheel, protocol and debug (Bastien Nocera)
- Some new device support: Steam Deck (Vicki Pfau), UClogic (Jos?
Exp?sito), Logitech G923 Xbox Edition steering wheel (Walt Holman),
EVision keyboards (Philippe Valembois)
- other assorted code cleanups and fixes
=====
Thanks.
----------------------------------------------------------------
Allen Ballway (1):
HID: multitouch: Add quirks for flipped axes
Andy Shevchenko (2):
HID: i2c-hid: acpi: Drop unneded NULL check of adev
HID: i2c-hid: acpi: Unify ACPI ID tables format
Arnd Bergmann (1):
HID: stop drivers from selecting CONFIG_HID
Bastien Nocera (9):
HID: logitech-hidpp: Hard-code HID++ 1.0 fast scroll support
Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures"
HID: logitech-hidpp: Add constants for HID++ 2.0 error codes
HID: logitech-hidpp: Don't restart communication if not necessary
HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk
HID: logitech-hidpp: Add Signature M650
HID: logitech-hidpp: Add more debug statements
HID: logitech-hidpp: Retry commands when device is busy
HID: logitech-hidpp: Add myself to authors
Benjamin Tissoires (32):
HID: Kconfig: split HID support and hid-core compilation
HID: initial BPF implementation
selftests: add tests for the HID-bpf initial implementation
HID: bpf jmp table: simplify the logic of cleaning up programs
HID: bpf: allocate data memory for device_event BPF programs
selftests/hid: add test to change the report size
HID: bpf: introduce hid_hw_request()
selftests/hid: add tests for bpf_hid_hw_request
HID: bpf: allow to change the report descriptor
selftests/hid: add report descriptor fixup tests
selftests/hid: Add a test for BPF_F_INSERT_HEAD
samples/hid: add new hid BPF example
samples/hid: add Surface Dial example
Documentation: add HID-BPF docs
HID: bpf: return non NULL data pointer when CONFIG_HID_BPF is not set
HID: fix BT_HIDP Kconfig dependencies
HID: force HID depending on INPUT
Merge branch 'for-6.2/bpf' into for-6.2/hid-bpf
HID: bpf: do not rely on ALLOW_ERROR_INJECTION
HID: bpf: enforce HID_BPF dependencies
selftests: hid: ensures we have the proper requirements in config
kselftests: hid: fix missing headers_install step
selftests: hid: add vmtest.sh
selftests: hid: allow to compile hid_bpf with LLVM
selftests: hid: attach/detach 2 bpf programs, not just one
selftests: hid: ensure the program is correctly pinned
selftests: hid: prepare tests for HID_BPF API change
HID: bpf: rework how programs are attached and stored in the kernel
selftests: hid: enforce new attach API
HID: bpf: clean up entrypoint
HID: bpf: reorder BPF registration
HID: mcp-2221: prevent UAF in delayed work
Colin Ian King (1):
samples/hid: Fix spelling mistake "wihout" -> "without"
Dmitry Torokhov (1):
HID: retain initial quirks set up when creating HID devices
Douglas Anderson (3):
HID: i2c-hid: goodix: Stop tying the reset line to the regulator
dt-bindings: HID: i2c-hid: goodix: Add mainboard-vddio-supply
HID: i2c-hid: goodix: Add mainboard-vddio-supply
Jingyuan Liang (1):
HID: Add Mapping for System Microphone Mute
Jiri Kosina (1):
HID: hid-sensor-custom: Fix big on-stack allocation in hid_sensor_custom_get_known()
Jos? Exp?sito (8):
HID: input: map battery system charging
HID: uclogic: Add frame type quirk
HID: uclogic: Add battery quirk
HID: uclogic: Refactor UGEEv2 probe magic data
HID: uclogic: Handle wireless device reconnection
HID: uclogic: Add support for XP-PEN Deco Pro SW
HID: uclogic: Add support for XP-PEN Deco Pro MW
HID: uclogic: Use KUNIT_EXPECT_MEMEQ
Philipp Jungkamp (4):
HID: hid-sensor-custom: Allow more custom iio sensors
HID: hid-sensor-custom: Add LISS custom sensors
IIO: hid-sensor-als: Use generic usage
IIO: hid-sensor-prox: Use generic usage
Philippe Valembois (1):
HID: evision: Add preliminary support for EVision keyboards
Pietro Borrello (6):
HID: bigben: use spinlock to protect concurrent accesses
HID: bigben_worker() remove unneeded check on report_field
HID: bigben: use spinlock to safely schedule workers
HID: asus: use spinlock to protect concurrent accesses
HID: asus: use spinlock to safely schedule workers
hid: bigben_probe(): validate report count
Randy Dunlap (1):
Documentation: hid: correct spelling
Roderick Colenbrander (4):
HID: sony: remove DualShock4 support.
HID: playstation: fix DualShock4 unreachable calibration code.
HID: playstation: correct DualShock4 gyro bias handling.
HID: playstation: correct DualSense gyro bias handling.
Ronald Tschal?r (1):
HID: Recognize sensors with application collections
Thomas Wei?schuh (20):
HID: letsketch: Use hid_is_usb()
HID: usbhid: Make hid_is_usb() non-inline
HID: Remove unused function hid_is_using_ll_driver()
HID: Unexport struct usb_hid_driver
HID: Unexport struct uhid_hid_driver
HID: Unexport struct hidp_hid_driver
HID: Unexport struct i2c_hid_ll_driver
HID: Make lowlevel driver structs const
HID: i2c-hid: switch to standard debugging APIs
HID: i2c-hid: use uniform debugging APIs
HID: amd_sfh: Constify lowlevel HID driver
HID: hyperv: Constify lowlevel HID driver
HID: logitech-dj: Constify lowlevel HID driver
HID: steam: Constify lowlevel HID driver
HID: intel-ish-hid: Constify lowlevel HID driver
HID: surface-hid: Constify lowlevel HID driver
platform/x86: asus-tf103c-dock: Constify lowlevel HID driver
platform/x86: asus-tf103c-dock: Constify toprow keymap
staging: greybus: hid: Constify lowlevel HID driver
HID: use standard debug APIs
Vicki Pfau (2):
HID: hid-steam: Add Steam Deck support
HID: hid-steam: Add rumble on Deck
Walt Holman (1):
HID: Add support for Logitech G923 Xbox Edition steering wheel
Documentation/devicetree/bindings/input/goodix,gt7375p.yaml | 7 ++
Documentation/hid/hid-alps.rst | 2 +-
Documentation/hid/hid-bpf.rst | 522 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Documentation/hid/hiddev.rst | 2 +-
Documentation/hid/hidraw.rst | 2 +-
Documentation/hid/index.rst | 1 +
Documentation/hid/intel-ish-hid.rst | 2 +-
MAINTAINERS | 10 ++
drivers/Makefile | 2 +-
drivers/hid/.kunitconfig | 1 +
drivers/hid/Kconfig | 39 +++++--
drivers/hid/Makefile | 3 +
drivers/hid/amd-sfh-hid/Kconfig | 2 +-
drivers/hid/amd-sfh-hid/amd_sfh_hid.c | 2 +-
drivers/hid/bpf/Kconfig | 18 ++++
drivers/hid/bpf/Makefile | 11 ++
drivers/hid/bpf/entrypoints/Makefile | 93 +++++++++++++++++
drivers/hid/bpf/entrypoints/README | 4 +
drivers/hid/bpf/entrypoints/entrypoints.bpf.c | 25 +++++
drivers/hid/bpf/entrypoints/entrypoints.lskel.h | 248 +++++++++++++++++++++++++++++++++++++++++++
drivers/hid/bpf/hid_bpf_dispatch.c | 551 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/hid/bpf/hid_bpf_dispatch.h | 25 +++++
drivers/hid/bpf/hid_bpf_jmp_table.c | 565 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/hid/hid-asus.c | 37 ++++++-
drivers/hid/hid-bigbenff.c | 75 ++++++++++---
drivers/hid/hid-core.c | 46 ++++++--
drivers/hid/hid-debug.c | 1 +
drivers/hid/hid-evision.c | 53 ++++++++++
drivers/hid/hid-hyperv.c | 2 +-
drivers/hid/hid-ids.h | 7 ++
drivers/hid/hid-input-test.c | 80 ++++++++++++++
drivers/hid/hid-input.c | 48 ++++++++-
drivers/hid/hid-letsketch.c | 2 +-
drivers/hid/hid-logitech-dj.c | 4 +-
drivers/hid/hid-logitech-hidpp.c | 152 ++++++++++++++++-----------
drivers/hid/hid-mcp2221.c | 3 +
drivers/hid/hid-multitouch.c | 39 ++++++-
drivers/hid/hid-playstation.c | 41 ++++----
drivers/hid/hid-quirks.c | 2 +-
drivers/hid/hid-sensor-custom.c | 242 +++++++++++++++++++++++++++++-------------
drivers/hid/hid-sensor-hub.c | 6 +-
drivers/hid/hid-sony.c | 1021 +++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
drivers/hid/hid-steam.c | 385 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
drivers/hid/hid-uclogic-core-test.c | 105 +++++++++++++++++++
drivers/hid/hid-uclogic-core.c | 61 +++++++----
drivers/hid/hid-uclogic-params-test.c | 16 +++
drivers/hid/hid-uclogic-params.c | 124 ++++++++++++++++++++--
drivers/hid/hid-uclogic-params.h | 40 +++++++
drivers/hid/hid-uclogic-rdesc-test.c | 3 +-
drivers/hid/hid-uclogic-rdesc.c | 6 ++
drivers/hid/hid-uclogic-rdesc.h | 5 +
drivers/hid/i2c-hid/Kconfig | 31 +++---
drivers/hid/i2c-hid/i2c-hid-acpi.c | 26 ++---
drivers/hid/i2c-hid/i2c-hid-core.c | 24 ++---
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 42 ++++++++
drivers/hid/i2c-hid/i2c-hid-of-goodix.c | 98 ++++-------------
drivers/hid/i2c-hid/i2c-hid.h | 3 +
drivers/hid/intel-ish-hid/Kconfig | 2 +-
drivers/hid/intel-ish-hid/ishtp-hid.c | 2 +-
drivers/hid/surface-hid/surface_hid_core.c | 2 +-
drivers/hid/uhid.c | 3 +-
drivers/hid/usbhid/hid-core.c | 9 +-
drivers/iio/light/hid-sensor-als.c | 27 ++---
drivers/iio/light/hid-sensor-prox.c | 37 ++++---
drivers/platform/x86/asus-tf103c-dock.c | 4 +-
drivers/staging/greybus/hid.c | 2 +-
include/linux/hid-sensor-ids.h | 1 +
include/linux/hid.h | 34 ++----
include/linux/hid_bpf.h | 170 ++++++++++++++++++++++++++++++
net/bluetooth/hidp/Kconfig | 2 +-
net/bluetooth/hidp/core.c | 3 +-
samples/hid/.gitignore | 8 ++
samples/hid/Makefile | 250 ++++++++++++++++++++++++++++++++++++++++++++
samples/hid/Makefile.target | 75 +++++++++++++
samples/hid/hid_bpf_attach.bpf.c | 18 ++++
samples/hid/hid_bpf_attach.h | 14 +++
samples/hid/hid_bpf_helpers.h | 21 ++++
samples/hid/hid_mouse.bpf.c | 112 ++++++++++++++++++++
samples/hid/hid_mouse.c | 155 +++++++++++++++++++++++++++
samples/hid/hid_surface_dial.bpf.c | 134 ++++++++++++++++++++++++
samples/hid/hid_surface_dial.c | 226 +++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/hid/.gitignore | 5 +
tools/testing/selftests/hid/Makefile | 231 ++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/hid/config | 21 ++++
tools/testing/selftests/hid/config.common | 241 ++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/hid/config.x86_64 | 4 +
tools/testing/selftests/hid/hid_bpf.c | 869 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/hid/progs/hid.c | 209 +++++++++++++++++++++++++++++++++++++
tools/testing/selftests/hid/progs/hid_bpf_helpers.h | 21 ++++
tools/testing/selftests/hid/vmtest.sh | 284 +++++++++++++++++++++++++++++++++++++++++++++++++
91 files changed, 6736 insertions(+), 1428 deletions(-)
create mode 100644 Documentation/hid/hid-bpf.rst
create mode 100644 drivers/hid/bpf/Kconfig
create mode 100644 drivers/hid/bpf/Makefile
create mode 100644 drivers/hid/bpf/entrypoints/Makefile
create mode 100644 drivers/hid/bpf/entrypoints/README
create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.bpf.c
create mode 100644 drivers/hid/bpf/entrypoints/entrypoints.lskel.h
create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.c
create mode 100644 drivers/hid/bpf/hid_bpf_dispatch.h
create mode 100644 drivers/hid/bpf/hid_bpf_jmp_table.c
create mode 100644 drivers/hid/hid-evision.c
create mode 100644 drivers/hid/hid-input-test.c
create mode 100644 drivers/hid/hid-uclogic-core-test.c
create mode 100644 include/linux/hid_bpf.h
create mode 100644 samples/hid/.gitignore
create mode 100644 samples/hid/Makefile
create mode 100644 samples/hid/Makefile.target
create mode 100644 samples/hid/hid_bpf_attach.bpf.c
create mode 100644 samples/hid/hid_bpf_attach.h
create mode 100644 samples/hid/hid_bpf_helpers.h
create mode 100644 samples/hid/hid_mouse.bpf.c
create mode 100644 samples/hid/hid_mouse.c
create mode 100644 samples/hid/hid_surface_dial.bpf.c
create mode 100644 samples/hid/hid_surface_dial.c
create mode 100644 tools/testing/selftests/hid/.gitignore
create mode 100644 tools/testing/selftests/hid/Makefile
create mode 100644 tools/testing/selftests/hid/config
create mode 100644 tools/testing/selftests/hid/config.common
create mode 100644 tools/testing/selftests/hid/config.x86_64
create mode 100644 tools/testing/selftests/hid/hid_bpf.c
create mode 100644 tools/testing/selftests/hid/progs/hid.c
create mode 100644 tools/testing/selftests/hid/progs/hid_bpf_helpers.h
create mode 100755 tools/testing/selftests/hid/vmtest.sh
On Wed, Feb 22, 2023 at 2:16 AM Benjamin Tissoires
<[email protected]> wrote:
>
> - HID-BPF infrastructure: this allows to start using HID-BPF.
I really don't think this should default to being enabled when there
doesn't seem to be any actual useful use-cases for it.
So why does it have that
default HID_SUPPORT
that turns it on if HID is on, and
If unsure, say Y.
in the help message?
I check for these things, because developers always think that THEIR
code is so magically important and everybody should care. And that's
simply not true. If we have been able to do without HID_BPF before,
then it certainly didn't magically become important for everybody just
by virtue of existing.
The *only* things that should be "default y" are basically new gating
questions (like the new gating question of "do you want HID at all",
when we didn't use to even ask), or things that cure cancer or solve
world hunger.
Linus
The pull request you sent on Wed, 22 Feb 2023 11:16:00 +0100:
> git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git tags/for-linus-2023022201
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6c71297eaf713ece684a367ce9aff06069d715b9
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
On Wed, Feb 22, 2023 at 8:24 PM Linus Torvalds
<[email protected]> wrote:
>
> On Wed, Feb 22, 2023 at 2:16 AM Benjamin Tissoires
> <[email protected]> wrote:
> >
> > - HID-BPF infrastructure: this allows to start using HID-BPF.
>
> I really don't think this should default to being enabled when there
> doesn't seem to be any actual useful use-cases for it.
>
> So why does it have that
>
> default HID_SUPPORT
>
> that turns it on if HID is on, and
>
> If unsure, say Y.
>
> in the help message?
>
> I check for these things, because developers always think that THEIR
> code is so magically important and everybody should care. And that's
> simply not true. If we have been able to do without HID_BPF before,
> then it certainly didn't magically become important for everybody just
> by virtue of existing.
>
> The *only* things that should be "default y" are basically new gating
> questions (like the new gating question of "do you want HID at all",
> when we didn't use to even ask), or things that cure cancer or solve
> world hunger.
I was about to send an apology email with a patch to remove that line
but then I realized that you already got rid of the default Y.
So apologies for that. I mainly wanted this to be enabled in general
distribution where users encounter issues with HID devices, but it's
clear that it wasn't a good choice as servers will probably never have
a need for it.
And thanks for fixing it while applying the series.
Cheers,
Benjamin
>
> Linus
>