The attached patch fixes hardware volume buttons on my Dell Inspiron 7000
laptop. The chip is ESS Maestro2 (0x125d:0x1968).
I have no idea if this will break things for someone else. Since the
datasheet didn't help me understand the registers involved I just printed
their contents and came up with the used bits.
All registers had the following values in my tests:
mute: 0x99
vol down: 0x77
vol up: 0xBB
--
Ville Syrj�l�
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/
--- alsa-driver-0.9.8/alsa-kernel/pci/es1968.c.orig 2003-10-14 16:59:20.000000000
+0300
+++ alsa-driver-0.9.8/alsa-kernel/pci/es1968.c 2004-02-17 08:06:22.000000000 +0200
@@ -1967,14 +1967,14 @@
/* FIXME: more clean up is needed.. */
val = chip->ac97->regs[AC97_MASTER];
- if (x & 1) {
+ if (!(x & 2)) {
/* mute */
snd_ac97_write_cache(chip->ac97, AC97_MASTER, val ^ 0x8000);
snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
&chip->master_switch->id);
} else {
val &= 0x7fff;
- if (((x>>1) & 7) > 4) {
+ if (!(x & 4)) {
/* volume up */
if ((val & 0xff) > 0)
val--;