re: PC Beeps not working with HDA Intel module

From: Daniel J Blueman
Date: Mon Jul 05 2010 - 07:20:31 EST


On Jun 26, 12:40 pm, Shérab <Sebastien.Hinderer@xxxxxxxxxxxx> wrote:
> Dear all,
>
> The problem is on a computer with an HDA Intel sound card, Intel G45
> DEVCTG chip and appears will all version s of the kernel.
>
> Running e.g.
> beep 440
> produces a beep whose audible frequency is very low, definitely not 440
> Hz.
>
> However, it is worth notiing that grub is able to produce a beep of the
> right frequency at boot time.
>
> Can this problem be fixed ?
>
> Should you need any additional bit of information or testing, please ask.

I was finding the same with my Dell Studio 1557.

It may be worth using some printk calls [1] showing what frequency
value is sent to the codec, then checking with the codec datasheet -
we'll need to know which one, eg from 'dmesg' or 'alsa-info.sh' (from
http://www.alsa-project.org/alsa-info.sh).

We'll probably need to check the configuration registers of the beep
widget to check what divider it's using...

Thanks,
Daniel

--- [1]

diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c
index 29714c8..98d0d6c 100644
--- a/sound/pci/hda/hda_beep.c
+++ b/sound/pci/hda/hda_beep.c
@@ -69,6 +69,7 @@ static int beep_linear_tone(struct hda_beep *beep, int hz)
hz /= DIGBEEP_HZ_STEP;
hz = 255 - hz;
}
+ printk(KERN_ERR "HDA beep: linear value %d\n", hz);
return hz;
}

@@ -87,6 +88,7 @@ static int beep_standard_tone(struct hda_beep *beep, int hz)
return 0xff;
if (hz <= 0)
return 1;
+ printk(KERN_ERR "HDA beep: standard value %d\n", hz);
return hz;
}

--
Daniel J Blueman
--
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/