NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/55161: Add support for Microsoft Wireless Desktop 900 Mouse

>Number:         55161
>Category:       kern
>Synopsis:       Add support for Microsoft Wireless Desktop 900 Mouse
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 10 19:35:00 +0000 2020
>Originator:     M. Boerschig
>Release:        9.0, 9.99.55
NetBSD 9.99.55 (GENERIC)
I use the Microsoft Wireless Desktop 900 Mouse via its 2.4 GHz transceiver.
When using on NetBSD Xorg appears to lock-up completely when moving the mouse.
Turning on usbhid debug levels showed:

[   331.239567] hidms_intr: x:-5 y:-9 z:1280 w:-1280 buttons:0x0
[   331.249570] uhidev6: expected 2 bytes, got 9
[   331.249570] hidms_intr: len=9

This confused the X server so much that it appears to freeze the whole system (well, keyboard won't react, so...)

I set this PR's priority to 'high' because it renders the system unusable when moving the mouse.

Plug the Wireless Desktop 900 2.4GHz receiver in the USB port, start up X, move mouse. System freezes.
I run glxgears to demonstrate the freezing.
A slight mouse movement might take 20-30 seconds to recover, in that time glxgears is wedged.
Somehow the erroneous hid message seem to confuse X.

The workaround employed in ums.c  for other transceivers works fine.
diff --git a/sys/dev/usb/ums.c b/sys/dev/usb/ums.c
index f81295d6d070..f8c4ed1a49b7 100644
--- a/sys/dev/usb/ums.c
+++ b/sys/dev/usb/ums.c
@@ -173,6 +173,7 @@ ums_attach(device_t parent, device_t self, void *aux)
                switch (uha->uiaa->uiaa_product) {
                case USB_PRODUCT_MICROSOFT_24GHZ_XCVR10:
                case USB_PRODUCT_MICROSOFT_24GHZ_XCVR20:
+               case USB_PRODUCT_MICROSOFT_24GHZ_XCVR80:
                case USB_PRODUCT_MICROSOFT_NATURAL_6000:
                        fixpos = 24;
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index fbe0a5b987d9..511c94854fe9 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -2328,6 +2328,7 @@ product MICROSOFT XBOX_CONTROLLER_S12     0x0289  Xbox Controller S (1.2)
 product MICROSOFT XBOX_360_WIRELESS_RECEIVER 0x0291 Xbox 360 Wireless Receiver
 product MICROSOFT 24GHZ_XCVR10         0x071d  2.4GHz Transceiver V1.0
 product MICROSOFT 24GHZ_XCVR20         0x071f  2.4GHz Transceiver V2.0
+product MICROSOFT 24GHZ_XCVR80         0x07b2  2.4GHz Transceiver V8.0
 product MICROSOFT CM6000               0x077d  Comfort Mouse 6000

Home | Main Index | Thread Index | Old Index