[alsa-devel] maestro3 & es1988: mic range too low

ikke ikke at iki.fi
Mon Aug 18 14:30:15 CEST 2008


On Mon, Aug 18, 2008 at 1:20 PM, Takashi Iwai <tiwai at suse.de> wrote:
> At Sun, 17 Aug 2008 22:07:19 +0300,
>
> Note that "Mic Playback Volume" controls only the volume of analog
> playback.  It doesn't change the recording level at all.

thanks for reminding, sure.

>> the reasoning for the original patch sounds reasonable. The
>> mic volume is tunable, only at the very low range. I recall the laptop
>> came with Win98, and there was no problem then with the sound -> not a
>> HW problem. I have never got this laptop mic working with linux, so
>> this is not anything that broke recently. I see there is
>> check_volume_resolution function which tries to guess some of the
>> register ranges, but maybe it get's it wrong with this HW.
>
> Maybe, maybe not.  You should check rather ac97 registers in
> /proc/asound/card0/codec97#0/ac97#0-0+regs.  If build with
> CONFIG_SND_DEBUG=y, you can write to the register directly, too.
> See Documentaiton[/sound/alsa]/Procfile.txt.
>

I checked this file. It seems it gets the regs right for the mic
(range 0x1f). The capture range is 0xf. I don't have the specs to
compare it against, so I assume there is nothing to do more here.

It seems mic value decreases while going up to full, where as capture
increases. Another difference is maybe stereo / mono related, the
capture changes both bytes whereas mic only the other one. Also one
thing, should the mic level be around 0x40 - 0x5f, not 0x0 - 0x1f.
Here's the diff of the registers between mixing the capture and mic
from min to max:

$ diff /tmp/ac97_regs_capt_{min,full}
15c15
< 0:1c = 0000
---
> 0:1c = 0f0f

$ diff /tmp/ac97_regs_mic_{min,full}
8c8
< 0:0e = 005f
---
> 0:0e = 0040

I'll recompile it with sound debug just to test it...

Thanks,

ikke


More information about the Alsa-devel mailing list