Skip to content

Commit

Permalink
[ALSA] maestro3: HP OmniBook HW volume button magic
Browse files Browse the repository at this point in the history
Maestro3 driver
Some HP OmniBook laptops (500 and 6000 at least) require some GPIO magic
before the HW volume buttons work. This patch makes them work mostly.
Something is still missing to make them work perfectly. However I have been
unable to figure out what exactly.

Signed-off-by: Ville Syrjala <syrjala@sci.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Ville Syrjala authored and Jaroslav Kysela committed May 29, 2005
1 parent db68d15 commit 091bf4d
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions sound/pci/maestro3.c
Original file line number Diff line number Diff line change
Expand Up @@ -2392,6 +2392,18 @@ snd_m3_chip_init(m3_t *chip)
DISABLE_LEGACY);
pci_write_config_word(pcidev, PCI_LEGACY_AUDIO_CTRL, w);

/*
* Volume buttons on some HP OmniBook laptops (500 and 6000 at least)
* don't work correctly. This makes them work for the most part.
* Volume up and down buttons on the laptop side work perfectly.
* Fn+cursor_up (volme up) works, Fn+cursor_down (volume down) doesn't,
* Fn+F8 (mute) works acts as volume up.
*/
outw(~(GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_MASK);
outw(inw(io + GPIO_DIRECTION) & ~(GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_DIRECTION);
outw((GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_DATA);
outw(0xffff, io + GPIO_MASK);

pci_read_config_dword(pcidev, PCI_ALLEGRO_CONFIG, &n);
n &= ~HV_BUTTON_FROM_GD;
n |= HV_CTRL_ENABLE | REDUCED_DEBOUNCE;
Expand Down

0 comments on commit 091bf4d

Please sign in to comment.