alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec
@ 2013-11-27  6:47 Hui Wang
  2013-11-27  7:49 ` David Henningsson
  2014-06-29 11:33 ` Jan Kiszka
  0 siblings, 2 replies; 27+ messages in thread
From: Hui Wang @ 2013-11-27  6:47 UTC (permalink / raw)
  To: tiwai, alsa-devel; +Cc: hui.wang, alex.hung, yk, david.henningsson

Most Thinkpad Edge series laptops use conexant codec, so far although
the codecs have different minor Vendor Id and minor Subsystem Id,
they all belong to the cxt5066 family, this change can make the
mute/mic-mute LEDs support more generic among cxt_5066 family.

This design refers to the similar solution for the realtek codec
ALC269 family in the patch_realtek.c.

Cc: Alex Hung <alex.hung@canonical.com>
Cc: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
---
 sound/pci/hda/patch_conexant.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index c205bb1..1f2717f 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -3244,9 +3244,29 @@ enum {
 #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
 
 #include <linux/thinkpad_acpi.h>
+#include <acpi/acpi.h>
 
 static int (*led_set_func)(int, bool);
 
+static acpi_status acpi_check_cb(acpi_handle handle, u32 lvl, void *context,
+				 void **rv)
+{
+	bool *found = context;
+	*found = true;
+	return AE_OK;
+}
+
+static bool is_thinkpad(struct hda_codec *codec)
+{
+	bool found = false;
+	if (codec->subsystem_id >> 16 != 0x17aa)
+		return false;
+	if (ACPI_SUCCESS(acpi_get_devices("LEN0068", acpi_check_cb, &found, NULL)) && found)
+		return true;
+	found = false;
+	return ACPI_SUCCESS(acpi_get_devices("IBM0068", acpi_check_cb, &found, NULL)) && found;
+}
+
 static void update_tpacpi_mute_led(void *private_data, int enabled)
 {
 	struct hda_codec *codec = private_data;
@@ -3279,6 +3299,8 @@ static void cxt_fixup_thinkpad_acpi(struct hda_codec *codec,
 	bool removefunc = false;
 
 	if (action == HDA_FIXUP_ACT_PROBE) {
+		if (!is_thinkpad(codec))
+			return;
 		if (!led_set_func)
 			led_set_func = symbol_request(tpacpi_led_set);
 		if (!led_set_func) {
@@ -3494,6 +3516,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
 	SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC),
 	SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC),
 	SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC),
+	SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI),
 	SND_PCI_QUIRK(0x1c06, 0x2011, "Lemote A1004", CXT_PINCFG_LEMOTE_A1004),
 	SND_PCI_QUIRK(0x1c06, 0x2012, "Lemote A1205", CXT_PINCFG_LEMOTE_A1205),
 	{}
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2015-07-01  9:51 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-27  6:47 [V2 PATCH] ALSA: hda - Enable mute/mic-mute LEDs for more Thinkpads with Conexant codec Hui Wang
2013-11-27  7:49 ` David Henningsson
2014-06-29 11:33 ` Jan Kiszka
2014-06-30  2:04   ` Hui Wang
2014-06-30  6:45     ` Jan Kiszka
2014-07-01  2:15       ` Hui Wang
2014-07-01  7:38         ` Jan Kiszka
2014-07-01  9:26           ` Hui Wang
2014-07-03  7:04             ` Jan Kiszka
2014-07-03  8:59               ` Hui Wang
2014-07-03  9:05                 ` Jan Kiszka
2014-07-03  9:24                   ` Hui Wang
2015-05-23  8:49                     ` Jan Kiszka
2015-05-23 16:06                       ` Raymond Yau
2015-05-23 16:22                         ` Jan Kiszka
2015-06-24  5:37                           ` [alsa-devel] " Jan Kiszka
2015-06-24  8:46                             ` Hui Wang
2015-06-25 11:02                               ` Jan Kiszka
2015-06-26  2:22                                 ` Hui Wang
2015-06-26  4:06                                   ` Jan Kiszka
2015-06-26 22:49                                   ` Henrique de Moraes Holschuh
2015-06-27  5:59                                     ` Jan Kiszka
2015-06-27 15:50                                       ` Henrique de Moraes Holschuh
2015-06-29  9:06                                         ` Takashi Iwai
2015-06-27  3:03                       ` Raymond Yau
2015-06-29  0:49                         ` Hui Wang
2015-07-01  9:51                           ` [alsa-devel] " Hui Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).