Bug 8099 - middle button on usb mouse not working
Summary: middle button on usb mouse not working
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Jiri Kosina
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-27 13:10 UTC by James Boddington
Modified: 2007-03-02 05:22 UTC (History)
1 user (show)

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


Attachments
fix for non-working middle wheel as a button for 0x1267:0x0210 in 2.6.20 (4.09 KB, patch)
2007-02-28 00:57 UTC, Jiri Kosina
Details | Diff

Description James Boddington 2007-02-27 13:10:15 UTC
Most recent kernel where this bug did *NOT* occur: 2.6.20-rc4
Distribution: Ubuntu
Hardware Environment: atlon xp1700, usb mouse ID 1267:0210 Logic3 / 
SpectraVideo plc
Software Environment:
Problem Description:

Using the wheel as a button does not work with kernels after 2.6.20-rc4. The 
3rd button has to be emulated pressing bother left and right buttons at the 
same time. Does not matter if the mouse is connected to a hub or one of the 
ports on the motherboard.

Using git bisect I narrowed the problem down to commit 
35068976916fdef82d6e69ef1f8c9a1c47732759

I had been using the master branch with that commit reverted. With the commit 
reverted the mouse works normally again.

lsusb -d 1267:0210 -v

Bus 001 Device 003: ID 1267:0210 Logic3 / SpectraVideo plc 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1267 Logic3 / SpectraVideo plc
  idProduct          0x0210 
  bcdDevice            0.01
  iManufacturer           0 
  iProduct                2 PS/2+USB Mouse
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      72
         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     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)
Comment 1 Anonymous Emailer 2007-02-27 13:15:23 UTC
Reply-To: akpm@linux-foundation.org


How'd we manage to break it between -rc4 and -final? :(

Begin forwarded message:

Date: Tue, 27 Feb 2007 13:10:19 -0800
From: bugme-daemon@bugzilla.kernel.org
To: bugme-new@lists.osdl.org
Subject: [Bugme-new] [Bug 8099] New: middle button on usb mouse not working


http://bugzilla.kernel.org/show_bug.cgi?id=8099

           Summary: middle button on usb mouse not working
    Kernel Version: 2.6.20
            Status: NEW
          Severity: normal
             Owner: greg@kroah.com
         Submitter: boddingt@internode.on.net


Most recent kernel where this bug did *NOT* occur: 2.6.20-rc4
Distribution: Ubuntu
Hardware Environment: atlon xp1700, usb mouse ID 1267:0210 Logic3 / 
SpectraVideo plc
Software Environment:
Problem Description:

Using the wheel as a button does not work with kernels after 2.6.20-rc4. The 
3rd button has to be emulated pressing bother left and right buttons at the 
same time. Does not matter if the mouse is connected to a hub or one of the 
ports on the motherboard.

Using git bisect I narrowed the problem down to commit 
35068976916fdef82d6e69ef1f8c9a1c47732759

I had been using the master branch with that commit reverted. With the commit 
reverted the mouse works normally again.

lsusb -d 1267:0210 -v

Bus 001 Device 003: ID 1267:0210 Logic3 / SpectraVideo plc 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1267 Logic3 / SpectraVideo plc
  idProduct          0x0210 
  bcdDevice            0.01
  iManufacturer           0 
  iProduct                2 PS/2+USB Mouse
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      72
         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     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

Comment 2 Jiri Kosina 2007-02-27 15:40:06 UTC
I am unfortunately not able to reproduce it with my USB mouse. Could you please
compile the kernel with debugging hid/usbhid options turned on (*) and send me
the output? (both from working and non-working configurations). Also output from
evtest /dev/input/event<number_corresponding_to_mouse> would be helpful.

(*) on pre-2.6.21-rc1 kernel this means adding

#define DEBUG
#define DEBUG_DATA

to hid/hid-core.c and usb/input/hid-core.c and hid/hid-input.c. (the defines
must of course be placed below corresponding #undef, if there are any).

On 2.6.21-rc1 the HID debugging can be turned on in menuconfig menu, in HID
devices section.
Comment 3 Jiri Kosina 2007-02-27 16:14:34 UTC
On Tue, 27 Feb 2007, Andrew Morton wrote:

> How'd we manage to break it between -rc4 and -final? :(
> Begin forwarded message:
> Date: Tue, 27 Feb 2007 13:10:19 -0800
> From: bugme-daemon@bugzilla.kernel.org
> To: bugme-new@lists.osdl.org
> Subject: [Bugme-new] [Bug 8099] New: middle button on usb mouse not working

Well one more example of exhausting fight with broken devices.

It's not a real showstopper - it's not that it breaks middle button on all 
usb mice for everyone; might be that it breaks only for this specific kind 
of device/setup.

Anyway, I will handle this.

Comment 4 Jiri Kosina 2007-02-28 00:57:16 UTC
Created attachment 10551 [details]
fix for non-working middle wheel as a button for 0x1267:0x0210 in 2.6.20

I am going to push upstream this patch, which fixes the problem. Please read
comments in the patch text for detailed explanation.
Comment 5 James Boddington 2007-02-28 03:11:44 UTC
I compiled 2.6.20 with your patch and the mouse now works as expected. Evtest 
shows a clean button press and clean release. Thanks.


I had collected the data you had asked for a little bit before you posted 
about the patch. A snippet just from evtest. This was for 2.6.20-rc4

Event: time 1172650582.378177, type 1 (Key), code 274 (MiddleBtn), value 1
Event: time 1172650582.378200, type 0 (Reset), code 0 (Reset), value 0
Event: time 1172650582.578139, type 1 (Key), code 274 (MiddleBtn), value 0
Event: time 1172650582.578165, type 0 (Reset), code 0 (Reset), value 0

and with a later kernel where the button was not working I was getting

Event: time 1172650946.195169, type 1 (Key), code 274 (MiddleBtn), value 1
Event: time 1172650946.195174, type 1 (Key), code 274 (MiddleBtn), value 0
Event: time 1172650946.195189, type 0 (Reset), code 0 (Reset), value 0

Comment 6 Jiri Kosina 2007-03-02 05:22:57 UTC
Patch has been merged upstream, closing bug.

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