Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jan 2022 16:21:25 +0100
From:      Jan Mikkelsen <janm@transactionware.com>
To:        freebsd-hackers@freebsd.org
Subject:   Joystick with keyboard, mouse and joystick endpoints disconnects after 3-4 seconds
Message-ID:  <7A70DD3A-48A9-426A-BB73-7DB1B31BE1E0@transactionware.com>

next in thread | raw e-mail | index | archive | help
Hi,

When attaching an APEM VM Desktop joystick, =
https://www.apem.com/int/vm-desktop-93.html, to a 12.2 system, I get =
this sequence of events:

ugen0.10: <CH Products VM Desktop> at usbus0
uhid0 numa-domain 0 on uhub2
uhid0: <VM Joystick Interface> on usbus0
uhid1 numa-domain 0 on uhub2
uhid1: <VM Keyboard Interface> on usbus0
uhid2 numa-domain 0 on uhub2
uhid2: <VM Mouse Interface> on usbus0
ugen0.10: <CH Products VM Desktop> at usbus0 (disconnected)
uhid0: at uhub2, port 5, addr 19 (disconnected)
uhid0: detached
uhid1: at uhub2, port 5, addr 19 (disconnected)
uhid1: detached
uhid2: at uhub2, port 5, addr 19 (disconnected)
uhid2: detached

The disconnection happens about 3-4 seconds after the attachment =
completes.

The device has three endpoints: A mouse, a keyboard and a joystick. I =
have added quirks to have ums and ukbd ignore the device, so that uhid =
attaches. I believe that mouse and keyboard endpoints on the same device =
are not currently supported.

The output from =E2=80=9Cusbconfig dump_all_desc=E2=80=9D is shown =
below.

Any ideas on where to look to resolve this?

Thanks,

Jan M.


ugen0.10: <CH Products VM Desktop> at usbus0, cfg=3D0 md=3DHOST spd=3DFULL=
 (12Mbps) pwr=3DON (500mA)

  bLength =3D 0x0012=20
  bDescriptorType =3D 0x0001=20
  bcdUSB =3D 0x0200=20
  bDeviceClass =3D 0x0000  <Probed by interface class>
  bDeviceSubClass =3D 0x0000=20
  bDeviceProtocol =3D 0x0000=20
  bMaxPacketSize0 =3D 0x0008=20
  idVendor =3D 0x068e=20
  idProduct =3D 0x0064=20
  bcdDevice =3D 0x0200=20
  iManufacturer =3D 0x0001  <CH Products>
  iProduct =3D 0x0002  <VM Desktop>
  iSerialNumber =3D 0x0000  <no string>
  bNumConfigurations =3D 0x0001=20

 Configuration index 0

    bLength =3D 0x0009=20
    bDescriptorType =3D 0x0002=20
    wTotalLength =3D 0x005b=20
    bNumInterfaces =3D 0x0003=20
    bConfigurationValue =3D 0x0001=20
    iConfiguration =3D 0x0000  <no string>
    bmAttributes =3D 0x0080=20
    bMaxPower =3D 0x00fa=20

    Interface 0
      bLength =3D 0x0009=20
      bDescriptorType =3D 0x0004=20
      bInterfaceNumber =3D 0x0000=20
      bAlternateSetting =3D 0x0000=20
      bNumEndpoints =3D 0x0002=20
      bInterfaceClass =3D 0x0003  <HID device>
      bInterfaceSubClass =3D 0x0000=20
      bInterfaceProtocol =3D 0x0000=20
      iInterface =3D 0x0005  <VM Joystick Interface>

      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x21
      bDescriptorSubType =3D 0x11
       RAW dump:=20
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x4b,=20
       0x08 | 0x00

     Endpoint 0
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0082  <IN>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x000a=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20

     Endpoint 1
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0001  <OUT>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x000a=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20


    Interface 1
      bLength =3D 0x0009=20
      bDescriptorType =3D 0x0004=20
      bInterfaceNumber =3D 0x0001=20
      bAlternateSetting =3D 0x0000=20
      bNumEndpoints =3D 0x0001=20
      bInterfaceClass =3D 0x0003  <HID device>
      bInterfaceSubClass =3D 0x0000=20
      bInterfaceProtocol =3D 0x0000=20
      iInterface =3D 0x0004  <VM Keyboard Interface>

      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x21
      bDescriptorSubType =3D 0x11
       RAW dump:=20
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x3f,=20
       0x08 | 0x00

     Endpoint 0
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0083  <IN>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0008=20
        bInterval =3D 0x000a=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20


    Interface 2
      bLength =3D 0x0009=20
      bDescriptorType =3D 0x0004=20
      bInterfaceNumber =3D 0x0002=20
      bAlternateSetting =3D 0x0000=20
      bNumEndpoints =3D 0x0001=20
      bInterfaceClass =3D 0x0003  <HID device>
      bInterfaceSubClass =3D 0x0000=20
      bInterfaceProtocol =3D 0x0000=20
      iInterface =3D 0x0003  <VM Mouse Interface>

      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x21
      bDescriptorSubType =3D 0x11
       RAW dump:=20
       0x00 | 0x09, 0x21, 0x11, 0x01, 0x21, 0x01, 0x22, 0x34,=20
       0x08 | 0x00

     Endpoint 0
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0084  <IN>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0008=20
        bInterval =3D 0x000a=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7A70DD3A-48A9-426A-BB73-7DB1B31BE1E0>