1. 10 Oct, 2023 4 commits
  2. 09 Oct, 2023 1 commit
    • Christos Skevis's avatar
      ALSA: usb-audio: Fix microphone sound on Nexigo webcam. · 4a63e68a
      Christos Skevis authored
      I own an external usb Webcam, model NexiGo N930AF, which had low mic volume and
      inconsistent sound quality. Video works as expected.
      
      (snip)
      [  +0.047857] usb 5-1: new high-speed USB device number 2 using xhci_hcd
      [  +0.003406] usb 5-1: New USB device found, idVendor=1bcf, idProduct=2283, bcdDevice=12.17
      [  +0.000007] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      [  +0.000004] usb 5-1: Product: NexiGo N930AF FHD Webcam
      [  +0.000003] usb 5-1: Manufacturer: SHENZHEN AONI ELECTRONIC CO., LTD
      [  +0.000004] usb 5-1: SerialNumber: 20201217011
      [  +0.003900] usb 5-1: Found UVC 1.00 device NexiGo N930AF FHD Webcam (1bcf:2283)
      [  +0.025726] usb 5-1: 3:1: cannot get usb sound sample rate freq at ep 0x86
      [  +0.071482] usb 5-1: 3:2: cannot get usb sound sample rate freq at ep 0x86
      [  +0.004679] usb 5-1: 3:3: cannot get usb sound sample rate freq at ep 0x86
      [  +0.051607] usb 5-1: Warning! Unlikely big volume range (=4096), cval->res is probably wrong.
      [  +0.000005] usb 5-1: [7] 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 :
      
      (snip)
      Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       3
            bNumEndpoints           1
            bInterfaceClass         1 Audio
            bInterfaceSubClass      2 Streaming
            bInterfaceProtocol      0
            iInterface              0
            AudioStreaming Interface Descriptor:
              bLength                 7
              bDescriptorType        36
              bDescriptorSubtype      1 (AS_GENERAL)
              bTerminalLink           8
              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]        44100
            Endpoint Descriptor:
              bLength                 9
              bDescriptorType         5
              bEndpointAddress     0x86  EP 6 IN
              bmAttributes            5
                Transfer Type            Isochronous
                Synch Type               Asynchronous
                Usage Type               Data
              wMaxPacketSize     0x005c  1x 92 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)
      
      Based on the usb data about manufacturer, SPCA2281B3 is the most likely controller IC
      Manufacturer does not provide link for datasheet nor detailed specs.
      No way to confirm if the firmware supports any other way of getting the sample rate.
      
      Testing patch provides consistent good sound recording quality and volume range.
      
      (snip)
      [  +0.045764] usb 5-1: new high-speed USB device number 2 using xhci_hcd
      [  +0.106290] usb 5-1: New USB device found, idVendor=1bcf, idProduct=2283, bcdDevice=12.17
      [  +0.000006] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
      [  +0.000004] usb 5-1: Product: NexiGo N930AF FHD Webcam
      [  +0.000003] usb 5-1: Manufacturer: SHENZHEN AONI ELECTRONIC CO., LTD
      [  +0.000004] usb 5-1: SerialNumber: 20201217011
      [  +0.043700] usb 5-1: set resolution quirk: cval->res = 16
      [  +0.002585] usb 5-1: Found UVC 1.00 device NexiGo N930AF FHD Webcam (1bcf:2283)
      Signed-off-by: default avatarChristos Skevis <xristos.thes@gmail.com>
      Link: https://lore.kernel.org/r/20231006155330.399393-1-xristos.thes@gmail.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4a63e68a
  3. 08 Oct, 2023 4 commits
  4. 07 Oct, 2023 10 commits
  5. 06 Oct, 2023 21 commits