[PATCH] wm8962: add a simple DMIC enable control

Martin Kepplinger martin.kepplinger at puri.sm
Thu Feb 3 10:57:44 CET 2022


Am Mittwoch, dem 02.02.2022 um 13:35 +0000 schrieb Charles Keepax:
> On Wed, Feb 02, 2022 at 12:55:04PM +0100, Martin Kepplinger wrote:
> > Am Mittwoch, dem 02.02.2022 um 10:46 +0000 schrieb Charles Keepax:
> > > On Wed, Feb 02, 2022 at 11:17:34AM +0100, Martin Kepplinger
> > > wrote:
> > > > Am Mittwoch, dem 02.02.2022 um 09:53 +0000 schrieb Charles
> > > > Keepax:
> > > > > On Tue, Feb 01, 2022 at 04:01:13PM +0100, Martin Kepplinger
> > > > > wrote:
> > > > Do you have a code example from a different codec that has
> > > > roughly
> > > > what
> > > > is missing here? (the sound subsystem is new to me)
> > > 
> > > Full disclosure this is complete untested, but it should be
> > > pretty close. Let me know if it does the trick and I will send a
> > > proper patch to the list. I do have a Librem 5 in a draw
> > > somewhere so can pull that out if we get really stuck, but that
> > > might have to wait until the weekend :-).
> > > 
> > > I don't know if you guys are using the analogue bypass paths
> > > around the digital core on the chip. I think those will still
> > > work with the mics set to digital, so I have left the routes as
> > > is, but that might require some checking at some point.
> > 
> > ok that's great and seems to work! that's luxury.
> > 
> 
> Excellent glad that is working for you, I will prep up a proper
> patch and send it to the list. Should get that done tomorrow
> morning, if I don't manage it this afternoon.
> 
> > Volume / sensitivity of Analog input is too low, I saw that before.
> > What would you try to change that?
> > 
> 
> Hmm... you say you saw this before? I assume the input volume
> is always low, not just low sometimes? I would probably start by
> checking the voltage you have on the micbias, make sure that is
> as expected. Does the signal coming into the IN3R pin look low on
> a scope or is it just the level after it has been through the ADC
> on the chip that seems low?

Literally *no* effort went into this yet :) All I see is when I set the
"headset mic" volume to max in gnome settings, the recorded volume is
something like "almost usable", so that's off a bit.

I can't easily measure, but different headset mics produce similar
volume.

> 
> The input routing on this chip is pretty byzantine, the output of
> just "amixer" showing all the controls in the relevant use-case
> would probably be helpful to look over. I suspect there is a
> reasonable chance something around the input PGA is not
> configured to match the hardware, although I am not the most
> familiar with this part so hard to guess at exactly what off the
> top of my head.
> 

I append the output of `amixer contents` below.

> Finally, do you know how much the amplitude is off by?

no

> 
> > you can do all of our tasks if you want to :)
> > 
> 
> Ha! Not sure about that, but happy to help out where I can.
> 
> Thanks,
> Charles

:) thank you very much so far. You already really helped. We can even
make the mic available now (to enable manually by the user) while we
look into the volume and detection.

so long, all the best,

                                martin

-------------- next part --------------
numid=1,iface=CARD,name='Headphones Jack'
  ; type=BOOLEAN,access=r-------,values=1
  : values=off
numid=30,iface=MIXER,name='Headphone Aux Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=7,step=0
  : values=0,0
  | dBscale-min=-7.00dB,step=1.00dB,mute=0
numid=31,iface=MIXER,name='Headphone Mixer Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=29,iface=MIXER,name='Headphone ZC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=28,iface=MIXER,name='Headphone Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=27,iface=MIXER,name='Headphone Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=121,121
  | dBscale-min=-121.00dB,step=1.00dB,mute=1
