From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brice Waegeneire Subject: bug#35574: bcm5974 touchpad is not recognized as touchpad Date: Tue, 28 Apr 2020 14:10:58 +0000 Message-ID: References: <20190505065411.2rb5aqaaxywc4qvk@pelzflorian.localdomain> <20190505074152.ttmow2unsscdovhz@pelzflorian.localdomain> <20200116233537.myczkgkwnfpn75hu@pelzflorian.localdomain> <20200420144718.ehopbrz7hzvn5vxx@pelzflorian.localdomain> <20200420155908.ulewy4c2vqkuzgfr@pelzflorian.localdomain> <20200427002857.apq5nreio5kllpoq@pelzflorian.localdomain> <87pnbtwi2y.fsf@gmail.com> <20200428094502.cduna7cyerl77ouq@pelzflorian.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:41988) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTQxu-0007lh-Qf for bug-guix@gnu.org; Tue, 28 Apr 2020 10:12:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTQxu-0004a1-Au for bug-guix@gnu.org; Tue, 28 Apr 2020 10:12:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:57678) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jTQxt-0004ZY-S7 for bug-guix@gnu.org; Tue, 28 Apr 2020 10:12:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jTQxt-00028m-Mv for bug-guix@gnu.org; Tue, 28 Apr 2020 10:12:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20200428094502.cduna7cyerl77ouq@pelzflorian.localdomain> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org Sender: "bug-Guix" To: "pelzflorian (Florian Pelz)" Cc: 35574@debbugs.gnu.org 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 > : >> 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