• wangdicheng's avatar
    ALSA: usb-audio: Fix microphone sound on HD webcam. · 74dba240
    wangdicheng authored
    I own an external usb Webcam, HD webcam, which had low mic volume and
    inconsistent sound quality. Video works as expected.
    
    (snip)
    [   95.473820][ 1] [   T73] usb 5-2.2: new high-speed USB device number 7 using xhci_hcd
    [   95.773974][ 1] [   T73] usb 5-2.2: New USB device found, idVendor=1bcf, idProduct=2281, bcdDevice= 0.05
    [   95.783445][ 1] [   T73] usb 5-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [   95.791872][ 1] [   T73] usb 5-2.2: Product: HD webcam
    [   95.797001][ 1] [   T73] usb 5-2.2: Manufacturer: Sunplus IT Co
    [   95.802996][ 1] [   T73] usb 5-2.2: SerialNumber: 20200513
    [   96.092610][ 2] [ T3680] usb 5-2.2: Warning! Unlikely big volume range (=4096), cval->res is probably wrong.
    [   96.102436][ 2] [ T3680] usb 5-2.2: [5] FU [Mic Capture Volume] ch = 1, val = 0/4096/1
    
    Set up quirk cval->res to 16 for 256 levels,
    Set GET_SAMPLE_RATE quirk flag to stop trying to get the sample rate.
    Confirmed that happened anyway later due to the backoff mechanism,
    After 3 failures.
    
    All audio stream on device interfaces share the same values,
    apart from wMaxPacketSize and tSamFreq :
    
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        3
          bAlternateSetting       4
          bNumEndpoints           1
          bInterfaceClass         1 Audio
    
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           3
        bDelay                  1 frames
        wFormatTag         0x0001 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             1
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0064  1x 100 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
        AudioStreaming Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    (snip)
    
    Testing patch provides consistent good sound recording quality and volume range.
    
    (snip)
    [   95.473820][ 1] [   T73] usb 5-2.2: new high-speed USB device number 7 using xhci_hcd
    [   95.773974][ 1] [   T73] usb 5-2.2: New USB device found, idVendor=1bcf, idProduct=2281, bcdDevice= 0.05
    [   95.783445][ 1] [   T73] usb 5-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [   95.791872][ 1] [   T73] usb 5-2.2: Product: HD webcam
    [   95.797001][ 1] [   T73] usb 5-2.2: Manufacturer: Sunplus IT Co
    [   95.802996][ 1] [   T73] usb 5-2.2: SerialNumber: 20200513
    [   96.110630][ 3] [ T3680] usbcore: registered new interface driver snd-usb-audio
    [   96.114329][ 7] [ T3677] usb 5-2.2: Found UVC 1.00 device HD webcam (1bcf:2281)
    [   96.167555][ 7] [ T3677] usbcore: registered new interface driver uvcvideo
    Signed-off-by: default avatarwangdicheng <wangdicheng@kylinos.cn>
    Cc: <stable@vger.kernel.org>
    Link: https://patch.msgid.link/20240719020906.8078-1-wangdich9700@163.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    74dba240
quirks.c 72.2 KB