Project

General

Profile

Actions

Bug #13880

open

usbsacm fails to open multi-config device

Added by Rick V 7 months ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
driver - device drivers
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

Any attempt to attach the following device to usbsacm(4D) results in the following error:

Jun 18 00:09:31 sun-pc usba: [ID 723738 kern.info] /pci@0,0/pci1022,1453@1,3/pci1022,43c6@0,2/pci1022,43c7@6/pci1b6f,7052@0/communications@2 (usb_mid8): can't support ugen for multiple configurations devices that have attached child interface drivers

the two configurations differ only in the number of data interfaces exposed (one vs two). I haven't used this device in such a long time that I've forgotten what the second config is used for, perhaps it is invoked only during firmware update? (Rockwell ACF chipsets contain a full microcontroller)

the device information from kadb:

INDEX   DRIVER      INST  NODE          GEN  VID.PID     PRODUCT             
8       usb_mid     8     communications1.1  0803.3095   USB Modem

usba_device: 0xfffffe2d518a7580
mfg_prod_sn: Conexant - USB Modem - 24680246

communications, instance #8 (driver name: usb_mid)
  /pci@0,0/pci1022,1453@1,3/pci1022,43c6@0,2/pci1022,43c7@6/pci1b6f,7052@0/communications@2
  dip: 0xfffffe2d1175f738
  usb_mid_statep: 0xfffffe2d11504bf0
  usb_mid_errlevel: 0x4

{
    modem, instance #-1 (driver not attached)
      /pci@0,0/pci1022,1453@1,3/pci1022,43c6@0,2/pci1022,43c7@6/pci1b6f,7052@0/communications@2/modem
      dip: 0xfffffe2d1175ebf8

    data, instance #-1 (driver not attached)
      /pci@0,0/pci1022,1453@1,3/pci1022,43c6@0,2/pci1022,43c7@6/pci1b6f,7052@0/communications@2/data
      dip: 0xfffffe2d1175e928

}

Device Descriptor
{
    bLength = 0x12
    bDescriptorType = 0x1
    bcdUSB = 0x110
    bDeviceClass = 0x2
    bDeviceSubClass = 0
    bDeviceProtocol = 0
    bMaxPacketSize0 = 0x40
    idVendor = 0x803
    idProduct = 0x3095
    bcdDevice = 0x100
    iManufacturer = 0x1
    iProduct = 0x2
    iSerialNumber = 0x3
    bNumConfigurations = 0x2
}
    -- Active Config Index 0
    Configuration Descriptor
    {
        bLength = 0x9
        bDescriptorType = 0x2
        wTotalLength = 0x49
        bNumInterfaces = 0x2
        bConfigurationValue = 0x1
        iConfiguration = 0x0
        bmAttributes = 0x80
        bMaxPower = 0x32
    }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x0
            bAlternateSetting = 0x0
            bNumEndpoints = 0x1
            bInterfaceClass = 0x2
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x1
            iInterface = 0x0
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x81
            bmAttributes = 0x3
            wMaxPacketSize = 0x40
            bInterval = 0x80
        }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x1
            bAlternateSetting = 0x0
            bNumEndpoints = 0x2
            bInterfaceClass = 0xa
            bInterfaceSubClass = 0x0
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x82
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0x1
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x2
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0x1
        }
            Unknown_Interface:0x24
            {
            05 24 00 10 01 
            }
            Unknown_Interface:0x24
            {
            05 24 01 03 01 
            }
            Unknown_Interface:0x24
            {
            04 24 02 07 
            }
            Unknown_Interface:0x24
            {
            05 24 06 00 01 
            }
            Unknown_Interface:0x24
            {
            06 24 07 04 48 03 
            }
    -- Inactive Config Index 1
    Configuration Descriptor
    {
        bLength = 0x9
        bDescriptorType = 0x2
        wTotalLength = 0x60
        bNumInterfaces = 0x3
        bConfigurationValue = 0x2
        iConfiguration = 0x0
        bmAttributes = 0x80
        bMaxPower = 0x32
    }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x0
            bAlternateSetting = 0x0
            bNumEndpoints = 0x1
            bInterfaceClass = 0x2
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x1
            iInterface = 0x0
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x81
            bmAttributes = 0x3
            wMaxPacketSize = 0x40
            bInterval = 0x80
        }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x1
            bAlternateSetting = 0x0
            bNumEndpoints = 0x2
            bInterfaceClass = 0xa
            bInterfaceSubClass = 0x0
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x82
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0xa
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x2
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0xa
        }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x2
            bAlternateSetting = 0x0
            bNumEndpoints = 0x2
            bInterfaceClass = 0xa
            bInterfaceSubClass = 0x0
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x83
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0x1
        }
        Endpoint Descriptor
        {
            bLength = 0x7
            bDescriptorType = 0x5
            bEndpointAddress = 0x3
            bmAttributes = 0x2
            wMaxPacketSize = 0x40
            bInterval = 0x1
        }
            Unknown_Interface:0x24
            {
            05 24 00 10 01 
            }
            Unknown_Interface:0x24
            {
            05 24 01 03 01 
            }
            Unknown_Interface:0x24
            {
            04 24 02 07 
            }
            Unknown_Interface:0x24
            {
            05 24 06 00 01 
            }
            Unknown_Interface:0x24
            {
            06 24 07 04 48 03 
            }            

Actions #1

Updated by Rick V 7 months ago

  • Category set to driver - device drivers
Actions

Also available in: Atom PDF