aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorVitaliy Kulikov <Vitaliy.Kulikov@idt.com>2013-01-31 18:58:59 -0500
committerTakashi Iwai <tiwai@suse.de>2013-02-01 01:19:36 -0500
commit4e637c6e09fde6c1984a820621b5a77fad1acd34 (patch)
tree47eb64aff595573c6b998adfd29011239c08fa64 /sound
parentaa53f98674a5c21a3098018be2c8ac0984273d8f (diff)
ALSA: hda - add support for IDT 92HD95 HDA codec
Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_sigmatel.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 951fc0ddf75a..617ac1f542fb 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -3965,6 +3965,44 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
3965 return 0; 3965 return 0;
3966} 3966}
3967 3967
3968static const hda_nid_t stac92hd95_pwr_nids[] = {
3969 0x0a, 0x0b, 0x0c, 0x0d
3970};
3971
3972static int patch_stac92hd95(struct hda_codec *codec)
3973{
3974 struct sigmatel_spec *spec;
3975 int err;
3976
3977 err = alloc_stac_spec(codec);
3978 if (err < 0)
3979 return err;
3980
3981 codec->epss = 0; /* longer delay needed for D3 */
3982
3983 spec = codec->spec;
3984 spec->linear_tone_beep = 0;
3985 spec->gen.own_eapd_ctl = 1;
3986 spec->gen.power_down_unused = 1;
3987
3988 spec->digbeep_nid = 0x19;
3989 spec->pwr_nids = stac92hd95_pwr_nids;
3990 spec->num_pwrs = ARRAY_SIZE(stac92hd95_pwr_nids);
3991 spec->default_polarity = -1; /* no default cfg */
3992
3993 codec->patch_ops = stac_patch_ops;
3994
3995 err = stac_parse_auto_config(codec);
3996 if (err < 0) {
3997 stac_free(codec);
3998 return err;
3999 }
4000
4001 codec->proc_widget_hook = stac92hd_proc_hook;
4002
4003 return 0;
4004}
4005
3968static int patch_stac92hd71bxx(struct hda_codec *codec) 4006static int patch_stac92hd71bxx(struct hda_codec *codec)
3969{ 4007{
3970 struct sigmatel_spec *spec; 4008 struct sigmatel_spec *spec;
@@ -4337,6 +4375,7 @@ static const struct hda_codec_preset snd_hda_preset_sigmatel[] = {
4337 { .id = 0x111d7674, .name = "92HD73D1X5", .patch = patch_stac92hd73xx }, 4375 { .id = 0x111d7674, .name = "92HD73D1X5", .patch = patch_stac92hd73xx },
4338 { .id = 0x111d7675, .name = "92HD73C1X5", .patch = patch_stac92hd73xx }, 4376 { .id = 0x111d7675, .name = "92HD73C1X5", .patch = patch_stac92hd73xx },
4339 { .id = 0x111d7676, .name = "92HD73E1X5", .patch = patch_stac92hd73xx }, 4377 { .id = 0x111d7676, .name = "92HD73E1X5", .patch = patch_stac92hd73xx },
4378 { .id = 0x111d7695, .name = "92HD95", .patch = patch_stac92hd95 },
4340 { .id = 0x111d76b0, .name = "92HD71B8X", .patch = patch_stac92hd71bxx }, 4379 { .id = 0x111d76b0, .name = "92HD71B8X", .patch = patch_stac92hd71bxx },
4341 { .id = 0x111d76b1, .name = "92HD71B8X", .patch = patch_stac92hd71bxx }, 4380 { .id = 0x111d76b1, .name = "92HD71B8X", .patch = patch_stac92hd71bxx },
4342 { .id = 0x111d76b2, .name = "92HD71B7X", .patch = patch_stac92hd71bxx }, 4381 { .id = 0x111d76b2, .name = "92HD71B7X", .patch = patch_stac92hd71bxx },