numid=25,iface=MIXER,name='ADC High Performance Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=22,iface=MIXER,name='ADC L/R Swap Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=24,iface=MIXER,name='ADC Monomix Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=15,iface=MIXER,name='Capture HPF Cutoff'
  ; type=INTEGER,access=rw------,values=1,min=0,max=7,step=0
  : values=0
numid=14,iface=MIXER,name='Capture HPF Mode'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Hi-fi'
  ; Item #1 'Application'
  : values=0
numid=13,iface=MIXER,name='Capture HPF Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=17,iface=MIXER,name='Capture LHPF Mode'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'LPF'
  ; Item #1 'HPF'
  : values=0
numid=16,iface=MIXER,name='Capture LHPF Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=12,iface=MIXER,name='Capture ZC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
numid=11,iface=MIXER,name='Capture Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=10,iface=MIXER,name='Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0
  : values=29,29
  | dBscale-min=-23.25dB,step=0.75dB,mute=0
numid=50,iface=MIXER,name='3D Coefficients'
  ; type=BYTES,access=rw------,values=8
  : values=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
numid=49,iface=MIXER,name='3D Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=63,iface=MIXER,name='ALC Coefficients'
  ; type=BYTES,access=rw------,values=8
  : values=0x00,0x7b,0x00,0x00,0x1c,0x32,0x32,0x00
numid=62,iface=MIXER,name='ALC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=26,iface=MIXER,name='Beep Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=15,step=0
  : values=0
  | dBscale-min=-96.00dB,step=6.00dB,mute=1
numid=20,iface=MIXER,name='DAC High Performance Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=21,iface=MIXER,name='DAC L/R Swap Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=23,iface=MIXER,name='DAC Monomix Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=52,iface=MIXER,name='DF1 Coefficients'
  ; type=BYTES,access=rw------,values=14
  : values=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
numid=51,iface=MIXER,name='DF1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=54,iface=MIXER,name='DRC Coefficients'
  ; type=BYTES,access=rw------,values=10
  : values=0x00,0x0c,0x09,0x25,0x00,0x00,0x00,0x00,0x00,0x00
numid=53,iface=MIXER,name='DRC Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=9,iface=MIXER,name='Digital Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=116,116
  | dBscale-min=-72.00dB,step=0.75dB,mute=1
numid=19,iface=MIXER,name='Digital Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=100,100
  | dBscale-min=-72.00dB,step=0.75dB,mute=1
numid=41,iface=MIXER,name='EQ Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=42,iface=MIXER,name='EQ1 Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
  : values=12,12
  | dBscale-min=-12.00dB,step=1.00dB,mute=0
numid=43,iface=MIXER,name='EQ2 Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
  : values=12,12
  | dBscale-min=-12.00dB,step=1.00dB,mute=0
numid=44,iface=MIXER,name='EQ3 Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
  : values=12,12
  | dBscale-min=-12.00dB,step=1.00dB,mute=0
numid=45,iface=MIXER,name='EQ4 Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
  : values=12,12
  | dBscale-min=-12.00dB,step=1.00dB,mute=0
numid=46,iface=MIXER,name='EQ5 Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0
  : values=13,13
  | dBscale-min=-12.00dB,step=1.00dB,mute=0
numid=47,iface=MIXER,name='EQL Coefficients'
  ; type=BYTES,access=rw------,values=36
  : values=0x0f,0xca,0x04,0x00,0x00,0xd8,0x1e,0xb5,0xf1,0x45,0x0b,0x75,0x01,0xc5,0x1c,0x58,0xf3,0x73,0x0a,0x54,0x05,0x58,0x16,0x8e,0xf8,0x29,0x07,0xad,0x11,0x03,0x05,0x64,0x05,0x59,0x40,0x00
numid=48,iface=MIXER,name='EQR Coefficients'
  ; type=BYTES,access=rw------,values=36
  : values=0x0f,0xca,0x04,0x00,0x00,0xd8,0x1e,0xb5,0xf1,0x45,0x0b,0x75,0x01,0xc5,0x1c,0x58,0xf3,0x73,0x0a,0x54,0x05,0x58,0x16,0x8e,0xf8,0x29,0x07,0xad,0x11,0x03,0x05,0x64,0x05,0x59,0x40,0x00
