Commit 7f16859a authored by Matthew Ranostay's avatar Matthew Ranostay Committed by Jaroslav Kysela

[ALSA] hda-codec - Add STAC9228 DMIC support

Added the missing STAC9228 DMIC support.
Also added a new vendor id tag for IDT.
Signed-off-by: default avatarMatthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent b995d76d
...@@ -55,6 +55,7 @@ static struct hda_vendor_id hda_vendor_ids[] = { ...@@ -55,6 +55,7 @@ static struct hda_vendor_id hda_vendor_ids[] = {
{ 0x10ec, "Realtek" }, { 0x10ec, "Realtek" },
{ 0x1057, "Motorola" }, { 0x1057, "Motorola" },
{ 0x1106, "VIA" }, { 0x1106, "VIA" },
{ 0x111d, "IDT" },
{ 0x11d4, "Analog Devices" }, { 0x11d4, "Analog Devices" },
{ 0x13f6, "C-Media" }, { 0x13f6, "C-Media" },
{ 0x14f1, "Conexant" }, { 0x14f1, "Conexant" },
......
...@@ -204,6 +204,11 @@ static hda_nid_t stac927x_mux_nids[3] = { ...@@ -204,6 +204,11 @@ static hda_nid_t stac927x_mux_nids[3] = {
0x15, 0x16, 0x17 0x15, 0x16, 0x17
}; };
#define STAC927X_NUM_DMICS 2
static hda_nid_t stac927x_dmic_nids[STAC927X_NUM_DMICS + 1] = {
0x13, 0x14, 0
};
static hda_nid_t stac9205_adc_nids[2] = { static hda_nid_t stac9205_adc_nids[2] = {
0x12, 0x13 0x12, 0x13
}; };
...@@ -2688,7 +2693,6 @@ static int patch_stac927x(struct hda_codec *codec) ...@@ -2688,7 +2693,6 @@ static int patch_stac927x(struct hda_codec *codec)
spec->mux_nids = stac927x_mux_nids; spec->mux_nids = stac927x_mux_nids;
spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids); spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids); spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
spec->num_dmics = 0;
spec->init = d965_core_init; spec->init = d965_core_init;
spec->mixer = stac927x_mixer; spec->mixer = stac927x_mixer;
break; break;
...@@ -2697,7 +2701,6 @@ static int patch_stac927x(struct hda_codec *codec) ...@@ -2697,7 +2701,6 @@ static int patch_stac927x(struct hda_codec *codec)
spec->mux_nids = stac927x_mux_nids; spec->mux_nids = stac927x_mux_nids;
spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids); spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids); spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
spec->num_dmics = 0;
spec->init = d965_core_init; spec->init = d965_core_init;
spec->mixer = stac927x_mixer; spec->mixer = stac927x_mixer;
break; break;
...@@ -2706,11 +2709,20 @@ static int patch_stac927x(struct hda_codec *codec) ...@@ -2706,11 +2709,20 @@ static int patch_stac927x(struct hda_codec *codec)
spec->mux_nids = stac927x_mux_nids; spec->mux_nids = stac927x_mux_nids;
spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids); spec->num_muxes = ARRAY_SIZE(stac927x_mux_nids);
spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids); spec->num_adcs = ARRAY_SIZE(stac927x_adc_nids);
spec->num_dmics = 0;
spec->init = stac927x_core_init; spec->init = stac927x_core_init;
spec->mixer = stac927x_mixer; 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 = STAC927X_NUM_DMICS;
break;
default:
spec->num_dmics = 0;
}
spec->multiout.dac_nids = spec->dac_nids; spec->multiout.dac_nids = spec->dac_nids;
/* GPIO0 High = Enable EAPD */ /* GPIO0 High = Enable EAPD */
spec->gpio_mask = spec->gpio_data = 0x00000001; spec->gpio_mask = spec->gpio_data = 0x00000001;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment