Another USB mouse failing to attach with current, post-USB2

From: Jase Thew <bazerka_at_beardz.net>
Date: Wed, 06 May 2009 01:33:14 +0100
Hi,

I installed 8.0-CURRENT a few months ago to test it with the hardware in 
my machine. Everything worked fine until USB2 replaced USB in the tree, 
and upon a rebuild, my Razer Copperhead USB mouse stopped attaching to ums.

I've updated my sources and rebuilt everything around 3 hours ago to 
ensure that I'm up-to-date with HEAD. Please find attached the relevant 
lines from my verbose dmesg.boot and also usbconfig outputs for the device.

The mouse itself doesn't conform to the HID spec somewhat ( see 
usb/118670 [1] for some history ) so it has to rely on the 
hid_is_collection test rather than reading the descriptor direct in the 
ums probe routine. However, the hid_is_collection test now fails since 
USB2 replaced USB. I've tested with my kludge patch from usb/118670 and 
the mouse works perfectly with it, so USB2 supports the mouse fine apart 
from the hid_is_collection test no longer recognising it.

If any additional info is required, I'll be happy to supply it.

Thanks in advance,

Jase.


[1] http://www.freebsd.org/cgi/query-pr.cgi?pr=usb/118670

uhci0: <UHCI (generic) USB controller> port 0xd000-0xd01f irq 16 at device 26.0 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd000
uhci0: [MPSAFE]
uhci0: [ITHREAD]
uhci0: LegSup = 0x0f10
usbus0: <UHCI (generic) USB controller> on uhci0
uhci1: <UHCI (generic) USB controller> port 0xd100-0xd11f irq 21 at device 26.1 on pci0
uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd100
uhci1: [MPSAFE]
uhci1: [ITHREAD]
uhci1: LegSup = 0x0f10
usbus1: <UHCI (generic) USB controller> on uhci1
uhci2: <UHCI (generic) USB controller> port 0xd500-0xd51f irq 18 at device 26.2 on pci0
uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd500
uhci2: [MPSAFE]
uhci2: [ITHREAD]
uhci2: LegSup = 0x0f10
usbus2: <UHCI (generic) USB controller> on uhci2
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xea205000-0xea2053ff irq 18 at device 26.7 on pci0
ehci0: Reserved 0x400 bytes for rid 0x10 type 3 at 0xea205000
ehci0: [MPSAFE]
ehci0: [ITHREAD]
usbus3: EHCI version 1.0
usbus3: <EHCI (generic) USB 2.0 controller> on ehci0
uhci3: <UHCI (generic) USB controller> port 0xd200-0xd21f irq 23 at device 29.0 on pci0
uhci3: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd200
uhci3: [MPSAFE]
uhci3: [ITHREAD]
uhci3: LegSup = 0x003a
usbus4: <UHCI (generic) USB controller> on uhci3
uhci4: <UHCI (generic) USB controller> port 0xd300-0xd31f irq 19 at device 29.1 on pci0
uhci4: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd300
uhci4: [MPSAFE]
uhci4: [ITHREAD]
uhci4: LegSup = 0x0010
usbus5: <UHCI (generic) USB controller> on uhci4
uhci5: <UHCI (generic) USB controller> port 0xd400-0xd41f irq 18 at device 29.2 on pci0
uhci5: Reserved 0x20 bytes for rid 0x20 type 4 at 0xd400
uhci5: [MPSAFE]
uhci5: [ITHREAD]
uhci5: LegSup = 0x0010
usbus6: <UHCI (generic) USB controller> on uhci5
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xea204000-0xea2043ff irq 23 at device 29.7 on pci0
ehci1: Reserved 0x400 bytes for rid 0x10 type 3 at 0xea204000
ehci1: [MPSAFE]
ehci1: [ITHREAD]
usbus7: EHCI version 1.0
usbus7: <EHCI (generic) USB 2.0 controller> on ehci1
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 12Mbps Full Speed USB v1.0
usbus3: 480Mbps High Speed USB v2.0
usbus4: 12Mbps Full Speed USB v1.0
usbus5: 12Mbps Full Speed USB v1.0
usbus6: 12Mbps Full Speed USB v1.0
usbus7: 480Mbps High Speed USB v2.0
ugen0.1: <Intel> at usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <Intel> at usbus2
uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
ugen3.1: <Intel> at usbus3
uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
ugen4.1: <Intel> at usbus4
uhub4: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
ugen5.1: <Intel> at usbus5
uhub5: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus5
ugen6.1: <Intel> at usbus6
uhub6: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus6
ugen7.1: <Intel> at usbus7
uhub7: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus7
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub2: 2 ports with 2 removable, self powered
uhub4: 2 ports with 2 removable, self powered
uhub5: 2 ports with 2 removable, self powered
uhub6: 2 ports with 2 removable, self powered
uhub3: 6 ports with 6 removable, self powered
uhub7: 6 ports with 6 removable, self powered
ugen0.2: <Broadcom> at usbus0
uhub8: <Broadcom BCM2046B1, class 9/0, rev 2.00/1.00, addr 2> on usbus0
ugen1.2: <Microsoft> at usbus1
uhid0: <Microsoft product 0x028e, rev 2.00/1.10, addr 2> on usbus1
uhub8: 3 ports with 0 removable, bus powered
ugen2.2: <Razer> at usbus2
uhid1: <Razer Razer Copperhead Laser Mouse, class 0/0, rev 1.10/21.00, addr 2> on usbus2
ukbd0: <Razer Razer Copperhead Laser Mouse, class 0/0, rev 1.10/21.00, addr 2> on usbus2
kbd2 at ukbd0
kbd2: ukbd0, generic (0), config:0x0, flags:0x3d0000
ukbd_set_leds_callback:554: error=USB_ERR_STALLED
ugen0.3: <Broadcom> at usbus0
ukbd1: <Broadcom product 0x4502, class 0/0, rev 2.00/1.00, addr 3> on usbus0
kbd3 at ukbd1
kbd3: ukbd1, generic (0), config:0x0, flags:0x3d0000
ugen0.4: <Broadcom> at usbus0
ums0: <Broadcom product 0x4503, class 0/0, rev 2.00/1.00, addr 4> on usbus0
ums0: 3 buttons and [XY] coordinates ID=2
ugen2.3: <Logitech> at usbus2
uhub9: <Logitech product 0xc223, class 9/0, rev 1.10/1.71, addr 3> on usbus2
ugen0.5: <Broadcom Corp> at usbus0
uhub9: 4 ports with 2 removable, bus powered
ugen2.4: <Logitech> at usbus2
ukbd2: <Logitech Gaming Keyboard, class 0/0, rev 2.00/1.90, addr 4> on usbus2
kbd: new array size 8
kbd4 at ukbd2
kbd4: ukbd2, generic (0), config:0x0, flags:0x3d0000
uhid2: <Logitech Gaming Keyboard, class 0/0, rev 2.00/1.90, addr 4> on usbus2

