At Tue, 14 Apr 2009 15:43:33 +0200, Johannes Berg wrote:
On Tue, 2009-04-14 at 15:40 +0200, Takashi Iwai wrote:
Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
- Amp-In vals: [0x00 0x00] [0x00 0x00]
- Amp-In vals: [0x80 0x80] [0x00 0x00] Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x25 0x25] Connection: 2
So the widget 0x0d is muted. Maybe the channel mode control doesn't do caching the value properly...
No idea :)
Could you give the raw alsa-info.sh output?
Sure, below (before hibernating).
Thanks. Could you try the patch below?
Mind you -- mbp3 isn't really the correct thing for my machine, the microphone also seems to be bad when using it -- but I haven't gotten around to writing a proper description or trying to find it even.
Hm, could you be a bit more specific? "seems to be bad" is relatively subjective expression :)
Takashi
--- diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index a4e5e59..fd6e6f3 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -2250,7 +2250,11 @@ int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid, err = bus->ops.command(bus, res); if (!err) { struct hda_cache_head *c; - u32 key = build_cmd_cache_key(nid, verb); + u32 key; + /* parm may contain the verb stuff for get/set amp */ + verb = verb | (parm >> 8); + parm &= 0xff; + key = build_cmd_cache_key(nid, verb); c = get_alloc_hash(&codec->cmd_cache, key); if (c) c->val = parm;