At Thu, 29 Jul 2010 10:09:30 +0200, Mario 'BitKoenig' Holbe wrote:
On Thu, Jul 29, 2010 at 07:44:38AM +0200, Takashi Iwai wrote:
Mario 'BitKoenig' Holbe wrote:
But the BIOS itself beeps through the sound-card at boot :/
But BIOS tells that the HD-audio codec shouldn't use, so the driver follows it.
Even grub's beep (play 480 440 1) goes through the sound-card. So it seems like the BIOS leaves everything set up working as well.
Well, my point is that BIOS gives the wrong SSID value. It's bad that the value is compliant with Realtek codecs specification, but it clears the PC-beep bit explicitly. In most cases, SSID value isn't compliant (so BIOS gives a wrong but it's less wrong :), thus the driver takes a fallback to PC-beep enabled.
Please don't get me wrong. I'm not saying the driver does something wrong, I'm sure it doesn't. I'm just sure that if I could convince it to behave as if it would have detected the Beep pin everything would work fine again because it did before...
FYI, you can change SSID by writing /sys/class/sound/hwC*D*/subsystem_id file. Then reconfigure the codec via triggering /sys/class/sound/hwC*D*/reconfig.
Please give alsa-info.sh output instead of codec proc file. It's more comprehensive.
Attached.
This is from a kernel with both patches applied you sent me.
With the patch below, you'll likely have back the system beep sound.
Nope, no sound. But I guess this wasn't the intention of the patch. Now, no beep input is registered anymore - which was the intention, I guess.
It's the intention. If SSID set by BIOS doesn't indicate the presence of PC-speaker bit *explicitly*, we shouldn't touch beep stuff in codec.
But it doesn't go through codec, thus no volume control.
If you mean it should go through the 5V PC Speaker (i.e. pcspkr) - I don't have such a thing connected. I always appreciated having volume- and mute control over the beep at night when you can't get away from work but don't like to wake up anybody just because command completion beeps, because you pasted something in the wrong window, or whatever.
For the driver, the outside connection doesn't matter. The information is given as the spec bit, and just follows it :)
So, the fix is likely to override SSID value, or create a special quirk rule to enable PC-beep for known white-list, supposing BIOS won't be fixed in any future...
Takashi