Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1574770ybz; Thu, 30 Apr 2020 01:38:10 -0700 (PDT) X-Google-Smtp-Source: APiQypJstJ7C8DFqQfYDXOSkopVwNABsSVPc2/4Jb/7N8ThynRlUPIIQ/BPR6CFKhMUhd+feJchb X-Received: by 2002:a05:6402:b2e:: with SMTP id bo14mr1678566edb.90.1588235890343; Thu, 30 Apr 2020 01:38:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588235890; cv=none; d=google.com; s=arc-20160816; b=JQFM1lZH7t0gOhNbjgU45OqI/Rcajw6clPQy9U3NN7wK0Gkvzvgl9J0GH7lMcfxlWO dqydKlYpnpvmIK2ilTrvk+mm8+QRpIWdN5Yvz9qaI+kuN3HClRKiQ8cTvB59cii6rkt9 CQia3Fn/Eap2s6gyKXWqoqkh3HE4cBzWfyxTgPVN6/9GzGTn/3aORQ2nTiuS5t9dqici RRP6zi79V+7TpKgk0xhgcA+9BYt/dmth6LRHXyhSWJd4VsI4wFziQpZPbwI9MVhZ3EO1 NxoO4OSaf2b78i5BzXzulrLZLJN9f7PpUoFRbWh0CTccG6BdqAS82Yp7bnTZkKJC/AKz 9s7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=3Yah8EIyVr8Ut062zo4oxlgnGSeGW5IeTKgw7QviNkM=; b=aVSXx63biDHOy7oD+WI/VgI9mfSouO7upRQiAZLRiglLmDlIlW0eZ88VmG/UzW9ZFq +dDyDtWEmsG0kh8gLpd7/oSLqtPCRZwPy5YrT2rJIss6CgsZAfuBFwBJi95X4xIASIZD xCMb6bZsE2lw/iR0o48b/IFQ1n0WSBSeO/EPI1I1+iMqjd6K+Fn+IA8pKdg4jNYsnXth B3GwsPBIDtiOMeGy45P0gB3QFMUkRJKsU6LubqR56NP44DkFMRY6rknYhYr9Z4buKbro GdMSMaBK6DJdXaMHOuun+uWCkBSNDgRYC63TjHVW7DDGrP+7JuoupvATdi/5irWu08cS X7Ew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ch6si4621712edb.412.2020.04.30.01.37.46; Thu, 30 Apr 2020 01:38:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726736AbgD3IdU (ORCPT + 99 others); Thu, 30 Apr 2020 04:33:20 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:38535 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726127AbgD3IdU (ORCPT ); Thu, 30 Apr 2020 04:33:20 -0400 Received: from 61-220-137-37.hinet-ip.hinet.net ([61.220.137.37] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jU4cu-0002w9-OE; Thu, 30 Apr 2020 08:33:01 +0000 From: Kai-Heng Feng To: tiwai@suse.com Cc: Kai-Heng Feng , Jaroslav Kysela , Kailang Yang , Hui Wang , Jian-Hong Pan , Tomas Espeleta , Thomas Hebb , =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= , alsa-devel@alsa-project.org (moderated list:SOUND), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 1/3] ALSA: hda/realtek - Introduce polarity for micmute LED GPIO Date: Thu, 30 Apr 2020 16:32:51 +0800 Message-Id: <20200430083255.5093-1-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently mute LED and micmute LED share the same GPIO polarity. So split the polarity for mute and micmute, in case they have different polarities. Signed-off-by: Kai-Heng Feng --- sound/pci/hda/patch_realtek.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index c16f63957c5a..3150a61befc5 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -81,6 +81,7 @@ struct alc_spec { /* mute LED for HP laptops, see alc269_fixup_mic_mute_hook() */ int mute_led_polarity; + int micmute_led_polarity; hda_nid_t mute_led_nid; hda_nid_t cap_mute_led_nid; @@ -4075,11 +4076,9 @@ static void alc269_fixup_hp_mute_led_mic3(struct hda_codec *codec, /* update LED status via GPIO */ static void alc_update_gpio_led(struct hda_codec *codec, unsigned int mask, - bool enabled) + int polarity, bool enabled) { - struct alc_spec *spec = codec->spec; - - if (spec->mute_led_polarity) + if (polarity) enabled = !enabled; alc_update_gpio_data(codec, mask, !enabled); /* muted -> LED on */ } @@ -4090,7 +4089,8 @@ static void alc_fixup_gpio_mute_hook(void *private_data, int enabled) struct hda_codec *codec = private_data; struct alc_spec *spec = codec->spec; - alc_update_gpio_led(codec, spec->gpio_mute_led_mask, enabled); + alc_update_gpio_led(codec, spec->gpio_mute_led_mask, + spec->mute_led_polarity, enabled); } /* turn on/off mic-mute LED via GPIO per capture hook */ @@ -4099,6 +4099,7 @@ static void alc_gpio_micmute_update(struct hda_codec *codec) struct alc_spec *spec = codec->spec; alc_update_gpio_led(codec, spec->gpio_mic_led_mask, + spec->micmute_led_polarity, spec->gen.micmute_led.led_value); } @@ -5795,7 +5796,8 @@ static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec, snd_hda_gen_hp_automute(codec, jack); /* mute_led_polarity is set to 0, so we pass inverted value here */ - alc_update_gpio_led(codec, 0x10, !spec->gen.hp_jack_present); + alc_update_gpio_led(codec, 0x10, spec->mute_led_polarity, + !spec->gen.hp_jack_present); } /* Manage GPIOs for HP EliteBook Folio 9480m. -- 2.17.1