Re: [PATCH v3] ALSA: usb-audio: Fix microphone sound on HD webcam.

From: Takashi Iwai
Date: Fri Jul 19 2024 - 12:06:49 EST


On Fri, 19 Jul 2024 04:09:06 +0200,
wangdicheng wrote:
>
> From: wangdicheng <wangdicheng@xxxxxxxxxx>
>
> 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: wangdicheng <wangdicheng@xxxxxxxxxx>
> ---
> v2 -> v3: make the mail address of Signed-off-by consistent with the From address
> V1 -> V2: align the space,Update code to v6.8-rc3,and make modifications based on it

Thanks, applied now.


Takashi