Linux Input/HID development
 help / color / mirror / Atom feed
* HID: logitech-hidpp: G920 FF init fails with -110 since "move FF initialization to .input_configured()"
@ 2026-11-02 13:23 Gideon Heinz
  2026-11-02 17:37 ` Dmitry Torokhov
  0 siblings, 1 reply; 4+ messages in thread
From: Gideon Heinz @ 2026-11-02 13:23 UTC (permalink / raw)
  To: linux-input; +Cc: dmitry.torokhov, jkosina, bentiss

[-- Attachment #1: Type: text/plain, Size: 2037 bytes --]

On 7.3.1 the Logitech G920 (Xbox One/PC version, 046d:c262) loses all
force feedback except autocenter. dmesg:

  logitech-hidpp-device 0003:046D:C262.0002: Unable to initialize
  force feedback support, errno -110

The error appears before "HID++ 4.2 device connected". fftest shows no
FF capabilities and every effect upload fails with ENOSYS.

Works:
  - stock Arch 7.2.11-arch1-1
  - linux-cachyos-lts 6.18.55-2
  dmesg: "Force feedback support loaded (firmware release 4)" about
  5 ms after "HID++ 4.2 device connected". fftest lists all effect
  types.

Fails:
  - linux-cachyos 7.3.1-1
  Reproducible on cold boot, on replug and on module reload, with no
  other software touching the device.

I captured usbmon traffic for both cases (bus 3, captures attached).
The wheel behaves the same in both. The request 11ff0001 8123 and the
reply 12ff0001 0b are byte-identical and answered in 3-4 ms. The
difference is on the host side:

  working: the 0x8123 lookup is sent once, after the protocol ping and
           the earlier feature lookups. The driver then talks to
           feature index 0x0b (get info, reset all, get aperture, get
           global gains, download effect) and FF initializes.
  broken:  the 0x8123 lookup is sent before the protocol ping and
           retried 3 times about 5.1 s apart. The driver never sends
           anything to index 0x0b. The ping and the rest of the init
           only run afterwards.

This looks like a regression from commit
544315e401727364f7ce3ba771a36f7dc24ba6c4 ("HID:
logitech-hidpp: move FF initialization to .input_configured()",
2026-08-14). It moves g920_get_config()/hidpp_ff_init() from
hidpp_probe(), where they ran after schedule_work()/flush_work() of the
connect event, into hidpp_input_configured(), which is called from
hid_hw_start() before that work runs. That matches the capture: the
wheel answers the 0x8123 lookup normally, the driver doesn't act on the
reply and gives up after 3 tries with -ETIMEDOUT. I haven't tested a
revert. Happy to test patches.

[-- Attachment #2: FFB_G920_WORKING.pcapng --]
[-- Type: application/x-pcapng, Size: 30296 bytes --]

[-- Attachment #3: FFB_G920_BROKEN.pcapng --]
[-- Type: application/x-pcapng, Size: 29248 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-11-09  6:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-02 13:23 HID: logitech-hidpp: G920 FF init fails with -110 since "move FF initialization to .input_configured()" Gideon Heinz
2026-11-02 17:37 ` Dmitry Torokhov
     [not found]   ` <CAPb1+K0aFMox4-FTjODmOSN7iHDXfFGq-2jGfQyXcp+X_rNioA@mail.gmail.com>
2026-11-05 19:17     ` Dmitry Torokhov
     [not found]       ` <CAPb1+K3ca9HdcNxF+sckhL7-Ud11k5E+1vxmzsVK=h4srC3A4A@mail.gmail.com>
2026-11-09  6:10         ` Dmitry Torokhov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox