Re: ALC883 recording troubles...

From: Daniel J Blueman
Date: Thu Jun 12 2008 - 17:50:44 EST


On Thu, Jun 12, 2008 at 11:49 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> At Wed, 11 Jun 2008 20:00:17 +0100,
> Daniel J Blueman wrote:
>>
>> On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
>> > At Mon, 9 Jun 2008 20:59:00 +0100,
>> > Daniel J Blueman wrote:
>> >>
>> >> Hi Takashi-san,
>> >>
>> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04
>> >> LTS x86-64). I can see on Audacity that the DC offset that varies with
>> >> the recording capture level.
>> >
>> > Could you elaborate? The mic bias level could be changed via the pin
>> > control value. Usually, it's set as VREF 80%.
>>
>> When the recording->capture level is set to 0, the mic has no DC
>> offset as expected. Maxing the recording->capture level, the mic input
>> is saturated, in between, we see a linear connection.
>>
>> >> Plus, the mixer playback->mic-boost
>> >> muting enables/disables mic-boost in recording.
>> >
>> > This is a known bug in alsa-lib mixer abstraction. No kernel issue.
>>
>> >> It feels like the ALC883 pins aren't configured quite right. The mobo
>> >> is an Asus P5E-VM with current BIOS [1]
>> >>
>> >> What's the routine to debug this? Would it help to install windows,
>> >> dump the register space and compare?
>> >
>> > You can find *.INI file that contains the default pin configuration
>> > in Windows. This might be useful in the case BIOS is broken but
>> > Windows does a black magic.
>>
>> That'll be these defaults stashed in the INF file [2]. Let me know if
>> it's not what you expected and I'll publish the complete INF file.
>>
>> > Anyway, please run alsa-info.sh with --no-upload option and show the
>> > generated file here. It contains the codec information and mixer
>> > setup.
>> > http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh
>>
>> See [3].
>>
>> > Also, you can adjust the pin setting on the fly via hda-verb utility
>> > below:
>> > http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2
>> >
>> > Don't forget to build snd-hda-intel module with
>> > CONFIG_SND_HDA_HWDEP=y to use this command.
>>
>> I'll give this a shot if I get time.
>
> You can try to adjust VREF value of mic pins.
> For example, the node 0x18 and 0x19 correspond to the rear and front
> mics, respectively. Then run the following as root:
>
> # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21
>
> which will change the widget 0x18 (rear mic) to input-VREF 50%
> (0x21). The original value is input-VREF 80% (0x24).

Yes, I had tried this and it does not help, perhaps only changing the
magnitude of the sampled mic input.

Another smoking gun, is when changing certain mixer settings (both on
gnome-mixer and alsamixer), eg playback->front mic amplitude, moving
the slider up and down, the L/R linking seems to be almost randomly
unlinked and the other L/R channel jumps to a different value. When
re-linking the L/R channels, often, it'll unlink again and change both
value after reading back the change; mute can be erratic too.
Confirmed with 2.6.26-r5.

Is there a good way to debug this also?

> Takashi
--
Daniel J Blueman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/