GNU bug report logs - #35574
bcm5974 touchpad is not recognized as touchpad

Previous Next

Package: guix;

Reported by: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>

Date: Sun, 5 May 2019 06:55:02 UTC

Severity: normal

Done: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Brice Waegeneire <brice <at> waegenei.re>
To: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, Mathieu Othacehe <m.othacehe <at> gmail.com>, 35574 <at> debbugs.gnu.org
Subject: bug#35574: bcm5974 touchpad is not recognized as touchpad
Date: Tue, 28 Apr 2020 14:10:58 +0000
Hello Florian,

On 2020-04-28 09:45, pelzflorian (Florian Pelz) wrote:
> Danny, Brice, I’m putting you in Cc, maybe you have an opinion on
> this?  I suppose I should not change %default-extra-linux-options.

Keeping this module enabled in the kernel seems a good idea, it allows
support for mice solely speaking Human Interface Device Boot Protocol
(HIDBP); probably somebody somewhere is unwittingly relying on it being
present by default in Guix.

> From the Linux kernel docs
> <https://www.kernel.org/doc/html/latest/input/devices/bcm5974.html>:
>> 5.2. USB Race
>> 
>> The Apple multi-touch trackpads report both mouse and keyboard events
>> via different interfaces of the same usb device. This creates a race
>> condition with the HID driver, which, if not told otherwise, will find
>> the standard HID mouse and keyboard, and claim the whole device. To
>> remedy, the usb product id must be listed in the mouse_ignore list of
>> the hid driver.
> Indeed for me on good boots, the command `lsusb -t` prints
>     |__ Port 3: Dev 2, If 2, Class=Human Interface Device, 
> Driver=bcm5974, 12M
> while on bad boots it says Driver=usbmouse.
> 
> But why that happens I do not know, because the mouse_ignore list in
> the Linux-libre kernel’s drivers/hid/hid-quirks.c file does list my
> touchpad.  Strange.  I will investigate further if a change to the
> kernel config could help.

FWI the issue span from the driver 'usbmouse'
(drivers/hid/usbhid/usbmouse.c) which doesn't use 
drivers/hid/hid-quirks.c
contrary to 'usbhid' (drivers/hid/usbhid/hid-core.c) which is using it.
This is probably why you did not report having an issue with 'usbhid'
racing with 'bcm597'; 'usbhid' is effectively prevented to take over 
your
touchpad by the quirks while 'usbmouse' isn't aware of it.

Passing arguments to the kernel to blacklist a module is the correct way 
of
doing this currently FWIU; it's already used in gnu/system/install.scm.

Cheers,
- Brice




This bug report was last modified 5 years and 23 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.