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

From: Takashi Iwai
Date: Wed Jul 28 2010 - 12:03:34 EST


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

--
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/