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