diff options
-rw-r--r-- | sound/pci/maestro3.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index c1c7eeeb199b..3690ea05b042 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c | |||
@@ -2392,6 +2392,18 @@ snd_m3_chip_init(m3_t *chip) | |||
2392 | DISABLE_LEGACY); | 2392 | DISABLE_LEGACY); |
2393 | pci_write_config_word(pcidev, PCI_LEGACY_AUDIO_CTRL, w); | 2393 | pci_write_config_word(pcidev, PCI_LEGACY_AUDIO_CTRL, w); |
2394 | 2394 | ||
2395 | /* | ||
2396 | * Volume buttons on some HP OmniBook laptops (500 and 6000 at least) | ||
2397 | * don't work correctly. This makes them work for the most part. | ||
2398 | * Volume up and down buttons on the laptop side work perfectly. | ||
2399 | * Fn+cursor_up (volme up) works, Fn+cursor_down (volume down) doesn't, | ||
2400 | * Fn+F8 (mute) works acts as volume up. | ||
2401 | */ | ||
2402 | outw(~(GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_MASK); | ||
2403 | outw(inw(io + GPIO_DIRECTION) & ~(GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_DIRECTION); | ||
2404 | outw((GPI_VOL_DOWN|GPI_VOL_UP), io + GPIO_DATA); | ||
2405 | outw(0xffff, io + GPIO_MASK); | ||
2406 | |||
2395 | pci_read_config_dword(pcidev, PCI_ALLEGRO_CONFIG, &n); | 2407 | pci_read_config_dword(pcidev, PCI_ALLEGRO_CONFIG, &n); |
2396 | n &= ~HV_BUTTON_FROM_GD; | 2408 | n &= ~HV_BUTTON_FROM_GD; |
2397 | n |= HV_CTRL_ENABLE | REDUCED_DEBOUNCE; | 2409 | n |= HV_CTRL_ENABLE | REDUCED_DEBOUNCE; |