Opened 37 hours ago

Last modified 35 hours ago

#19411 new enhancement

USB Audio "Generic Earpods" not working in Haiku.

Reported by: LSS37040 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Audio/USB Version: R1/beta5
Keywords: Cc:
Blocked By: #18320 Blocking:
Platform: All

Description

Originally posted this directly to #18320 as I think this is likely a duplicate for that, but I think I should better just create my own. I've moved the original post content here.

I have this USB audio device in the form of a USB to RCA adapter, and it doesn't work with Haiku. It does work correctly with other OSes on this system, however.

Before reporting this I've done a system update and it's currently hrev58622.

The only relevant information in the syslog is this line.

KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/audio/hmulti/usb_audio

Here's the listdev -v output of this device, as well as the hub/controller it's connected to. I'm currently connecting it to a native USB 2.0 (EHCI) port on the motherboard.

[Device /dev/bus/usb/1/0/4]
    Class .................. 0x00 (Defined at Interface level) ()
    Subclass ............... 0x00 (Defined at Interface level) ()
    Protocol ............... 0x00 (Defined at Interface level) ()
    Max Endpoint 0 Packet .. 64
    USB Version ............ 2.0
    Vendor ID .............. 0x0020
    Product ID ............. 0x0b21
    Product Version ........ 0x0100
    Manufacturer String .... "Generic"
    Product String ......... "EarPods"
    Serial Number .......... "20210726905926"
    [Configuration 0]
        Configuration String . ""
        [Interface 0]
            [Alternate 0 active]
                Class .............. 0x01 Audio ()
                Subclass ........... 0x01 Audio (Control Device)
                Protocol ........... 0x00 Audio (Control Device)
                Interface String ... ""
                [Descriptor 0]
                    Type .............. 0x24
                    Subtype ........... 0x01 (Header)
                    Audio codec version .. 1.0
                    Total Length ...... 85
                    Interfaces ........ 1, 2, 
                [Descriptor 1]
                    Length............. 12
                    Type .............. 0x24
                    Subtype ........... 0x02 (Input Terminal)
                    Terminal ID ....... 1
                    Terminal Type ..... 0x0101 (USB Streaming)
                    Associated Terminal 0
                    Nr Channels ....... 2
                    Channel Config .... 0x3
                       Front .......... Left Right 
                    Channel Names ..... 0
                    Terminal .......... 0
                [Descriptor 2]
                    Length............. 13
                    Type .............. 0x24
                    Subtype ........... 0x04 (Mixer Unit)
                    Unit ID ........... 6
                    Source IDs ........ 5, 5, 
                    Channels .......... 2
                    Channel Config .... 0x3
                       Front .......... Left Right 
                    Channel Names ..... 0
                    Bitmap Control .... 0x00 
                    Mixer ............. 0
                [Descriptor 3]
                    Length............. 10
                    Type .............. 0x24
                    Subtype ........... 0x06 (Feature Unit)
                    Unit ID ........... 2
                    Source ID ......... 0x01
                    Control Size ...... 1
                       Master Channel . Mute 
                       Channel 1 ...... Volume 
                       Channel 2 ...... Volume 
                [Descriptor 4]
                    Length............. 9
                    Type .............. 0x24
                    Subtype ........... 0x03 (Output Terminal)
                    Terminal ID ....... 3
                    Terminal Type ..... 0x0301 (Speaker)
                    Associated Terminal 0
                    Source ID ......... 0x02
                    Terminal .......... 0
                [Descriptor 5]
                    Length............. 12
                    Type .............. 0x24
                    Subtype ........... 0x02 (Input Terminal)
                    Terminal ID ....... 4
                    Terminal Type ..... 0x0201 (Microphone)
                    Associated Terminal 0
                    Nr Channels ....... 2
                    Channel Config .... 0x3
                       Front .......... Left Right 
                    Channel Names ..... 0
                    Terminal .......... 0
                [Descriptor 6]
                    Length............. 10
                    Type .............. 0x24
                    Subtype ........... 0x06 (Feature Unit)
                    Unit ID ........... 5
                    Source ID ......... 0x04
                    Control Size ...... 1
                       Master Channel . Mute Volume 
                [Descriptor 7]
                    Length............. 9
                    Type .............. 0x24
                    Subtype ........... 0x03 (Output Terminal)
                    Terminal ID ....... 6
                    Terminal Type ..... 0x0101 (USB Streaming)
                    Associated Terminal 0
                    Source ID ......... 0x05
                    Terminal .......... 0
        [Interface 1]
            [Alternate 0 active]
                Class .............. 0x01 Audio ()
                Subclass ........... 0x02 Audio (Streaming)
                Protocol ........... 0x00 Audio (Streaming)
                Interface String ... ""
            [Alternate 1]
                Class .............. 0x01 Audio ()
                Subclass ........... 0x02 Audio (Streaming)
                Protocol ........... 0x00 Audio (Streaming)
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 1x 384 bytes
                    Interval ......... 1
                    Type ............. Isochronous
                    Direction ........ Output
                [Descriptor 0]
                    Subtype ........... 1 (AS_GENERAL)
                    Terminal link ..... 1
                    Delay ............. 1
                    Format tag ........ 1
                [Descriptor 1]
                    Subtype ........... 2 (FORMAT_TYPE)
                    Format Type ....... 1 (FORMAT_TYPE_I)
                    Channels .......... 2
                    Subframe size ..... 2
                    Bit resolution .... 16
                    Sampling Freq ..... 48000, 
                [Descriptor 2]
                    Type .............. 0x25 (CS_ENDPOINT)
                    Subtype ........... 0x01 (EP_GENERAL)
                    Attributes ........ 0x01 Sampling Frequency 
                    Lock Delay Units .. 1 (Milliseconds)
                    Lock Delay ........ 1
        [Interface 2]
            [Alternate 0 active]
                Class .............. 0x01 Audio ()
                Subclass ........... 0x02 Audio (Streaming)
                Protocol ........... 0x00 Audio (Streaming)
                Interface String ... ""
            [Alternate 1]
                Class .............. 0x01 Audio ()
                Subclass ........... 0x02 Audio (Streaming)
                Protocol ........... 0x00 Audio (Streaming)
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 1x 208 bytes
                    Interval ......... 1
                    Type ............. Isochronous
                    Direction ........ Input
                [Descriptor 0]
                    Subtype ........... 1 (AS_GENERAL)
                    Terminal link ..... 6
                    Delay ............. 1
                    Format tag ........ 1
                [Descriptor 1]
                    Subtype ........... 2 (FORMAT_TYPE)
                    Format Type ....... 1 (FORMAT_TYPE_I)
                    Channels .......... 2
                    Subframe size ..... 2
                    Bit resolution .... 16
                    Sampling Freq ..... 48000, 
                [Descriptor 2]
                    Type .............. 0x25 (CS_ENDPOINT)
                    Subtype ........... 0x01 (EP_GENERAL)
                    Attributes ........ 0x01 Sampling Frequency 
                    Lock Delay Units .. 0 (Undefined)
                    Lock Delay ........ 0
        [Interface 3]
            [Alternate 0 active]
                Class .............. 0x03 Human Interface Device (No Subclass, None)
                Subclass ........... 0x00 Human Interface Device (No Subclass, None)
                Protocol ........... 0x00 Human Interface Device (No Subclass, None)
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 1x 16 bytes
                    Interval ......... 1
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Length............ 0x09
                    Type ............. 0x21
                    Data ............. 01 02 00 01 22 36 00 
