[alsa-devel] Conexant 5051 lenovo-x200 fixes

Ulo Mets umets at osa.pri.ee
Thu Aug 18 02:45:33 CEST 2011


Hi,
I am not a kernel developer, but occasionally dig into it if something gets in my way.
On Lenovo X200 Tablet none of the mixers showed Mic Boost adjustments, but HDA-Analyzer found them
and adjusted properly. So I inserted the corresponding controls, and it worked.
Then, during testing I found that the labels of External and Docking Mic are swapped,
so I exchanged these too. Since I could not test it on other hardware, I put it all on lenovo-x200 branch.
The patch applies to 3.1-rc2, I hope it is sufficiently recent.
The Mic Switches don't have any effect on my unit (X200T without modem)

With best regards,

Ulo Mets

Signed-off-by: Ulo Mets<umets at osa.pri.ee>

---b/sound/pci/hda/patch_conexant.c	2011-08-01 12:45:32.302640276 +0300
+++ a/sound/pci/hda/patch_conexant.c	2011-08-01 12:50:22.003141176 +0300
@@ -1785,6 +1785,19 @@
  	{}
  };

+static const struct snd_kcontrol_new cxt5051_lenovo_x200_mixers[] = {
+	HDA_CODEC_VOLUME("Int Mic Volume", 0x14, 0x00, HDA_INPUT),
+	HDA_CODEC_MUTE("Int Mic Switch", 0x14, 0x00, HDA_INPUT),
+	HDA_CODEC_VOLUME("Dock Mic Volume", 0x14, 0x01, HDA_INPUT),
+	HDA_CODEC_MUTE("Dock Mic Switch", 0x14, 0x01, HDA_INPUT),
+	HDA_CODEC_VOLUME("Ext Mic Volume", 0x15, 0x00, HDA_INPUT),
+	HDA_CODEC_MUTE("Ext Mic Switch", 0x15, 0x00, HDA_INPUT),
+	HDA_CODEC_VOLUME("Int Mic Boost", 0x1d, 0x00, HDA_INPUT),
+	HDA_CODEC_VOLUME("Dock Mic Boost", 0x17, 0x00, HDA_INPUT),
+	HDA_CODEC_VOLUME("Ext Mic Boost", 0x18, 0x00, HDA_INPUT),
+	{}
+};
+
  static const struct snd_kcontrol_new cxt5051_hp_mixers[] = {
  	HDA_CODEC_VOLUME("Internal Mic Volume", 0x14, 0x00, HDA_INPUT),
  	HDA_CODEC_MUTE("Internal Mic Switch", 0x14, 0x00, HDA_INPUT),
@@ -2055,6 +2079,7 @@
  		break;
  	case CXT5051_LENOVO_X200:
  		spec->init_verbs[0] = cxt5051_lenovo_x200_init_verbs;
+		spec->mixers[0] = cxt5051_lenovo_x200_mixers;
  		/* Thinkpad X301 does not have S/PDIF wired and no ability
  		   to use a docking station. */
  		if (codec->subsystem_id == 0x17aa211f)



More information about the Alsa-devel mailing list