numid=61,iface=MIXER,name='HD Bass Coefficients'
  ; type=BYTES,access=rw------,values=60
  : values=0x00,0x02,0xbd,0x12,0x00,0x7c,0x58,0x6c,0x00,0x53,0x81,0x21,0x00,0x3f,0x8b,0xd8,0x00,0x32,0xf5,0x2d,0x00,0x65,0xac,0x8c,0x00,0x6b,0xe0,0x87,0x00,0x72,0x14,0x83,0x00,0x72,0x14,0x83,0x00,0x43,0x35,0x25,0x00,0x06,0x6a,0x4a,0x00,0x43,0x60,0x79,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x59,0x99,0x9a
numid=60,iface=MIXER,name='HD Bass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=59,iface=MIXER,name='HPF Coefficients'
  ; type=BYTES,access=rw------,values=2
  : values=0x00,0x00
numid=57,iface=MIXER,name='HPF1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=58,iface=MIXER,name='HPF2 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=97,iface=MIXER,name='HPMIXL DACL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=98,iface=MIXER,name='HPMIXL DACR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=101,iface=MIXER,name='HPMIXL IN4L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=32,iface=MIXER,name='HPMIXL IN4L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=102,iface=MIXER,name='HPMIXL IN4R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=33,iface=MIXER,name='HPMIXL IN4R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=99,iface=MIXER,name='HPMIXL MIXINL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=34,iface=MIXER,name='HPMIXL MIXINL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=100,iface=MIXER,name='HPMIXL MIXINR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=35,iface=MIXER,name='HPMIXL MIXINR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=103,iface=MIXER,name='HPMIXR DACL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=104,iface=MIXER,name='HPMIXR DACR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=107,iface=MIXER,name='HPMIXR IN4L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=36,iface=MIXER,name='HPMIXR IN4L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=108,iface=MIXER,name='HPMIXR IN4R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=37,iface=MIXER,name='HPMIXR IN4R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=105,iface=MIXER,name='HPMIXR MIXINL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=38,iface=MIXER,name='HPMIXR MIXINL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=106,iface=MIXER,name='HPMIXR MIXINR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=39,iface=MIXER,name='HPMIXR MIXINR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=109,iface=MIXER,name='HPOUTL PGA'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'DAC'
  ; Item #1 'Mixer'
  : values=0
numid=110,iface=MIXER,name='HPOUTR PGA'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'DAC'
  ; Item #1 'Mixer'
  : values=0
numid=80,iface=MIXER,name='INPGAL IN1L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=81,iface=MIXER,name='INPGAL IN2L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=82,iface=MIXER,name='INPGAL IN3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=83,iface=MIXER,name='INPGAL IN4L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=84,iface=MIXER,name='INPGAR IN1R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=85,iface=MIXER,name='INPGAR IN2R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=86,iface=MIXER,name='INPGAR IN3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=87,iface=MIXER,name='INPGAR IN4R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=2,iface=MIXER,name='Input Mixer Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,on
numid=94,iface=MIXER,name='Input Mode'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Analog'
  ; Item #1 'Digital'
  : values=1
numid=88,iface=MIXER,name='MIXINL IN2L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=3,iface=MIXER,name='MIXINL IN2L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=89,iface=MIXER,name='MIXINL IN3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=5,iface=MIXER,name='MIXINL IN3L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=90,iface=MIXER,name='MIXINL PGA Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=4,iface=MIXER,name='MIXINL PGA Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBrange-
    rangemin=0,,rangemax=1
      | dBscale-min=0.00dB,step=6.00dB,mute=0
    rangemin=2,,rangemax=2
      | dBscale-min=13.00dB,step=13.00dB,mute=0
    rangemin=3,,rangemax=4
      | dBscale-min=18.00dB,step=2.00dB,mute=0
    rangemin=5,,rangemax=5
      | dBscale-min=24.00dB,step=0.00dB,mute=0
    rangemin=6,,rangemax=7
      | dBscale-min=27.00dB,step=3.00dB,mute=0

