[PATCH] hda: STAC9228 DMIC Support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Added DMIC support for STAC9228 cards, as well as adding terminators to other hda_nid DMIC arrays, and added a new Vendor ID tag.
---
Signed-off-by: Matthew Ranostay <mranostay@xxxxxxxxxxxxxxxxx>
diff -r e91f57f8127a pci/hda/hda_codec.c
--- a/pci/hda/hda_codec.c	Tue Oct 09 11:58:41 2007 +0200
+++ b/pci/hda/hda_codec.c	Wed Oct 17 11:59:47 2007 -0400
@@ -55,6 +55,7 @@ static struct hda_vendor_id hda_vendor_i
 	{ 0x10ec, "Realtek" },
 	{ 0x1057, "Motorola" },
 	{ 0x1106, "VIA" },
+	{ 0x111d, "IDT" },
 	{ 0x11d4, "Analog Devices" },
 	{ 0x13f6, "C-Media" },
 	{ 0x14f1, "Conexant" },
diff -r e91f57f8127a pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c	Tue Oct 09 11:58:41 2007 +0200
+++ b/pci/hda/patch_sigmatel.c	Wed Oct 17 13:06:58 2007 -0400
@@ -182,8 +182,9 @@ static hda_nid_t stac925x_dac_nids[1] = 
         0x02,
 };
 
-static hda_nid_t stac925x_dmic_nids[1] = {
-	0x15, 
+static hda_nid_t stac925x_dmic_nids[2] = {
+        0x15, 
+        0x00, /* terminator */
 };
 
 static hda_nid_t stac922x_adc_nids[2] = {
@@ -202,6 +203,11 @@ static hda_nid_t stac927x_mux_nids[3] = 
         0x15, 0x16, 0x17
 };
 
+static hda_nid_t stac927x_dmic_nids[3] = {
+        0x13, 0x14,
+        0x00, /* terminator */
+};
+
 static hda_nid_t stac9205_adc_nids[2] = {
         0x12, 0x13
 };
@@ -210,8 +216,9 @@ static hda_nid_t stac9205_mux_nids[2] = 
         0x19, 0x1a
 };
 
-static hda_nid_t stac9205_dmic_nids[2] = {
+static hda_nid_t stac9205_dmic_nids[3] = {
         0x17, 0x18,
+        0x00, /* terminator */
 };
 
 static hda_nid_t stac9200_pin_nids[8] = {
@@ -2716,7 +2723,6 @@ static int patch_stac927x(struct hda_cod
 		spec->mux_nids = stac927x_mux_nids;
 		spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
 		spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
-		spec->num_dmics = 0;
 		spec->init = d965_core_init;
 		spec->mixer = stac927x_mixer;
 		break;
@@ -2725,7 +2731,6 @@ static int patch_stac927x(struct hda_cod
 		spec->mux_nids = stac927x_mux_nids;
 		spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
 		spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
-		spec->num_dmics = 0;
 		spec->init = d965_core_init;
 		spec->mixer = stac927x_mixer;
 		break;
@@ -2734,9 +2739,18 @@ static int patch_stac927x(struct hda_cod
 		spec->mux_nids = stac927x_mux_nids;
 		spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
 		spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
-		spec->num_dmics = 0;
 		spec->init = stac927x_core_init;
 		spec->mixer = stac927x_mixer;
+	}
+
+	switch (codec->subsystem_id) {
+	case 0x1028020A: /* STAC 9228 */
+	case 0x10280209: /* STAC 9228 */
+		spec->dmic_nids = stac927x_dmic_nids;
+		spec->num_dmics = 2;
+		break;
+	default:
+		spec->num_dmics = 0;
 	}
 
 	spec->multiout.dac_nids = spec->dac_nids;
@@ -2798,7 +2812,7 @@ static int patch_stac9205(struct hda_cod
 	spec->mux_nids = stac9205_mux_nids;
 	spec->num_muxes = ARRAY_SIZE(stac9205_mux_nids);
 	spec->dmic_nids = stac9205_dmic_nids;
-	spec->num_dmics = ARRAY_SIZE(stac9205_dmic_nids);
+	spec->num_dmics = 2;
 	spec->dmux_nid = 0x1d;
 
 	spec->init = stac9205_core_init;
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux