[pulseaudio-tickets] [Bug 99607] New: Lack of hardware volume no longer supported with HifimeDIY Tiny

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 30 22:12:57 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=99607

            Bug ID: 99607
           Summary: Lack of hardware volume no longer supported with
                    HifimeDIY Tiny
           Product: PulseAudio
           Version: unspecified
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: alsa
          Assignee: pulseaudio-bugs at lists.freedesktop.org
          Reporter: an.inbox at free.fr
        QA Contact: pulseaudio-bugs at lists.freedesktop.org
                CC: lennart at poettering.net

Hi,

I'm using a HifimeDIY Tiny USB DAC
(http://hifimediy.com/DACs/ready-made-dacs/tiny-dac), which doesn't support
hardware volume (fixed analog gain). This used to work on Debian Jessie, but no
longer with Stretch.

This USB DAC is peculiar: it has a first DAC, the TI Burr-Brown, which is only
used for its USB interface. Its analog interface is not connected nor used, but
the Burr-Brown SPDIF output is connected to the input of a Sabre DAC. It's the
Sabre that is actually used to generate the analog output. And the set-up has a
fixed analog gain, so the volume control must be done in software.

In Debian Jessie, I could see the two outputs of the Burr-Brown under
pulseaudio, analog and SPDIF  (IEC958). Analog was the default and of course
gave no output, but I just had to select the IEC958 output to get a working
system, with proper volume control.

Now on Stretch I don't see the IEC958 output at all. The output is configured
as analog stereo by default, and I do have audio output! So the SPDIF output of
the burr-Brown must be used then? However pulseaudio/alsa believe there is
hardware volume control, which is not the case: if the volume is at any value
but zero, then the output level is full blast. It's really a step function:
mute or max output.

I guess this could be solved in one of two ways?:
 1) show back the IEC958 option
 2) disable hardware volume control for this card
I've tried to look for ways to do this without success, but then Linux sound
support is new to me so I may have missed something. Thanks for any
help/pointer.

I add some info on the dongle as seen by the system:

== pacmd list-cards (just the dongle) ===========================

    index: 2
        name: <alsa_card.usb-Burr-Brown_from_TI_USB_Audio_DAC-00>
        driver: <module-alsa-card.c>
        owner module: 29
        properties:
                alsa.card = "2"
                alsa.card_name = "USB Audio DAC"
                alsa.long_card_name = "Burr-Brown from TI USB Audio DAC at
usb-0000:00:14.0-1, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:1:1.0"
                sysfs.path =
"/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/sound/card2"
                udev.id = "usb-Burr-Brown_from_TI_USB_Audio_DAC-00"
                device.bus = "usb"
                device.vendor.id = "08bb"
                device.vendor.name = "Texas Instruments"
                device.product.id = "2706"
                device.product.name = "PCM2706 Audio Codec"
                device.serial = "Burr-Brown_from_TI_USB_Audio_DAC"
                device.string = "2"
                device.description = "PCM2706 Audio Codec"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        profiles:
                output:analog-mono: Analog Mono Output (priority 200,
available: unknown)
                output:analog-stereo: Analog Stereo Output (priority 6000,
available: unknown)
                off: Off (priority 0, available: unknown)
        active profile: <output:analog-stereo>
        sinks:
               
alsa_output.usb-Burr-Brown_from_TI_USB_Audio_DAC-00.analog-stereo/#2: PCM2706
Audio Codec Analog Stereo
        sources:
               
alsa_output.usb-Burr-Brown_from_TI_USB_Audio_DAC-00.analog-stereo.monitor/#3:
Monitor of PCM2706 Audio Codec Analog Stereo
        ports:
                analog-output: Analog Output (priority 9900, latency offset 0
usec, available: unknown)
                        properties:

== pacmd list-sources (only USB DAC) =====================

    index: 3
        name:
<alsa_output.usb-Burr-Brown_from_TI_USB_Audio_DAC-00.analog-stereo.monitor>
        driver: <module-alsa-card.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: SUSPENDED
        suspend cause: IDLE 
        priority: 1040
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100%
/ 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max rewind: 0 KiB
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 0
        configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
        monitor_of: 2
        card: 2 <alsa_card.usb-Burr-Brown_from_TI_USB_Audio_DAC-00>
        module: 29
        properties:
                device.description = "Monitor of PCM2706 Audio Codec Analog
Stereo"
                device.class = "monitor"
                alsa.card = "2"
                alsa.card_name = "USB Audio DAC"
                alsa.long_card_name = "Burr-Brown from TI USB Audio DAC at
usb-0000:00:14.0-1, full speed"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:00:14.0-usb-0:1:1.0"
                sysfs.path =
"/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/sound/card2"
                udev.id = "usb-Burr-Brown_from_TI_USB_Audio_DAC-00"
                device.bus = "usb"
                device.vendor.id = "08bb"
                device.vendor.name = "Texas Instruments"
                device.product.id = "2706"
                device.product.name = "PCM2706 Audio Codec"
                device.serial = "Burr-Brown_from_TI_USB_Audio_DAC"
                device.string = "2"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"

== lsusb -d 08bb:2706 -v ==========================

Bus 001 Device 005: ID 08bb:2706 Texas Instruments PCM2706 Audio Codec
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x08bb Texas Instruments
  idProduct          0x2706 PCM2706 Audio Codec
  bcdDevice            1.00
  iManufacturer           1 Burr-Brown from TI              
  iProduct                2 USB Audio DAC   
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          190
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           40
        bInCollection           1
        baInterfaceNr( 0)       1
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               3
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 3
        bSourceID               1
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bDelay                  0 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            3 Discrete
        tSamFreq[ 0]        32000
        tSamFreq[ 1]        44100
        tSamFreq[ 2]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x00c0  1x 192 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay            512 Decoded PCM samples
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bDelay                  0 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             1
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            3 Discrete
        tSamFreq[ 0]        32000
        tSamFreq[ 1]        44100
        tSamFreq[ 2]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0060  1x 96 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay            512 Decoded PCM samples
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      36
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-bugs/attachments/20170130/0ae2b892/attachment-0001.html>


More information about the pulseaudio-bugs mailing list