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>
 static void set_hp_led_gpio(struct hda_codec *codec)
 {
        struct sigmatel_spec *spec = codec->spec;
-       switch (codec->vendor_id) {
-       case 0x111d7608:
-               /* GPIO 0 */
-               spec->gpio_led = 0x01;
-               break;
-       case 0x111d7600:
-       case 0x111d7601:
-       case 0x111d7602:
-       case 0x111d7603:
-               /* GPIO 3 */
-               spec->gpio_led = 0x08;
-               break;
-       }
+       unsigned int gpio;
+
+       gpio = snd_hda_param_read(codec, codec->afg, AC_PAR_GPIO_CAP);
+       gpio &= AC_GPIO_IO_COUNT;
+       if (gpio > 3)
+               spec->gpio_led = 0x08; /* GPIO 3 */
+       else
+               spec->gpio_led = 0x01; /* GPIO 0 */
 }
 
 /*