Browse Source

ALSA: hda - Fix mute-LED GPIO pin for HP dv series

Old HP dv series seem to use the GPIO pin 0 for controlling the mute LED
although the pin is a large package, where the newer models use GPIO 3
in such a case.  For fixing the regression from the previous kernels,
set spec->gpio_led statically for these model quirks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 15 years ago
parent
commit
26ebe0a289
1 changed files with 5 additions and 0 deletions
  1. 5 0
      sound/pci/hda/patch_sigmatel.c

+ 5 - 0
sound/pci/hda/patch_sigmatel.c

@@ -4766,6 +4766,9 @@ static void set_hp_led_gpio(struct hda_codec *codec)
 	struct sigmatel_spec *spec = codec->spec;
 	unsigned int gpio;
 
+	if (spec->gpio_led)
+		return;
+
 	gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP);
 	gpio &= AC_GPIO_IO_COUNT;
 	if (gpio > 3)
@@ -5683,11 +5686,13 @@ again:
 		 * detection.
 		 */
 		spec->hp_detect = 1;
+		spec->gpio_led = 0x01;
 		break;
 	case STAC_HP_HDX:
 		spec->num_dmics = 1;
 		spec->num_dmuxes = 1;
 		spec->num_smuxes = 1;
+		spec->gpio_led = 0x08;
 		break;
 	}