aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorCharles Chin <Charles.Chin@idt.com>2010-01-29 06:05:51 -0500
committerTakashi Iwai <tiwai@suse.de>2010-01-29 06:05:51 -0500
commit36706005d90642bccabfaacbb24d135155e984a8 (patch)
treed89515d0d0cf8767307d117d21f5fe4ec48174ed /sound/pci
parente108c7b79e91b45a3f04762c44fd404a5d9be069 (diff)
ALSA: hda - Add support for IDT 92HD88 family codecs
Signed-off-by: Charles Chin <Charles.Chin@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_sigmatel.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index cb9802f4b063..9694675f0b9e 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -568,6 +568,11 @@ static hda_nid_t stac92hd83xxx_pin_nids[10] = {
568 0x0f, 0x10, 0x11, 0x1f, 0x20, 568 0x0f, 0x10, 0x11, 0x1f, 0x20,
569}; 569};
570 570
571static hda_nid_t stac92hd88xxx_pin_nids[10] = {
572 0x0a, 0x0b, 0x0c, 0x0d,
573 0x0f, 0x11, 0x1f, 0x20,
574};
575
571#define STAC92HD71BXX_NUM_PINS 13 576#define STAC92HD71BXX_NUM_PINS 13
572static hda_nid_t stac92hd71bxx_pin_nids_4port[STAC92HD71BXX_NUM_PINS] = { 577static hda_nid_t stac92hd71bxx_pin_nids_4port[STAC92HD71BXX_NUM_PINS] = {
573 0x0a, 0x0b, 0x0c, 0x0d, 0x00, 578 0x0a, 0x0b, 0x0c, 0x0d, 0x00,
@@ -2873,6 +2878,13 @@ static hda_nid_t get_unassigned_dac(struct hda_codec *codec, hda_nid_t nid)
2873 2878
2874 conn_len = snd_hda_get_connections(codec, nid, conn, 2879 conn_len = snd_hda_get_connections(codec, nid, conn,
2875 HDA_MAX_CONNECTIONS); 2880 HDA_MAX_CONNECTIONS);
2881 /* 92HD88: trace back up the link of nids to find the DAC */
2882 while (conn_len == 1 && (get_wcaps_type(get_wcaps(codec, conn[0]))
2883 != AC_WID_AUD_OUT)) {
2884 nid = conn[0];
2885 conn_len = snd_hda_get_connections(codec, nid, conn,
2886 HDA_MAX_CONNECTIONS);
2887 }
2876 for (j = 0; j < conn_len; j++) { 2888 for (j = 0; j < conn_len; j++) {
2877 wcaps = get_wcaps(codec, conn[j]); 2889 wcaps = get_wcaps(codec, conn[j]);
2878 wtype = get_wcaps_type(wcaps); 2890 wtype = get_wcaps_type(wcaps);
@@ -5318,6 +5330,16 @@ again:
5318 stac92hd83xxx_brd_tbl[spec->board_config]); 5330 stac92hd83xxx_brd_tbl[spec->board_config]);
5319 5331
5320 switch (codec->vendor_id) { 5332 switch (codec->vendor_id) {
5333 case 0x111d7666:
5334 case 0x111d7667:
5335 case 0x111d7668:
5336 case 0x111d7669:
5337 spec->num_pins = ARRAY_SIZE(stac92hd88xxx_pin_nids);
5338 spec->pin_nids = stac92hd88xxx_pin_nids;
5339 spec->mono_nid = 0;
5340 spec->digbeep_nid = 0;
5341 spec->num_pwrs = 0;
5342 break;
5321 case 0x111d7604: 5343 case 0x111d7604:
5322 case 0x111d7605: 5344 case 0x111d7605:
5323 case 0x111d76d5: 5345 case 0x111d76d5:
@@ -6243,6 +6265,10 @@ static struct hda_codec_preset snd_hda_preset_sigmatel[] = {
6243 { .id = 0x111d7604, .name = "92HD83C1X5", .patch = patch_stac92hd83xxx}, 6265 { .id = 0x111d7604, .name = "92HD83C1X5", .patch = patch_stac92hd83xxx},
6244 { .id = 0x111d7605, .name = "92HD81B1X5", .patch = patch_stac92hd83xxx}, 6266 { .id = 0x111d7605, .name = "92HD81B1X5", .patch = patch_stac92hd83xxx},
6245 { .id = 0x111d76d5, .name = "92HD81B1C5", .patch = patch_stac92hd83xxx}, 6267 { .id = 0x111d76d5, .name = "92HD81B1C5", .patch = patch_stac92hd83xxx},
6268 { .id = 0x111d7666, .name = "92HD88B3", .patch = patch_stac92hd83xxx},
6269 { .id = 0x111d7667, .name = "92HD88B1", .patch = patch_stac92hd83xxx},
6270 { .id = 0x111d7668, .name = "92HD88B2", .patch = patch_stac92hd83xxx},
6271 { .id = 0x111d7669, .name = "92HD88B4", .patch = patch_stac92hd83xxx},
6246 { .id = 0x111d7608, .name = "92HD75B2X5", .patch = patch_stac92hd71bxx}, 6272 { .id = 0x111d7608, .name = "92HD75B2X5", .patch = patch_stac92hd71bxx},
6247 { .id = 0x111d7674, .name = "92HD73D1X5", .patch = patch_stac92hd73xx }, 6273 { .id = 0x111d7674, .name = "92HD73D1X5", .patch = patch_stac92hd73xx },
6248 { .id = 0x111d7675, .name = "92HD73C1X5", .patch = patch_stac92hd73xx }, 6274 { .id = 0x111d7675, .name = "92HD73C1X5", .patch = patch_stac92hd73xx },