aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-02-08 09:06:13 -0500
committerTakashi Iwai <tiwai@suse.de>2010-02-08 09:06:13 -0500
commit07f804495cb08c8fdf16eee8f7d90edce4a3c9c5 (patch)
tree34e5ea6518be3b731d8cfdc77927422ad87c60db /sound/pci
parent794d6206508673d7c7426976d4e78e6af10b3e4f (diff)
ALSA: hda - Detect HP mute-LED GPIO setup from GPIO counts
The GPIO pin number for the mute LED control on HP laptops can be determined more easily by checking the number of available GPIO pins of the codec chip. On a small package with up to 3 GPIOs, GPIO 0 is used while GPIO 3 is used for others. This fixes the missing mute GPIO for some HP laptops with new codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_sigmatel.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 834c5980fe5d..39961879c414 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4754,19 +4754,14 @@ static int hp_blike_system(u32 subsystem_id);
4754static void set_hp_led_gpio(struct hda_codec *codec) 4754static void set_hp_led_gpio(struct hda_codec *codec)
4755{ 4755{
4756 struct sigmatel_spec *spec = codec->spec; 4756 struct sigmatel_spec *spec = codec->spec;
4757 switch (codec->vendor_id) { 4757 unsigned int gpio;
4758 case 0x111d7608: 4758
4759 /* GPIO 0 */ 4759 gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP);
4760 spec->gpio_led = 0x01; 4760 gpio &= AC_GPIO_IO_COUNT;
4761 break; 4761 if (gpio > 3)
4762 case 0x111d7600: 4762 spec->gpio_led = 0x08; /* GPIO 3 */
4763 case 0x111d7601: 4763 else
4764 case 0x111d7602: 4764 spec->gpio_led = 0x01; /* GPIO 0 */
4765 case 0x111d7603:
4766 /* GPIO 3 */
4767 spec->gpio_led = 0x08;
4768 break;
4769 }
4770} 4765}
4771 4766
4772/* 4767/*