numid=91,iface=MIXER,name='MIXINR IN2R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=6,iface=MIXER,name='MIXINR IN2R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=92,iface=MIXER,name='MIXINR IN3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=8,iface=MIXER,name='MIXINR IN3R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=0
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=93,iface=MIXER,name='MIXINR PGA Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=7,iface=MIXER,name='MIXINR PGA Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBrange-
    rangemin=0,,rangemax=1
      | dBscale-min=0.00dB,step=6.00dB,mute=0
    rangemin=2,,rangemax=2
      | dBscale-min=13.00dB,step=13.00dB,mute=0
    rangemin=3,,rangemax=4
      | dBscale-min=18.00dB,step=2.00dB,mute=0
    rangemin=5,,rangemax=5
      | dBscale-min=24.00dB,step=0.00dB,mute=0
    rangemin=6,,rangemax=7
      | dBscale-min=27.00dB,step=3.00dB,mute=0

numid=111,iface=MIXER,name='SPKOUTL Mixer DACL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=72,iface=MIXER,name='SPKOUTL Mixer DACL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=0
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=112,iface=MIXER,name='SPKOUTL Mixer DACR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=73,iface=MIXER,name='SPKOUTL Mixer DACR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=0
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=115,iface=MIXER,name='SPKOUTL Mixer IN4L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=68,iface=MIXER,name='SPKOUTL Mixer IN4L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=116,iface=MIXER,name='SPKOUTL Mixer IN4R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=69,iface=MIXER,name='SPKOUTL Mixer IN4R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=113,iface=MIXER,name='SPKOUTL Mixer MIXINL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=70,iface=MIXER,name='SPKOUTL Mixer MIXINL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=114,iface=MIXER,name='SPKOUTL Mixer MIXINR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=71,iface=MIXER,name='SPKOUTL Mixer MIXINR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=123,iface=MIXER,name='SPKOUTL PGA'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'DAC'
  ; Item #1 'Mixer'
  : values=0
numid=117,iface=MIXER,name='SPKOUTR Mixer DACL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=78,iface=MIXER,name='SPKOUTR Mixer DACL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=0
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=118,iface=MIXER,name='SPKOUTR Mixer DACR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=79,iface=MIXER,name='SPKOUTR Mixer DACR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=0
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=121,iface=MIXER,name='SPKOUTR Mixer IN4L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=74,iface=MIXER,name='SPKOUTR Mixer IN4L Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=122,iface=MIXER,name='SPKOUTR Mixer IN4R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=75,iface=MIXER,name='SPKOUTR Mixer IN4R Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=7
  | dBscale-min=-15.00dB,step=3.00dB,mute=0
numid=119,iface=MIXER,name='SPKOUTR Mixer MIXINL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=76,iface=MIXER,name='SPKOUTR Mixer MIXINL Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=120,iface=MIXER,name='SPKOUTR Mixer MIXINR Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=77,iface=MIXER,name='SPKOUTR Mixer MIXINR Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=1,step=0
  : values=1
  | dBscale-min=-6.00dB,step=6.00dB,mute=0
numid=124,iface=MIXER,name='SPKOUTR PGA'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'DAC'
  ; Item #1 'Mixer'
  : values=1
numid=95,iface=MIXER,name='STL'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'None'
  ; Item #1 'Left'
  ; Item #2 'Right'
  : values=0
numid=96,iface=MIXER,name='STR'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'None'
  ; Item #1 'Left'
  ; Item #2 'Right'
  : values=0
numid=18,iface=MIXER,name='Sidetone Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=12,step=0
  : values=0,0
  | dBscale-min=-36.00dB,step=3.00dB,mute=0
