diff options
author | Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> | 2013-01-31 18:58:59 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-02-01 01:19:36 -0500 |
commit | 4e637c6e09fde6c1984a820621b5a77fad1acd34 (patch) | |
tree | 47eb64aff595573c6b998adfd29011239c08fa64 /sound | |
parent | aa53f98674a5c21a3098018be2c8ac0984273d8f (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.c | 39 |
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 | ||
3968 | static const hda_nid_t stac92hd95_pwr_nids[] = { | ||
3969 | 0x0a, 0x0b, 0x0c, 0x0d | ||
3970 | }; | ||
3971 | |||
3972 | static 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 | |||
3968 | static int patch_stac92hd71bxx(struct hda_codec *codec) | 4006 | static 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 }, |