At Mon, 18 Aug 2008 15:28:00 +0300, Ilkka Tengvall wrote:
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.
Which registers, exactly?
It seems mic value decreases while going up to full, where as capture increases.
I guess the former one is the mic loopback volume (attenuation), so no wonder it behaves so.
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.
The bit 0x40 indicates the mic boost +20dB.
Takashi