numid=40,iface=MIXER,name='Speaker Boost Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=7,step=0
  : values=6
  | dBrange-
    rangemin=0,,rangemax=6
      | dBscale-min=0.00dB,step=1.50dB,mute=0
    rangemin=7,,rangemax=7
      | dBscale-min=12.00dB,step=0.00dB,mute=0

numid=67,iface=MIXER,name='Speaker Mixer Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=65,iface=MIXER,name='Speaker Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,off
numid=64,iface=MIXER,name='Speaker Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=121,121
  | dBscale-min=-121.00dB,step=1.00dB,mute=1
numid=66,iface=MIXER,name='Speaker ZC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=56,iface=MIXER,name='VSS Coefficients'
  ; type=BYTES,access=rw------,values=296
  : values=0x00,0x8c,0x02,0x00,0x00,0x35,0x07,0x00,0x00,0x3a,0x41,0x00,0x00,0x8b,0x7d,0x00,0x00,0x3a,0x41,0x00,0x00,0x8c,0xfe,0xe8,0x00,0x78,0x00,0x00,0x00,0x3f,0xb2,0x60,0x00,0x2d,0x18,0x18,0x00,0x20,0x00,0x00,0x00,0xf1,0x83,0x40,0x00,0xfb,0x83,0x00,0x00,0xee,0xae,0xc0,0x00,0xfb,0xac,0x40,0x00,0xf1,0x7f,0x80,0x00,0xf4,0x3b,0x40,0x00,0xf5,0xfb,0x00,0x00,0xea,0x10,0xc0,0x00,0xfc,0xc5,0x80,0x00,0xe2,0x75,0xc0,0x00,0x04,0xb4,0x80,0x00,0xd4,0xf9,0x80,0x00,0x04,0x91,0x40,0x00,0xd8,0xa4,0x80,0x00,0x02,0x3d,0xc0,0x00,0xcf,0x7a,0x80,0x00,0xdc,0x06,0x00,0x00,0xf2,0xda,0xc0,0x00,0xba,0xf3,0x40,0x00,0x0a,0x79,0x40,0x00,0x1c,0x06,0x80,0x00,0xfd,0x2d,0x00,0x00,0x1c,0xe8,0x40,0x00,0x0d,0xdc,0x40,0x00,0xfc,0x9d,0x00,0x00,0x09,0x55,0x80,0x00,0xfe,0x7e,0x80,0x00,0x0e,0xab,0x40,0x00,0xf9,0x98,0x80,0x00,0x09,0x87,0xc0,0x00,0xfd,0x2c,0x40,0x00,0x09,0x48,0x00,0x00,0x03,0x5f,0x40,0x00,0x00,0x87,0x00,0x00,0xfa,0xe4,0xc0,0x00,0x00,0x0b,0x40,0x00,0x04,0xe1,0x80,0x00,0x01,0x1f,0x40,0x00,0xf8,0xb0,0x00,0x00,0xfb,0xcb,0xc0,0x00,0x04,0xf3,0x80,0x00,0x07,0xdf,0x40,0x00,0xff,0x07,0x00,0x00,0xef,0xd7,0x00,0x00,0xfb,0xaf,0x40,0x00,0x10,0x8a,0x80,0x00,0x11,0x07,0xc0,0x00,0xe0,0x08,0x00,0x00,0xd2,0x76,0x00,0x00,0x20,0xcf,0x40,0x00,0x30,0x23,0x40,0x00,0xfd,0x69,0xc0,0x00,0x28,0x35,0x00,0x00,0x06,0x33,0x00,0x00,0xd9,0xf6,0xc0,0x00,0xf3,0x33,0x40,0x00,0x0f,0x42,0x00,0x00,0x04,0x0c,0x80,0x00,0xfb,0x3f,0x80,0x00,0xf7,0x57,0xc0,0x00,0x03,0x54,0x00,0x00,0x00,0xc6,0xc0,0x00,0x03,0x12,0xc0,0x00,0xfd,0x85,0x80
numid=55,iface=MIXER,name='VSS Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off


More information about the Alsa-devel mailing list