[Device /dev/bus/usb/1/0/hub]
    Class .................. 0x09 Hub (Unused, Full speed (or root) hub)
    Subclass ............... 0x00 Hub (Unused, Full speed (or root) hub)
    Protocol ............... 0x01 Hub (Unused, Single TT)
    Max Endpoint 0 Packet .. 64
    USB Version ............ 2.0
    Vendor ID .............. 0x8087 (Intel Corp.)
    Product ID ............. 0x800a (Hub)
    Product Version ........ 0x0005
    Manufacturer String .... ""
    Product String ......... ""
    Serial Number .......... ""
    [Configuration 0]
        Configuration String . ""
        [Interface 0]
            [Alternate 0 active]
                Class .............. 0x09 Hub (Unused, Full speed (or root) hub)
                Subclass ........... 0x00 Hub (Unused, Full speed (or root) hub)
                Protocol ........... 0x00 Hub (Unused, Full speed (or root) hub)
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 1x 1 bytes
                    Interval ......... 12
                    Type ............. Interrupt
                    Direction ........ Input
    Hub ports count......... 6
    Hub Controller Current.. 0mA
      Port 1 status....... 0503.0000 Connect Enable Power
      Port 2 status....... 0100.0000 Power
      Port 3 status....... 0100.0000 Power
      Port 4 status....... 0100.0000 Power
      Port 5 status....... 0103.0000 Connect Enable Power
      Port 6 status....... 0100.0000 Power
[Device /dev/bus/usb/1/hub]
    Class .................. 0x09 Hub (Unused, Full speed (or root) hub)
    Subclass ............... 0x00 Hub (Unused, Full speed (or root) hub)
    Protocol ............... 0x00 Hub (Unused, Full speed (or root) hub)
    Max Endpoint 0 Packet .. 64
    USB Version ............ 2.0
    Vendor ID .............. 0x0000
    Product ID ............. 0x0000
    Product Version ........ 0x0200
    Manufacturer String .... "HAIKU Inc."
    Product String ......... "EHCI RootHub"
    Serial Number .......... ""
    [Configuration 0]
        Configuration String . ""
        [Interface 0]
            [Alternate 0 active]
                Class .............. 0x09 Hub (Unused, Full speed (or root) hub)
                Subclass ........... 0x00 Hub (Unused, Full speed (or root) hub)
                Protocol ........... 0x00 Hub (Unused, Full speed (or root) hub)
                Interface String ... ""
                [Endpoint 0]
                    MaxPacketSize .... 1x 8 bytes
                    Interval ......... 255
                    Type ............. Interrupt
                    Direction ........ Input
                [Descriptor 0]
                    Length............ 0x09
                    Type ............. 0x29
                    Data ............. 02 00 00 00 00 00 ff 
    Hub ports count......... 2
    Hub Controller Current.. 0mA
      Port 1 status....... 0503.0000 Connect Enable Power
      Port 2 status....... 0100.0000 Power

The device reports USB 2.0 but it's actually an ADC 1.0 device (Audio codec version .. 1.0), similar to what has been discussed here: https://discuss.haiku-os.org/t/haiku-cannot-find-any-audio-device/16286/11

Considering there's only a single line relevant to usb_audio I suspect the driver has not picked up this device because of its reporting itself as USB 2.0.

Change History (2)

comment:1 by waddlesplash, 35 hours ago

Component: Audio & VideoDrivers/Audio/USB
Keywords: usb_audio removed

comment:2 by waddlesplash, 35 hours ago

Type: bugenhancement
Note: See TracTickets for help on using tickets.