[alsa-devel] Regression 2.6.35-rc6: ALSA Intel HDA/Realtek: missing Beep

Takashi Iwai tiwai at suse.de
Wed Jul 28 18:03:29 CEST 2010


At Wed, 28 Jul 2010 17:35:10 +0200,
I wrote:
> 
> At Wed, 28 Jul 2010 16:49:03 +0200,
> Mario 'BitKoenig' Holbe wrote:
> > 
> > Hello,
> > 
> > My PC-Speaker Beep control worked in 2.6.34, but is gone in 2.6.35-rc6.
> > The sound device is an Asus P5E-V HDMI (Intel G35) onboard Intel HDA w/
> > Realtek ALC883 codec.
> > 
> > The driver does still register a PCBeep input, but the Controls as well
> > as the sound (:)) are gone.
> > 
> > HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> > HDA Intel 0000:00:1b.0: irq 47 for MSI/MSI-X
> > HDA Intel 0000:00:1b.0: setting latency timer to 64
> > input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input5
> > 
> > $ diff card0-codec#0-2.6.34 card0-codec#0-2.6.35-rc6
> > 111,114d110
> > <   Control: name="Beep Playback Volume", index=0, device=0
> > <     ControlAmp: chs=3, dir=In, idx=5, ofs=0
> > <   Control: name="Beep Playback Switch", index=0, device=0
> > <     ControlAmp: chs=3, dir=In, idx=5, ofs=0
> > 
> > Attached /proc/asound/card0/codec#0 from 2.6.35-rc6.
> 
> It's because now the driver checks the SSID your board sets up.
> Realtek codecs suppose SSID containing some useful bits to inform
> the h/w setups.  The presence of PC beep is one of it.
> So, it's actually BIOS that clears it.
> 
> In the earlier version, the driver didn't check this.
> 
> Actually, the real bug is that it still creates a beep device without
> mixers.  This should be avoided...

Or, does the following patch fix?  It's already in sound git tree,


Takashi

---
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index d7fd846..9295527 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1267,11 +1267,11 @@ static int alc_auto_parse_customize_define(struct hda_codec *codec)
 	unsigned nid = 0;
 	struct alc_spec *spec = codec->spec;
 
+	spec->cdefine.enable_pcbeep = 1; /* assume always enabled */
+
 	ass = codec->subsystem_id & 0xffff;
-	if (ass != codec->bus->pci->subsystem_device && (ass & 1)) {
-		spec->cdefine.enable_pcbeep = 1; /* assume always enabled */
+	if (ass != codec->bus->pci->subsystem_device && (ass & 1))
 		goto do_sku;
-	}
 
 	nid = 0x1d;
 	if (codec->vendor_id == 0x10ec0260)
-- 
1.7.2



More information about the Alsa-devel mailing list