[Bug 266840] umodem: CH552 is not attached

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 05 Oct 2022 10:07:30 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266840

Hans Petter Selasky <hselasky@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hselasky@FreeBSD.org

--- Comment #2 from Hans Petter Selasky <hselasky@FreeBSD.org> ---
Hi,

There is something called a CM descriptor, and your device apparently got it
wrong!

sys/dev/usb/usb.h:#define       UDESC_CS_INTERFACE      0x24
sys/dev/usb/usb_cdc.h:#define   UDESCSUB_CDC_CM         1       /* Call
Management */
sys/dev/usb/usb_cdc.h:struct usb_cdc_cm_descriptor {

      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x05, 0x24, 0x01, 0x00, 0x00
                                      ^^^ bDataInterface should be 1, because
that is were the data BULK endpoints are!

struct usb_cdc_cm_descriptor {
        uByte   bLength;
        uByte   bDescriptorType;
        uByte   bDescriptorSubtype;
        uByte   bmCapabilities;
#define USB_CDC_CM_DOES_CM              0x01
#define USB_CDC_CM_OVER_DATA            0x02
        uByte   bDataInterface;
} __packed;

I'm sorry to say that your USB modem device is not USB class compliant.

Please notify the manufacturer!

--HPS

-- 
You are receiving this mail because:
You are the assignee for the bug.