If the codec subvendor is not set to HP, maybe the PCI SSID is set to HP. If so, there might still be a valid mute LED string in BIOS/UEFI.
Cc: stable@vger.kernel.org Buglink: https://bugs.launchpad.net/bugs/1099372 Reported-and-tested-by: Tammy Yang tammy.yang@canonical.com Signed-off-by: David Henningsson david.henningsson@canonical.com --- sound/pci/hda/patch_sigmatel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index a86547c..40c74a2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4948,7 +4948,8 @@ static int find_mute_led_cfg(struct hda_codec *codec, int default_polarity) &spec->gpio_led_polarity); return 1; } - if ((codec->subsystem_id >> 16) == PCI_VENDOR_ID_HP) { + if ((codec->subsystem_id >> 16) == PCI_VENDOR_ID_HP || + codec->bus->pci->subsystem_vendor == PCI_VENDOR_ID_HP) { while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, NULL, dev))) { if (sscanf(dev->name, "HP_Mute_LED_%d_%x",