sheesh8# usbconfig -u 2 -a 2 do_request 0x81 0x06 0x2200 0 0x100

REQUEST = <0x05 0x01 0x09 0x02 0xa1 0x01 0x09 0x01 0xa1 0x00 0x05 
0x09 0x19 0x01 0x29 0x07 0x15 0x00 0x25 0x01 0x95 0x08 0x75 0x01 
0x81 0x02 0x06 0x00 0xff 0x09 0x40 0x95 0x02 0x75 0x08 0x15 0x81 
0x25 0x7f 0x81 0x02 0x05 0x01 0x09 0x38 0x15 0x81 0x25 0x7f 0x75 
0x08 0x95 0x01 0x81 0x06 0x09 0x30 0x09 0x31 0x16 0x00 0x80 0x26 
0xff 0x7f 0x75 0x10 0x95 0x02 0x81 0x06 0xc0 0xc0><)%u_at_u%8%u01&u>

ugen2.2: <Razer Copperhead Laser Mouse Razer> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x1532 
  idProduct = 0x0101 
  bcdDevice = 0x2100 
  iManufacturer = 0x0001  <Razer>
  iProduct = 0x0002  <Razer Copperhead Laser Mouse>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x003b 
    bNumInterfaces = 0x0002 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00a0 
    bMaxPower = 0x0032 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0003 
      bInterfaceSubClass = 0x0000 
      bInterfaceProtocol = 0x0002 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x09, 0x21, 0x01, 0x10, 0x00, 0x01, 0x22, 0x49, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081 
        bmAttributes = 0x0003 
        wMaxPacketSize = 0x0010 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 


    Interface 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0003 
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0001 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x09, 0x21, 0x01, 0x10, 0x00, 0x01, 0x22, 0x2f, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082 
        bmAttributes = 0x0003 
        wMaxPacketSize = 0x0010 
        bInterval = 0x0008 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 
Received on Tue May 05 2009 - 22:48:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:47 UTC