At Wed, 28 Jul 2010 23:27:46 +0200, Mario 'BitKoenig' Holbe wrote:
[1 <text/plain; us-ascii (quoted-printable)>] On Wed, Jul 28, 2010 at 06:03:29PM +0200, Takashi Iwai wrote:
I wrote:
Mario 'BitKoenig' Holbe wrote:
My PC-Speaker Beep control worked in 2.6.34, but is gone in 2.6.35-rc6.
It's because now the driver checks the SSID your board sets up. So, it's actually BIOS that clears it.
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.
Or, does the following patch fix? It's already in sound git tree,
Nope, unfortunately it doesn't. Still no Beep controls, no beep through sound-card.
May I somehow provide any further data?
Please give alsa-info.sh output instead of codec proc file. It's more comprehensive.
Or am I somehow able to tweak it? Is there a module parameter to set this SSID bit? I mean, it did work before... :)
With the patch below, you'll likely have back the system beep sound. But it doesn't go through codec, thus no volume control.
thanks,
Takashi
--- From 8af2591d6342a9e4bb79b4f1236246a79d20ebee Mon Sep 17 00:00:00 2001 From: Takashi Iwai tiwai@suse.de Date: Wed, 28 Jul 2010 17:37:16 +0200 Subject: [PATCH] ALSA: hda - Don't register beep input device when no beep is available
We check now the availability of PC beep and skip the build of beep mixers, but the driver still registers the input device. This should be checked as well.
Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 32 +++++++++++++++++++------------- 1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index ff614dd..d7fd846 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -10566,10 +10566,12 @@ static int patch_alc882(struct hda_codec *codec) } }
- err = snd_hda_attach_beep_device(codec, 0x1); - if (err < 0) { - alc_free(codec); - return err; + if (spec->cdefine.enable_pcbeep) { + err = snd_hda_attach_beep_device(codec, 0x1); + if (err < 0) { + alc_free(codec); + return err; + } }
if (board_config != ALC882_AUTO) @@ -12435,7 +12437,7 @@ static int patch_alc262(struct hda_codec *codec) } }
- if (!spec->no_analog) { + if (!spec->no_analog && spec->cdefine.enable_pcbeep) { err = snd_hda_attach_beep_device(codec, 0x1); if (err < 0) { alc_free(codec); @@ -14458,10 +14460,12 @@ static int patch_alc269(struct hda_codec *codec) } }
- err = snd_hda_attach_beep_device(codec, 0x1); - if (err < 0) { - alc_free(codec); - return err; + if (spec->cdefine.enable_pcbeep) { + err = snd_hda_attach_beep_device(codec, 0x1); + if (err < 0) { + alc_free(codec); + return err; + } }
if (board_config != ALC269_AUTO) @@ -18691,10 +18695,12 @@ static int patch_alc662(struct hda_codec *codec) } }
- err = snd_hda_attach_beep_device(codec, 0x1); - if (err < 0) { - alc_free(codec); - return err; + if (spec->cdefine.enable_pcbeep) { + err = snd_hda_attach_beep_device(codec, 0x1); + if (err < 0) { + alc_free(codec); + return err; + } }
if (board_config != ALC662_AUTO)