Bug 217811 - usbhid driver misses right-click event for Rapoo wireless mouse
Summary: usbhid driver misses right-click event for Rapoo wireless mouse
Status: RESOLVED INSUFFICIENT_DATA
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: Default virtual assignee for Drivers/USB
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-20 21:10 UTC by Michal Byrecki
Modified: 2023-08-22 15:07 UTC (History)
1 user (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Michal Byrecki 2023-08-20 21:10:50 UTC
Driver improperly creates event for wireless mouse (missing right click event). The driver is only recognizing the left and mid-clicks, but remains dead calm on the right one. The mouse itself is ok.

Linux crystal 5.13.0zeta #9 SMP Wed Jan 25 15:49:37 CET 2023 x86_64 GNU/Linux

Below is the output I've got using evtester. I've clicked consecutively left, mid and right buttons of the mouse. The first two clicks generated events,while the right one does not.


Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x24ae product 0x2010 version 0x110
Input device name: "RAPOO Rapoo 2.4G Wireless Device"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 274 (BTN_MIDDLE)
    Event code 275 (BTN_SIDE)
    Event code 276 (BTN_EXTRA)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 8 (REL_WHEEL)
    Event code 11 (REL_WHEEL_HI_RES)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)


Event: time 1692563194.319720, -------------- SYN_REPORT ------------
Event: time 1692563194.407719, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1692563194.407719, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
Event: time 1692563194.407719, -------------- SYN_REPORT ------------
Event: time 1692563199.591686, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1692563199.591686, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1

Below is the lsusb output:

Bus 001 Device 056: ID 24ae:2010 Shenzhen Rapoo Technology Co., Ltd. Rapoo 2.4G Wireless Device
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x24ae Shenzhen Rapoo Technology Co., Ltd.
  idProduct          0x2010 
  bcdDevice            1.10
  iManufacturer           1 RAPOO
  iProduct                2 Rapoo 2.4G Wireless Device
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0054
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      64
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      94
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      64
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
Device Status:     0x0002
  (Bus Powered)
  Remote Wakeup Enabled

and for the Device 56 the following driver is in use:
lsusb -d 24ae:2010 -t |grep 56
            |__ Port 1: Dev 56, If 1, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 1: Dev 56, If 2, Class=Human Interface Device, Driver=usbhid, 12M
            |__ Port 1: Dev 56, If 0, Class=Human Interface Device, Driver=usbhid, 12M
Comment 1 Bagas Sanjaya 2023-08-21 07:37:38 UTC
(In reply to Michal Byrecki from comment #0)
> Driver improperly creates event for wireless mouse (missing right click
> event). The driver is only recognizing the left and mid-clicks, but remains
> dead calm on the right one. The mouse itself is ok.
> 
> Linux crystal 5.13.0zeta #9 SMP Wed Jan 25 15:49:37 CET 2023 x86_64 GNU/Linux
> 
> Below is the output I've got using evtester. I've clicked consecutively
> left, mid and right buttons of the mouse. The first two clicks generated
> events,while the right one does not.
> 

Can you reproduce this issue on latest mainline (currently v6.5-rc7?)
Comment 2 Michal Byrecki 2023-08-21 09:01:06 UTC
Positive, same issue with the latest mainline:

Linux crystal 6.5.0-rc7zeta #1 SMP PREEMPT_DYNAMIC Mon Aug 21 10:41:51 CEST 2023 x86_64 GNU/Linux

Just two events, for left and mid mouse clicks:
Event: time 1692608117.921419, -------------- SYN_REPORT ------------
Event: time 1692608118.001416, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1692608118.001416, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
Event: time 1692608118.001416, -------------- SYN_REPORT ------------
Event: time 1692608119.001433, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1692608119.001433, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
Event: time 1692608119.001433, -------------- SYN_REPORT ------------
Comment 3 Michal Byrecki 2023-08-21 19:19:17 UTC
Today I workaround a bit of the problem.
I've tested the mouse microswitch using a multimeter, it is definitely ok (the closed contact is less than one Ohm). Then I've attached the mouse to a laptop with Windows 7, same problem - missing the right click.
Honestly, I have no idea where's the problem. It seems hardware related.
I think it's time to close my bug report, sorry for disrupting Your coding.
Brgds Mike
Comment 4 Michal Byrecki 2023-08-22 15:07:06 UTC
Today I've realized, that the right click started working:
Event: time 1692716651.620865, -------------- SYN_REPORT ------------
Event: time 1692716651.724863, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
Event: time 1692716651.724863, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 0
Event: time 1692716651.724863, -------------- SYN_REPORT ------------

I really have no clue what's going on.

Note You need to log in before you can comment on or make changes to this bug.